强化学习-DDPG算法

DDPG算法

在DDPG算法之前,我们在求解连续动作空间问题时,主要有两种方式:一是对连续动作做离散化处理,然后再利用强化学习算法(例如DQN)进行求解。二是使用Policy Gradient (PG)算法 (例如Reinforce) 直接求解。但是对于方式一,离散化处理在一定程度上脱离了工程实际;对于方式二,PG算法在求解连续控制问题时效果往往不尽人意。为此,DDPG算法横空出世,在许多连续控制问题上取得了非常不错的效果。

DDPG算法是Actor-Critic (AC) 框架下的一种在线式深度强化学习算法,因此算法内部包括Actor网络和Critic网络,每个网络分别遵从各自的更新法则进行更新,从而使得累计期望回报最大化。

DDPG算法原理

DDPG算法将确定性策略梯度算法和DQN算法中的相关技术结合在一起,之前我们在讲DQN算法时,详细说明了其中的两个重要的技术:经验回放和目标网络。具体而言,DDPG算法主要包括以下三个关键技术:

(1)经验回放:智能体将得到的经验数据放入Replay Buffer中,更新网络参数时按照批量采样。

(2)目标网络:在Actor网络和Critic网络外再使用一套用于估计目标的Target Actor网络和Target Critic网络。在更新目标网络时,为了避免参数更新过快,采用软更新方式。

(3)噪声探索:确定性策略输出的动作为确定性动作,缺乏对环境的探索。在训练阶段,给Actor网络输出的动作加入噪声,从而让智能体具备一定的探索能力。

通俗地解释一下 Actor-Critic 的结构

策略网络扮演的就是 actor 的角色,它负责对外展示输出,输出舞蹈动作。
Q 网络就是评论家(critic),它会在每一个 step 都对 actor 输出的动作做一个评估,打一个分,估计一下 actor 的 action 未来能有多少收益,也就是去估计这个 actor 输出的这个 action 的 Q 值大概是多少,即 Q_w(s,a)Q w (s,a)。 Actor 就需要根据舞台目前的状态来做出一个 action。
评论家就是评委,它需要根据舞台现在的状态和演员输出的 action 对 actor 刚刚的表现去打一个分数 Q_w(s,a)Q w(s,a)。
Actor 根据评委的打分来调整自己的策略,也就是更新 actor 的神经网络参数 \thetaθ, 争取下次可以做得更好。
Critic 则是要根据观众的反馈,也就是环境的反馈 reward 来调整自己的打分策略,也就是要更新 critic 的神经网络的参数 ww ,它的目标是要让每一场表演都获得观众尽可能多的欢呼声跟掌声,也就是要最大化未来的总收益。
最开始训练的时候,这两个神经网络参数是随机的。所以 critic 最开始是随机打分的,然后 actor 也跟着乱来,就随机表演,随机输出动作。但是由于我们有环境反馈的 reward 存在,所以 critic 的评分会越来越准确,也会评判的那个 actor 的表现会越来越好。
既然 actor 是一个神经网络,是我们希望训练好的策略网络,那我们就需要计算梯度来去更新优化它里面的参数 \thetaθ 。简单的说,我们希望调整 actor 的网络参数,使得评委打分尽可能得高。注意,这里的 actor 是不管观众的,它只关注评委,它就是迎合评委的打分 Q_w(s,a)Q w(s,a) 而已。

参考资料

https://blog.csdn.net/weixin_46133643/article/details/124356983
https://linklearner.com/datawhale-homepage/#/learn/detail/91

你可能感兴趣的:(强化学习,算法,人工智能)