目錄
- 0 專欄介紹
- 1 時序差分強化學習
- 2 策略評估原理
- 3 策略改進原理
- 3.1 SARSA算法
- 3.2 Q-Learning算法
0 專欄介紹
本專欄重點介紹強化學習技術的數學原理,并且采用Pytorch框架對常見的強化學習算法、案例進行實現,幫助讀者理解并快速上手開發。同時,輔以各種機器學習、數據處理技術,擴充人工智能的底層知識。
🚀詳情:《Pytorch深度強化學習》
1 時序差分強化學習
在Pytorch深度強化學習1-5:詳解蒙特卡洛強化學習原理中我們指出,在現實的強化學習任務中,轉移概率、獎賞函數甚至環境中存在哪些狀態往往很難得知,因此有模型強化學習在實際應用中不可行,而需要免模型學習技術,即假設轉移概率和環境狀態未知,獎賞也僅是根據經驗或需求設計。蒙特卡洛強化學習正是免模型學習中的一種,其核心思想是使用蒙特卡洛方法來估計各個狀態-動作對的值函數。通過對大量的樣本進行采樣,并根據它們的累積獎勵來評估狀態-動作對的價值,智能體可以逐步學習到最優策略。
本節介紹的時序差分強化學習(Temporal Difference Reinforcement Learning)則是另一類免模型學習算法,它結合了動態規劃和蒙特卡洛強化學習的優點,用于在未知環境中進行決策。
2 策略評估原理
策略評估本質上是求解狀態值函數 V π ( s ) V^{\pi}\left( s \right) Vπ(s)或狀態-動作值函數 Q π ( s , a ) Q^{\pi}\left( s,a \right) Qπ(s,a),數值越大表明策略回報越高。從定義出發,蒙特卡洛強化學習核心是采樣近似,基于采樣的算法通常采用增量更新方式節省內存
Q π ( s , a ) = E [ R t ] ∣ s t = s , a t = a ≈ 1 n ∑ i = 1 n R t , i = n 次增量 Q π ( s , a ) × c o u n t ( s , a ) + R t c o u n t ( s , a ) + 1 = n 次增量 Q π ( s , a ) + 1 c o u n t ( s , a ) + 1 ( R t ? Q π ( s , a ) ) \begin{aligned}Q^{\pi}\left( s,a \right) &=\mathbb{E} \left[ R_t \right] \mid_{s_t=s,a_t=a}^{}\\&\approx \frac{1}{n}\sum_{i=1}^n{R_{t,i}}\\&\xlongequal{n\text{次增量}}\frac{Q^{\pi}\left( s,a \right) \times \mathrm{count}\left( s,a \right) +R_t}{\mathrm{count}\left( s,a \right) +1}\\&\xlongequal{n\text{次增量}}Q^{\pi}\left( s,a \right) +\frac{1}{\mathrm{count}\left( s,a \right) +1}\left( R_t-Q^{\pi}\left( s,a \right) \right)\end{aligned} Qπ(s,a)?=E[Rt?]∣st?=s,at?=a?≈n1?i=1∑n?Rt,i?n次增量count(s,a)+1Qπ(s,a)×count(s,a)+Rt??n次增量Qπ(s,a)+count(s,a)+11?(Rt??Qπ(s,a))?
因為采樣過程通常以萬次計,因此可以用一個較小的正數 α \alpha α來描述,超參數 α \alpha α可理解為模型的學習率, R t ? Q π ( s , a ) R_t-Q^{\pi}\left( s,a \right) Rt??Qπ(s,a)稱為蒙特卡洛誤差
Q π ( s , a ) = n 次增量 Q π ( s , a ) + α ( R t ? Q π ( s , a ) ) Q^{\pi}\left( s,a \right) \xlongequal{n\text{次增量}}Q^{\pi}\left( s,a \right) +\alpha \left( R_t-Q^{\pi}\left( s,a \right) \right) Qπ(s,a)n次增量Qπ(s,a)+α(Rt??Qπ(s,a))
動態規劃強化學習核心是自我迭代
Q π ( s , a ) = E [ R t ] ∣ s t = s , a t = a = ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ ∑ a ′ ∈ A π ( s ′ , a ′ ) Q π ( s ′ , a ′ ) ] Q^{\pi}\left( s,a \right) =\mathbb{E} \left[ R_t \right] \mid_{s_t=s,a_t=a}^{}=\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma \sum_{a'\in A}{\pi \left( s',a' \right) Q^{\pi}\left( s',a' \right)} \right] Qπ(s,a)=E[Rt?]∣st?=s,at?=a?=s′∈S∑?Ps→s′a?[Rs→s′a?+γa′∈A∑?π(s′,a′)Qπ(s′,a′)]
根據動態特性和當前 Q π ( s , a ) Q^{\pi}\left( s,a \right) Qπ(s,a),具體計算出下一次迭代的 Q π ( s , a ) Q^{\pi}\left( s,a \right) Qπ(s,a)
動態規劃強化學習的優點是計算準確且效率高,但無法適應無模型場景;蒙特卡洛強化學習的優點是克服無模型障礙,但有更新延遲現象。時序差分強化學習是動態規劃與蒙特卡洛的折中
Q π ( s t , a t ) = n 次增量 Q π ( s t , a t ) + α ( R t ? Q π ( s t , a t ) ) = n 次增量 Q π ( s t , a t ) + α ( r t + 1 + γ R t + 1 ? Q π ( s t , a t ) ) = n 次增量 Q π ( s t , a t ) + α ( r t + 1 + γ Q π ( s t + 1 , a t + 1 ) ? Q π ( s t , a t ) ) ? 采樣 \begin{aligned}Q^{\pi}\left( s_t,a_t \right) &\xlongequal{n\text{次增量}}Q^{\pi}\left( s_t,a_t \right) +\alpha \left( R_t-Q^{\pi}\left( s_t,a_t \right) \right) \\\,\, &\xlongequal{n\text{次增量}}Q^{\pi}\left( s_t,a_t \right) +\alpha \left( r_{t+1}+\gamma R_{t+1}-Q^{\pi}\left( s_t,a_t \right) \right) \\\,\, &\xlongequal{n\text{次增量}}{ \underset{\text{采樣}}{\underbrace{Q^{\pi}\left( s_t,a_t \right) +\alpha \left( r_{t+1}+{ \gamma Q^{\pi}\left( s_{t+1},a_{t+1} \right) }-Q^{\pi}\left( s_t,a_t \right) \right) }}}\end{aligned} Qπ(st?,at?)?n次增量Qπ(st?,at?)+α(Rt??Qπ(st?,at?))n次增量Qπ(st?,at?)+α(rt+1?+γRt+1??Qπ(st?,at?))n次增量采樣 Qπ(st?,at?)+α(rt+1?+γQπ(st+1?,at+1?)?Qπ(st?,at?))???
其中 r t + 1 + γ Q π ( s t + 1 , a t + 1 ) ? Q π ( s t , a t ) r_{t+1}+\gamma Q^{\pi}\left( s_{t+1},a_{t+1} \right) -Q^{\pi}\left( s_t,a_t \right) rt+1?+γQπ(st+1?,at+1?)?Qπ(st?,at?)稱為時序差分誤差。當時序差分法只使用一步實際獎賞時稱為 T D ( 0 ) TD(0) TD(0)算法,擴展為 T D ( n ) TD(n) TD(n)算法,當 n n n充分大時退化為蒙特卡洛強化學習
3 策略改進原理
類似地,時序差分強化學習同樣分為同軌策略和離軌策略,前者的代表性算法是SARSA算法,后者的代表性算法是Q-learning算法
3.1 SARSA算法
SARSA算法流程圖如下所示
3.2 Q-Learning算法
Q-Learning算法流程圖如下所示
🔥 更多精彩專欄:
- 《ROS從入門到精通》
- 《Pytorch深度學習實戰》
- 《機器學習強基計劃》
- 《運動規劃實戰精講》
- …