强化学习基础
强化学习
基本概念
强化学习需要学习一个从环境状态到智能体行动的映射,称为智能体的一个策略,使得环境回报最大化。
智能体->环境: 状态?
环境-->智能体: 观察结果
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