Login required to started new threads

Login required to post replies

A New Approach To Predict Performance
Quote | Reply
Hello All,

From https://groups.google.com/...ysiology/co9Nyc69KPU

https://alancouzens.com/..._Neural_Network.html

Why Neural Networks are better than the old Banister/TSS model at predicting athletic performance.


Cheers, Neal

+1 mph Faster
Quote Reply
Re: A New Approach To Predict Performance [nealhe] [ In reply to ]
Quote | Reply
I'll have to read through all that stuff more carefully, but that's really, really interesting.
Quote Reply
Re: A New Approach To Predict Performance [nealhe] [ In reply to ]
Quote | Reply
So, if I'm reading this right, the Neural Network model is better able to predict diminishing returns from training stimulus than the Banister/TSS model is? Not only that, but it can also do so on an extremely personalized level for each athlete?
Quote Reply
Re: A New Approach To Predict Performance [jjstains] [ In reply to ]
Quote | Reply
jjstains wrote:
So, if I'm reading this right, the Neural Network model is better able to predict diminishing returns from training stimulus than the Banister/TSS model is? Not only that, but it can also do so on an extremely personalized level for each athlete?


Exactly!

I'll go a step further and say that the Banister/PMC model, in and of itself, cannot account for diminishing returns *AT ALL*

For a given set of constants at a given time, it will always predict that if you increase load by x%, you will increase performance by y% e.g. if you go from 0-10 CTL, the performance bump is the same as going from 100-110 CTL. Any coach/athlete with any experience knows this just doesn't happen in 'real life'.

Once an athlete reaches a fairly moderate level of fitness, the model falls apart.

Bottom line: In this day and age, there are far better models available.

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 14, 19 8:55
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Hi Mr. Couzens,

is the Neural Network a model to calculate training load data? And what would be different for example in the chart below to see the right turning points in training loads easier? The chart shows the recovery from a femur fracture and the pure fun of riding with a 1 month break in Mai/June ..

Your article is an very interesting read that challenges my language knowledge, too :-)



*
___/\___/\___/\___
the s u r f b o a r d of the K u r p f a l z is the r o a d b i k e .. oSo >>
Last edited by: sausskross: Jan 14, 19 9:38
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Hi Alan, interesting stuff for sure (although the math and computer science is a bit much for me.) Could you discuss, in layman's terms, a bit about the predictive capability you've referred to? I've always used the PMC (perhaps ignorantly, I suppose) as a snapshot of where I currently am and where I've come from. Also, is there a way for the layman to put the neural network concept to use, or is programming knowledge required?
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:

I'll go a step further and say that the Banister/PMC model, in and of itself, cannot account for diminishing returns *AT ALL*


Exactly. And it's a huge problem, in my opinion. Because if I look purely at my PMC and pick the times over the past 10 years when it says I was the "most fit," those are the times when I was completely physically shattered and unable to perform well at all.


E.g. at high training loads it becomes a very accurate inverse predictor for me. Which is not at all what one wants in a PMC chart.


I'm really excited about this new method.
Last edited by: trail: Jan 14, 19 11:21
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
This looks interesting. Stupid question: what is the performance (fitness) measure E.F.?
Quote Reply
Re: A New Approach To Predict Performance [trail] [ In reply to ]
Quote | Reply
Wonder if Coggan will chime in on this thread.
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
That was a really interesting read! Is there a widely available system that you recommend which uses NN? Also, what do you see as the period for calibration period of a NN based model to be a reasonable method of prediction?

It has always felt to me that there is a large jump in fitness to be gained in an initial fitness build followed by a plateau that doesn't seem to be accounted for in traditional tracking; however, I don't recall seeing a platform that tracks the diminishing returns and models through a method that "learns"-so to speak--an individuals response to high level training.

Blog | Strava
Quote Reply
Re: A New Approach To Predict Performance [AdamL2424] [ In reply to ]
Quote | Reply
AdamL2424 wrote:
Wonder if Coggan will chime in on this thread.

I think he might have been part of the purge.

My YouTubes

Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
This is very interesting and of course makes perfect sense once you explain it. I always sort of built these limitations into my thinking when considering the PMC, and only thought of it ever as a "rough check" for where you're at, but not something that actually could predict performance. The idea that there is something that actually COULD predict performance is pretty cool!

Are there any programs or apps that use the neural networks approach to modeling? I'm not sure my Excel or CS skills are up to the task of doing it myself :D
Quote Reply
Re: A New Approach To Predict Performance [LAI] [ In reply to ]
Quote | Reply
LAI wrote:
AdamL2424 wrote:
Wonder if Coggan will chime in on this thread.


I think he might have been part of the purge.

Last logged on Oct. 20 so yeah

808 > NYC > PDX > YVR
2024 Races: Taupo
Quote Reply
Re: A New Approach To Predict Performance [AdamL2424] [ In reply to ]
Quote | Reply
AdamL2424 wrote:
Wonder if Coggan will chime in on this thread.

I hope so (purge notwithstanding). But I don't think there's any need to be defensive. I see this as building on the foundation that Coggan helped build, rather than undermining it.

But I do understand there are competitive forces in play given an eventual tool that uses these techniques (if proven effective in mainstream practical use) could undermine licensed products, etc.
Quote Reply
Re: A New Approach To Predict Performance [sausskross] [ In reply to ]
Quote | Reply
sausskross wrote:
Hi Mr. Couzens,

is the Neural Network a model to calculate training load data? And what would be different for example in the chart below to see the right turning points in training loads easier? The chart shows the recovery from a femur fracture and the pure fun of riding with a 1 month break in Mai/June ..

Your article is an very interesting read that challenges my language knowledge, too :-)


Thanks Sausskross!

No, the Neural Network (in this case) is a model that takes training load data and predicts a performance.

Many many years BC (before Coggan :-) dose-response models like those used in your PMC were used to predict actual performances (i.e. the y axis, rather than being arbitrary units of CTL would represent an actual pace run, time swum in a given event etc)

In that sense it is, in my opinion, much more practically useful to coaches and athletes as we're talking in (and assessing the accuracy of) actual performance prediction.

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Hi Mr. Couzens,

with your answer I found some key words to read about .. so Neural Networks are a model to process information to assess actual performance predictions .. nice!

The mathematical theory will stay a mystery for me .. but for Neural Networks signs, switches and paths there is a living imagination ..

Thank you for your reply,

Hanno

*
___/\___/\___/\___
the s u r f b o a r d of the K u r p f a l z is the r o a d b i k e .. oSo >>
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:
Bottom line: In this day and age, there are far better models available.

I agree with that, but never found that the practical limitations of using the Banister model, or any performance model, had to do with the form of the model but rather the difficulties of getting enough performance measures to feel like I could believe the model. Throwing more factors in the model in the form of extra perceptrons doesn't seem to address the biggest problem.
Quote Reply
Re: A New Approach To Predict Performance [STJ_2028] [ In reply to ]
Quote | Reply
STJ_2028 wrote:
Hi Alan, interesting stuff for sure (although the math and computer science is a bit much for me.) Could you discuss, in layman's terms, a bit about the predictive capability you've referred to? I've always used the PMC (perhaps ignorantly, I suppose) as a snapshot of where I currently am and where I've come from. Also, is there a way for the layman to put the neural network concept to use, or is programming knowledge required?


Thanks STJ!

Sure thing!

Best way to think of it would be a traditional scatterplot with training load on the x axis and some performance measure on the y - it could be a race, an FTP test etc. If you place all of your tests on there you'll probably have a chart of somewhat escalating dots, i.e. as load goes up performance will tend to generally go up to a point. Importantly, the shape of this 'generally going up' will vary between athletes (& it might even go down at some point!)

If we draw a 'line of best fit' through these points we have a basic predictive model. The accuracy of the model in any complex system (e.g. Human Physiology :-), will in some part be related to the 'bendiness' of the line. A neural network is bendy, a banister model straight.

When we talk about the 'predictive capability' of a model, we're talking about how far each true point lies from the line. The overall model error can be measured in the 'root mean square error', i.e. take the distance of each point from the line, square it (to eliminate negatives), take the average of those and then take the square root of that. When we do this, we have a measure for how good our model is (lower RMSE = better model).

While it varies between athletes (as shown in the data table), the average neural network model (for my data-set) has approximately half the error of the average Banister model, i.e. the model line falls an average of 2x closer to each point. So, if the average predictive error is 10W (from the model line to the actual performance) in a given athlete's Banister model it is likely to be closer to 5W when a Neural Network is used.

As it stands, there really isn't a lot out there in the way of predictive modeling/machine learning software for the endurance sports demographic so, yes, at the moment, Neural Networks take a little DIY coding. Speaking more generally about performance modeling software, Phil Skiba's RaceDay was one implementation of the Banister model and I know Mark Liversedge is also implementing in Golden Cheetah, but nothing that I know of on the commercial front using Neural Networks as predictive models at this point. Rest assured, they're coming though! :-)

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 14, 19 20:09
Quote Reply
Re: A New Approach To Predict Performance [lanierb] [ In reply to ]
Quote | Reply
E.F. is the efficiency factor (Normalized Power (or pace)/HR).

It's a standard metric on Training Peaks (though I think you have to be a premium user now to have it on your dashboard).

It makes for a good regular criterion measure because it's sub-maximal so you can accrue *a lot* of data points.

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Quote Reply
Re: A New Approach To Predict Performance [nealhe] [ In reply to ]
Quote | Reply
A neural network is basically a smart look up table. Looks for correlations and patterns between results and input. We already do this with PMC and our brains. Way I learned to use it was to look at a season or two's data and learn from the patterns. e.g. My best performances were always around a TSS of 80 or so. Much higher and I was stale. Coggan did a good job of pointing out the effect of TSB. For a RR or TT slightly negative TSB was best, slightly positive TSB for a crit. Too negative or too positive and performance suffered. Also saw some good results with a double peak in TSS. Ramp up fitness to 80-85 TSS, ease off a bit to 70 and ramp up to 80 again and I was flying.

We're all different so everybody will have different values that give optimal results and these values might change with age and experience. I know the values that will usually put me in the best position but I've also had some great results at lousy numbers and horrible results at great numbers - so accuracy will be somewhere in the 60-80% range.

Machine learning might be able to discern some other patterns and hopefully make some predictions. Big question is are the model parameters it uses of any meaning or just random ones that give the best results.

Definitely worth exploring.
Last edited by: carlosflanders: Jan 14, 19 16:44
Quote Reply
Re: A New Approach To Predict Performance [trihawg] [ In reply to ]
Quote | Reply
trihawg wrote:
That was a really interesting read! Is there a widely available system that you recommend which uses NN? Also, what do you see as the period for calibration period of a NN based model to be a reasonable method of prediction?

It has always felt to me that there is a large jump in fitness to be gained in an initial fitness build followed by a plateau that doesn't seem to be accounted for in traditional tracking; however, I don't recall seeing a platform that tracks the diminishing returns and models through a method that "learns"-so to speak--an individuals response to high level training.


Thanks Trihawg!

As it stands currently, I don't believe there is a widely available system that utlizes NN's in endurance sport. There is a lot of application in (big money) team sports that will hopefully trickle down.

As far as calibration time, I typically find it takes ~6-12 months before the individual model beats the group model whether Banister or NN. The difference, though, for NN because it's so flexible, it can lead to some really funky patterns until the model gets calibrated! :-)

You're absolutely right. Currently, there really isn't a commercial system in endurance sport that utilizes machine modern learning to "learn an individual's response to the training." It's an area that is ripe for development in the near future.

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 15, 19 8:06
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
I do not know the algorithm used for Xert (https://www.xertonline.com/), but it certainly appears to be a multivariate model that is used to predict training load. Are you familiar with it?
Quote Reply
Re: A New Approach To Predict Performance [s5100e] [ In reply to ]
Quote | Reply
s5100e wrote:
I do not know the algorithm used for Xert (https://www.xertonline.com/), but it certainly appears to be a multivariate model that is used to predict training load. Are you familiar with it?


That's the problem with proprietary 'secret sauce' models: NOBODY knows what algorithm they are using - even the people paying for it!! :-)

I suspect it's just a bunch of hard coded if-then statements rather than any true Machine Learning but who knows?

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 15, 19 9:10
Quote Reply
Re: A New Approach To Predict Performance [hadukla] [ In reply to ]
Quote | Reply
hadukla wrote:
LAI wrote:
AdamL2424 wrote:
Wonder if Coggan will chime in on this thread.


I think he might have been part of the purge.


Last logged on Oct. 20 so yeah

Damn! I can see H2O going but sadly we lose so many informative voices to the censor. While arrogant, he offered so much. Too many with thin skin here and we lose scientific and informative thoughts. The banned list has become a "who's who" of experts in the field....
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:
STJ_2028 wrote:
Hi Alan, interesting stuff for sure (although the math and computer science is a bit much for me.) Could you discuss, in layman's terms, a bit about the predictive capability you've referred to? I've always used the PMC (perhaps ignorantly, I suppose) as a snapshot of where I currently am and where I've come from. Also, is there a way for the layman to put the neural network concept to use, or is programming knowledge required?


Thanks STJ!

Sure thing!

Best way to think of it would be a traditional scatterplot with training load on the x axis and some performance measure on the y - it could be a race, an FTP test etc. If you place all of your tests on there you'll probably have a chart of somewhat escalating dots, i.e. as load goes up performance will tend to generally go up to a point. Importantly, the shape of this 'generally going up' will vary between athletes (& it might even go down at some point!)

Probably varies over time too, ie. after a few years of training the athlete has changed.

I'd expect the model would be better with raw power data for bike/run.
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:
s5100e wrote:
I do not know the algorithm used for Xert (https://www.xertonline.com/), but it certainly appears to be a multivariate model that is used to predict training load. Are you familiar with it?


That's the problem with proprietary 'secret sauce' models: NOBODY knows what algorithm they are using - even the people paying for it!! :-)

I suspect it's just a bunch of hard coded if-then statements rather than any true Machine Learning but who knows?
actually

I was in contact with the developer and it seems they feel they have disclosed the methods they use on their web site. It might be worthwhile to take a look and see what they say on their page http://baronbiosys.com/support-learn/.
Quote Reply
Re: A New Approach To Predict Performance [s5100e] [ In reply to ]
Quote | Reply
s5100e wrote:
Alan Couzens wrote:
s5100e wrote:
I do not know the algorithm used for Xert (https://www.xertonline.com/), but it certainly appears to be a multivariate model that is used to predict training load. Are you familiar with it?


That's the problem with proprietary 'secret sauce' models: NOBODY knows what algorithm they are using - even the people paying for it!! :-)

I suspect it's just a bunch of hard coded if-then statements rather than any true Machine Learning but who knows?
actually

I was in contact with the developer and it seems they feel they have disclosed the methods they use on their web site. It might be worthwhile to take a look and see what they say on their page http://baronbiosys.com/support-learn/.


Um, no.

That's marketing fluff. Not a technical description of their model.

After reviewing it, I'm still none the wiser as to the type/format of the machine learning algorithms (if any) that go into their model.

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 15, 19 13:36
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:
s5100e wrote:
Alan Couzens wrote:
s5100e wrote:
I do not know the algorithm used for Xert (https://www.xertonline.com/), but it certainly appears to be a multivariate model that is used to predict training load. Are you familiar with it?


That's the problem with proprietary 'secret sauce' models: NOBODY knows what algorithm they are using - even the people paying for it!! :-)

I suspect it's just a bunch of hard coded if-then statements rather than any true Machine Learning but who knows?
actually

I was in contact with the developer and it seems they feel they have disclosed the methods they use on their web site. It might be worthwhile to take a look and see what they say on their page http://baronbiosys.com/support-learn/.


Um, no.

That's marketing fluff. Not a technical description of their model.

After reviewing it, I'm still none the wiser as to the type of machine learning algorithms (if any) that go into their model.

We have not disclosed the details of our methods but we've been very open on the principles on which they work. (I certainly wish this would qualify as "marketing" but it probably is too much information for the vast majority of people). It's not "AI" or "ML" in the sense of, say, an NN. We have disclosed that we're using a 3-tier Impulse Response Model that is driven by work-allocated strain scores. Strain is measured as a function of power and MPA. We make no claims on the accuracy of the prediction model and rely on our users to judge for themselves how well it works for them. The outcomes that the models are based on aren't FTP or our Fitness Signature in fact but on the prediction of moments of failure that the model discovers and then uses to predict into the future. The precision of this method and the frequency at which outcomes can be observed is what distinguishes Xert and drives the system. The principles aren't new although have never been used in the way we have to make predictions and depict them in the way we have. We do have a number of scientists that we are working with that are looking to find new applications and insight. Full proof scientific of all the principles on which Xert is based will be difficult as they suffer from the observer effect. Others are rather academic and simply need a researcher to take the lead in publishing. Nonetheless you can easily judge for yourself the predictive value of what it does and don't need to rely on any claims, reports or "marketing".

I do look forward to seeing more on your NN implementation. We are looking at NN in combination with our models to bring applications to a broader range of sports and activities.

Best,

Armando Mastracci, Founder of Xert, an advanced data analytics and training platform. Blog, Podcasts
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Maybe this was answered above and I missed it:

Along with the stress inputs do you need to tell it what are the good outputs or do testing (race) every once in a while to let the network adjust the weights or will it just pick up on the better results?
Quote Reply
Re: A New Approach To Predict Performance [xert] [ In reply to ]
Quote | Reply
xert wrote:


We have not disclosed the details of our methods but we've been very open on the principles on which they work...

It's not "AI" or "ML" in the sense of, say, an NN....

We make no claims on the accuracy of the prediction model and rely on our users to judge for themselves how well it works for them....

I do look forward to seeing more on your NN implementation. We are looking at NN in combination with our models to bring applications to a broader range of sports and activities.


Thanks Armando,

I appreciate your honesty (and support!)

FWIW, for others reading, I have no problem with 'if-then rules' systems so long as they're advertised as such and not as "A.I." If athletes know who is writing the rules for the system they're in a better place to judge the worth of the system, especially in the absence of a loss function that quantifies the true predictive accuracy/value of the system.

That said, using a model that quantifies its true predictive accuracy is, obviously, always the better way to go. Smile

Best,

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 15, 19 14:55
Quote Reply
Re: A New Approach To Predict Performance [xert] [ In reply to ]
Quote | Reply
I actually enjoy reading your posts here and on the wattage/cycling physio groups.

I get the feel you are excited to explain your product but some people interpret it as marketing, which I don't feel is the case.
Quote Reply
Re: A New Approach To Predict Performance [jaretj] [ In reply to ]
Quote | Reply
jaretj wrote:
I actually enjoy reading your posts here and on the wattage/cycling physio groups.

I get the feel you are excited to explain your product but some people interpret it as marketing, which I don't feel is the case.

Thank you for that. I never felt I was marketing either. Just keen to tell folks that might understand and appreciate it. We do have a lot of very supportive customers and others that share in that excitement too which is great.

Armando Mastracci, Founder of Xert, an advanced data analytics and training platform. Blog, Podcasts
Quote Reply
Re: A New Approach To Predict Performance [LAI] [ In reply to ]
Quote | Reply
There was a purge?
Quote Reply
Re: A New Approach To Predict Performance [offpiste.reese] [ In reply to ]
Quote | Reply
offpiste.reese wrote:
There was a purge?


There was. Back in late October there were about a dozen prominent ST'ers that got a permanent invitation to not come back. 🙄

My YouTubes

Last edited by: LAI: Jan 15, 19 15:08
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:
xert wrote:


We have not disclosed the details of our methods but we've been very open on the principles on which they work...

It's not "AI" or "ML" in the sense of, say, an NN....

We make no claims on the accuracy of the prediction model and rely on our users to judge for themselves how well it works for them....

I do look forward to seeing more on your NN implementation. We are looking at NN in combination with our models to bring applications to a broader range of sports and activities.


Thanks Armando,

I appreciate your honesty (and support!)

FWIW, for others reading, I have no problem with 'if-then rules' systems so long as they're advertised as such and not as "A.I." If athletes know who is writing the rules for the system they're in a better place to judge the worth of the system, especially in the absence of a loss function that quantifies the true predictive accuracy/value of the system.

That said, using a model that quantifies its true predictive accuracy is obviously the better way to go. Smile

Best,

Thanks Alan.

It's not a true "if-then rules" system per se but more of an analytical model applied as a control system. I.e. math for the most part with regression methods used for some components. The math was obtained serendipitously, something I can only claim to have discovered and not invented.

Armando Mastracci, Founder of Xert, an advanced data analytics and training platform. Blog, Podcasts
Quote Reply
Re: A New Approach To Predict Performance [xert] [ In reply to ]
Quote | Reply
"an analytical model applied as a control system"

Just when I thought we were making progress in moving beyond the buzzwords and accurately defining things 😊

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 15, 19 15:31
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:
"an analytical model applied as a control system"

Just when I thought we were making progress in moving beyond the buzzwords and accurately defining things 😊

If I had said an AI based cloud service, then maybe you would have had me.

Analytical model: MPA (and hence your fitness signature) is effectively calculated rather than established through a method that has been trained or analyzed from historical data sets. We calculate MPA for the ride that is being analyzed. Some have called it an "expert system". I not really sure what the nomenclature is for what we do. Mike Puchowitz was asking how many parameters in the model and I said there aren't any (other than your fitness signature). For our IR models, we have separate time constants for the 3 systems. These were trained from our data and the coefficients are for each athlete are obtained through regression when rides are analyzed. The time constants are user configurable.

How the system treats each incoming ride is like a control system (analyzing all the data is computationally very expensive at this time .. we keep trying though...) Your existing signature forms the basis of the analysis as the algorithm looks for maximal efforts. A new signature is obtained when maximal efforts are discovered and the new signature is recorded (what is termed a "breakthrough" in the system). This is passed on to the next ride's analysis. Sort of like a feedback loop in a control system is the only way I can describe it. When a ride doesn't have maximal efforts, its analysis is skipped. These are then plotted and progress can be tracked.

Hope this helps. Thanks for asking.

Armando Mastracci, Founder of Xert, an advanced data analytics and training platform. Blog, Podcasts
Quote Reply
Re: A New Approach To Predict Performance [xert] [ In reply to ]
Quote | Reply
Thanks Armando,

Much clearer.

So it's essentially a 3x Banister model for different points on the power duration curve?

Are the time decay exponents also updated recursively for the individual athlete?

Thanks for the additional info!

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:
Thanks Armando,

Much clearer.

So it's essentially a 3x Banister model for different points on the power duration curve?

Are the time decay exponents also updated recursively for the individual athlete?

Thanks for the additional info!

Not exactly. A power duration curve is a by-product of the analysis. Work (technically strain) is allocated towards each system that drives MPA changes. These systems correspond to each fitness signature parameter. Since each parameter (system) affects MPA at every point in a power file, each system contributes to the generation of power. This *strain* is accumulated for each activity (or any time period) and passed into the 3 IR models. We summarize these concepts into Focus Duration and Specificity Rating. These enable the accumulated strain/training loads to be interpreted using the same ratios needed to perform at a given power output, converted to a duration to normalize it. This makes it more actionable as you then have visibility to what the "focus" is of your training, conceptualized as a point on the PD curve. In essence, your training can be added up, workouts and group rides alike, and what and how much is being trained can be determined in actionable form.

We don't yet update the decay time constants, although for some athletes we would expect to see sufficient information in their data to establish them. It is something we had considered but with the introduction of Freshness Feedback, this becomes less important.

Armando Mastracci, Founder of Xert, an advanced data analytics and training platform. Blog, Podcasts
Quote Reply
Re: A New Approach To Predict Performance [xert] [ In reply to ]
Quote | Reply
More proprietary gobbledygook. I'm out. Thanks for the chat.

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 15, 19 17:06
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
I know you can get an EF inside the analysis of a workout and that it can be calculated per segment as well as for the whole workout. But I am not sure I've seen an EF graph. I'd love an EF graph over the season.
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:
More proprietary goobly good. I'm out. Thanks for the chat.


Sorry 'bout that Alan. Probably got a bit too far out over my skiis. Focus Duration is quite abstract and is the hardest thing for folks to get a handle on. The concept isn't proprietary. It's just hard to conceptualize.

I can appreciate your position. Thanks for indulging me.

Armando Mastracci, Founder of Xert, an advanced data analytics and training platform. Blog, Podcasts
Last edited by: xert: Jan 15, 19 17:44
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Is the raw data available? I'd like to try Google's TensorFlow with the data. I didn't see a link to the data in the blog post.
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
AC, if you want to keep the interest of readers, don't come off as a prick know-it-all. You are on the fast track to Hambini here.
Quote Reply
Re: A New Approach To Predict Performance [sausskross] [ In reply to ]
Quote | Reply
Since the winter season helps to fulfill a break to it's end there is some time to read about AI and ML .. my interests go where language does not only describe but even explain maths with help of draws .. these layers are really clever stuff to develop concepts for calculation .. this morning the firs time since four weeks the streets are dry and temperature above zero .. time to feed the cells with fresh air .. oSo >>

*
___/\___/\___/\___
the s u r f b o a r d of the K u r p f a l z is the r o a d b i k e .. oSo >>
Quote Reply
Re: A New Approach To Predict Performance [iamuwere] [ In reply to ]
Quote | Reply
.. to create a layer responsive helps to get an assess for an appropriate outcome you'd like to have ..

*
___/\___/\___/\___
the s u r f b o a r d of the K u r p f a l z is the r o a d b i k e .. oSo >>
Quote Reply
Re: A New Approach To Predict Performance [sausskross] [ In reply to ]
Quote | Reply
.. ah .. and thanks for the help .. the concept of a wish and to handle all it's outcomes step by step in real time during processing is the biggest task I can imagine ..

*
___/\___/\___/\___
the s u r f b o a r d of the K u r p f a l z is the r o a d b i k e .. oSo >>
Quote Reply
Re: A New Approach To Predict Performance [jaretj] [ In reply to ]
Quote | Reply
jaretj wrote:
Maybe this was answered above and I missed it:

Along with the stress inputs do you need to tell it what are the good outputs or do testing (race) every once in a while to let the network adjust the weights or will it just pick up on the better results?

This is what really interested me as well. Sounds from above as though it will adjust the weights (e.g. using HR to normalise) so that it gets more data points without having to test too often. That would be a big plus for me.

Also then takes me on to another tangent as to what other data points it can take as input. E.g. I know my HR varies quite a bit depending on temperature, is typically lower at any given power cycling indoors vs outdoors, and to a lesser extent I see some HR variation depending on time of day. My HR also varies quite a bit depending on how rested I am, when tapered I hit higher HRs at any given pace/power. Presumably a sophisticated enough NN could pick up all those data points (it's all in the Garmin files) to predict fitness/performance better. A NN could also maybe make better use of the manually recorded data points that are captured in TP such as RPE.

Other thought is that I'm finding HRV increasingly useful for tracking non-training stress (travel, poor sleep, sickness, bad day at work, etc). Started using the HRV4Training app back in November, still learning how best to use the data but already it's apparent that in my case at least non-training stress can make the PMC largely irrelevant. E.g. in November I was pretty busy with work, spent a lot of time in airports, planes, hotels and high pressure meetings. Second half of December and YTD on the other hand have been very quiet. I've been disciplined with training, diet and sleep throughout (TSS per week, weight and average sleep hours have stayed fairly consistent). So using PMC you'd predict similar performance now to back in November. However if I look at my Recovery Points in the HRV app, they've jumped from an average of 7.6 in November to 8.5 in the last 4 weeks. And that actually tracks far better with my training/testing numbers, which took a big dip in November but are now a bit above where I was at in September/October. Seems pretty obvious looking back that the HRV numbers picked up on the work/life stress, and that that stress had a significant impact on my performance. So I wonder if you could feed in HRV numbers to a NN model as well, and use those as a proxy for measuring non-training stress and the impact it has?

Probably letting my imagination run away with me a bit here, but I'm another one who has always found PMC to be a fairly blunt tool at best and would be very excited if something better came along.
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Hi Alan, last year when I read this article I was very interested both as a triathlete and as a ML PhD student.

How did you acquire the data to use in these tests? Is it available to share? I would be glad to play a little with that to...

Keep up he good work!
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan,

This is super cool! Nice.

I'm a data scientist and have used LSTMs to take past 3 race times to predict next race time, and find—particularly using 70.3s to predict 140.6 times—much precision.

Some thoughts:
  • 1D convolutional input layers on workout time-series metrics (HR, pace, cadence)?
  • Compressed representations of workouts for ingestion by performance prediction models?
  • RNN or LSTMs for performance prediction?
  • RNNs for generation of workouts with inputs of (the above features)?


Cheers, M.
PS While I love calling all of this AI, these NNs are just ML... (complex function approximators)
Quote Reply
Re: A New Approach To Predict Performance [cartsman] [ In reply to ]
Quote | Reply
cartsman wrote:
jaretj wrote:
Maybe this was answered above and I missed it:

Along with the stress inputs do you need to tell it what are the good outputs or do testing (race) every once in a while to let the network adjust the weights or will it just pick up on the better results?


This is what really interested me as well. Sounds from above as though it will adjust the weights (e.g. using HR to normalise) so that it gets more data points without having to test too often. That would be a big plus for me.

Also then takes me on to another tangent as to what other data points it can take as input. E.g. I know my HR varies quite a bit depending on temperature, is typically lower at any given power cycling indoors vs outdoors, and to a lesser extent I see some HR variation depending on time of day. My HR also varies quite a bit depending on how rested I am, when tapered I hit higher HRs at any given pace/power. Presumably a sophisticated enough NN could pick up all those data points (it's all in the Garmin files) to predict fitness/performance better. A NN could also maybe make better use of the manually recorded data points that are captured in TP such as RPE.

Other thought is that I'm finding HRV increasingly useful for tracking non-training stress (travel, poor sleep, sickness, bad day at work, etc). Started using the HRV4Training app back in November, still learning how best to use the data but already it's apparent that in my case at least non-training stress can make the PMC largely irrelevant. E.g. in November I was pretty busy with work, spent a lot of time in airports, planes, hotels and high pressure meetings. Second half of December and YTD on the other hand have been very quiet. I've been disciplined with training, diet and sleep throughout (TSS per week, weight and average sleep hours have stayed fairly consistent). So using PMC you'd predict similar performance now to back in November. However if I look at my Recovery Points in the HRV app, they've jumped from an average of 7.6 in November to 8.5 in the last 4 weeks. And that actually tracks far better with my training/testing numbers, which took a big dip in November but are now a bit above where I was at in September/October. Seems pretty obvious looking back that the HRV numbers picked up on the work/life stress, and that that stress had a significant impact on my performance. So I wonder if you could feed in HRV numbers to a NN model as well, and use those as a proxy for measuring non-training stress and the impact it has?

Probably letting my imagination run away with me a bit here, but I'm another one who has always found PMC to be a fairly blunt tool at best and would be very excited if something better came along.

You could also explore other techniques that we've used, that I alluded to above. For example, when you consider CP/W', you could separate the work performed into "work above CP" and "work below CP" and use these totals to predict the two outcomes: CP and W'. This is how we do it only we use 3 outcomes (fitness signature) and separate the power data into 3. We also use a measure for strain rather than just work since "not all watts are created equal" so the work performed gets in effect weighted. Something else to consider.

We use "work allocation" method to determine "Focus Duration" which can help conceptualize how these systems affect performance. In the CP/W' example, if you add up all the CP and W' work performed in an activity, and compare this ratio with the same ratios that are used to produce a power output above CP, one could say that the "Focus" for the ride was X watts and the corresponding point on the PD curve is the "Focus Duration". So, if all the work below CP was 600kJ and above was 60kJ and the athlete's threshold is 300W and their 330W power corresponds to their 10 minute power (300W below and 30W above), you'd say that the "Focus Duration" of the ride was that of 10 minute power (600:60 is the same as 300:30). This is more for interpretive value rather than for prediction.

Best,

Armando Mastracci, Founder of Xert, an advanced data analytics and training platform. Blog, Podcasts
Quote Reply
Re: A New Approach To Predict Performance [sperris] [ In reply to ]
Quote | Reply
sperris wrote:
I know you can get an EF inside the analysis of a workout and that it can be calculated per segment as well as for the whole workout. But I am not sure I've seen an EF graph. I'd love an EF graph over the season.

Thanks Sperris,

Agreed, tracking long term E.F. is one of the most useful metrics.

The easiest (non code) way to do it (assuming we're talking Training Peaks) is to download the csv summary of your workouts. In that you'll have Intensity Factor and Heart Rate. Providing you know what your FTP setting was, you can create a separate column that gives Normalized Power (FTP*I.F) then you divide session NP/Heart Rate and you'll have a spreadsheet with all E.F. values through the season.

Hope this is helpful.

Best,

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Quote Reply
Re: A New Approach To Predict Performance [sausskross] [ In reply to ]
Quote | Reply
sausskross wrote:
Since the winter season helps to fulfill a break to it's end there is some time to read about AI and ML .. my interests go where language does not only describe but even explain maths with help of draws .. these layers are really clever stuff to develop concepts for calculation .. this morning the firs time since four weeks the streets are dry and temperature above zero .. time to feed the cells with fresh air .. oSo >>


Thanks Sausskross!

If you're digging the math side of NN's, a great starting point is...

https://www.amazon.com/...-ebook/dp/B00845UQL6


Really great book that goes through the history and development of the different types of NN's and the math behind them.


Happy Winter reading! Smile





Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 16, 19 7:33
Quote Reply
Re: A New Approach To Predict Performance [cartsman] [ In reply to ]
Quote | Reply
cartsman wrote:
jaretj wrote:
Maybe this was answered above and I missed it:

Along with the stress inputs do you need to tell it what are the good outputs or do testing (race) every once in a while to let the network adjust the weights or will it just pick up on the better results?


This is what really interested me as well. Sounds from above as though it will adjust the weights (e.g. using HR to normalise) so that it gets more data points without having to test too often. That would be a big plus for me.

Also then takes me on to another tangent as to what other data points it can take as input. E.g. I know my HR varies quite a bit depending on temperature, is typically lower at any given power cycling indoors vs outdoors, and to a lesser extent I see some HR variation depending on time of day. My HR also varies quite a bit depending on how rested I am, when tapered I hit higher HRs at any given pace/power. Presumably a sophisticated enough NN could pick up all those data points (it's all in the Garmin files) to predict fitness/performance better. A NN could also maybe make better use of the manually recorded data points that are captured in TP such as RPE.

Other thought is that I'm finding HRV increasingly useful for tracking non-training stress (travel, poor sleep, sickness, bad day at work, etc). Started using the HRV4Training app back in November, still learning how best to use the data but already it's apparent that in my case at least non-training stress can make the PMC largely irrelevant. E.g. in November I was pretty busy with work, spent a lot of time in airports, planes, hotels and high pressure meetings. Second half of December and YTD on the other hand have been very quiet. I've been disciplined with training, diet and sleep throughout (TSS per week, weight and average sleep hours have stayed fairly consistent). So using PMC you'd predict similar performance now to back in November. However if I look at my Recovery Points in the HRV app, they've jumped from an average of 7.6 in November to 8.5 in the last 4 weeks. And that actually tracks far better with my training/testing numbers, which took a big dip in November but are now a bit above where I was at in September/October. Seems pretty obvious looking back that the HRV numbers picked up on the work/life stress, and that that stress had a significant impact on my performance. So I wonder if you could feed in HRV numbers to a NN model as well, and use those as a proxy for measuring non-training stress and the impact it has?

Probably letting my imagination run away with me a bit here, but I'm another one who has always found PMC to be a fairly blunt tool at best and would be very excited if something better came along.


Thanks Cartsman and JaretJ!

And you're spot on. A big challenge in dealing with endurance sport, especially Ironman is getting enough specific 'output' points to train the model. My preferred solution to this is using submaximal E.F. numbers (for sessions of sufficient duration) as a start point. By doing this, we can rack up *a lot* of points to test our prediction against (vs the 2-3 per season we would get if we restricted it to just Ironman racing!)

But, as you said, this brings a lot of X-factors into play -- temperature, duration of workout/drift, (sleep the night before!) etc. Fortunately, a Neural Network has no problem handling these extra features.

This ability to handle multiple features is, without question, the biggest advantage of the NN over a Banister model. When we think about Banister, it couldn't even handle volume and intensity as separate entities but had to wrap them into one imperfect load variable (Trimps in the original model and TSS in later iterations). As my fiddling has shown, just by making this one little separation back into volume and intensity as separate components, we get a much better performing model.

And this is just the beginning. The sky is the limit in exploring what features lead to a better model - the addition of the other variables mentioned - temperature, sleep, RPE and yes, HRV is sure to lead to even better performance from the model. I'll definitely be playing around with these over the coming year to see if we can bump up the accuracy even further.

Thanks for the support!

AC

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 16, 19 7:47
Quote Reply
Re: A New Approach To Predict Performance [Jonny89] [ In reply to ]
Quote | Reply
Jonny89 wrote:
Hi Alan, last year when I read this article I was very interested both as a triathlete and as a ML PhD student.

How did you acquire the data to use in these tests? Is it available to share? I would be glad to play a little with that to...

Keep up he good work!


Thanks for the kind words, Jonny!

I've been coaching and serving as a consultant exercise physiologist to endurance athletes/teams for the past 20 years. Over that time, I've been fortunate to collect A LOT of data from the athletes that I've come in contact with.

At the moment, the data isn't open source. Given the current state of play with data privacy, I would really have to go back to the athletes and get explicit permission to share it in this way, even if anonymized.

That said, there are some great open sourced options to play around with these concepts/code. I would definitely recommend taking a look at Golden Cheetah's open data set...

https://github.com/GoldenCheetah/OpenData

as a great resource. Mark & the Golden Cheetah team have put a lot of work into going through this process of getting explicit permission and anonymizing a big data set to make it available for this very purpose. Big thanks to them!

Best,

AC

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 16, 19 14:05
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:
sperris wrote:
I know you can get an EF inside the analysis of a workout and that it can be calculated per segment as well as for the whole workout. But I am not sure I've seen an EF graph. I'd love an EF graph over the season.


Thanks Sperris,

Agreed, tracking long term E.F. is one of the most useful metrics.

The easiest (non code) way to do it (assuming we're talking Training Peaks) is to download the csv summary of your workouts. In that you'll have Intensity Factor and Heart Rate. Providing you know what your FTP setting was, you can create a separate column that gives Normalized Power (FTP*I.F) then you divide session NP/Heart Rate and you'll have a spreadsheet with all E.F. values through the season.

Hope this is helpful.

Best,

Therein lies a couple of the issues with TP:

1. The CSV download doesn't include NP, VI, EF, or most of the other analytics that they compute.
2. TP also doesn't track your Thresholds (S/B/R: HR, pace or power) overtime. So, you can't go back and reconstruct the past.
3. No amount of complaining, suggesting, or otherwise seems to convince them of the utility of either #1 or #2 (or rather they refer to WKO+).

I, too, track EF over time. But, it has its issues:

1. HR (and thus EF) is affected by a lot of things, so short term (and even medium term) trends can be hard to tease out of the noise of HR fluctuations from fatigue, temperature, and daily hydration status.
2. EF is a function of intensity. So, you can "force" a higher EF simply by working harder. Its less affected than pace or power, but its still affected.

I've taken to trying to normalize my EF back to a fixed HR, and characterizing my EF per bpm above/below that HR. For example, at the moment my average easy run EF is about 1.45 y/bpm @ 151bpm. I see a slope in my EF of ~0.0125 / BPM. So, if I go do a tempo run at 159 bpm (+8 bpm), I'll get an EF for the tempo run of around 1.55 y/bpm.

I expect that the relationship is probably non-linear, but the daily noise in HR makes it hard to see. Maybe a set of ramp tests could tease it out a little better. Then of course, once spring gets here the whole thing gets swamped by outside air temperature (for the run especially), and comparing EF @ 85F one day to EF @ 60F the week/month before or after is nearly useless.
Quote Reply
Re: A New Approach To Predict Performance [olmec] [ In reply to ]
Quote | Reply
olmec wrote:
Alan,

This is super cool! Nice.

I'm a data scientist and have used LSTMs to take past 3 race times to predict next race time, and find—particularly using 70.3s to predict 140.6 times—much precision.

Some thoughts:
  • 1D convolutional input layers on workout time-series metrics (HR, pace, cadence)?
  • Compressed representations of workouts for ingestion by performance prediction models?
  • RNN or LSTMs for performance prediction?
  • RNNs for generation of workouts with inputs of (the above features)?

Thanks Olmec!

Always great to hear others applying NN's to endurance sport!

Interesting take on the use of convolutional input layers. Haven't considered that and it makes a good bit of sense given the complexity of a file when viewed in totality! :-)

I have played around with applying an RNN (via Keras) in place of the regular feed-forward neural network to the same problem (performance prediction). It performed slightly better when sufficient data was available. In 'real world' terms, it improved the RMSE by ~2-4 watts.

I've chosen to stick with a simpler model to this point as I want to keep it web-based & I think it's more important to be able to continually update the athlete's individual model real time as they upload workouts.

Given the training time of the RNN, it's not really feasible (or worth it for such a small model improvement) unless I put some $$ into a cloud based option. (While I'm sure that time is coming Smile), for the moment, I suspect I'll see greater improvement from continuing to tinker and just trying a few more features in the model.

Thanks for the additional food for thought!

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 16, 19 8:20
Quote Reply
Re: A New Approach To Predict Performance [nealhe] [ In reply to ]
Quote | Reply
Hello Alan, your work on NN is intersting and promising but i think you're not that faire to the Bannister model in your critic.

It has non linearity in it, it is a lot harder to go from 100 to 110 than going to 0 to 10. It feel kind of logarithmic when you apply it.
Also as there is no performance tied to fitness you make what you want from this data, it might correlate proportionally to cycling power... or not for example.
Finally i am not surprised your NN correlate better because they are tuned to fit when the bannister model is most of the time universal. That said you can tune the constants in it to better fit a specific athlete. I bet you would have better correlation by optimizing the constants for a specific athlete.

Keep up the good work.
Quote Reply
Re: A New Approach To Predict Performance [Tom_hampton] [ In reply to ]
Quote | Reply
Tom_hampton wrote:

Therein lies a couple of the issues with TP:

1. The CSV download doesn't include NP, VI, EF, or most of the other analytics that they compute.
2. TP also doesn't track your Thresholds (S/B/R: HR, pace or power) overtime. So, you can't go back and reconstruct the past.
3. No amount of complaining, suggesting, or otherwise seems to convince them of the utility of either #1 or #2 (or rather they refer to WKO+).

I, too, track EF over time. But, it has its issues:

1. HR (and thus EF) is affected by a lot of things, so short term (and even medium term) trends can be hard to tease out of the noise of HR fluctuations from fatigue, temperature, and daily hydration status.
2. EF is a function of intensity. So, you can "force" a higher EF simply by working harder. Its less affected than pace or power, but its still affected.

I've taken to trying to normalize my EF back to a fixed HR, and characterizing my EF per bpm above/below that HR. For example, at the moment my average easy run EF is about 1.45 y/bpm @ 151bpm. I see a slope in my EF of ~0.0125 / BPM. So, if I go do a tempo run at 159 bpm (+8 bpm), I'll get an EF for the tempo run of around 1.55 y/bpm.

I expect that the relationship is probably non-linear, but the daily noise in HR makes it hard to see. Maybe a set of ramp tests could tease it out a little better. Then of course, once spring gets here the whole thing gets swamped by outside air temperature (for the run especially), and comparing EF @ 85F one day to EF @ 60F the week/month before or after is nearly useless.

Thanks Tom,

Agree with all. Frankly, it's why I started the process of learning to code - so I could get the metrics I want when I want them!

You're right with the E.F. Because of the impact of resting HR, it's easier to generate higher E.F.'s at higher outputs. I normalize this by applying the Karvonen formula to the HR, rather than using a straight division. More on that here...

https://alancouzens.com/blog/VO2Scores.html

Best,

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Quote Reply
Re: A New Approach To Predict Performance [Ajaj191] [ In reply to ]
Quote | Reply
Ajaj191 wrote:
Hello Alan, your work on NN is intersting and promising but i think you're not that faire to the Bannister model in your critic.

It has non linearity in it, it is a lot harder to go from 100 to 110 than going to 0 to 10. It feel kind of logarithmic when you apply it.
Also as there is no performance tied to fitness you make what you want from this data, it might correlate proportionally to cycling power... or not for example.
Finally i am not surprised your NN correlate better because they are tuned to fit when the bannister model is most of the time universal. That said you can tune the constants in it to better fit a specific athlete. I bet you would have better correlation by optimizing the constants for a specific athlete.

Keep up the good work.


Thanks Ajaj,

When I'm talking about linearity, I'm not talking about how hard it *feels* to go from 0-10 vs 100-110 but about the change in performance that the model predicts from these 2 jumps. The fact that it feels a lot different but the model predicts the same performance change is exactly my point.

In the original Banister model there absolutely is specific performance tied to fitness and fatigue. That's the very point of performance modeling. It was only with the advent of Coggan's adaptation of the Banister model in the PMC that this was abandoned.

And, as you can see in my code, this *is* the individually optimized Banister model - all coefficients/decay constants (k1, k2, P0, T1, T2) are adjusted for the individual to minimize the loss function between predicted and actual performance. In the line in the yellow box...

individual_banister_model = optimize.minimize(banister, initial_guess)



This line of code returns the combination of coefficients/constants that minimize the error between actual performance & Banister predicted performance for the individual. IOW, the model *is* optimized to the individual and the level of performance shown is as good as the Banister model gets!

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 16, 19 11:00
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:


Thanks Tom,

Agree with all. Frankly, it's why I started the process of learning to code - so I could get the metrics I want when I want them!

You're right with the E.F. Because of the impact of resting HR, it's easier to generate higher E.F.'s at higher outputs. I normalize this by applying the Karvonen formula to the HR, rather than using a straight division. More on that here...

https://alancouzens.com/blog/VO2Scores.html

Best,


Thanks for that. I knew there was a more robust way to normalize for HR vs. intensity. I hadn't gotten around to looking it up.

Interestingly (to me), I put in my own data for my two runs yesterday:

run1 = VERY easy steady-state run (top of z1) outside,
run2 = mile repeats on the TM (WU, 2x1m (2m), CD)

I also put in the data from run2 for the warmup, and the mile repeats individually, as well as the entire run "averages". All sections of run2 (warmup, mile1, mile2, and entire run) agreed on my VO2max, exactly.

The easy run estimated my VO2max a little higher (+4 ml/kg/min), but it was also outside in the cold (~45F), vs. run2 on the treadmill (~70F). If I bump the easy HR up to what I would expect on the TM (147 -> 151)...it agrees with everything else.

I also put in a recent 2x20 bike, which estimated as -4 from VO2max(run).

My garmin 920 estimates my run VO2max about 4 ml/kg/min lower, than your formula.

ETA: I also went back and plugged in my runs over the 100/100 challenge. Starting with the Monday before, and every Monday since. Which shows an improvement in estimated VO2max(run) of just over 10% (beginning to now), at an improvement rate of roughly 1.5 ml/kg/min per week in a very linear fashion (not a lot of random variation).
Last edited by: Tom_hampton: Jan 16, 19 9:34
Quote Reply
Re: A New Approach To Predict Performance [nealhe] [ In reply to ]
Quote | Reply
Thanks for sharing
Quote Reply
Re: A New Approach To Predict Performance [Tom_hampton] [ In reply to ]
Quote | Reply
Stuff like this is why I love slowtwitch!

Thanks Alan.
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:
E.F. is the efficiency factor (Normalized Power (or pace)/HR).

Are you also taking into account other factors (like heat, duration, what was done yesterday, etc) that will effect this metric?

I haven't gotten into the details of what you are doing, but I love the idea. I tried to goad the experts into providing a much more sophisticated and individual training/response algorithm many years ago. Just toss in what you think the important variables might be, track and evaluate them, and see what really is. The more you learn (more data you have) the more precise it gets.
Quote Reply
Re: A New Approach To Predict Performance [rruff] [ In reply to ]
Quote | Reply
rruff wrote:
Alan Couzens wrote:
E.F. is the efficiency factor (Normalized Power (or pace)/HR).


Are you also taking into account other factors (like heat, duration, what was done yesterday, etc) that will effect this metric?

I haven't gotten into the details of what you are doing, but I love the idea. I tried to goad the experts into providing a much more sophisticated and individual training/response algorithm many years ago. Just toss in what you think the important variables might be, track and evaluate them, and see what really is. The more you learn (more data you have) the more precise it gets.

This is super cool stuff. Thank you for sharing.

-Eric
Quote Reply
Re: A New Approach To Predict Performance [nealhe] [ In reply to ]
Quote | Reply
Should probably take that MBTI garbage off your website if you're going to play the role of intellectual elitist.
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Not to belabor my above question, but is "training_data.csv" publicly available so this work can be replicated, or is that proprietary?

If it's proprietary, is anyone aware of a "canonical" public set of training/performance data used in other studies to evaluate the ability of training data estimators to predict performance?

I bet TrainingPeaks, Trainerroad have absolute treasure troves of that type of data, but likely keep it closely held for both privacy and competitive purposes.
Last edited by: trail: Jan 16, 19 13:39
Quote Reply
Re: A New Approach To Predict Performance [Tom_hampton] [ In reply to ]
Quote | Reply
Thanks all for the support!

Tom - Thanks for the positive feedback! I find the same thing. There is still some variation with heat, length of session etc but by normalizing the heart rate, it definitely helps to narrow that range of variation and makes things more predictable.

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Quote Reply
Re: A New Approach To Predict Performance [rruff] [ In reply to ]
Quote | Reply
rruff wrote:
Alan Couzens wrote:
E.F. is the efficiency factor (Normalized Power (or pace)/HR).


Are you also taking into account other factors (like heat, duration, what was done yesterday, etc) that will effect this metric?

I haven't gotten into the details of what you are doing, but I love the idea. I tried to goad the experts into providing a much more sophisticated and individual training/response algorithm many years ago. Just toss in what you think the important variables might be, track and evaluate them, and see what really is. The more you learn (more data you have) the more precise it gets.

Couldn't agree more! There's a lot of postulating as to things that affect performance. With these tools available, it makes sense to actually throw the variables into a model and see what does! In bringing that loss function down, the side effect is that you learn a lot about the true relative weight of variables along the way!

In the neural network that I used in the post, I just used volume and intensity as the input features because I wanted it to be a fair fight and only give the NN the same data that the Banister model sees but I certainly have plans to fully exploit the strength of the NN and develop it over time by adding those additional features (heat, duration etc).

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Quote Reply
Re: A New Approach To Predict Performance [trail] [ In reply to ]
Quote | Reply
trail wrote:
Not to belabor my above question, but is "training_data.csv" publicly available so this work can be replicated, or is that proprietary?

If it's proprietary, is anyone aware of a "canonical" public set of training/performance data used in other studies to evaluate the ability of training data estimators to predict performance?

I bet TrainingPeaks, Trainerroad have absolute treasure troves of that type of data, but likely keep it closely held for both privacy and competitive purposes.


Hey Trail,

At the moment, the data isn't open source. Given the current state of play with data privacy, I would really have to go back to all of the athletes and get explicit permission to share it in this way, even if anonymized.

That said, there are some great open source options to play around with these concepts/code. I would definitely recommend taking a look at Golden Cheetah's open data set...

https://github.com/GoldenCheetah/OpenData

as a great resource. Mark & the Golden Cheetah team have put a lot of work into going through this process of getting explicit permission and anonymizing a big data set to make it available for this very purpose. Big thanks to them!

Best,

AC

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Jan 16, 19 14:17
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Alan Couzens wrote:
That said, there are some great open sourced options to play around with these concepts/code. I would definitely recommend taking a look at Golden Cheetah's open data set...

https://github.com/GoldenCheetah/OpenData

as a great resource. Mark & the Golden Cheetah team have put a lot of work into going through this process of getting explicit permission and anonymizing a big data set to make it available for this very purpose. Big thanks to them!

Thanks Alan,

The data is hosted on s3 and OSF so easy to get to. If you want to play with it I wrote a blogpost to explain how to do it with a jupyter notebook and python: http://markliversedge.blogspot.com/...h-goldencheetah.html.
(there are other csv files and spreadsheets there too if that works better for you).

On the topic at hand, Alan's NN is absolutely the way forward !

I have spent some time adding Banister to GC recently (there is a video tutorial here that explains it vs PMC and demos it in GC) https://vimeo.com/311757866

Its "ok", and certainly a massive step up from the PMC (which is just a dumbed down Banister after all). But it has limitations; it only supports a single input, time variance is an issue. Multiple banister models to separate performance measures might make some sense but that's really pushing the limits of the model and doesn't address the fundamental issues. But as a generalised indicator of likely performance outcomes its "ok".

I'm already working on a similar approach that Alan raised for GC (using mlpack) with multiple inputs and will try and post back here when there's something to play with.

Kudos Alan ! **thumbs up emoji**

Regards,
Mark
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Hey, thanks, I'll check it out.
Quote Reply
Re: A New Approach To Predict Performance [liversedge] [ In reply to ]
Quote | Reply
Hey, that's brilliant. I had already mentally mapped out a Jupyter notebook using TensorFlow....glad to see you arrived at nearly the same place independently. Also you're yeoman's work in working on some of the librarian work on the data is great.
Quote Reply
Re: A New Approach To Predict Performance [offpiste.reese] [ In reply to ]
Quote | Reply
There was a purge?

Thank goodness most of the dullards made the cut!

-bobo

"What's good for me ain't necessarily good for the weak-minded."
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Pretty cool, Alan. This area combines a couple of interests of mine. I was curious if you had tried a simple logistic regression model, as opposed to a NN? Since the NN model is quite simple, I'm wondering if LR would suffice. But there's no harm in using a NN, and maybe that will allow for more complexity if you start incorporating additional features over time.
Quote Reply
Re: A New Approach To Predict Performance [brbbiking] [ In reply to ]
Quote | Reply
Maybe I missed it, but once more, what are the individual data points in this new model?

If each workout is a single data point, then I'd still think, that the NN overfits, and quite badly at that.
Because even on logistic regression, which is much more stable and, with appropriate controls, much less likely to overfit, you need at least 100 datapoints just to estimate the model intercept reliably. There's no way to get around the maths, unfortunately, so while a proposed model might work quite well on a limited sample of athletes (note, that in this particular case - on people with VO2 max 65+), its generalization to "mortal" population might be much less predictive.
And NN eventually - just a bunch of polynomial regressions put into a single model ;) https://arxiv.org/abs/1806.06850

On the other hand, I absolutely applaud the effort of trying to modernize the nowadays-30+ years old performance prediction models. As correctly noted by Alan, real life experience clearly shows that the performance doesn't depend only on such a simplified metric as TRIMPS/TSS, so incorporating additional parameters ("features") in the model should bring improvements in prediction accuracy, provided an individual athlete has a sufficient training sample size (which might be the real issue here).

One should also, however, carefully think on model selection. While "nonlinearity" of NNs seems attractive at first, logistic regression with penalized splines is able to model these quite well provided the additivity assumptions still hold, with the big added bonus of clearly explainable parameter impact on the final model. Stepping a couple of steps further, I'd guess adoption of the Bayesian modelling framework should work even better here because at the end of the day that would allow to obtain full predictive performance distribution for particular athlete, and credibility intervals are just that much better explainable in practice.

----------------------------
Need more W/CdA.
Quote Reply
Re: A New Approach To Predict Performance [mrlobber] [ In reply to ]
Quote | Reply
mrlobber wrote:
Maybe I missed it, but once more, what are the individual data points in this new model?

If each workout is a single data point, then I'd still think, that the NN overfits, and quite badly at that.
Because even on logistic regression, which is much more stable and, with appropriate controls, much less likely to overfit, you need at least 100 datapoints just to estimate the model intercept reliably. There's no way to get around the maths, unfortunately, so while a proposed model might work quite well on a limited sample of athletes (note, that in this particular case - on people with VO2 max 65+), its generalization to "mortal" population might be much less predictive.
And NN eventually - just a bunch of polynomial regressions put into a single model ;) https://arxiv.org/abs/1806.06850

On the other hand, I absolutely applaud the effort of trying to modernize the nowadays-30+ years old performance prediction models. As correctly noted by Alan, real life experience clearly shows that the performance doesn't depend only on such a simplified metric as TRIMPS/TSS, so incorporating additional parameters ("features") in the model should bring improvements in prediction accuracy, provided an individual athlete has a sufficient training sample size (which might be the real issue here).

One should also, however, carefully think on model selection. While "nonlinearity" of NNs seems attractive at first, logistic regression with penalized splines is able to model these quite well provided the additivity assumptions still hold, with the big added bonus of clearly explainable parameter impact on the final model. Stepping a couple of steps further, I'd guess adoption of the Bayesian modelling framework should work even better here because at the end of the day that would allow to obtain full predictive performance distribution for particular athlete, and credibility intervals are just that much better explainable in practice.


Thanks for the support and the feedback.

Data points in the NN described in the blog are a 28 day rolling average of sessions - with inputs of volume and intensity for the NN and TSS for the Banister model. I have also tested a plain feed forward neural network with multiple 28 day windows (marginally better fit) and a recurrent neural network with multiple (sequential) time windows (marginally better fit again). Still, I was underwhelmed by the addition of longer time frames and I agree with you that the greatest improvement in the model will come from the addition of more features.

Very fair point on overfitting. Importantly, all accuracy comparisons between models were on the test sets for each (for those following along, Neural Networks are so flexible that they can easily approximate pretty much any data set. For this reason, it's important to 'hold out' a portion of the data to 'test' the model that we've created against unseen data). Hyper-parameters of the NN were also tuned against a validation set (via k-fold cross validation)

Also fair points on the benefits of a simpler model. I do think though that the flexibility of the NN might be important in this case given the variety of load/response patterns - steady improvement, diminishing returns, failing adaptation and every combination thereof but I aim to continue testing as many model types as possible in the never ending quest for that tiny RMSE Smile

Thanks again for the feedback.

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Mar 5, 19 18:30
Quote Reply
Re: A New Approach To Predict Performance [olmec] [ In reply to ]
Quote | Reply
olmec wrote:

PS While I love calling all of this AI, these NNs are just ML... (complex function approximators)


Difference between machine learning (ML) and AI:
If it is written in Python, it's probably machine learning
If it is written in PowerPoint, it's probably AI

https://twitter.com/...379612282885?lang=en

;-)
Quote Reply
Re: A New Approach To Predict Performance [doug in co] [ In reply to ]
Quote | Reply
doug in co wrote:
olmec wrote:

PS While I love calling all of this AI, these NNs are just ML... (complex function approximators)


Difference between machine learning (ML) and AI:
If it is written in Python, it's probably machine learning
If it is written in PowerPoint, it's probably AI

https://twitter.com/...379612282885?lang=en

;-)

There's an older version of the same joke. It it works it's machine learning. If it doesn't it's AI.
Quote Reply
Re: A New Approach To Predict Performance [Alan Couzens] [ In reply to ]
Quote | Reply
Can you plug nutrition, heigh, weight, stress level, personality traits, etc into Neural Network model to increase predictive power?

I assume that eventually we will be able to plug DNA info as well to understand how various genetic traits correlate with performance.
Quote Reply
Re: A New Approach To Predict Performance [hadukla] [ In reply to ]
Quote | Reply
hadukla wrote:
LAI wrote:
AdamL2424 wrote:
Wonder if Coggan will chime in on this thread.


I think he might have been part of the purge.


Last logged on Oct. 20 so yeah

There was a purge and I wasn't purged? Please tell me more...

Indoor Triathlete - I thought I was right, until I realized I was wrong.
Quote Reply
Re: A New Approach To Predict Performance [Anton84] [ In reply to ]
Quote | Reply
Anton84 wrote:
Can you plug nutrition, heigh, weight, stress level, personality traits, etc into Neural Network model to increase predictive power?

I assume that eventually we will be able to plug DNA info as well to understand how various genetic traits correlate with performance.


Absolutely! That is the major strength of a Neural Network - the number of 'features' it can potentially handle. At the extreme, even individual pixels can be considered separate features for the purpose of image recognition - thousands upon thousands of individual inputs. So, a NN (even a very basic NN) has no problem with testing out all of the features you can throw at it - body comp/weight, HRV, life stress, sleep hours/quality etc.

More features is certainly not a guarantee of better performance (at least on small datasets). The more complex you make the model, the more risk there is of over-fitting to the training data (&, thus, under-fitting to the test data) but compared to the current 'standard' of using only one input variable (TSS), and knowing the performance improvement we can already get by simply separating TSS into 2 separate variables of volume & intensity, I believe there is *A LOT* of room for performance model improvement with the addition of some of those features that you mention.

Alan Couzens, M.Sc. (Sports Science)
Exercise Physiologist/Coach
Twitter: https://twitter.com/Alan_Couzens
Web: https://alancouzens.com
Last edited by: Alan Couzens: Mar 7, 19 23:30
Quote Reply