(深入理解)强化学习中的policy

您所在的位置:网站首页 刘建平ddpg (深入理解)强化学习中的policy

(深入理解)强化学习中的policy

2024-07-13 06:36| 来源: 网络整理| 查看: 265

想要知道区别,我们得先知道他们分别是怎么做的。

value-based:输入s,输出Q(s,a) policy-based:输入s,输出p(s,a)

不但如此,还有区别

value-based:输入s,输出Q(s,a)后,我们要选一个动作。其选取方法是:

训练时使用epsilon-greedy(有一定探索)测试时使用argmax Q(s,a)(确定),也就是1-greedy(确定)。

policy-based:输入s,输出p(s,a)后,我们要选一个动作。其选取方法是:

训练时根据概率p(s,a)选取动作,因此一开始由于模型什么都没学到,所以相当于随机选取(有探索能力),因而和上面的epsilon-greedy有异曲同工之妙。测试时依然根据根据概率p(s,a)选取动作,由于测试阶段,模型学得差不多了,好的动作往往概率非常高,所以极容易抽中。这又与上面的argmax有异曲同工之妙。

所以从上面可以看出区别之外,我们还可以发现,value-based相当于绕过了Q值,不去计算那个东西,原来是用Q值来决策,现在用概率决策,相当于把Q值隐含在概率里了,那么就有了一个问题,

就是:我不能把value-based中的Q(s,a)进行softmax归一化吗?这样不就是概率了吗?不就是policy-based了吗?

解答: 这个操作其实根本不本质,我们想强调的是policy-based不显示建模Q值,而你上面那样做,其实就是显示建模了Q值,然后归一化而已。

另外,另外一个问题是:对Q值进行softmax归一化不一定合适,因为softmax喜欢放大Q值的差别。这跟你的环境和设置的奖励有很大关系,有的时候放大差别是一件好事,但有的时候可能不合理。所以说还不如直接输出概率,不要建模Q值。

总结 大家对上面我说的缕一缕思路。我上面说的大部分是从决策的角度上(输入-》输出)说区别。其实训练这个模型所使用的方法例如损失函数也是完全不一样的。建模了Q值得我们就选那个MSE损失函数对吧,没有建模的比如算法policy-gradient采用的是如下:

在这里插入图片描述

其中R表示Q(s,a)值(这里才用上,之前都不用Q,和value-based完全不一样)。

所以说两者的区别已经够明显了吧!两者的经典算法如下:

value-based:sarsa,q-learning,DQN policy-based:policy-gradient思想下属的REINFORCE算法

当然了,最近有将两者结合的方法,如下: 在这里插入图片描述

完结撒花


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3