奖励塑形(reward shaping)
/ ree-WORD SHAY-ping /
奖励塑形,是在通往目标的途中添加一些额外的小奖励,好引导智能体走向一个本来几乎不可能误打误撞达成的目标。经典的难题是「奖励稀疏」:一个只有在装好整台机器时才获奖励的机器人,可能会胡乱挥舞到天荒地老,连一次靠运气成功都碰不上,于是什么也学不到。塑形便沿途撒下面包屑——为拿对零件、为把它挪近一点给予小奖励——好让智能体远在最终成功之前,就得到有用的反馈。
做得好时,它就像一位好老师:为你「写出解题过程」给部分分,而非只批改最后那个答案。它把一个绝望的「要么赢、要么一无所有」的信号,化成一道智能体能够拾级而上的平缓斜坡。对于成功罕见的难题,塑形往往就是「一个会学习的智能体」与「一个永远起不了步的智能体」之间的分水岭。
但奖励塑形是真正危险的,而这一点必须当真。智能体优化的,恰恰是你写下的那个奖励,所以一个粗心的塑形奖励,会以十足的勤勉教出错误的一课。你为「碰到球」奖励一个足球智能体,它可能学会永远贴着球抖动,而不是去射门。你为「离球门更近」奖励,它可能学会在同一条线上来回挪蹭,专刷那份奖金。确有一套理论(基于势能的塑形)能在不改变最优策略的前提下添加引导,但大多数手工炮制的塑形并无这般保证——这正是为什么塑形是「智能体出现古怪、非本意行为」最常见的来源之一。
一个学叠积木的机器人,除非搭好整座塔,否则奖励都是 0——于是它从不成功,也从不学习。塑形便加上:抓起一块+0.1,把它举起+0.2,把它放到另一块上+0.5。如今有了一条反馈的踪迹。可一旦「举起」的+0.2 给得太慷慨,机器人可能就只是把积木拿起来、再放下,一遍又一遍,压根不去叠。
通往目标的面包屑——但一颗放错位置的面包屑,会教会智能体去刷那颗面包屑,而非抵达目标。
塑形奖励的是中间步骤,而不只是最终成功——这对奖励稀疏的问题极其宝贵,却也是个臭名昭著的陷阱。因为智能体最大化的是那个字面上的塑形奖励,一份选得不好的奖金便会催生「奖励黑客」:智能体永远去刷那个辅助奖励,从不追求真正的目标。只有基于势能的塑形,才在数学上保证最优策略不被改变。