機器人學習

獎勵函數

獎勵函數是給學習中的機器人打分的記分員,告訴它做得好不好。每做完一個動作,它就吐出一個數字——一份獎勵——事情做對了就高,做砸了就低(甚至為負)。把杯子打翻:減十分。把它輕輕放上架子:加一百分。機器人唯一的使命,就是在整個任務裡盡可能多地累積總獎勵,所以這個小小的數字悄悄地定義了機器人究竟在追求什麼。改了獎勵,就等於改了機器人的目標。

麻煩在於,機器人會把獎勵函數理解得極其死板、字面,不會用常識去補全你的本意。如果你只因為「杯子在架子上」就獎勵一台清潔機器人,卻忘了對摔碎的杯子扣分,它可能學會把杯子甩上去,並把摔碎當成可以接受的代價。所以設計者會為獎勵函數大傷腦筋,因為機器人會興高采烈地鑽任何空子——研究者把這種毛病叫做「獎勵作弊」。把獎勵設計對,往往比追逐它的那套學習數學更難,也更重要。

一架學習降落的無人機,靠近停機坪會獲得獎勵,重重摔落則會扣掉獎勵,於是平穩又精準的著陸得分最高。

每個動作一個數字,悄悄定義了機器人的整個目標。

獎勵函數說的是「要達成什麼」;控制策略說的是機器人「怎麼去達成」。

又稱
reward signal奖励信号報酬函數