强化学习(DQN、TPRO、PPO)

DQN--基于价值

强化学习中有开发和探索两个概念

1.开发:就是让agent在已知的(状态-动作)二元分布中根据奖励最大化选择最优动作。

2.探索:让agent在未知二元组分布外,选择其他的动作

        开发是让当前期望的奖励最大化,而探索则是让从长远的角度让奖励最大化。在DQN中用到了ϵ−贪心策略,正数ϵ的概率随机选择未知的一个动作,剩下(1 − ϵ)的概率选择已有动过中动作价值最大的动作。在决策过程中,有ϵ 概率选择非贪心的动作,即每个动作被选择的概率为 ϵ/∣A∣,其中|A|表示动作数量,也就是说,每个动作都有同样 ϵ/∣A∣概率的被非贪心的选择。另外还有1−ϵ的概率选择一个贪心策略,因此这个贪心策略被选择的概率则为 1−ϵ + ϵ /∣A∣。在所有的动作集合A中,在某一个时刻,总会有一个动作是智能体认为的最优动作,即a∗=argmax(Q(a,s)) 。

 

        DQN和Q-Learning都是基于价值迭代的算法并且,可能价值迭代不适用我们的场景,因此DQN中的模型学习效果不好,与Q-Learning相比DQN通过建立记忆池减小了数据之间的相关性,同时减小了参数更新的方差,提高的收敛速度。DQN的agent每次从环境中采样得到的四元组数据(状态、动作、奖励、下一状态)存储到回放缓冲区中,训练Q网络的时候再从回放缓冲区中随机采样若干数据来进行训练。

 

        DQN通过神经网络产生当前的Q估计值和Q现实值,产生这两个值的网络结构相同但是参数不同,预测Q估计的网络使用最新的参数值,而预测Q现实的网络则使用先前的参数值。

PPO--基于策略

        Policy Gradient是基于Policy做梯度下降优化模型,进而改变动作出现的概率。PG算法的目的是使得策略πθ的期望最大化。

 

经过推导的:

 

        之后利用梯度上升更新θ∗。

TPRO算法

        如果使用PG算法,当策略网络是深度模型时,沿着策略梯度更新参数,如果步长选择不合理就会导致步长突然变差,从而影响训练效果。

        为了解决这一问题,在更新参数时需要找到一个信任区域,在这个区域里更新策略时能够得到策略性能的安全性保证,这就是TPRO的主要思想。

        设当前状态的策略为πθ,我们需要对θ进行优化从而找到J(θ')≥J(θ)。由于初始状态的S0的分布与策略无关,所以J(θ)的期望值如下:

 

上图将时序差分残差定义为优势函数A:

为了保证新旧策略足够接近,TRPO 使用KL散度来衡量策略之间的距离,整体优化公式如下:

 

PPO算法

        TPRO算法运算量非常大,因此提出了PPO算法,PPO 的优化目标与 TRPO 相同,但它利用了PPO-惩罚或PPO-截断来进行优化。

PPO惩罚:

 PPO截断:

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MATLAB强化学习DQN(深度Q网络)代码是一种实现深度强化学习的方法,通常用于解决控制问题和决策问题。DQN通过结合深度神经网络和Q学习算法来实现对环境的学习和决策。以下是MATLAB中实现DQN算法的简要代码示例: 首先,需要定义一个深度神经网络模型来拟合Q值函数。可以使用MATLAB的Neural Network Toolbox来构建一个适合于解决强化学习问题的神经网络模型,例如多层感知器(MLP)或卷积神经网络(CNN)。 其次,需要定义Q学习算法的参数,包括学习率、贪心策略的选择、回放缓冲区的大小等。 然后,需要定义DQN算法的训练过程。在每一步中,Agent(智能体)根据当前的状态选择动作,并观察环境返回的奖励和下一个状态。Agent将这些信息存储到回放缓冲区中,并周期性地从中随机抽样一批数据用于训练神经网络。 最后,可以使用训练好的DQN模型来进行决策。Agent在每个时间步根据当前状态使用训练好的神经网络模型来选择动作,并与环境交互。 需要注意的是,以上只是一个简要的示例,实际的DQN代码可能还涉及到一些具体问题的处理,比如环境的建模、奖励函数的设计、超参数的调优等。另外,为了更好地理解DQN算法的原理和代码实现,建议阅读相关的文献和资料,例如DeepMind团队的原始论文《Playing Atari with Deep Reinforcement Learning》以及MATLAB官方提供的强化学习工具箱的文档和示例代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值