赞
踩
我,菜拐拐,今天又来了!废话少说,上重点。准备好课堂笔记┗|`O′|┛ 嗷~~
多智能体环境下传统算法的短板
SPG
基于策略的SPG (Stochastic Policy Gradient):(其更加适合在连续的或者较大的动作下运行,这不同于基于值的Q学习或DQN方法)该算法是直接优化累积回报来获得使回报最大的策略。目标公式如下:
DPG
Q-Table | a1 | a2 |
---|---|---|
s1 | q(s1,a1) | q(s1,a2) |
s2 | q(s2,a1) | q(s2,a2) |
s3 | q(s3,a1) | q(s3,a2) |
如图所示为DQN算法伪代码(截图来自深入浅出)。
神奇之处表现在这里:由于Q-Table不能适用于高维状态。由此,在Q-Learning算法的基础上,DQN算法被提出。DQN把Q-Table的更新问题变成一个函数拟合问题,相近的状态得到相近的输出动作。又因为,深度神经网络可以自动提取复杂特征。So,面对高维且连续的状态使用深度神经网络最合适不过了。如图所示:
技巧:基于Q-Learning构造Loss函数;通过经验池解决相关性及非静态分布问题;使用TargetNet解决稳定性问题。但是,还是无法解决连续动作的问题。详细可见DQN算法详述。
如图所示,DDPG的伪代码被展示。DDPG(deep deterministic policy gradient)是解决连续控制型问题的一个算法。该算法很好的解决了DQN算法未解决连续空间的问题,接下来将详细解释下基于DQN算法的DDPG算法。在此感谢大佬。
首先,看下DQN不能解决连续动作的根源:伪代码[12]取最大值处(max函数只能处理离散型的)。
上面说过,DQN算法用神经网络解决了Q-Learning不能解决的连续状态空间问题。同理,DDPG算法可以理解为用神经网络解决DQN不能解决的连续(动作)控制型问题就好了。就是说,用神经网络来代替max找action的功能。换句话说,期待神经网络的输入是状态,返回值为动作action,该取值可以让Q最大。由此,非常明显了,这就是DDPG中Actor的功能。
接下来,借用大佬的图进行描述。
如图所示,DQN的深度网络,可以描述为用一张布去覆盖Q-Learning中的Q-table。Then,这也是DDPG中Critic的功能。
如图所示,把某个state输入到DDPG的Actor中的时候,相当于在这块布上做沿着state所在的位置剪开,这个时候大家会看到这个边缘是一条曲线。图中的红线是在某个状态下,选择某个动作值的时候,能获得的Q值。Actor的任务就是在寻找这个曲线的最高点,然后返回能获得这个最高点,也是最大Q值的动作。
下面给出Actor的功能:输出一个动作A,这个动作A输入到Crititc后,能够获得最大的Q值。注意:更新方式为梯度上升。
下面给出critic的功能:预估Q。
需要4个网络。Actor, Critic, Actor_target, Cirtic_target。
在座的各位,未完待续啊。最近太放肆了,坚持更啊啊啊啊!这篇博文简单总结了RL算法的演进,来简单引出MADDPG算法!
拐拐
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。