1. 策略梯度算法
强化学习有3个组成部分:演员(actor)、环境和奖励函数。环境与奖励函数不是我们可以控制的,它们是在开始学习之前给定的。我们唯一需要做的就是调整演员里面的策略,使得演员可以得到最大的奖励
策略一般记作π。假设我们使用深度学习来做强化学习,策略就是一个网络。网络里面有一些参数,我们用θ来代表π的参数。网络的输入是智能体看到的东西,输出是我们可以执行的动作,有几个动作,输出层就有几个神经元
我们把初始状态记作s1,把第一次执行的动作记作a1,把第一次执行动作以后得到的奖励记作r1。不同的人有不同的记法,有人觉得在s1执行a1得到的奖励应该记为r2,这两种记法都可以
一场游戏称为一个回合。将这场游戏里面得到的所有奖励都加起来,就是总奖励(total reward),也就是回报,我们用R来表示它
在一场游戏里面,我们把环境输出的s与演员输出的动作a全部组合起来,就是一个轨迹,即
τ={s1,a1,s2,a2,⋯,st,at}
给定演员的参数θ,我们可以计算某个轨迹τ发生的概率为
pθ(τ)=p(s1)pθ(a1∣s1)p(s2∣s1,a1)pθ(a2∣s2)⋯=p(s1)t=1∏Tpθ(at∣st)p(st+1∣st,at)
p(st+1∣st,at)代表的是环境,通常我们无法控制环境,因为环境是设定好的。我们能控制的是pθ(at∣st)
我们把轨迹所有的奖励r都加起来,就得到了R(τ),其代表某一个轨迹τ的奖励。我们要做的就是调整演员内部的参数θ,使得R(τ)的值越大越好