Q學習(Q-learning)
/ kyoo LURN-ing /
Q學習是一道經典的配方,讓智能體純憑試錯就學會自己各個動作的「品質」,全程無人告訴它這個世界的規則。想像有一本大筆記本,為每一個(情形, 動作)的組合記著一個分數——它的 Q 值。每當智能體行動、看到結果、落到一個新地方,它就把那一個分數往真相挪近一點:「我剛拿到的獎勵,加上從我落腳之處看去最佳動作有多好」。慢慢地,整本筆記本就被準確的數字填滿。
巧妙之處在於它更新時假定的是哪一種未來。Q學習總是假定自己從下一個狀態起將最優地行動來更新——它去夠那裡可選的最佳動作,全然不管它接下來實際做了什麼。這正是它「離策略」的緣由:它可以拿著隨機著法到處探索遊蕩,卻仍能學到那個理想的、貪心策略的價值。一旦筆記本填好,智能體只需在每個狀態讀出得分最高的動作,那就是它的最優策略。
在合理的條件下——每個狀態—動作組合都被試過足夠多次、學習率得當地衰減——表格式 Q學習被證明會收斂到真正最優的價值。這是一個漂亮的保證,但它附帶一個無聲的天花板:它需要為每一種情形單設一格,所以只有當情形少到列得完時才行得通。一旦這個世界的狀態數多過滿盤棋局所能擺出的局面,你就沒法再記筆記本了——而這恰恰是深度 Q 網路被發明出來要彌合的那道鴻溝。
迷宮裡的一個智能體試了「向右走」,得到獎勵 0,落到一個它當前把最佳動作評為 9 的格子。設學習率為 0.5、不打折扣,它就把 Q(此處, 右)朝 0+9=9 更新,挪到半路。在成千上萬個回合裡如此重複,迷宮真正的價值便浮現出來。
每一步把一個 Q 值朝「當下獎勵+下一步最佳價值」挪近。離策略:哪怕在隨機探索,它學到的也是最優。
Q學習的收斂證明只適用於表格情形——每個狀態—動作組合一格。把表格換成神經網路(就像 DQN 那樣),保證便煙消雲散;訓練可能震盪乃至發散,這正是為什麼 DQN 單是為了保持穩定,就得加上經驗回放、凍結目標網路這類額外的把戲。