摘要:本文探索一种通过可视化帕累托边界衡量跑力的方法。
帕累托有效性(Pareto efficiency)是一个经常出现在多目标优化问题中的概念。
比如,给你一个改变人设的机会,通过随机扔筛子,重置自己的智力的体力两个属性。你可以扔十次,然后从中间选择一个自己满意配置,重启人生。
大多数人可能会纠结,我们是要头脑发达一点,还是要四肢发达一点,这是个偏好问题。但无论你是谁,作为一个理智的决策者,一定可以先排除一些明显不是最优解的配置,而剩下的那些配置,则形成了一条边界,就是帕累托边界(Pareto frontier)。如果在帕累托边界上做选择,就是符合怕累托有效性原则的。
举个例子,如果把智力和体力用数值量化,越高越好,假设你得到了这几个方案:A(10, 5), B(5, 10), C(3, 3)。正常人会直接排除 C 方案。
如果对于两个目标来说,都是越大越好,则帕累托边界是向右上突起的。如果两个目标是越低越好,则帕累托边界是向左下凹进去的。
虽然在帕累托边界上的点,我们很难衡量其好坏,但帕累托边界所包裹的面积(可行解),通常是越大越好 —— 总体来说更有潜力。
严肃跑者每天必然和很多数据打交道。哪怕是专注当下[1]的跑者,也需要不时去参加一些比赛,通过统一的赛道与环境,衡量自己在人群中的水平。
这些数据里面,距离和配速尤为重要。要知道自己的锻炼是否有效果,就不能一味埋头苦练,需要不时去测量,并做准确的记录。
这两个指标,正好组成一个多目标优化问题:大家都希望自己跑得更快,跑得更远。然而,更远和更快,本身是两种不同的技能,有种鱼与熊掌不可兼得的感觉。主要是因为,在不同的距离和速度下,主要做功的肌群不同,身体燃碳和燃脂的比例也不同(延伸阅读:运动科学101[2])。更进一步,对于长距离耐力运动来说,距离越长,会面临更多的意外因素,打乱计划,也会影响整体完成时间(延伸阅读:超跑笔记 | on track[3])。
基于这个特征,我们把一位跑者的所有记录,制作成 <距离, 速度> 的散点图,并在上面找到帕累托边界,用以衡量他的综合跑力。对于过去没有完成过的距离,可以通过插值的方法,进行完赛时间推算。
更进一步,我们可以用这份数据,指导跑者训练。
当距离加长的时候,平均速度必然会下降。根据 Pete Riegel 在 1997 年拟合的公式[4],它的形状大概是这样的。
比如你得到了 10K 的最优配速,那么 20K 的最优配速大概是 -4% 左右,40K 的最优配速大概是 -8% 左右。这个公式是
T2 = T1 * ((D2/D1)^1.06)
简单来说,如果你想用 5min 配速完成 20K,那么至少要用 4:48 完成 10K。另外也需要有通过更低配速完成 30K 或者 40K 的经验,以保证身体的供能系统是有一定冗余的。
当然,因为训练特征的不同,每个人的掉速曲线也不同。无论曲线的形状如何,我们当然是希望它的帕累托边界朝右上更好。而为了将整个曲线“顶上去”,我们就需要组合不同的速度和距离,把曲线内部填满。曲线的内部越饱满,则我们在边界上的预测运动表现,就更有信心。
利用 Strava 的 API[5],我获取了自己大概 800 条记录。这里有几个细节处理。
第一,一定要使用 Elapsed Time。这是从开表到关表的时间,包括中途暂停和休息。这个时间用于衡量运动水准,更为准确;并且,未来参加比赛也是用 Elapsed Time。Strava 默认报告的是处理过后的 Moving Time,作为一款社交软件,满足虚荣心是可以的,但并不利于掌握自己的真实情况。
第二调整距离。我自己是行山[6]和越野跑[7]比较多,所以路程是有爬升的。虽然也不时去找操场测平路速度,但数据点毕竟不够多。所以我根据距离和爬升,做了一个校准后的距离,用来统一自己的跑量。这里是根据 Dr. Robert S. Mazzeo 在 Exercise Science[8] 课后作业里的 VO2max 公式,反推出一个关系,大概每 100m 的爬升,相当于增加了 500m 的距离。这个关系的适用场景应该是爬升小(grade < 5%)、跑姿[9]最优的运动员。然而,大多数人爬坡的效率不及平路的效率。根据我自己过去的经验,大概每 100m 爬升,相当于 1K 的运动量。
再加上一些细节,就形成了下面的图。
其中,蓝色钻石是半马 1:35 完成的点位,也就是我今年的目标。红色钻石是 10K 用 43min 完成的点位,相当于是一个保守估计的 10K PB。虽然根据佳明的记录,我的 10K PB 是 41min,但里面包含了 GPS 漂移的问题,我个人经验中,因为 GPS 漂移导致距离增加在 4%-10% 之间。另外比赛当天天气状况也不定,使用 43min 做估计,应该更靠谱一些。
橙色的线,就是利用 Pete Riegel 公式,从 10K PB 开始的预测值 —— 理想的帕累托边界。
有了这个图,便可一眼看出不少问题:
•蓝色钻石在预测曲线上,说明我的最优发挥是有可能触及的。
•蓝色钻石下方全是白的,很明显的一个空中楼阁。说明过往的运动模式并不能支撑一次半马 135。如果沿用过往的训练方法,期待在比赛中出奇迹是不太可能的。
•30K 以上的训练偏少,并且由于过往在山上较多,平路只有几次。本次渣马备赛时,会再安排两次全马的测速。目前只跑过一次,成绩 440,还不到成马的平均水平…… 由于今年的训练是针对半马,所以全马比较佛系,目标是跑进 400,对帕累托边界形成支撑。
•15K-25K 的运动,大多集中在燃脂区间(心率 100-120),主要这些运动以行山为主,需要照顾到团队速度。未来需要在这个距离区间,提升强度,在HR 130-140 的范围打底。
•蓝色钻石左边的 10K-20K 范围,全是空白,这是需要重点弥补的地方。说明过去只针对 10K 以下有测速,未来需要将点位向右推,即在 4:30-5:00 的配速下,加到 10K 以上。
主流认知中,跑者会进行两种训练,一是 HIIT(High-Intensity Interval Training),二是 LSD(Long Slow Distance)。前者可以增强肌肉能力,后者可以增强心肺功能。
一般的 HIIT 课表,会以 400、800、1000 来做强度训练。LSD 通常是 2.5 小时左右,取决于跑者能力,可能涵盖 15K-25K 的距离。
我个人,感觉这种组合,其实是帕累托训练法的一个特例,它瞄准了一小一大两个点位,把整个曲线给托起来。
更自然的方法,可能是直接去逼近理想的帕累托边界。说人话就是,按住速度加距离,或者按住距离加速度。
后者通常就是大家的测速局,在一段时间的训练后,找一个标准距离,尝试跑一个 PB。
所以,在 HIIT、LSD、测速跑之外,我会加入另外一个课表:测距跑。
比如我目标 4:30 配速完赛,并且已知 10K 保持这个配速没问题,那就可以尝试保持 11K、12K、13K,直到掉速则停止,没必要坚持完赛。根据 Dr. Robert S. Mazzeo 在 Exercise Science[10] 中提到的 overloading 原则,身体应该会对这种负荷形成适应,所以再一轮 HIIT/LSD 组合之后,可能下次的距离又提升了。
说到底,训练就是实际帕累托边界去逼近理想帕累托边界的过程。
我们这里的理论,就是提倡用更多的点位去逼近,特别是在目标的 <距离, 速度> 附近。当然,PB 的出现,有各种偶然因素,平时训练也不会用满 100% 的能力,所以目标的 <距离, 速度> 可能会留到比赛才真正出现。但如果它左方和下方的点越多,我们自然会更有信心。
本篇讲的东西,未经过科学方法验证,读者需独立思考。我会在未来五周,依据这里的观察,给我的跑力图打上更多的点位,而不是跟随一个固定的课表。并在五周之后,完成人生首个正式的半马。
2021.10.24 ,香港,渣打马拉松
届时将揭晓实验结果。
感兴趣 Strava API 和制作这个跑力图的同学,欢迎后台留言进群。
•[1] 专注当下: https://mp.weixin.qq.com/s/AO5nyfFR1_iUN_NnStN48w
•[2] 运动科学101: https://mp.weixin.qq.com/s/psMel6C00mg7oWwmvfoh3w
•[3] 超跑笔记 | on track: https://mp.weixin.qq.com/s/BeRZDeYXP4potkCtceIBbA
•[4] Pete Riegel 在 1997 年拟合的公式: https://www.justrunlah.com/race-time-predictor/
•[5] Strava 的 API: https://developers.strava.com/
•[6] 行山: https://mp.weixin.qq.com/s/49AATnWmbUbc7LN-B2EFww
•[7] 越野跑: https://mp.weixin.qq.com/s/zCQu0S1PZ7RGPlcdQfeK5A
•[8] Dr. Robert S. Mazzeo 在 Exercise Science: https://mp.weixin.qq.com/s/psMel6C00mg7oWwmvfoh3w
•[9] 跑姿: https://mp.weixin.qq.com/s/FvaqOqUOzfbGeWXJlPPBZw
•[10] Dr. Robert S. Mazzeo 在 Exercise Science: https://mp.weixin.qq.com/s/psMel6C00mg7oWwmvfoh3w
博闻
|
明察
|
躬行
心法
|
手艺
|
随想