深度強化學習算法的四個問題

要想駕馭一個機器學習算法,我認爲需要思考其四個方面:應用場景、目標變量、損失函數及學習過程。

深度強化學習也不例外:

  1. 應用場景

    上圖是強化學習的交互示意圖,Agent給出動作(Action),環境更新狀態並返回獎賞(Reward)。
    我認爲只要能滿足以下兩點,就可嘗試使用強化學習框架:
      a, 數據流滿足示意圖的這種交互方式,注意Reward可以有延遲;
      b, 可以清晰地表示Action、State及Reward的空間,並能完整地描述需求。
  2. 目標變量
    知道了目標變量,才能知道算法到底在學習什麼,也就是設計的神經網絡具體在近似什麼。
    深度強化學習的目標變量需要能表達最大化累計獎賞(cumulative reward),包括直接表達最大累積獎賞(Value)的Q(s,a)、V(s)及表達最優策略(Policy)的π(a|s),或者能表達Value/Policy的其他相關統計量(變化的部分).

  3. 損失函數
    損失函數決定着神經網絡能學多好,用來衡量相對於事實(真值/y/label/ground truth)的誤差,起着引導和指揮棒的作用。
    認識損失函數分爲兩部分:
         事實表達和誤差表示,這裏的誤差是數學形式上的,不管實際代表什麼物理量,最終轉化爲最小化形式的即是誤差。
         注意:本段以下提到的reward表示環境返回的即時reward(r_t); 
         a,深度強化學習的Value事實:
                或是直接累加的reward,可以是帶折扣因子(discount)的累加reward,
                或者是結合reward 、折扣因子\gamma、最優化的貝爾曼方程(Bellman Equations)及目標網絡(Target Network, Temporal-Difference思想)的事實近似;
                或者採用優勢函數(Advantage Function)代表Q-Value;
               整個強化學習的精髓就在事實表達上,或者包含來自環境的直接反饋(reward),或者反映已知的假設(target network);它雖然是動態的,但總能表達比現在的近似(目標變量)更好。

               關於Policy的假設是馬爾可夫過程(MDP):
               
         b,深度強化學習的誤差表示一般包括:
              表示Value誤差的均方誤差(mean square error),二次凸優化(Quadratic convex optimization);
              表示Policy最優的負對數似然(log-likelihood),似然最大化,log函數可微;
              表示分佈距離的KL散度(Kullback-Leibler divergence),可轉變爲負對數似然或交叉熵;
              保留探索能力的負的最大熵(Maximizing Entropy),最大熵學習;

  4. 學習過程
      
    深度強化學習的最優化方法一般還是基於梯度下降的,這裏需要重點關注的是數據的有效性(Data-Efficient).
      深度強化學習的每一段學習過程,都是基於與環境交互產生的新鮮的數據;一方面這些數據只服務於當前學習,會造成數據的大量浪費,另一方面統一批次的數據又有很強的相關性,這些都給學習帶來了困難。爲了解決這兩個問題,一是建立經驗回放池(experience replay),隨機採樣歷史數據,避免數據強相關;二是獨立採樣,通過大量的並行採樣,保持數據的多樣性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章