一種不同的學習方式
到目前為止,你在這個階梯上學到的一切背後都站著一位老師。在監督學習中,有一個由樣本組成的資料集,每個樣本都帶著正確的標籤,模型靠梯度下降被推向那些答案。強化學習把這位老師趕走了。沒有標準答案——只有一個可以行動的世界,以及一個事後微弱的訊號,告訴你事情是變好了還是變壞了。
想像教一隻狗去叼回飛盤。你從不把叼飛盤的方程式遞給牠。牠嘗試某種動作,你說「好」或者乾脆不出聲,經過許多次重複,牠圍繞著能贏得誇獎的行為塑造出自己的舉止。強化學習正是把這一過程形式化:一個智能體透過與世界互動、追逐獎勵來學會行動。這是邊做邊學,也是機器學習中最像動物——和孩子——真實學習方式的一個分支。
智能體—環境迴圈
剝去細節,強化學習就是一個反覆運行的迴圈。智能體—環境迴圈裡有兩位角色。智能體觀察當前的處境,挑選一件要做的事,環境——智能體之外的一切——接收這個選擇,回送一個新的處境外加一個數字。這個數字就是獎勵。然後迴圈再次轉動。一刻接一刻,智能體逐漸累積起經驗:在哪些處境下做哪些選擇往往有回報。
三個詞命名了這些活動部件。狀態是智能體此刻對處境的了解——棋局的局面、機械臂的關節角度、螢幕上的像素。動作是它在該狀態下從可選項中做出的選擇。獎勵是環境返回的純量回饋。輸入狀態、輸出動作、回送獎勵與下一個狀態:這就是全部的對話。
loop: state = environment.observe() action = agent.decide(state) # the policy reward, next_state = environment.step(action) agent.learn(state, action, reward, next_state) state = next_state
智能體把狀態轉化為動作所用的規則就是它的策略——也就是我們最終想要學到的東西。策略可以是一張查找表,也可以是一個把像素映射到按鍵的神經網路。當環境表現得像一個馬可夫決策過程——意即下一個狀態只依賴於當前狀態和動作,而非整段歷史——這個迴圈就在數學上變得可處理,這正是幾乎所有強化學習理論都建立在它之上的原因。
獎勵並不等於目標
微妙之處在這裡。智能體追逐的不是即時獎勵——而是長期累計的總獎勵,稱為回報。現在得零分的一步,可能正是十步之後贏下整局的那一步。為了把今天的獎勵與遙遠未來的獎勵作比較,強化學習使用一個折扣因子,一個略小於一的數字,使獎勵越遙遠就被壓得越小。這讓總和保持有限,並溫和地鼓勵智能體在不忽視未來的前提下偏好更早的回報。
這個長時程的歸因問題正是強化學習既困難又有趣的地方。如果你下了四十步後輸掉一盤棋,到底哪一步是失誤?獎勵在最後一次性到來,卻必須以某種方式回溯分攤到通向結局的每一個決策上。價值函數及後續階梯中演算法的全套機制,都是為了解決這一個謎題:把功勞與過錯分配給那些後果被延遲的動作。
探索還是利用?
由於沒有老師,智能體面臨一個監督模型永遠不會遇到的兩難。為了贏得獎勵,它應當選擇當前認為最好的動作——這就是利用。但它的認識只來自它嘗試過的東西,所以真正最好的動作或許是它幾乎沒怎麼試過的那個。要弄清楚,它就必須時不時選一個看起來更差的——這就是探索。這就是探索—利用權衡,對它的平衡無法迴避。
每次你在一家熟悉的餐館點菜,都在親歷這件事。你點那道你知道很棒的菜(利用),還是試試今日特色、冒著失望的風險去博一個新愛好(探索)?這個問題最乾淨的微縮模型是多臂吃角子老虎機:幾台賠率未知的機台,以及固定次數的拉桿預算。只拉目前賠得最好的那台,你也許永遠發現不了更好的;純隨機地拉,你又在重新確認早已知道的事情上浪費籌碼。
最簡單可用的答案是ε-貪心:大多數時候採取已知最好的動作,但以一個小機率 ε 改為隨機選擇。在所知尚少時從大量隨機開始,隨著估計變得清晰讓 ε 衰減。它很粗糙,卻抓住了全部要義——而且足以讓接下來階梯中基於價值的方法真正運轉起來。
強化學習與監督學習的真正不同
人們很容易把強化學習歸檔為只是帶著古怪損失函數的另一種監督學習。它不是,而且三處差異都很深。第一,回饋是評價性的,而非指導性的:獎勵告訴你你的動作有多好,卻從不告訴你正確的動作本該是什麼。監督學習中的標籤直接指向答案;而獎勵只為你嘗試過的那一個打分。
第二,資料不是給定的——智能體自己生成資料。監督模型在一個固定的資料集上訓練,資料集在學習期間靜止不動。強化學習智能體的經驗來自它自己的選擇,於是早期糟糕的策略會收集到糟糕的資料,又教出糟糕的策略:這是一個在監督學習裡沒有對應物的回饋環。第三,樣本並不相互獨立。每個狀態都從上一個狀態流出,因此強化學習直截了當地打破了資料點獨立同分佈這一令人安心的假設。
該記住什麼,以及接下來是什麼
- 智能體行動,環境以獎勵和新狀態作出回應,這個迴圈不斷重複——這就是一句話的強化學習。
- 目標是最大化長期回報,而非即時獎勵;折扣因子權衡未來與當下。
- 每一步,智能體都必須在利用已知與探索未知之間求得平衡。
- 獎勵是評價性而非指導性的,智能體自己製造資料,連續的經驗彼此相關——這些在監督學習中都不成立。
在你繼續攀登之前,一句誠實的提醒。強化學習強大卻出了名地難伺候:它可能需要海量的試錯,而那些為人稱道的成果——精通圍棋、控制反應爐中的電漿——都倚靠數百萬乃至數十億次練習回合,通常是在失敗代價低廉的模擬器裡完成的。它不是通往自主性的萬能配方,一個在優化獎勵的智能體,也並非在任何人類意義上追求目標。帶著這幅腳踏實地的圖像繼續前行。
從這裡起,本階梯變得具體。接下來我們會把「這個狀態有多好」這個模糊念頭,變成一個精確的價值函數,認識為狀態—動作對打分的Q 函數,並用貝爾曼方程把一個價值與緊隨其後的價值綁在一起。這些工具解鎖了Q 學習,以及與深度網路融合後成為遊戲突破背後深度 Q 網路的那些策略方法。你腦中現在已經有了這個迴圈——其餘的一切,都是在學如何把它漂亮地閉合。