當前位置:
首頁 > 新聞 > 一文簡述多種強化學習演算法,重要概念和術語一覽

一文簡述多種強化學習演算法,重要概念和術語一覽

本文簡要介紹了強化學習及其重要概念和術語,並著重介紹了 Q-Learning 演算法、SARSA、DQN 和 DDPG 演算法。

一文簡述多種強化學習演算法,重要概念和術語一覽

強化學習(RL)指的是一種機器學習方法,其中智能體在下一個時間步中收到延遲的獎勵(對前一步動作的評估)。這種方法主要用於雅達利(Atari)、馬里奧(Mario)等遊戲中,表現與人類相當,甚至超過人類。最近,隨著與神經網路的結合,這種演算法不斷發展,已經能夠解決更複雜的任務,比如鐘擺問題。

雖然已經有大量的強化學習演算法,但似乎並沒有什麼文章對它們進行全面比較。每次需要決定將哪些演算法應用於特定的任務時,都讓我很糾結。本文旨在通過簡要討論強化學習的設置來解決這個問題,並簡要介紹一些眾所周知的演算法。

1. 強化學習入門

通常,強化學習的設置由兩部分組成,一個是智能體(agent),另一個是環境(environment)。

一文簡述多種強化學習演算法,重要概念和術語一覽

強化學習圖示

環境指的是智能體執行動作時所處的場景(例如雅達利遊戲中的遊戲本身),而智能體則表示強化學習演算法。環境首先向智能體發送一個狀態,然後智能體基於其知識採取動作來響應該狀態。之後,環境發送下一個狀態,並把獎勵返回給智能體。智能體用環境所返回的獎勵來更新其知識,對上一個動作進行評估。這個循環一直持續,直到環境發送終止狀態來結束這個事件。

大多數強化學習演算法遵循這一模式。下面我將簡要介紹強化學習中的一些術語,以方便下一節的討論。

定義

1. 動作(A):智能體可以採取的所有可能的行動。

2. 狀態(S):環境返回的當前情況。

3. 獎勵(R):環境的即時返回值,以評估智能體的上一個動作。

4. 策略(π):智能體根據當前狀態決定下一步動作的策略。

5. 價值(V):折扣(discount)下的長期期望返回,與 R 代表的短期返回相區分。Vπ(s) 則被定義為策略 π 下當前狀態**s**的期望長期返回值。

6. Q 值或行動值 (Q):Q 值與價值相似,不同點在於它還多一個參數,也就是當前動作 a。Qπ(s, a) 指當前狀態**s**在策略π下採取動作 a 的長期回報。

無模型(Model-free)vs. 基於模型(Model-based)

這裡的模型指的是環境的動態模擬,即模型學習從當前狀態 s0 和動作 a 到下一個狀態 s1 的轉移概率 T(s1|(s0, a))。如果成功地學習了轉移概率,那麼智能體將知道給定當前狀態和動作時,進入特定狀態的可能性。然而,當狀態空間和動作空間增長(S×S×A,用於表格設置)時,基於模型的演算法就變得不切實際了。

另一方面,無模型演算法依賴試錯來更新知識。因此,它不需要空間來存儲所有狀態和動作的組合。下一節討論的所有演算法都屬於這一類。

在策略(on-policy)vs. 離策略(off-policy)

在策略智能體基於當前動作 a 學習價值,而離策略智能體基於局部最優的貪心行為(greedy action)a* 學習價值。(我們將在 Q-Learning 和 SARSA 演算法部分進一步討論這個問題)

2. 各種演算法的說明

2.1 Q-learning 演算法

Q-Learning 是基於貝爾曼方程(Bellman Equation)的離策略、無模型強化學習演算法:

一文簡述多種強化學習演算法,重要概念和術語一覽

貝爾曼方程

其中,E 代表期望,? 是折扣因子(discount factor)。我們可以將它重寫成 Q 值的形式:

一文簡述多種強化學習演算法,重要概念和術語一覽

Q 值形式的貝爾曼方程

最優的 Q 值 Q*,可以表示為:

一文簡述多種強化學習演算法,重要概念和術語一覽

最優 Q 值

目標是最大化 Q 值。在深入探討優化 Q 值的方法之前,我想討論兩個與 Q-learning 密切相關的值更新方法。

策略迭代法

策略迭代法交替使用策略評估和策略改進。

一文簡述多種強化學習演算法,重要概念和術語一覽

策略迭代法

策略評估會評估從上次策略改進中獲得的貪心策略的價值函數 V。另一方面,策略改進通過使每個狀態的 V 值最大化的動作來更新策略。更新方程以貝爾曼方程為基礎。它不斷迭代直到收斂。

一文簡述多種強化學習演算法,重要概念和術語一覽

策略迭代的偽代碼

價值迭代

價值迭代只包含一個部分。它基於最優貝爾曼方程來更新值函數 V。

一文簡述多種強化學習演算法,重要概念和術語一覽

最優貝爾曼方程

一文簡述多種強化學習演算法,重要概念和術語一覽

價值迭代的偽代碼

在迭代收斂之後,通過對所有狀態應用最大值函數直接導出最優策略。

注意,這兩種方法都需要知道轉移概率 p,這表明它是一個基於模型的演算法。但是,正如我前面提到的,基於模型的演算法存在可擴展性問題。那麼 Q-learning 如何解決這個問題呢?

一文簡述多種強化學習演算法,重要概念和術語一覽

Q-Learning 更新方程

α 指學習速率(即我們接近目標的速度)。Q-learning 背後的思想高度依賴於價值迭代。然而,更新方程被上述公式所取代。因此,我們不再需要擔心轉移概率。

一文簡述多種強化學習演算法,重要概念和術語一覽

Q-learning 的偽代碼

注意,下一個動作 a』 的選擇標準是要能夠最大化下一個狀態的 Q 值,而不是遵循當前的策略。因此,Q-Learning 屬於離策略演算法。

2.2 狀態-動作-獎勵-狀態-動作(State-Action-Reward-State-Action,SARSA)

SARSA 很像 Q-learning。SARSA 和 Q-learning 之間的關鍵區別是 SARSA 是一種在策略演算法。這意味著 SARSA 根據當前策略執行的動作而不是貪心策略來學習 Q 值。

一文簡述多種強化學習演算法,重要概念和術語一覽

SARSA 的更新方程

動作 a_(t+1) 是在當前策略下的下一個狀態 s_(t+1) 執行的動作。

一文簡述多種強化學習演算法,重要概念和術語一覽

SARSA 的偽代碼

從上面的偽代碼中,你可能會注意到執行了兩個動作選擇,它們始終遵循當前策略。相比之下,Q-learning 對下一個動作沒有約束,只要它能最大化下一個狀態的 Q 值就行了。因此,SARSA 是一種在策略演算法。

2.3 深度 Q 網路(Deep Q Network,DQN)

Q-learning 是一種非常強大的演算法,但它的主要缺點是缺乏通用性。如果你將 Q-learning 理解為在二維數組(動作空間×狀態空間)中更新數字,那麼它實際上類似於動態規劃。這表明 Q-learning 智能體不知道要對未見過的狀態採取什麼動作。換句話說,Q-learning 智能體沒有能力對未見過的狀態進行估值。為了解決這個問題,DQN 引入神經網路來擺脫二維數組。

DQN 利用神經網路來估計 Q 值函數。網路的輸入是當前的動作,而輸出是每個動作對應的 Q 值。

一文簡述多種強化學習演算法,重要概念和術語一覽

用 DQN 玩雅達利遊戲

2013 年,DeepMind 將 DQN 應用於雅達利遊戲,如上圖所示。輸入是當前遊戲場景的原始圖像,經過包括卷積層和全連接層的多個層,輸出智能體可執行的每個動作的 Q 值。

問題歸結為:我們如何訓練網路?

答案是基於 Q-learning 更新方程來訓練網路。回想一下 Q-learning 的目標 Q 值是:

一文簡述多種強化學習演算法,重要概念和術語一覽

目標 Q 值

? 相當於狀態 s, 代表神經網路里的參數。因此,網路的損失函數可定義為目標 Q 值與網路 Q 值輸出之間的平方誤差。

一文簡述多種強化學習演算法,重要概念和術語一覽

DQN 的偽代碼

另外兩種技術對於訓練 DQN 也很重要:

1. 經驗回放(Experience Replay):由於典型強化學習設置中的訓練樣本高度相關,且數據效率較低,這將導致網路更難收斂。解決樣本分布問題的一種方法是採用經驗回放。從本質上講,樣本轉換會被存儲,然後從「轉換池」中隨機選擇該轉換來更新知識。

2. 分離目標網路(Separate Target Network):目標 Q 網路與用來估值的網路結構相同。根據上面的偽代碼,在每個 C 步驟,目標網路都被重置為另一個。因此,波動變得不那麼嚴重,帶來了更穩定的訓練。

2.4 深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)

雖然 DQN 在高維問題上取得了巨大的成功,例如雅達利遊戲,但動作空間仍然是離散的。然而,許多有趣的任務,特別是物理控制任務,動作空間是連續的。而如果你把動作空間分離得太細來趨近連續空間,你的動作空間就太大了。例如,假設自由隨機系統的自由度為 10。對於每一個自由度,你把空間分成 4 個部分,你最終就會有有 41?= 1,048,576 個動作。對於這麼大的動作空間來說,收斂也是極其困難的。

DDPG 依賴於「行動者-評論家」(actor-critic)架構。行動者用來調整策略函數的參數,即決定特定狀態下的最佳動作。

一文簡述多種強化學習演算法,重要概念和術語一覽

策略函數

而評論家用於根據時間差分(temporal difference,TD)誤差來評估行動者估計出來的策略函數。

一文簡述多種強化學習演算法,重要概念和術語一覽

時間差分誤差

在這裡,小寫的 v 表示行動者已經確定的策略。看起來很熟悉對嗎?看著像 Q-learning 的更新方程!TD 學習是一種學習如何根據給定狀態的未來值來預測價值的方法。Q-learning 是 TD 學習的一種特殊類型,用於學習 Q 值。

一文簡述多種強化學習演算法,重要概念和術語一覽

「行動者-評論家」架構

DDPG 還從 DQN 借鑒了經驗回放和分離目標網路的思想。DDPG 的另一個問題是它很少對動作進行探索。一個解決方案是在參數空間或動作空間中添加雜訊。

一文簡述多種強化學習演算法,重要概念和術語一覽

動作雜訊(左),參數雜訊(右)

OpenAI 這篇博客認為在參數空間上添加雜訊比在動作空間上添加要好得多。一個常用的雜訊是 Ornstein-Uhlenbeck 隨機過程。

一文簡述多種強化學習演算法,重要概念和術語一覽

DDPG 的偽代碼

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

阿里巴巴提出極限低比特神經網路,用於深度模型壓縮和加速

TAG:機器之心 |