Policy gradient(策略梯度详解) |
您所在的位置:网站首页 › ie的目标是什么 › Policy gradient(策略梯度详解) |
文章目录
策略梯度基本知识什么是策略梯度?强化学习案例
策略梯度公式详解如何使你的损失函数更好增加一个基准为每一个action分配不同的权重
策略梯度基本知识
什么是策略梯度?
直接根据状态输出动作或者动作的概率。那么怎么输出呢,最简单的就是使用神经网络啦!我们使用神经网络输入当前的状态,网络就可以输出我们在这个状态下采取每个动作的概率,那么网络应该如何训练来实现最终的收敛呢?我们之前在训练神经网络时,使用最多的方法就是反向传播算法,我们需要一个误差函数,通过梯度下降来使我们的损失最小。但对于强化学习来说,我们不知道动作的正确与否,只能通过奖励值来判断这个动作的相对好坏。基于上面的想法,我们有个非常简单的想法:如果一个动作得到的reward多,那么我们就使其出现的概率增加,如果一个动作得到的reward少,我们就使其出现的概率减小。 强化学习案例在强化学习中,环境与rewardnfunction你是不能控制的,玩video game时,环境就是你的游戏机,然后reword function就是得分规则,你所能改的只有actor。下围棋也类似。 那么这个Actor的损失函数该怎么定义呢?给定一个actor,记为Π,然后下表θ代表该神经网络的参数,然后input的s就是机器所看到的场景,然后让机器实际去玩一下这个游戏,然后我们要求总的Total reward最大,我们就要将所有的r加起来。但由于即使是使用相同的actor,每一次的总的奖励也可能不同,于是我们就求总的奖励的期望即可。 下面的这图看起来不就是一个巨大的network吗?然后环境和reward是无法改变的,就相当于下棋的时候机器无法控制对手的操作,机器也无法改变奖励制度,唯一能改变的就是自己的参数,去适应环境,来使奖励最大化。 求最大你会想到梯度上升的求法,这里的梯度上升是策略梯度的一部分。 那么对Rθ期望求微分具体应该怎么做呢?如下图,R(┏)肯定不可微,但是没关系,它的表达式里没有θ,所以我只需对P(┏|θ)求导数,然后我们要对其做一下变换,巧用log!!然后画红框的两部分之前推导过可以化为1/N,然后整个表达式就可以化为一个近似的表达式。使用Πθ这个神经网络去玩N次游戏,可以得到N个┏ 下面我们来看看更新model的过程,先是给了一个actor,然后给actor一个┏,然后算出奖励总和,然后用梯度上升,更新θ,然后再将另一个┏传给actor,循环往复执行。 那么这里有一个问题,我们看下图,ideal case的第一张图,a和c的会使总的奖励变多,那么机器会倾向于执行a和c的操作,所以a和c的执行几率就变大了,相对的b的几率就减少了。然后我们再看看sampling那一行,b和c可能使我的总的奖励一直是正的,那么机器根本就不知道a的情况,万一a的操作更好呢??机器只会去学更positive的,b和c的几率也会越来越大,a只会越来越小。这时,我们需要引入一个baseline,如下图的b,我们将总的奖励减去一个b值,也就是某一步的奖励一定要达到某一个标准我才能说它好,否则就是不好。通常我们可以将这个b设为与R(┏)的期望接近的值。 比如下面是一个简单的游戏,就三步,第一组(s,a)得到的奖励是+5,第二组是0,第三组是-2,然后最后的奖励是+3,如果我们用之前的那个损失函数,那么就默认了每一个(s,a)的组合的权重都是+3,这显然是不靠谱的,虽然总的奖励是正的,但是明显里面有些组合不靠谱,我们就可以给那些不靠谱的组合负的权重。于是我们将R(┏n)换成下图的样子。这样就可以对每一个组合的权重加以区分。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |