初识Proximal Policy Optimization (PPO)
什么是PPO
是一種off-policy 的 policy gradient。
PPO enables multiple epochs of minibatch updates.
Importance Sampling
可以在q的distribution里sample data,不用直接從p里sample data。
但是得乘上一個weight,這個weight就是\(\frac{p(x)}{q(x)}\)
Issue:
Mean一樣但是Variance不一定是一樣的。
當\(\frac{p(x)}{q(x)}\)比較大的時候,兩個的方差會差很多。
如果sample的次數不夠多,那么Mean和Variance可能都會差很多。
On-policy to Off-policy
上面是On-policy,下面是Off-policy。
主要是要用紅框里的weight去做修正。
trajectory分別在兩個distribution中出現的概率。
Gradient for Update:
實際上得到的A,應該是\(\theta'\)的,因為在\(\theta'\)中sample。
\(\frac{p_{\theta}(s_t)}{p_{\theta'}(s_t)}\):很難算,而且兩個應該要比較近似,所以刪去這一項。
利用上面那個式子可以得到似然函數。HOW?
Add Constraint
避免兩個distribution差太多,加constraint。
K-L Divergence: KL散度,量化兩種概率分布之間差異的方式。
\(D_{KL}(p||q)=\sum_{i=1}^Np(x_i)\cdot log \frac{p(x_i)}{q(x_i)}\)
TRPO and PPO
TRPO是PPO的前身。
用KL divergence作為一個penalty,而不是像TRPO那樣用constraint,希望減小KL散度,希望學出來的兩個不要太不一樣。
TRPO和PPO只是KL散度放的地方不一樣。
TRPO和PPO可能效果差不多,但是PPO在實操的時候更加容易。
這里KL散度不是參數上的舉例,而是behavior上的距離。
給同個state的時候,output action distribution的差距。
PPO Algorithm
PPO1算法
Adaptive KL Penalty Coefficient:KL Penalty是可以動態調整的,你自己先設置一個你能接受的KL最小值和最大值。
KL大于最大值,就增加β。
KL小于最小值,就減小β。
PPO2算法
PPO1使用KL散度,PPO2就不用KL散度了。
Clip:
Pseudo Code
Reference
李宏毅的2021春機器學習課程視頻
Proximal Policy Optimization Algorithms:http://arxiv.org/abs/1707.06347
總結
以上是生活随笔為你收集整理的初识Proximal Policy Optimization (PPO)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在linux设置回收站 - 防止失误操作
- 下一篇: 如何测量服务器网络带宽、延迟、抖动和丢包