四. 策略梯度(Policy Gradient)
4.1 期望奖励(Expected Reward)
在强化学习中有3个组成部分:演员(actor)
,环境(environment)
和奖励函数(reward function)
- 演员就是一个网络,输入状态,输出动作
- 环境就是一个函数,输入状态和动作,输出状态。环境是基于规则的规则,是确定不变的
- 奖励是在某一个状态下采取某个动作能够获得的分数。环境是一个随机变量(因为状态和环境都是在一定分布下抽样获得的),可以计算的是奖励的期望值
- 一场游戏叫做一个
回合(episode)
或者试验(trial)
- 把这场游戏里面所有得到的奖励都加起来,就是
总奖励(total reward)
,称其为回报(return)
,用R来表示它 - 演员要想办法去最大化它可以得到的奖励
在一场游戏里面,把环境输出的跟演员输出的行为,把跟全部串起来, 叫做一个Trajectory(轨迹)
,如下式所示:
可以计算每一个轨迹发生的概率。假设演员的参数已经被给定。根据,可以计算某一个轨迹发生的概率,即某一个回合里面发生这样状况的概率:
这个概率取决于两部分:环境的行为和Agent的行为,
-
环境的行为
:环境的函数内部的参数或内部的规则长什么样子,这一项代表的是环境,环境这一项通常你是无法控制的 -
Agent的行为
:能控制的是,给定一个,演员要采取什么样的会取决于演员的参数θ,随着演员的行为不同,每个同样的轨迹,它就会有不同的出现的概率
因为状态和动作的选取是随机的,所以R是一个随机变量。在给定某一组θ的情况下,得到的的期望值:
也可以理解为,从分布采样一个轨迹,计算的的期望值
4.2 梯度上升(Gradient Ascent)
使用梯度上升(gradient ascent)
,先要计算期望的奖励(expected reward)
的梯度,这里面只有是跟有关,所以梯度就放在这个地方。这个奖励函数不需要是可微分的(differentiable),取梯度之后,使用一个公式:
对使用这个公式,然后会得到,进一步地,可以得到下式:
如下式所示,对进行求和,把和这两项使用进行加权,既然使用进行加权,就可以被写成期望的形式。也就是从这个分布里面采样出来,计算乘上,然后把对所有可能的进行求和,就是这个期望的值(expected value)。
实际上这个期望值没有办法算,所以用采样的方式来采样一大堆的。采样笔, 然后去计算每一笔的这些值,把它全部加起来,就可以得到梯度。就可以去更新参,进而更新Agent
,如下式所示:
下面给出的具体计算过程,如下式所示:
注意,和由环境决定,所以与无关,因此,
直观地来理解上面这个式子,也就是在采样到的数据里面,采样到在某一个状态要执行某一个动作,这个跟是在整个轨迹的里面的某一个状态和动作的对
- 假设在执行,最后发现的奖励是正的,那就要增加这一项的概率,就要增加在执行的概率
- 反之,在执行会导致的奖励变成负的,就要减少这一项的概率
举例:
做分类的时候,目标函数就是最大化或最小化的对象,因为上文现在是最大化似然(likelihood),要最大化的对象,如下式所示:
像这种损失函数,可在神经网络框架里调用现成的函数自动计算。RL
唯一不同的地方是loss前面乘上一个权重:整场游戏得到的总奖励R,它并不是在状态采取动作的时候得到的奖励,如下式所示:
即要把每一笔训练数据,都使用R进行加权