強化學習
基本概念
強化學習須要學習一個從環境狀態到智能體行動的映射,稱爲智能體的一個策略,使得環境回報最大化。算法
智能體->環境: 狀態?
環境-->智能體: 觀察結果
Note left of 智能體: 行動=策略(觀察結果)
智能體->環境: 行動
Note right of 環境: 進入下一個狀態
環境-->智能體: 回報
Note left of 智能體: 更新策略,而後繼續
其環境一般採用 MDP 來定義。
馬爾可夫決策過程:$MDP = { S, A, P, R } $網絡
- 狀態轉移的回報函數\(R: S\times A\times S \to REAL\)
- 狀態轉移的機率\(P: S\times S\times A \to [0,1],\forall s\in S, \forall a\in A \sum_{s'\in S}P(s'|s,a)=1\)
- 部分可觀測 MDP :MDP+O+P(O|S),O 爲觀測結果集合
智能體的平穩策略是一個時間無關函數,若是仍是肯定的,\(\pi:S\to A\)數據結構
- 狀態值函數:狀態s下的回報,\(V^\pi(s)=Q^\pi(s,\pi(s))\)
- 行動值函數:狀態s下采起行動 a的回報,\(Q^\pi(s,a)=\sum_{s'\in S}P(s'|s,a)[R(s,a,s')+\gamma V^\pi(s')]\),\(\gamma\)爲折扣因子
- 最優策略*:每一個狀態選擇最大回報的動做。
- \(\pi^*(s)=\arg\max_aQ^*(s,a)\)
時間差分法
已知P時,強化學習爲肯定的動態規劃算法,主要數據結構爲二維表格。異步
- 值迭代:從V=0開始,獲得Q,最大化\(\pi\),進而獲得V的新值。
- 策略迭代:從隨機策略\(\pi\)和V=0值開始,解V或Q方程獲得V與Q的新值,再計算新的策略。
未知 P 時,可用隨機算法估計 P ,兩個等價的逼近公式。函數
- 估計值公式:\(A_k = \frac{1}{k}\sum v_k=A_{k-1} +\alpha_k(v_k-A_{k-1}),\alpha_k=\frac{1}{k},TD= v_k-A_{k-1}\)稱爲時間差分偏差。
- Robbins-Monro 隨機逼近公式:\(A_k =(1-\alpha_k)A_{k-1}+\alpha_kv_k\)
\(Q(\lambda=0)\)學習,\(\lambda\)爲步數。重複如下步驟:學習
- 選擇執行一個動做a。爲了保留探索的機會,\(1-\epsilon\)機率選擇非最大值。
- 觀察回報r和狀態 s'
- \(Q(s,a)\leftarrow Q(s,a)+\alpha(r+\max_{a'}Q(s',a')-Q(s,a))\),策略a'的選擇與Q不一致,稱爲off-policy
- 採用狀態值迭代時,爲\(TD(\lambda):V(s_t)=V(s_t)+\alpha(r_{t+1}+\gamma V(s_{t+1}))\)
- \(s\leftarrow s'\)
\(SARSA(\lambda=0)\)學習,重複如下步驟:優化
- 執行一個動做a,觀察回報r和狀態 s'
- 利用Q 的策略選擇 a'
- \(Q(s,a)\leftarrow Q(s,a)+\alpha(r+Q(s',a')-Q(s,a))\),策略a'的選擇與Q一致,稱爲on-policy
- \(s\leftarrow s', a\leftarrow a'\)
現代方法
隨着狀態空間維數的增長,動做空間的連續,表格的代價太大,一般採用函數逼近的技術解決,例如神經網絡。
對於不肯定策略函數,須要輸出一個機率密度函數,例如高斯分佈,用來選擇一個行動;而肯定性策略函數能夠減小訓練時間,須要在探索與優化之間進行權衡。
另外一個是引入Actor/Critic雙函數機制:Actor爲策略函數,Critic爲Q函數。以此能夠將各類方法分類:spa
- Actor-only:PG,Policy iteration,TRPO,PPO
- Critic-only:Qlearn, SARSA,DQN,NAF
- A/C:DDPG,AlphaGo
策略梯度方法
連續的動做空間使得\(\max_{a'}Q(s',a')\)變得不切實際,PG採用可導函數逼近\(\pi\)。code
- 把策略隨機化、參數化,造成PDF
- \(\pi(s,a,\theta)=P\{a_t=a|s_t=s,\theta\}\)
- 忽略\(\theta\)標記,因而\(V^\pi(s)=\sum_a\pi(s,a)Q^\pi(s,a)\)
- 總回報函數
- 存在開始/終止狀態,\(\rho(\pi)=V^\pi(s_0)=E[\sum_t\gamma^{t-1}r_t|s_0,\pi]\)
- 不然,\(\rho(\pi)=\sum_sd^\pi(s)V^\pi(s),d^\pi(s)\)爲s的平穩分佈機率。
- 梯度定理:\(\nabla\rho=\sum_sd^\pi(s)\sum_a\nabla\pi(s,a)Q^\pi(s,a),d^\pi(s)=\sum_t\gamma^tP\{s_t=s|s_0,\pi\}\)
找到逼近\(Q^\pi\)的函數:\(f_w:S\times A\to R\)
而後經過梯度降低法,找到長期回報函數的極值:\(\lim_{k\to\infty}\nabla\rho(\pi_k)=0\)
針對連續動做空間orm
- 回報函數
- 假設狀態平穩分佈
- \(J(\pi_\theta)=\int_S\rho(s)\int_A\pi_\theta(s,a)r(s,a)dads=E_{s\sim\rho^\pi,a\sim\pi_\theta}[r(s,a)]\)
- DPG定理:\(J(\mu_\theta)=\int_S\rho^\mu(s)r(s,\mu_\theta(s))ds=E_{s\sim\rho^\mu}[r(s,\mu_\theta(s))]\)
TRPO約束了梯度更新的步長:
- \(\max_\theta E[\frac{\pi_\theta(a|s)}{\pi_{\theta_{old}}(a|s)}A]\)
- \(s.t.\;E[KL(\pi_{\theta_{old}}(a|s)),\pi_{\theta}(a|s)]<\delta\)
PPO採用了步長截斷的方法來限制梯度更新。
值函數方法QLEARN
DQN面對高維狀態空間,DQN採用神經網絡逼近\(Q^\pi\)函數,\(f_\theta:S\to A\times R\)
算法特色
- 隨機採樣:從緩衝池中,用小批量序列計算Q'。改進策略對好樣本優先採樣。
- 損失函數:\(L_i=(r+\gamma\max_{a'}Q(s',a';\theta_{i-1})-Q(s,a;\theta_i))^2\)
- 延遲更新:每C步用Q'更新Q。
- Double DQN:\(L_i=(r+\gamma Q(s',\arg\max_{a'}Q(s',a';\theta_{i});\theta_{i-1})-Q(s,a;\theta_i))^2\)
- Duelling DQN:採用兩個通道的神經網絡,\(Q(s,a)=V(s)+A(s,a)\)
NAF相似於Duelling DQN,採用一個多通道網絡選擇動做和評估Q值。經過將優點函數A負定化,同時完成這兩個功能。
演員評論法AC
AlphaGo
- 策略網絡的有監督學習,獲得權重初值
- 策略網絡的強化學習,只有最後一步有回報,而後強化每一步的策略
- 基於策略網絡,經過強化學習獲得估值網絡
- 採用蒙特卡洛樹來採樣。
AlphaGo Zero
- 放棄有監督學習,採用單一網絡估計策略與價值,採用蒙特卡洛樹來採樣。
DPG
- Actor函數利用採樣PG優化。
- Critic損失函數:\(L=\frac{1}{N}\sum_i(y_i-Q(s_i,a_i|\theta^Q)^2,y_i=r_i+\gamma Q'(s_{i+1},\mu'(s_{i+1}|\theta^{\mu'})|\theta^{Q'})\)
DDPG是採用了DQN 的訓練技術的 DPG。
A3C
- 採用策略函數與值函數兩個網絡
- 累計多步回報:\(R(s_0)=\gamma^nV(s_n)+\sum_ir_i\gamma^i\)
- 並行多智能體,異步更新
- 採用優點函數下降方差:\(A(s)=R(s)-V(s)\)
- 策略梯度:\(\nabla_\theta J(\pi)=E_{s\sim\rho^\pi,a\sim\pi(s)}[A(s)\nabla_\theta\log\pi(a|s)]\)
UNREAL把輔助任務也放在總體優化過程當中,造成有約束優化過程。
參考文獻
- Mozer S, M C, Hasselmo M. Reinforcement Learning: An Introduction[J]. IEEE Transactions on Neural Networks, 1992, 8(3-4):225-227.
- Sutton R S. Policy Gradient Methods for Reinforcement Learning with Function Approximation[J]. Submitted to Advances in Neural Information Processing Systems, 1999, 12:1057-1063.
- Simon Haykin, Neural Networks and Learning Machines (the 3rd edition), Pearson Eduction, Inc, 2009
- David L. Poole and Alan K. Mackworth: Artificial Intelligence: Foundations of Computational Agents, Cambridge University Press, 2010
- Mnih V, Kavukcuoglu K, Silver D, et al. Playing Atari with Deep Reinforcement Learning[J]. Computer Science, 2013.
- Silver D, Lever G, Heess N, et al. Deterministic policy gradient algorithms[C]// International Conference on International Conference on Machine Learning. JMLR.org, 2014:387-395.
- Lillicrap T P, Hunt J J, Pritzel A, et al. Continuous control with deep reinforcement learning[J]. Computer Science, 2015, 8(6):A187.
- Schulman J, Levine S, Moritz P, et al. Trust Region Policy Optimization[J]. Computer Science, 2015:1889-1897.
- Mnih V, Badia A P, Mirza M, et al. Asynchronous Methods for Deep Reinforcement Learning[J]. 2016.
- Jaderberg M, Mnih V, Czarnecki W M, et al. Reinforcement Learning with Unsupervised Auxiliary Tasks[J]. 2016.
- Silver D, Huang A, Maddison C J, et al. Mastering the game of Go with deep neural networks and tree search.[J]. Nature, 2016, 529(7587):484-489.
- Shixiang Gu, et al. Continuous deep Q-learning with model-based acceleration[C]// International Conference on International Conference on Machine Learning. JMLR.org, 2016:2829-2838.
- Silver D, Schrittwieser J, Simonyan K, et al. Mastering the game of Go without human knowledge[J]. Nature, 2017, 550(7676):354-359.
- Schulman J, Wolski F, Dhariwal P, et al. Proximal Policy Optimization Algorithms[J]. 2017.
- http://gym.openai.com/docs/
- https://en.wikipedia.org/wiki/Reinforcement_learning