強化學習基礎

強化學習

基本概念

強化學習須要學習一個從環境狀態到智能體行動的映射,稱爲智能體的一個策略,使得環境回報最大化。算法

智能體->環境: 狀態?
環境-->智能體: 觀察結果
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
相關文章
相關標籤/搜索