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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 强化学习与数学 -> 正文阅读

[人工智能]强化学习与数学

参考文献:
[ 1 ] A g e n t ? 57 : O u t p e r f o r m i n g ? t h e ? A t a r i ? H u m a n ? B e n c h m a r k [1]\mathcal{Agent\,57:Outperforming \,the \,Atari \,Human \,Benchmark } [1]Agent57:OutperformingtheAtariHumanBenchmark
[ 2 ] R e n f o r c e m e n t ? L e a r n i n g ( S u t t o n ) [2]\mathcal{Renforcement \, Learning(Sutton)} [2]RenforcementLearning(Sutton)
文献[1]的附录对我而言是比其本体更有用的资料,它从数学推导的角度一步步地告诉我们强化学习的进化历程。尽管我大部分的知识都是源自于文献[2],但是读一本百千页的书是相当辛苦的事情,尤其是太过详细的那种,而且由于长时间未涉及到RL相关的内容,我感觉一些知识已经遗忘,所以本文以[1]为重点,试图去顺一顺RL的历程。

Markov Decision Process

马尔科夫决策链过程可以被描绘为 ( X , A , P , r , y ) (\mathcal{X},\mathcal{A},\mathcal{P},\mathcal{r},\mathcal{y}) (X,A,P,r,y), 就像物理坐标系中的 ( t , x , y , z ) (t,x,y,z) (t,x,y,z)一样,马尔科夫链描绘的是一个事件。接下来介绍一下每一个变量的含义:
X \mathcal{X} X: 状态空间
A \mathcal{A} A: 动作空间
π \pi π : 状态空间转移时需要依据,这种依据我们称之为策略。
P \mathcal{P} P: P ( x ′ ∣ a , x ) P(x'|a,x) P(xa,x)这个意味着在状态 x x x下采取行动 a a a,从而转移到状态 x ′ x' x的概率.
r \mathcal{r} r : r ∈ R A × X \mathcal{r} \in \mathbb{R}^{\mathcal{A}\times\mathcal{X}} rRA×X
y \mathcal{y} y: y ∈ [ 0 , 1 ] \mathcal{y}\in [0,1] y[0,1]
ok,有了着一些前提条件以后我们就可以引入价值函数的概念了。

State-Action Value Function

τ ( x , a , π ) \tau(x,a,\pi) τ(x,a,π)是迹 τ = ( X t , A t , R t , X t + 1 ) t ∈ N \tau=(X_t,A_t,R_t,X_{t+1})_{t\in \mathbb{N}} τ=(Xt?,At?,Rt?,Xt+1?)tN?中根据 π \pi π的一个分布,然后其中各个属性之间有如下关系: ? t > = 1 , R t = r ( X t , A t ) , & ? t > = 0 , X t + 1 ? P ( ? ∣ X t , A t ) \forall t>=1,R_t=r(X_t,A_t),\&\forall t>=0,X_{t+1}~P(·|X_t,A_t) ?t>=1,Rt?=r(Xt?,At?),&?t>=0,Xt+1??P(?Xt?,At?),状态-行动价值函数(state-action value function)可以和描述为 Q r π = E τ ~ τ ( x , a , π ) [ ∑ t > = 0 R t ] Q_r^{\pi}=E_{_\tau \sim \tau(x,a,\pi)}[\sum_{t>=0}R_t] Qrπ?=Eτ?τ(x,a,π)?[t>=0?Rt?]
最优状态的价值函数也就是 Q r ? ( x , a ) = max ? π Q r π ( x , a ) Q^*_{r}(x,a)=\max_{\pi}Q^{\pi}_r(x,a) Qr??(x,a)=maxπ?Qrπ?(x,a)意思就是找到一个策略函数使得整体获得的价值最大化。

Bellman equation

我们观察某一个transition的状态,根据价值函数,我们知道每一个transition势必将涉及到一个reward,长时积累reward将会令价值函数趋于无穷大,无穷大不是一件好事情,所以我们需要对以前所积累的reward做一个衰减,也就是在每一个加奖赏值之前都需要对以往积累的价值乘个衰减因子 y \mathcal{y} y。这样,一步Bellman方程可以描绘为:
T r π Q ( x , a ) = r ( x , a ) + y ∑ b ∈ A ∑ x ′ ∈ x π ( b ∣ x ) P ( x ′ ∣ x , a ) Q ( x ′ , b ) T^{\pi}_rQ(x,a)=r(x,a)+\mathcal{y}\sum_{b\in \mathbb{A}}\sum_{x'\in\mathcal{x}}\pi(b|x)P(x'|x,a)Q(x',b) Trπ?Q(x,a)=r(x,a)+ybA?xx?π(bx)P(xx,a)Q(x,b)
看到上面的公式你可能会有很多疑惑,为何左边是两个代数相乘,右边则找不到公共因子。我认为左边应该类似于复合函数的写法,但是我尚未统计其他资料中数学公式的写法,这也有可能是作者自己创造的书写形式。
这个公式是怎么来的呢?引入了衰减因子以后,传统的价值函数可以被写为类似于: Q ( x , a ) = E [ r 0 + y r 1 + y 2 r 2 + ? ? ? + y n ? 1 r n ? 1 ] Q(x,a)=E[r_0+yr_1+y^2r_2+···+y^{n-1}r_{n-1}] Q(x,a)=E[r0?+yr1?+y2r2?+???+yn?1rn?1?]
→ r 0 + E [ y r 1 + y 2 r 2 + ? ? ? + y n ? 1 r n ? 1 ] \rightarrow r_0+E[yr_1+y^2r_2+···+y^{n-1}r_{n-1}] r0?+E[yr1?+y2r2?+???+yn?1rn?1?]
→ r 0 + ∑ y i r i = r 0 + y ∑ y i ? 1 r i = r 0 + y Q ( x t ? 1 , a t ? 1 ) \rightarrow r_0+\sum y^ir_{i}=r_0+y\sum y^{i-1}r_i=r_0+yQ(x_{t-1},a_{t-1}) r0?+yiri?=r0?+yyi?1ri?=r0?+yQ(xt?1?,at?1?)
这个时候还没结束,我们知道每一状态转移都会涉及到策略 π \pi π以及概率 P P P所以对于每一个价值函数 Q Q Q,我们还需乘以策略 π \pi π以及概率 P P P,最终我们得到了Bellman方程的形式 T r π Q ( x , a ) = r ( x , a ) + y ∑ b ∈ A ∑ x ′ ∈ x π ( b ∣ x ) P ( x ′ ∣ x , a ) Q ( x ′ , b ) T^{\pi}_rQ(x,a)=r(x,a)+\mathcal{y}\sum_{b\in \mathbb{A}}\sum_{x'\in\mathcal{x}}\pi(b|x)P(x'|x,a)Q(x',b) Trπ?Q(x,a)=r(x,a)+ybA?xx?π(bx)P(xx,a)Q(x,b).

贪心算法(Greedy Policy)

顾名思义每一次决策都奔着奖赏最大化去。

Transformed Bellman Operators

? z ∈ R , h ( z ) = s i g n ( z ) ( ∣ z ∣ ? 1 ) + ε z \forall z \in \mathbb{R},h(z)=sign(z)(\sqrt{|z|-1})+\varepsilon z ?zR,h(z)=sign(z)(z?1 ?)+εz
? z ∈ R , h ( z ) ? 1 = s i g n ( z ) ( 1 + 4 ε ( ∣ z ∣ + 1 + ε ) ? 1 2 ε ) z \forall z \in \mathbb{R},h(z)^{-1}=sign(z)(\frac{\sqrt{1+4\varepsilon(|z|+1+\varepsilon)}-1}{2\varepsilon})z ?zR,h(z)?1=sign(z)(2ε1+4ε(z+1+ε) ??1?)z

T r π Q ( x , a ) = h ( r ( x , a ) + y ∑ b ∈ A ∑ x ′ ∈ x π ( b ∣ x ) P ( x ′ ∣ x , a ) h ? 1 ( Q ( x ′ , b ) ) ) T^{\pi}_rQ(x,a)=h(r(x,a)+\mathcal{y}\sum_{b\in \mathbb{A}}\sum_{x'\in\mathcal{x}}\pi(b|x)P(x'|x,a)h^{-1}(Q(x',b))) Trπ?Q(x,a)=h(r(x,a)+ybA?xx?π(bx)P(xx,a)h?1(Q(x,b))).

论文中描述说这种变换形式更容易让神经网络去拟合。
在这里插入图片描述

如图所示,我绘制了定义域位于-1000到1000之间的函数,可以分析得到,这个函数具备挤压函数的性质,同时并没有sigmoid那种梯度消失的缺点,因为当输入很大时所得到数值仍具备一定增长趋势。
为了方便后续的介绍,我们引入一些符号进行定义:
对于贪心策略: π k = G ( Q k ) \pi_{k}=\mathcal{G}(Q_k) πk?=G(Qk?)
前一步价值函数和后一步价值函数之间的联系可以被描绘为: Q k + 1 = T r , h π k Q k Q_{k+1}=T_{r,h}^{\pi_k}Q_k Qk+1?=Tr,hπk??Qk?其中各个下角标我们在上文已经详细描绘过了。

Intrinsic-Extrinsic Decomposition

上文中所作的讨论是在仅仅一种reward的情况下,但是现实中内在和外在的因素都是至关重要的,比如有一个汉堡看起来很好吃,我们的感官是内在因素而自己手里的钱以及排队人数等等是外在因素。所以我们需要将内在外在因素都考虑在内。
通过将内在的奖励和外在的奖励进行线性组合我们得到了价值函数的新的表现形式 Q = Q i + β Q e Q=Q^i+\beta Q^e Q=Qi+βQe其中 β \beta β Q e Q^e Qe相对于 Q i Q^i Qi的权重。
这样的话,该系统的策略就变成了 π k = G ( Q k e + Q k i ) \pi_k=\mathcal{G}(Q^e_k+Q^i_k) πk?=G(Qke?+Qki?)
然后基于这个新的 π k \pi_k πk?我们分别对 Q k e Q^e_k Qke?以及 Q k i Q^i_k Qki?进行更新。
下面对奖赏函数的可拆分组合性进行简单地证明:
Q k + 1 = Q k + 1 i + β Q k + 1 e Q_{k+1}=Q_{k+1}^i+\beta Q_{k+1}^e Qk+1?=Qk+1i?+βQk+1e?
→ T r i π k Q k i + r k i + ( T r e π k Q k e + r k e ) β \rightarrow T_{r^i}^{\pi_k}Q_{k}^i+r^i_k+(T_{r^e}^{\pi_k}Q_{k}^e+r^e_k)\beta Triπk??Qki?+rki?+(Treπk??Qke?+rke?)β
→ ( r k i + β r k e ) + ( T r i π k Q k i + T r e π k Q k e ) \rightarrow (r_k^i+\beta r_k^e)+(T_{r^i}^{\pi_k}Q_{k}^i+T_{r^e}^{\pi_k}Q_{k}^e) (rki?+βrke?)+(Triπk??Qki?+Treπk??Qke?)
→ r k + T r π k Q k \rightarrow r_k+T_r^{\pi_k}Q_k rk?+Trπk??Qk?
在上文提及到的压缩函数应用到上式中仍然成立。

Retrace and transformed Retrace

时序差分(TD)

上文中我们提到了 Q ( x , a ) = r ( x , a ) + y ∑ ∑ Q ( x ′ , b ) P ( x ′ ∣ x , a ) π ( x ′ ∣ b ) Q(x,a)=r(x,a)+y\sum \sum Q(x',b)P(x'|x,a)\pi(x'|b) Q(x,a)=r(x,a)+yQ(x,b)P(xx,a)π(xb)这是一种动态规划方法。
在蒙特卡洛方法中一般是从一个eposide中进行采样,然后根据 Q ( x ) = Q ( x ) + a ( G t ? Q ( x ) ) Q(x)=Q(x)+a(Gt-Q(x)) Q(x)=Q(x)+a(Gt?Q(x))
将动态规划和蒙特卡洛相结合后我们就得到了TD方法: Q ( x ) = Q ( x ) + a ( r + y Q ( x ′ ) ? Q ( x ) ) Q(x)=Q(x)+a(r+yQ(x')-Q(x)) Q(x)=Q(x)+a(r+yQ(x)?Q(x))
( r + y Q ( x ′ ) ? Q ( x ) (r+yQ(x')-Q(x) (r+yQ(x)?Q(x)这一部分我们使用 δ \delta δ进行代替。
在论文中还引入了其他trick从而将全时间范围内的TD考虑进了系统中。
trick \textbf{trick} trick 根据策略函数预测势必同真实分布之间存在一点点区别。为了让模型的预测环境由真实分布转向为策略分布,对每一个TD都需要乘以一个系数这个系数为 π u \frac{\pi}{u} uπ?其中 u u u对应着统计数据,也就是将所有的情况收集起来,用对应transition的数目除以所有transition的数目从而得到一个平均分布。真实情况下还需要做一个变换 c s = λ min ? ( 1 , π ( A s ∣ X s ) A s ∣ X s ) c_s=\lambda \min(1,\frac{\pi(A_s|X_s)}{A_s|X_s}) cs?=λmin(1,As?Xs?π(As?Xs?)?),意思是这个比值不可超过1,同时经过一个线性变换系数 λ \lambda λ(位于[0,1])进行适当地放缩。
PS: u u u π \pi π区别在,当你设计随机性时, u u u中的数据并不完全是 π \pi π得到的,同时每一个决策同下一个决策存在着联系,所以只要是有随机性, u u u π \pi π将会是不相同的分布。
基于此作者在论文中作者给出了一个更全面的TD: T r u , π = E r ~ τ ( x , a , u ) [ Q ( x , a ) + ∑ y t ( ∏ c s ) δ t ] T_r^{u,\pi}=E_{r\sim\tau(x,a,u)}[Q(x,a)+\sum y^t(\prod \limits c_s)\delta_t] Tru,π?=Erτ(x,a,u)?[Q(x,a)+yt(cs?)δt?]
如果用一句话来描述的话,这个公式是一个放缩因子为 y y y的从时刻为0开始评价的并且带有策略纠正的时序差分。

Transformed

上文中我们提及了一种挤压函数,并将其应用在了 B e l l m a n Bellman Bellman方程中。同理,挤压函数也可以应用在TD中作者给的公式为:
T r , h u , π Q ( x , a ) = h ( E τ ~ τ ( x , a , h ) [ h ? 1 ( Q ( x , a ) + ∑ t > = 0 y t ( ∏ s = 1 t c s ) δ t h ) ] ) T^{u,\pi}_{r,h}Q(x,a)=h(E_{_\tau \sim \tau(x,a,h)}[h^{-1}(Q(x,a)+\sum \limits_{t>=0}y^t(\prod \limits_{s=1}^t c_s)\delta_t^h)]) Tr,hu,π?Q(x,a)=h(Eτ?τ(x,a,h)?[h?1(Q(x,a)+t>=0?yt(s=1t?cs?)δth?)])
δ t h = r t + y ∑ a ∈ A π ( a ∣ X t + 1 ) h ? 1 ( Q ( X t + 1 , a ) ) ? h ? 1 ( Q ( X t , A t ) ) \delta^h_t=r_t+y\sum \limits{a\in A}\pi(a|X_{t+1})h^{-1}(Q(X_{t+1},a))-h^{-1}(Q(X_t,A_t)) δth?=rt?+yaAπ(aXt+1?)h?1(Q(Xt+1?,a))?h?1(Q(Xt?,At?))
看起来很复杂,其实就两个要点将公式中各个价值函数替换为压缩函数逆变化,而整体则直接使用压缩函数进行变换。

Extrinsic-Intrinsic Decomposition for Retrace and Transformed Retrace

对于TD形式下的价值函数,我们仍然可以根据内在外在的奖励将各类价值拆分计算后组合。
同时利用挤压函数进行变换,也是没有问题的。
将内在外在奖励分开计算并使用挤压函数做非线性处理以后可得:
π = G ( h ( h ? 1 ( Q k e ) + b h ? 1 ( Q k i ) ) ) \pi=\mathbb{G}(h(h^{-1}(Q_k^e)+bh^{-1}(Q_k^i))) π=G(h(h?1(Qke?)+bh?1(Qki?)))
Q k + 1 i = T r i , h u k , π k Q k i Q_{k+1}^i=T_{r^i,h}^{u_k,\pi_k}Q_k^i Qk+1i?=Tri,huk?,πk??Qki?
Q k + 1 e = T r i , h u k , π k Q k e Q_{k+1}^e=T^{u_k,\pi_k}_{r^i,h}Q_k^e Qk+1e?=Tri,huk?,πk??Qke?

Retrace and transformed Retrace Losses for Neural Net

上文我们介绍了一种基于TD去求价值函数的方法。
下文中的公式基于TD: Q k + 1 = arg?min ? Q ∈ R x × A ∣ ∣ T r u , π Q k ? Q ∣ ∣ Q_{k+1}=\argmin \limits_{Q\in \mathbb{R}^{\mathcal{x}\times\mathcal{A}}}||T_r^{u,\pi}Q_k-Q|| Qk+1?=QRx×Aargmin?Tru,π?Qk??Q,norm中右边一项是TD所得,左边一项是真实的价值函数。
A × X A \times X A×X可能是一个很大的空间,因此使用神经网络去拟合这个空间可以有效地节约资源这一种方法也被称作(online model)。
在实际操作中使用两个network,一个network(叫做target network)用来描述右边的价值函数(一些人也将这个网络称作评价网络),另外一个用来计算TD(value network)。
network的设计思想是统一的即 Q ( x , a ∣ θ ) Q(x,a|\theta) Q(x,aθ)通过参数中储存的知识计算当前状态x下选择a的价值。但这两种network的参数是不同的。
我们可以看到 Q k + 1 = arg?min ? Q ∈ R x × A ∣ ∣ T r u , π Q k ? Q ∣ ∣ Q_{k+1}=\argmin \limits_{Q\in \mathbb{R}^{\mathcal{x}\times\mathcal{A}}}||T_r^{u,\pi}Q_k-Q|| Qk+1?=QRx×Aargmin?Tru,π?Qk??Q类似于一种MSE的形式,因此这个目标函数可以通过梯度下降去优化。
在这个目标函数中,也可以应用挤压函数,其代数形式为: Q k + 1 = arg?min ? Q ∈ R x × A ∣ ∣ T r , h u , π Q k ? Q ∣ ∣ Q_{k+1}=\argmin \limits_{Q\in \mathbb{R}^{\mathcal{x}\times\mathcal{A}}}||T_{r,h}^{u,\pi}Q_k-Q|| Qk+1?=QRx×Aargmin?Tr,hu,π?Qk??Q。目标网络未使用挤压函数的原因是 f f ? 1 ( z ) = z ff^{-1}(z)=z ff?1(z)=z.

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

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