zoukankan      html  css  js  c++  java
  • 强化学习基础

    强化学习

    基本概念

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

    智能体->环境: 状态?
    环境-->智能体: 观察结果
    Note left of 智能体: 行动=策略(观察结果)
    智能体->环境: 行动
    Note right of 环境: 进入下一个状态
    环境-->智能体: 回报
    Note left of 智能体: 更新策略,然后继续
    

    其环境通常采用 MDP 来定义。
    马尔可夫决策过程:$MDP = { S, A, P, R } $

    • 状态转移的回报函数(R: S imes A imes S o REAL)
    • 状态转移的概率(P: S imes S imes A o [0,1],forall sin S, forall ain A sum_{s'in S}P(s'|s,a)=1)
    • 部分可观测 MDP :MDP+O+P(O|S),O 为观测结果集合

    智能体的平稳策略是一个时间无关函数,如果还是确定的,(pi:S o 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)=argmax_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})))
    • (sleftarrow 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
    • (sleftarrow s', aleftarrow 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, heta)=P{a_t=a|s_t=s, heta})
      • 忽略( heta)标记,于是(V^pi(s)=sum_api(s,a)Q^pi(s,a))
    • 总回报函数
      • 存在开始/终止状态,( ho(pi)=V^pi(s_0)=E[sum_tgamma^{t-1}r_t|s_0,pi])
      • 否则,( ho(pi)=sum_sd^pi(s)V^pi(s),d^pi(s))为s的平稳分布概率。
    • 梯度定理:( abla ho=sum_sd^pi(s)sum_a ablapi(s,a)Q^pi(s,a),d^pi(s)=sum_tgamma^tP{s_t=s|s_0,pi})
      找到逼近(Q^pi)的函数:(f_w:S imes A o R)
      然后通过梯度下降法,找到长期回报函数的极值:(lim_{k oinfty} abla ho(pi_k)=0)

    针对连续动作空间

    • 回报函数
      • 假设状态平稳分布
      • (J(pi_ heta)=int_S ho(s)int_Api_ heta(s,a)r(s,a)dads=E_{ssim ho^pi,asimpi_ heta}[r(s,a)])
    • DPG定理:(J(mu_ heta)=int_S ho^mu(s)r(s,mu_ heta(s))ds=E_{ssim ho^mu}[r(s,mu_ heta(s))])

    TRPO约束了梯度更新的步长:

    • (max_ heta E[frac{pi_ heta(a|s)}{pi_{ heta_{old}}(a|s)}A])
    • (s.t.;E[KL(pi_{ heta_{old}}(a|s)),pi_{ heta}(a|s)]<delta)

    PPO采用了步长截断的方法来限制梯度更新。

    值函数方法QLEARN

    DQN面对高维状态空间,DQN采用神经网络逼近(Q^pi)函数,(f_ heta:S o A imes R)

    算法特点

    • 随机采样:从缓冲池中,用小批量序列计算Q'。改进策略对好样本优先采样。
    • 损失函数:(L_i=(r+gammamax_{a'}Q(s',a'; heta_{i-1})-Q(s,a; heta_i))^2)
    • 延迟更新:每C步用Q'更新Q。
    • Double DQN:(L_i=(r+gamma Q(s',argmax_{a'}Q(s',a'; heta_{i}); heta_{i-1})-Q(s,a; heta_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| heta^Q)^2,y_i=r_i+gamma Q'(s_{i+1},mu'(s_{i+1}| heta^{mu'})| heta^{Q'}))

    DDPG是采用了DQN 的训练技术的 DPG。

    A3C

    • 采用策略函数与值函数两个网络
    • 累计多步回报:(R(s_0)=gamma^nV(s_n)+sum_ir_igamma^i)
    • 并行多智能体,异步更新
    • 采用优势函数降低方差:(A(s)=R(s)-V(s))
    • 策略梯度:( abla_ heta J(pi)=E_{ssim ho^pi,asimpi(s)}[A(s) abla_ hetalogpi(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
  • 相关阅读:
    Android图像格式类及图像转换方法
    Java实现文件的加密与解密
    Google最新截屏案例详解
    Android应用程序模拟手机按键
    Android浮动小球与开机自启动
    Android手机截屏
    Android图片浏览器之图片删除
    Android图片浏览器之缩略图
    MFC实现Gif动画制作工具
    QRadioButton分组且无边框的简单实现
  • 原文地址:https://www.cnblogs.com/liuyunfeng/p/9654939.html
Copyright © 2011-2022 走看看