1. Policy Based算法 --- learning an Actor
1.1. 定义
定义actor为function π,则:
Action=π(State)
其中:
π:用NN训练出来的一个模型
State:模型的输入,为向量或矩阵。例如游戏界面的像素值。
Action:模型的输出,由softmax生成的一个分布。
定义:
s:state向量
a:action向量
r:reward向量
T:向量长度,1 episode = T轮迭代
Rθ:总reward,为episode中所有迭代的reward之和。
对于同一个θ,一个episode得到的Rθ也不同,因此定义期望值:
R¯θ=E[Rθ]
目标是最大化Rˉθ,不是Rθ,也不是rt。
1.2. 推导期望的公式
定义:
τ=s1,a1,r1,⋯,sT,aT,rTR(τ)=t=1∑Trn一局游戏的全过程
则:
R¯θτ∑R(τ)P(τ∣θ)
∑τ代表穷举所有的游戏经过。事实上这是不可能的。
解决方法:用πθ玩N局,采样出N个τ,用这N个τ代替所有的τ。
因此有:
τ∑P(τ∣θ)=N1
1.3. 梯度上升法最大化期望
根据梯度上升法:
θt=θt−1+η∇R¯θt−1
这里关键是求出Rˉθ的偏导:
1.4. 偏导公式的直观解释
当R(τn)>0时,就是增加这一轮中的Action的概率,即P(atn∣stn,θ)的概率。
当R(τn)<0时,就是减少这一轮中的Action的概率。
- 公式中基于R(τn)调整这个episode中所有action的概率,而不是rt调整at的概率,是为了解决难点2。
- 为什么是∇logp(atn∣stn,θ),而不是∇p(atn∣stn,θ)?
答:
∇logp(atn∣stn,θ)=p(atn∣stn,θ)∇p(atn∣stn,θ)
∇logp(atn∣stn,θ)和∇p(atn∣stn,θ)差别在于分母p(atn∣stn,θ),这个分母相当于归一化的过程。