机器人学习

课程学习

课程学习,是按照好学校教孩子的方式去训练机器人:从简单的任务开始,再一步步加大难度,而不是在第一天就把最难的挑战丢给它。正如你不会把一个初学游泳的人直接扔进深水区,你也不会要求一个刚刚初始化的机器人在乱石地上冲刺;你会让它先学会站立,再学会迈步,然后在平地上行走,到更晚才去对付斜坡和碎石。每一项简单的技能,都成了机器人脚下的一块垫脚石,让它得以踏上下一项更难的技能。

它之所以重要,是因为许多机器人技能几乎不可能靠随机试错从零学会。如果一个腿式机器人在一无所知的情况下从险恶地形起步,它会立刻摔倒、每一次都摔倒,而且几乎从来撞不上那串能教会它点东西的、罕见而幸运的动作序列——于是学习陷入停滞。而从那些成功足够频繁、能提供有用反馈的温和任务起步,再随着能力增长逐渐提高难度,机器人就能持续得到一串它真正能据以行动的“课程”。让最终那项困难技能变得可达的,是经历被安排的先后顺序,而不仅仅是这些经历本身。

设计者会用不同方式来构建这套“课程”:要么手工编排一串难度不断升高的固定关卡,要么让一段程序自动调节难度——机器人表现好就把难度往上推一点,机器人吃力就把难度往回调一点,使挑战始终落在它刚好够不到的位置上。这样做的回报,是更快、更可靠的学习,以及一些纯粹靠蛮力训练往往根本达不到的最终技能。

为了教会一只四足机器人穿越崎岖地面,训练者先让它在平坦的虚拟地板上行走,再到平缓的起伏路面,然后是台阶,最后才是随机散布的大石块。一只直接从石块地起步的机器人根本学不会走路;而那只被一级级带上“课程”的机器人,最终能穿越它若一上来硬碰就永远掌握不了的地形。

走路是分级学会的——平地、起伏、台阶、石块——每一级都为下一级做好准备。

这个名字是借用学校“课程”作比喻——一套从浅到深、有计划安排的课目顺序——它最常与强化学习搭配使用,被逐步抬高难度的,正是练习环境本身。

又称
curriculum training渐进式训练漸進式訓練