【学习ChatGPT】 3. PPO

https://www.bilibili.com/video/BV1MW411w79n?p=2&vd_source=275b19d02ca629f220713e4de0936247

Policy Gradient - review

各种概念

三要素:
· actor
· environment - 不可控制
· reward - 不可控制

· policy π \pi π is a network of param θ \theta θ,
input=state(可以理解为游戏的画面、现状),
output=可能的actor的概率分布

· episode = 一轮游戏,trajectory τ = s 1 , a 1 , s 2 , a 2 , . . . , s T , a T \tau = s_1,a_1,s_2,a_2, ...,s_T, a_T τ=s1,a1,s2,a2,...,sT,aT
· 一个episode的total reward: R = ∑ t = 1 T r t R = \sum_{t=1}^T r_t R=t=1Trt, 一共T轮的reward总和; actor存在的意义就是maximize total reward
· expected reward: 穷举所有trajectory,算出total reward的均值

最大化total reward的推导过程

total reward R

p θ ( τ ) = p ( s 1 ) p θ ( a 1 ∣ s 1 ) p ( s 2 ∣ s 1 , a 1 ) p θ ( a 1 ∣ s 2 ) p ( s 3 ∣ s 2 , a 2 ) . . . p_\theta(\tau) = p(s_1)p_\theta(a_1|s_1)p(s_2|s_1,a_1)p_\theta(a_1|s_2)p(s_3|s_2,a_2)... pθ(τ)=p(s1)pθ(a1s1)p(s2s1,a1)pθ(a1s2)p(s3s2,a2)...
= p ( s 1 ) ∏ t = 1 T p θ ( a t ∣ s t ) p ( s t + 1 ∣ s t , a t ) =p(s_1)\prod_{t=1}^Tp_\theta(a_t|s_t)p(s_{t+1}|s_t,a_t) =p(s1)t=1Tpθ(atst)p(st+1st,at)

expected reward:
R θ = ∑ τ R ( τ ) p θ ( τ ) = E τ − p θ ( τ ) [ R ( τ ) ] R_\theta =\sum_\tau R(\tau)p_\theta(\tau) = E_{\tau -p_\theta(\tau)}[R(\tau)] Rθ=τR(τ)pθ(τ)=Eτpθ(τ)[R(τ)]
p θ ( τ ) p_{\theta}(\tau) pθ(τ)这个概率分布中采样一个 τ \tau τ的reward就是reward的期望值

在这里插入图片描述
在这里插入图片描述

gradient descent

用gradient descent 来求 θ \theta θ 以最大化expected reward
在这里插入图片描述
如果在 s t s_t st执行 a t a_t at导致整个trajectory的reward是正的,那么就要增加在 s t s_t st执行 a t a_t at的几率 p ( a t ∣ s t ) p(a_t|s_t) p(atst), 反之就要减小这个几率.
θ \theta θ更新:

在这里插入图片描述
实践中 可以想成一个多分类问题
如果对于一个state你采样到做了action a 那么就把action a 作为label
minimize cross entropy = maximize log-likelihood
与mll的区别就是要乘上一个weight,也就是total reward
在这里插入图片描述

如何正确表示R

Tip1: Baseline

R 如果一直是负的,会造成问题,所以要减去baseline
在这里插入图片描述

Tip2: Credit

一个整体reward是正的,但不代表其中每一步都是好的,所以加入credit
在这里插入图片描述
在这里插入图片描述

PPO

on-policy & off-policy

on-policy: 学习的agent和与环境交互的agent是同一个。–自己学下棋
off-policy: 学习的agent和与环境交互的agent不是同一个。 – 看别人学下棋

假设我们只能在q这个分布中采样,那么如何表示期望:
在这里插入图片描述
q和p的分布不能差距太大的原因:
在这里插入图片描述

θ ′ \theta' θ 是示范给 θ \theta θ看, 跟环境做互动会发生什么。我们要优化的是theta。
在这里插入图片描述

PPO: 加入KL散度惩罚

ppo本质就是走好几步之后在调整一次,普通的policy gradient就是每一步都要更新
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
横轴: p θ / p θ k p_\theta / p_\theta^k pθ/pθk ; 如果A>0 希望 p θ p_\theta pθ越大越好,但是不能超过 1 + ϵ 1+\epsilon 1+ϵ; 反之不能小于 1 − ϵ 1-\epsilon 1ϵ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值