| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> [paper reading] Trust Region Policy Optimization -> 正文阅读 |
|
[人工智能][paper reading] Trust Region Policy Optimization |
Trust Region Policy Optimizationhttps://arxiv.org/pdf/1502.05477.pdf 有保证的单调递增策略梯度 指出问题没啥问题,直接提出单调递增策略梯度 理论证明
(
S
,
A
,
P
,
r
,
ρ
0
,
γ
)
(\mathcal{S}, \mathcal{A}, P, r, \rho_0, \gamma)
(S,A,P,r,ρ0?,γ) η ( π ) = E s 0 , a 0 , … [ ∑ t = 0 ∞ γ t r ( s t ) ] , where s 0 ~ ρ 0 , ? a t ~ π ( a t ∣ s t ) , ? s t + 1 ~ P ( s t + 1 ∣ s t , a t ) \eta(\pi)=\mathbb{E}_{s_0,a_0,\ldots} \left[ \sum_{t=0}^\infty \gamma^t r(s_t)\right], \quad \text{where} \\ s_0 \sim \rho_0,\ a_t \sim \pi(a_t|s_t),\ s_{t+1} \sim P(s_{t+1}|s_t,a_t) η(π)=Es0?,a0?,…?[t=0∑∞?γtr(st?)],wheres0?~ρ0?,?at?~π(at?∣st?),?st+1?~P(st+1?∣st?,at?) 状态分布表示为 ρ π ~ ( s ) = ∑ t = 0 ∞ P ( s t = s ∣ s 0 , π ) \rho_{\tilde\pi}(s)=\sum_{t=0}^\infty P(s_t=s|s_0,\pi) ρπ~?(s)=t=0∑∞?P(st?=s∣s0?,π) [Kakade 2002] 中提到,对于任意两种策略 π ~ \tilde\pi π~ 和 π \pi π,有 η ( π ~ ) = η ( π ) + ∑ s ρ π ~ ( s ) ∑ a π ~ ( a ∣ s ) A π ( s , a ) \eta(\tilde\pi)=\eta(\pi)+\sum_s \rho_{\tilde\pi}(s)\sum_a \tilde\pi(a|s)A_\pi (s,a) η(π~)=η(π)+s∑?ρπ~?(s)a∑?π~(a∣s)Aπ?(s,a) 令 π o l d \pi_{old} πold? 为当前策略,令 π ′ = arg?max ? π ′ L π o l d ( π ′ ) \pi'=\argmax_{\pi'}L_{\pi_{old}}(\pi') π′=π′argmax?Lπold??(π′). π n e w \pi_{new} πnew? 是一个混合策略(mixture): π n e w = ( 1 ? α ) π o l d ( a ∣ s ) + α π ′ ( a ∣ s ) \pi_{new}=(1-\alpha)\pi_{old}(a|s)+\alpha\pi'(a|s) πnew?=(1?α)πold?(a∣s)+απ′(a∣s) 根据 [Kakade 2002] 可知 η ( π n e w ) ? η ( π o l d ) = ∑ s ρ π n e w ( s ) ∑ a π n e w ( a ∣ s ) A π o l d ( s , a ) ≥ ∑ s ρ π o l d ( s ) ∑ a π n e w ( a ∣ s ) A π o l d ( s , a ) ? 2 α ? ( 1 1 ? γ ? 1 1 ? γ ( 1 ? α ) ) = ∑ s ρ π o l d ( s ) ∑ a π n e w ( a ∣ s ) A π o l d ( s , a ) ? 2 ? γ ( 1 ? γ ) 2 α 2 where? ? = max ? s ∣ E a ~ π ′ ( a ∣ s ) [ A π ( s , a ) ] ∣ \begin{aligned} \eta(\pi_{new}) - \eta(\pi_{old}) &= \sum_{s} \rho_{\pi_{new}}(s) \sum_a \pi_{new}(a|s) A_{\pi_{old}}(s,a) \\ &\geq\sum_{s} \rho_{\pi_{old}}(s) \sum_a \pi_{new}(a|s) A_{\pi_{old}}(s,a) - 2 \alpha \epsilon \left( \frac{1}{1-\gamma} - \frac{1}{1-\gamma(1-\alpha)} \right) \\ &=\sum_{s} \rho_{\pi_{old}}(s) \sum_a \pi_{new}(a|s) A_{\pi_{old}}(s,a) - \frac{2 \epsilon \gamma}{(1-\gamma)^2} \alpha^2 \\ \text{where } \epsilon &= \max_s \left| \mathbb{E}_{a \sim \pi'(a|s)} [A_\pi(s,a)] \right| \end{aligned} η(πnew?)?η(πold?)where???=s∑?ρπnew??(s)a∑?πnew?(a∣s)Aπold??(s,a)≥s∑?ρπold??(s)a∑?πnew?(a∣s)Aπold??(s,a)?2α?(1?γ1??1?γ(1?α)1?)=s∑?ρπold??(s)a∑?πnew?(a∣s)Aπold??(s,a)?(1?γ)22?γ?α2=smax?∣∣?Ea~π′(a∣s)?[Aπ?(s,a)]∣∣?? 这里对下界做了一些调整,更加简洁一点 1 1 ? γ ? 1 1 ? γ ( 1 ? α ) = 1 ? γ ( 1 ? α ) ? ( 1 ? γ ) ( 1 ? γ ) [ 1 ? γ ( 1 ? α ) ] = α γ ( 1 ? γ ) [ 1 ? γ ( 1 ? α ) ] ≥ α γ ( 1 ? γ ) 2 \begin{aligned} \frac{1}{1-\gamma}-\frac{1}{1-\gamma(1-\alpha)}&=\frac{1-\gamma(1-\alpha)-(1-\gamma)}{(1-\gamma) [1-\gamma(1-\alpha)]} \\ &=\frac{\alpha \gamma}{(1-\gamma) [1-\gamma(1-\alpha)]} \\ &\geq \frac{\alpha \gamma}{(1-\gamma)^2} \end{aligned} 1?γ1??1?γ(1?α)1??=(1?γ)[1?γ(1?α)]1?γ(1?α)?(1?γ)?=(1?γ)[1?γ(1?α)]αγ?≥(1?γ)2αγ?? π n e w \pi_{new} πnew? 是一个混合策略, α \alpha α 是混合系数,但是实际上混合策略很少被使用,导致上述公式难以解决实际问题。于是,使用总变化散度(total variation divergence) D T V ( p ? ∣ ∣ ? q ) = 1 2 ∑ i ∣ p i ? q i ∣ D_{TV}(p\ ||\ q)=\frac{1}{2}\sum_i |p_i-q_i| DTV?(p?∣∣?q)=21?∑i?∣pi??qi?∣ 来取代 α \alpha α,其中 p ? q p\ q p?q 是离散概率分布。把 D T V max ? ( π , π ~ ) D_{TV}^{\max}(\pi,\tilde\pi) DTVmax?(π,π~) 定义为 D T V max ? ( π , π ~ ) = max ? s D T V ( π ( ? ∣ s ) ? ∣ ∣ ? π ~ ( ? ∣ s ) ) D_{TV}^{\max}(\pi,\tilde\pi)=\max_s D_{TV}(\pi(\cdot|s)\ ||\ \tilde\pi(\cdot|s)) DTVmax?(π,π~)=smax?DTV?(π(?∣s)?∣∣?π~(?∣s)) Theorem 1. 令 α = D T V max ? ( π , π ~ ) \alpha = D_{TV}^{\max}(\pi,\tilde\pi) α=DTVmax?(π,π~)。下界依旧成立: η ( π n e w ) ? η ( π o l d ) ≥ ∑ s ρ π o l d ( s ) ∑ a π n e w ( a ∣ s ) A π o l d ( s , a ) ? 4 ? γ ( 1 ? γ ) 2 α 2 where? ? = max ? s , a ∣ A π ( s , a ) ∣ \eta(\pi_{new}) - \eta(\pi_{old}) \geq \sum_{s} \rho_{\pi_{old}}(s) \sum_a \pi_{new}(a|s) A_{\pi_{old}}(s,a) - \frac{4 \epsilon \gamma}{(1-\gamma)^2} \alpha^2 \\ \text{where } \epsilon = \max_{s,a} \left| A_\pi(s,a) \right| η(πnew?)?η(πold?)≥s∑?ρπold??(s)a∑?πnew?(a∣s)Aπold??(s,a)?(1?γ)24?γ?α2where??=s,amax?∣Aπ?(s,a)∣ 原文里的证明有点复杂,有时间再看吧… 下面,总变化散度(total variation divergence)和 KL 散度其实是有关系的: D T V ( p ? ∣ ∣ ? q ) 2 ≤ D K L ( p ? ∣ ∣ ? q ) D_{TV}(p\ ||\ q)^2 \leq D_{KL}(p\ ||\ q) DTV?(p?∣∣?q)2≤DKL?(p?∣∣?q)。令 D K L max ? ( π , π ~ ) = max ? s D K L ( π ( ? ∣ s ) ? ∣ ∣ ? π ~ ( ? ∣ s ) ) D_{KL}^{\max}(\pi,\tilde\pi)=\max_s D_{KL}(\pi(\cdot|s)\ ||\ \tilde\pi(\cdot|s)) DKLmax?(π,π~)=maxs?DKL?(π(?∣s)?∣∣?π~(?∣s)),那么下界成立: η ( π n e w ) ? η ( π o l d ) ≥ ∑ s ρ π o l d ( s ) ∑ a π n e w ( a ∣ s ) A π o l d ( s , a ) ? 4 ? γ ( 1 ? γ ) 2 D K L max ? ( π , π ~ ) \eta(\pi_{new}) - \eta(\pi_{old}) \geq \sum_{s} \rho_{\pi_{old}}(s) \sum_a \pi_{new}(a|s) A_{\pi_{old}}(s,a) - \frac{4 \epsilon \gamma}{(1-\gamma)^2} D_{KL}^{\max}(\pi,\tilde\pi) η(πnew?)?η(πold?)≥s∑?ρπold??(s)a∑?πnew?(a∣s)Aπold??(s,a)?(1?γ)24?γ?DKLmax?(π,π~) 实际上,如果我们使用惩罚系数 C,步长将会变得非常非常小。一种可行的办法是把 KL 那一项作为约束条件: maximize θ ∑ s ρ π o l d ( s ) ∑ a π n e w ( a ∣ s ) A π o l d ( s , a ) subject?to? D K L max ? ( π , π ~ ) ≤ δ \text{maximize}_\theta \sum_{s} \rho_{\pi_{old}}(s) \sum_a \pi_{new}(a|s) A_{\pi_{old}}(s,a) \\ \text{subject to}\ D_{KL}^{\max}(\pi,\tilde\pi) \leq \delta maximizeθ?s∑?ρπold??(s)a∑?πnew?(a∣s)Aπold??(s,a)subject?to?DKLmax?(π,π~)≤δ 由于计算 D K L max ? ( π , π ~ ) D_{KL}^{\max}(\pi,\tilde\pi) DKLmax?(π,π~) 比较麻烦,可以用平均 KL 散度代替: D  ̄ K L ρ ( π , π ~ ) : = E s ~ ρ [ D K L ( π ( ? ∣ s ) ? ∣ ∣ ? π ~ ( ? ∣ s ) ) ] \overline D_{KL}^\rho (\pi,\tilde\pi):=\mathbb{E}_{s \sim \rho} [D_{KL} (\pi(\cdot|s)\ ||\ \tilde\pi(\cdot|s))] DKLρ?(π,π~):=Es~ρ?[DKL?(π(?∣s)?∣∣?π~(?∣s))] 重要性采样实际上的数据由蒙特卡洛采样得到,我们使用采样来对公式进行一下替换: ∑ s ρ π o l d ( s ) ∑ a π n e w ( a ∣ s ) A π o l d ( s , a ) = E s ~ ρ π o l d ∑ a π n e w ( a ∣ s ) A π o l d ( s , a ) = E s ~ ρ π o l d ∑ a π o l d ( a ∣ s ) π n e w ( a ∣ s ) π o l d ( a ∣ s ) A π o l d ( s , a ) = E s ~ ρ π o l d E a ~ π o l d π n e w ( a ∣ s ) π o l d ( a ∣ s ) A π o l d ( s , a ) \begin{aligned} \sum_{s} \rho_{\pi_{old}}(s) \sum_a \pi_{new}(a|s) A_{\pi_{old}}(s,a)&=\mathbb{E}_{s \sim \rho_{\pi_{old}}} \sum_a \pi_{new}(a|s) A_{\pi_{old}}(s,a) \\ &=\mathbb{E}_{s \sim \rho_{\pi_{old}}} \sum_a \pi_{old}(a|s) \frac{\pi_{new}(a|s)}{\pi_{old}(a|s)} A_{\pi_{old}}(s,a) \\ &=\mathbb{E}_{s \sim \rho_{\pi_{old}}} \mathbb{E}_{a \sim \pi_{old}} \frac{\pi_{new}(a|s)}{\pi_{old}(a|s)} A_{\pi_{old}}(s,a) \\ \end{aligned} s∑?ρπold??(s)a∑?πnew?(a∣s)Aπold??(s,a)?=Es~ρπold???a∑?πnew?(a∣s)Aπold??(s,a)=Es~ρπold???a∑?πold?(a∣s)πold?(a∣s)πnew?(a∣s)?Aπold??(s,a)=Es~ρπold???Ea~πold??πold?(a∣s)πnew?(a∣s)?Aπold??(s,a)? 因此,代理目标(surrogate objective)可以写为: maximize θ E s ~ ρ π o l d E a ~ π o l d π n e w ( a ∣ s ) π o l d ( a ∣ s ) A π o l d ( s , a ) subject?to? E s ~ ρ π o l d [ D K L ( π o l d ( ? ∣ s ) ? ∣ ∣ ? π n e w ( ? ∣ s ) ) ] ≤ δ \text{maximize}_\theta \mathbb{E}_{s \sim \rho_{\pi_{old}}} \mathbb{E}_{a \sim \pi_{old}} \frac{\pi_{new}(a|s)}{\pi_{old}(a|s)} A_{\pi_{old}}(s,a) \\ \text{subject to}\ \mathbb{E}_{s \sim \rho_{\pi_{old}}} [D_{KL} (\pi_{old}(\cdot|s)\ ||\ \pi_{new}(\cdot|s))] \leq \delta maximizeθ?Es~ρπold???Ea~πold??πold?(a∣s)πnew?(a∣s)?Aπold??(s,a)subject?to?Es~ρπold???[DKL?(πold?(?∣s)?∣∣?πnew?(?∣s))]≤δ 然后这里介绍了两种采样方式,分别是单路径(single path)和藤蔓(vine)。单路径法很简单,就是蒙特卡洛法。藤蔓法比较难以理解。 藤蔓法,首先使用蒙特卡洛方法得到一条轨迹,然后在这条轨迹选择一个大小为 N N N 的状态子集,用 rollout set 表示。对于该状态子集中的每个状态 s n s_n sn?,我们通过 a n , k ~ q ( ? ∣ s n ) a_{n,k} \sim q(\cdot|s_n) an,k?~q(?∣sn?) 采样 K K K 个动作。实际上发现,对于连续动作问题(如 robotic locomotion), q ( ? ∣ s n ) = π θ ( ? ∣ s n ) q(\cdot|s_n)=\pi_\theta(\cdot|s_n) q(?∣sn?)=πθ?(?∣sn?) 有效果,对于离散动作问题(如 atari),随机分布有效果,因为可以实现更好的探索。 但是由于藤蔓法很麻烦,单单把 gym 环境重置到指定状态就很难做到…所以藤蔓法具体细节这里就不写了。 实用算法再写一下刚刚提到的代理目标(surrogate objective): maximize θ E s ~ ρ π o l d E a ~ π o l d π n e w ( a ∣ s ) π o l d ( a ∣ s ) A π o l d ( s , a ) subject?to? E s ~ ρ π o l d [ D K L ( π o l d ( ? ∣ s ) ? ∣ ∣ ? π n e w ( ? ∣ s ) ) ] ≤ δ \text{maximize}_\theta \mathbb{E}_{s \sim \rho_{\pi_{old}}} \mathbb{E}_{a \sim \pi_{old}} \frac{\pi_{new}(a|s)}{\pi_{old}(a|s)} A_{\pi_{old}}(s,a) \\ \text{subject to}\ \mathbb{E}_{s \sim \rho_{\pi_{old}}} [D_{KL} (\pi_{old}(\cdot|s)\ ||\ \pi_{new}(\cdot|s))] \leq \delta maximizeθ?Es~ρπold???Ea~πold??πold?(a∣s)πnew?(a∣s)?Aπold??(s,a)subject?to?Es~ρπold???[DKL?(πold?(?∣s)?∣∣?πnew?(?∣s))]≤δ 我们定义 J ( θ ) = E s ~ ρ π o l d E a ~ π o l d π n e w ( a ∣ s ) π o l d ( a ∣ s ) A π o l d ( s , a ) J(\theta)=\mathbb{E}_{s \sim \rho_{\pi_{old}}} \mathbb{E}_{a \sim \pi_{old}} \frac{\pi_{new}(a|s)}{\pi_{old}(a|s)} A_{\pi_{old}}(s,a) J(θ)=Es~ρπold???Ea~πold??πold?(a∣s)πnew?(a∣s)?Aπold??(s,a) 那么 maximize θ J ( θ ) \text{maximize}_\theta J(\theta) maximizeθ?J(θ) 可以写为 maximize θ ? θ J ( θ ) T Δ θ \text{maximize}_\theta \nabla_\theta J(\theta)^T \Delta \theta maximizeθ??θ?J(θ)TΔθ 我们知道通过 KL 散度的二阶泰勒展开,可以得到和费谢尔矩阵的关系: K L ( f ( x ; θ ) ∣ ∣ f ( x ; θ + Δ θ ) ) ≈ 1 2 Δ θ T F Δ θ KL(f(x;\theta)||f(x;\theta+\Delta\theta))\approx\frac{1}{2} \Delta\theta^T F \Delta\theta KL(f(x;θ)∣∣f(x;θ+Δθ))≈21?ΔθTFΔθ 看一下 KL 散度的二阶导数( θ ? \theta^- θ? 表示参数为常值): 这里是参考 https://zhuanlan.zhihu.com/p/106984936,作者讲得好,建议看。 ? θ 2 K L ( f ( x ; θ ? ) ∣ ∣ f ( x ; θ ) ) = ? θ 2 [ ∫ f ( x ; θ ? ) log ? f ( x ; θ ? ) d x ? ∫ f ( x ; θ ? ) log ? f ( x ; θ ) d x ] = ? ∫ f ( x ; θ ? ) ? θ 2 log ? f ( x ; θ ) d x = ? E [ ? θ 2 log ? f ( x ; θ ) ] = F \begin{aligned} \nabla_\theta^2 KL(f(x;\theta^-)||f(x;\theta))&=\nabla_\theta^2 \left[ \int f(x;\theta^-) \log f(x;\theta^-)dx-\int f(x;\theta^-) \log f(x;\theta)dx \right] \\ &=-\int f(x;\theta^-) \nabla_\theta^2 \log f(x;\theta) dx \\ &=-E \left[ \nabla_\theta^2 \log f(x;\theta) \right] \\ &= F \end{aligned} ?θ2?KL(f(x;θ?)∣∣f(x;θ))?=?θ2?[∫f(x;θ?)logf(x;θ?)dx?∫f(x;θ?)logf(x;θ)dx]=?∫f(x;θ?)?θ2?logf(x;θ)dx=?E[?θ2?logf(x;θ)]=F? 文章中使用 KL 散度的二阶导 H = ? θ 2 K L ( ? ) H=\nabla_\theta^2KL(\cdot) H=?θ2?KL(?) 来作为费谢尔矩阵 F F F 的估计。 因此,我们可以把代理目标重写为: $$$$ maximize θ ? θ J ( θ ) T Δ θ subject?to? 1 2 Δ θ T H Δ θ = ? \text{maximize}_\theta \nabla_\theta J(\theta)^T \Delta \theta \\ \text{subject to }\frac{1}{2} \Delta\theta^TH\Delta\theta = \epsilon maximizeθ??θ?J(θ)TΔθsubject?to?21?ΔθTHΔθ=? 这是一个简单的约束优化问题,使用拉格朗日乘数法(Lagrange Multiplier Method)来解: f ( θ ) = ? θ J ( θ ) T Δ θ + λ ( 1 2 Δ θ T H Δ θ ? ? ) f(\theta)=\nabla_\theta J(\theta)^T \Delta \theta + \lambda(\frac{1}{2} \Delta\theta^TH\Delta\theta - \epsilon) f(θ)=?θ?J(θ)TΔθ+λ(21?ΔθTHΔθ??) 则有方程组 { ? Δ θ f ( θ ) = ? θ J ( θ ) + λ H Δ θ = 0 ( 1 ) 1 2 Δ θ T H Δ θ ? ? = 0 ( 2 ) \begin{cases} \nabla_{\Delta\theta}f(\theta)=\nabla_\theta J(\theta)+\lambda H \Delta\theta = 0 &(1)\\ \frac{1}{2} \Delta\theta^TH\Delta\theta - \epsilon = 0 &(2)\\ \end{cases} {?Δθ?f(θ)=?θ?J(θ)+λHΔθ=021?ΔθTHΔθ??=0?(1)(2)? 由 ( 1 ) (1) (1) 解得 Δ θ = ? 1 λ H ? 1 g \Delta\theta=-\frac{1}{\lambda}H^{-1}g Δθ=?λ1?H?1g,代入 ( 2 ) (2) (2) 中得(注意, H H H 是海森矩阵,是对称的,即 H T = H H^T=H HT=H,其逆矩阵也是对称矩阵) 1 2 λ 2 g T ( H ? 1 ) T H H ? 1 g = ? 1 2 ? g T H ? 1 g = λ 2 g T H ? 1 g 2 ? = λ \begin{aligned} \frac{1}{2 \lambda^2}g^T(H^{-1})^THH^{-1}g&=\epsilon \\ \frac{1}{2\epsilon} g^TH^{-1}g&=\lambda^2 \\ \sqrt{\frac{g^TH^{-1}g}{2\epsilon}}&=\lambda \end{aligned} 2λ21?gT(H?1)THH?1g2?1?gTH?1g2?gTH?1g???=?=λ2=λ? 代回得 Δ θ = ? 1 λ H ? 1 g = ? 2 ? g T H ? 1 g H ? 1 g \begin{aligned} \Delta\theta&=-\frac{1}{\lambda}H^{-1}g \\ &=-\sqrt{\frac{2\epsilon}{g^TH^{-1}g}}H^{-1}g \end{aligned} Δθ?=?λ1?H?1g=?gTH?1g2???H?1g? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:41:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |