IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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 Optimization

https://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?,γ)
ρ 0 \rho_0 ρ0? : 初始状态 s 0 s_0 s0? 的分布
那么期望折扣回报可以表示为

η ( π ) = 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?=ss0?,π)

[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?π~(as)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?(as)+απ(as)

根据 [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?(as)Aπold??(s,a)s?ρπold??(s)a?πnew?(as)Aπold??(s,a)?2α?(1?γ1??1?γ(1?α)1?)=s?ρπold??(s)a?πnew?(as)Aπold??(s,a)?(1?γ)22?γ?α2=smax??Eaπ(as)?[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?(as)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)2DKL?(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?(as)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?(as)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?(as)Aπold??(s,a)?=Esρπold???a?πnew?(as)Aπold??(s,a)=Esρπold???a?πold?(as)πold?(as)πnew?(as)?Aπold??(s,a)=Esρπold???Eaπold??πold?(as)πnew?(as)?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?(as)πnew?(as)?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?(as)πnew?(as)?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?(as)πnew?(as)?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?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-12 16:27:40  更:2022-05-12 16:30:12 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码