强化学习基础

强化学习

基本概念

强化学习需要学习一个从环境状态到智能体行动的映射,称为智能体的一个策略,使得环境回报最大化。

智能体->环境: 状态?
环境-->智能体: 观察结果
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函数。以此可以将各种方法分类:

  • Actor-only:PG,Policy iteration,TRPO,PPO
  • Critic-only:Qlearn, SARSA,DQN,NAF
  • A/C:DDPG,AlphaGo

策略梯度方法

连续的动作空间使得\(\max_{a'}Q(s',a')\)变得不切实际,PG采用可导函数逼近\(\pi\)

  • 把策略随机化、参数化,形成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\)

针对连续动作空间

  • 回报函数
    • 假设状态平稳分布
    • \(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
posted @ 2018-09-17 02:34  yunfeng_net  阅读(508)  评论(0编辑  收藏  举报