强化学习(DQN、TPRO、PPO)

发布于:2023-01-18 ⋅ 阅读:(372) ⋅ 点赞:(0)

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截断:

 

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到