码迷,mamicode.com
首页 > 其他好文 > 详细

1. Deep Q-Learning

时间:2020-11-06 01:12:42      阅读:18      评论:0      收藏:0      [点我收藏+]

标签:复制   全连接   交互   prim   center   eve   概率   复杂   修改   

传统的强化学习算法具有很强的决策能力,但难以用于高维空间任务中,需要结合深度学习的高感知能力,因此延展出深度强化学习,最经典的就是DQN(Deep Q-Learning)。

DQN 2013

DQN的主要思想是训练CNN拟合出Q-Learning算法,以此让智能体在复杂的RL环境中从原始视频数据学到成功的控制策略。

实现:

  1. 用参数\(\theta\)的CNN近似最优Q-values

\[Q(s,a;\theta)\approx Q^*(s,a) \]

  1. 结合Bellman最优方程得到第\(i\)次迭代更新的目标

\[y_i=\mathbb{E}_{s^\prime \sim \mathcal{E}}\big[r+\gamma \max_{a^\prime}Q(s^\prime,a^\prime;\theta_{i-1})|s,a\big] \]

  1. 定义网络的损失函数

\[L_i(\theta_i)=\mathbb{E}_{s,a\sim \rho(\cdot)}\big[\big(y_i-Q(s,a;\theta_i) \big)^2\big]$$ $\rho(s,a)$是行为分布(behavior distribution),即在序列$s$上执行动作$a$的概率分布 3. 求出梯度 $$\triangledown_{\theta_i}L_i(\theta_i)=\mathbb{E}_{s,a\sim\rho(\cdot);s^\prime\sim\mathcal{E}}\bigg[\Big(r+\gamma\max_{a^\prime}Q(s^\prime,a^\prime;\theta_{i-1})-Q(s,a;\theta_i) \Big)\triangledown_{\theta_i}Q(s,a;\theta_i) \bigg]\]

难点以及解决方法:

  1. 强化学习假设智能体与环境的交互具有马尔科夫性,而现实中大多任务是部分可观的,智能体很难从当前视频帧\(x_t\)中获取到足够有用的信息。通过动作和观测序列\(s_t=x_1,a_1,x_2,...,a_{t-1},x_t\),人为地设定了MDP
  2. 训练CNN所需的样本需要相互独立,而RL状态间的相关性极高。通过经验回放机制(experience replay mechansim),保存以前的转移并进行随机采样,缓解数据相关性,保证训练数据分布平滑
  3. 单帧输入不包含时序信息,因此网络输入是经过预处理的4帧堆叠图像

Nature DQN

Nature DQN主要是对DQN 2013做了修改:

  1. 网络结构
    DQN是一个端到端的模型,输入是预处理后的四帧灰度图像的堆叠,先经过三个卷积层提取特征,然后用两个全连接层作为决策层,最后输出为一个向量,向量的元素对应每个可执行动作的概率值,网络结构如下图:

技术图片

  1. 减少相关性
    DQN 2013的\(Q(s,a)\)\(r+\gamma\max_{a^\prime}Q(s^\prime,a^\prime)\)之间存在相关性,因此在网络训练过程中损失难以收敛。为了减少它们的相关性,Nature DQN使用了两个网络:主网络用于模型参数的更新,以及\(Q(s,a;\theta_i)\)的拟合;目标网络每隔一个周期对主网络进行一次拷贝,生成近似的目标价值\(r+\gamma \max_{a^\prime}Q(s^\prime,a^\prime;\theta_i^-)\)(\(\theta_i\)是主网络第\(i\)次迭代的参数,\(\theta_i^-\)是目标网络的参数,是从主网络参数\(\theta_{i-1}\)复制得到)。最后,损失函数为

\[L_i(\theta_i)=\mathbb{E}_{(s,a,r,s^\prime)\sim U(D)}\Big[\Big(r+\gamma\max_{a^\prime}Q(s^\prime,a^\prime;\theta_i^-)-Q(s,a;\theta_i) \Big)^2 \Big] \]

从而得到梯度:

\[\triangledown_{\theta_i}L(\theta_i)=\mathbb{E}_{s,a,r,s^\prime}\Big[\Big(r+\gamma\max_{a^\prime}Q(s^\prime,a^\prime;\theta_i^-)-Q(s,a;\theta_i) \Big)\triangledown_{\theta_i}Q(s,a;\theta_i) \Big] \]

其中,\(D\)是经验回放池,用于存储每一时刻的转移,可以表示为\(e_t=(s_t,a_t,r_t,s_{t+1})\)\(e_t\in D_t=\{e_1,e_2,...,e_t\}\);在学习阶段,用于Q-Learning更新的样本服从于\(U(D)\)分布,即从\(D\)中均匀采样。从梯度公式中可以看出,只需要更新\(\theta_i\),减小了计算量和相关性。训练过程如下图:

技术图片

算法伪代码:

技术图片

References

Volodymyr Mnih et al. Playing Atari with Deep Reinforcement Learning. 2013.
Volodymyr Mnih et al. Human-level control through deep reinforcement learning. 2015.

1. Deep Q-Learning

标签:复制   全连接   交互   prim   center   eve   概率   复杂   修改   

原文地址:https://www.cnblogs.com/HughCai/p/13845199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!