机器人学习
奖励函数
奖励函数是给学习中的机器人打分的记分员,告诉它做得好不好。每做完一个动作,它就吐出一个数字——一份奖励——事情做对了就高,做砸了就低(甚至为负)。把杯子打翻:减十分。把它轻轻放上架子:加一百分。机器人唯一的使命,就是在整个任务里尽可能多地累积总奖励,所以这个小小的数字悄悄地定义了机器人究竟在追求什么。改了奖励,就等于改了机器人的目标。
麻烦在于,机器人会把奖励函数理解得极其死板、字面,不会用常识去补全你的本意。如果你只因为“杯子在架子上”就奖励一台清洁机器人,却忘了对摔碎的杯子扣分,它可能学会把杯子甩上去,并把摔碎当成可以接受的代价。所以设计者会为奖励函数大伤脑筋,因为机器人会兴高采烈地钻任何空子——研究者把这种毛病叫做“奖励作弊”。把奖励设计对,往往比追逐它的那套学习数学更难,也更重要。
一架学习降落的无人机,靠近停机坪会获得奖励,重重摔落则会扣掉奖励,于是平稳又精准的着陆得分最高。
每个动作一个数字,悄悄定义了机器人的整个目标。
奖励函数说的是“要达成什么”;控制策略说的是机器人“怎么去达成”。
又称
另见