一個大膽的主張:每個目標都是獎勵
強化學習押在一個出奇簡單的賭注上,也就是獎勵假說(reward hypothesis):我們所謂的「目標」,全都能化約成「最大化單一純量獎勵的期望總和」。贏得遊戲、讓機器人保持直立、寫出有幫助的回答——每一項都變成一個要盡量做大的數字。如果這成立,就代表我們不需要替每個任務各立一套理論;我們只需要一套「最大化獎勵」的理論。
重點是總和,不是下一步
這裡有個把強化學習和短視的反射分開的想法。代理人追求的不是此刻最大的獎勵,而是把整個未來加總起來最大的獎勵。這就是累積獎勵(cumulative reward)的直覺。西洋棋手會樂於棄子——此刻的小小負分——以換取稍後贏棋的大大正分。用功的學生會放棄一晚的玩樂,去換一個能受用多年的成果。
回报 G_t 把从下一步直到回合结束的每个奖励加起来——这才是智能体真正最大化的总量。
所以當我們說一個動作「好」,從來不是孤立地說它好。我們是說它能在往後帶來高的總和。這正是真正的目標導向行為之所以浮現的原因:代理人學會為了更大的報酬而接受小小的代價,因為它最佳化的對象是「總和」,不是「當下」。
當獎勵姍姍來遲
在乎總和,引出一個棘手的實務問題:許多獎勵都在賺到它的動作之後很久才到。這就是延遲獎勵(delayed reward)的挑戰。在棋類遊戲裡,唯一明確的獎勵——輸或贏——要等到最後、走過幾十步之後才出現。機器人組裝零件的獎勵,要等零件完成才有。關鍵的選擇和最終的報酬,中間可能隔著巨大的時間落差。
交互式 Q 学习网格世界,目标格的奖励在训练中向先前的格子反向扩散。
正是這道落差,讓強化學習真正變難。如果每個動作之後獎勵都立刻跟上,學習幾乎不費吹灰之力——只要保留任何感覺良好的就好。強化學習的精妙之處,在於把落在第 100 步的獎勵,往回傳遞到那個其貌不揚、卻真正讓它成為可能的第 7 步。
功勞分配問題
這個「把獎勵往回傳遞」的謎題有個名字:功勞分配問題(credit assignment problem)。當一長串動作以成功或失敗收場,到底哪些動作該領功勞(或該背鍋)?是贏之前的最後一步?還是十步前那個巧妙的布局?或是各分一點?把這團糾結理清,正是整個領域存在所要解決的核心問題之一。
- 想像一盤你贏下的 40 步棋局。最後的 +1 獎勵是真的,但它沒說是哪一步贏的。
- 天真地只把功勞記給最後一步是錯的——這場勝利在更早就已布局。
- 天真地把功勞平均分給每一步也是錯的——有些步是中性的,甚至略差。
- 好的強化學習方法,會在時間軸上聰明地分配功勞,偏重那些真正改變了勝算的步。
蒙特卡洛树搜索示意图,将结果从叶节点沿路径回传到各步着法。