我是靠谱客的博主 忧虑期待,最近开发中收集的这篇文章主要介绍强化学习-->Deep Reinforcement Learning,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

因为逐渐有人将强化学习应用到 N L P NLP NLP 的任务上,有必要了解一些强化学习基础知识,本篇博文总结自台大教授李宏毅关于深度学习的公开课内容。

这里写图片描述

我们可以以上图来理解强化学习过程,我们机器人 a g e n t agent agent 通过 o b s e r v a t i o n observation observation 了解到环境的 S t a t e State State,采取一些 A c t i o n Action Action ,并且改变当前的环境,然后环境会反馈正向或负向的 r e w a r d reward reward a g e n t agent agent

举例来说,让机器人玩电玩游戏:

这里写图片描述

上图中 a g e n t agent agent 每次动作以后都可能随机的改变了环境,并且接受到一个 r e w a r d reward reward,由此观察改变后的环境,做出相应的动作。

这里写图片描述

我们希望 a g e n t agent agent 多玩几个回合,并且***希望在每个回合中最大化的 t o t a l   r e w a r d total reward total reward。***

强化学习难点:

  • R e w a r d   d e l a y Reward delay Reward delay
    例如上面所举得例子里,只有在开火时,才能获得 R e w a r d Reward Reward a g e n t agent agent 学习的最后结果是会疯狂的开火,往左移或往右移,他觉得无所必要,但实际上移动对最后的 t o t a l   R e w a r d total Reward total Reward 至关重要。还比如在下围棋时,短期的牺牲可能或换来最后的胜利。

  • a g e n t agent agent 的行为,也即是 a c t i o n action action 会影响后续他看到的环境。

Asynchronous Advantage Actor-Critic (A3C)

这里写图片描述

Policy-based Approach(Learning an Actor)

这里写图片描述

如果我们把 n e u r a l   n e t w o r k neural network neural network 当做上面所讲的 a c t o r actor actor,那么:

  • 模型的输入:即其观察到的环境(向量、矩阵等)
  • 模型的输出:每一类动作在最后一层以一个神经元表示,对应其输出的***概率***。

这里写图片描述

需要注意的是:在做 p o l i c y   g r e d i e n t policy gredient policy gredient 时,是 s t o c h a s t i c stochastic stochastic 式的,也就是说其 o u t p u t output output 是一个机率,我们是一定的概率选取该动作,而不是一定选取。

那么如何决定这个 a c t i o n action action 的好坏呢?

我们假定 a c t o r actor actor 的模型为 π θ ( s ) pi_{theta}(s) πθ(s),这个 s s s 就是 a g e n t agent agent 所看到的环境, θ theta θ表示神经网络的参数。

我们拿这个 a c t o r actor actor 实际上去玩这个游戏:

这里写图片描述

如上图所示: a g e n t agent agent 玩完***一个回合*** 后,可以得到一个 t o t a l   R e w a r d total Reward total Reward,而由上面的描述可知,这个 t o t a l   r e w a r d total reward total reward 才是我们需要 m a x i m i z e maximize maximize 对象。

因为游戏的随机性,即使每个回合都采用一样的 a c t o r actor actor,在这里就是 a g e n t agent agent 模型一样,不同回合得到的 R θ R_theta Rθ 很有可能不一样,我们记: R ˉ θ bar{R}_{theta} Rˉθ 为该 a c t o r actor actor 的期望值,即使不同的回合,该 a c t o r actor actor 的期望值是相同的,这个期望值就衡量了 a c t o r actor actor 的好坏,好的期望值这个 a c t o r actor actor 就比较好。

那么这个期望值 R θ R_theta Rθ 如何得到呢?

假设一轮游戏所有经过表示为 τ tau τ ,则:

  • τ = { s 1 , α 1 , r 1 , s 2 , α 2 , r 2 , s 3 , α 3 , r 3 , . . . , s T , α T , r T } tau={{s_1, alpha _1, r_1, s_2, alpha _2, r_2, s_3, alpha _3, r_3, ... , s_T, alpha _T, r_T}} τ={s1,α1,r1,s2,α2,r2,s3,α3,r3,...,sT,αT,rT}
  • R ( τ ) = ∑ n = 1 T r n R(tau)=sum_{n=1}^{T}r_n R(τ)=n=1Trn
  • 某一种 τ tau τ 出现的概率与 a c t o r actor actor (模型)有关,即该 τ tau τ 过程出现的概率为 P ( τ ∣ θ ) P(tau| theta) P(τθ)

由上面的分析可知,某一个 a c t o r actor actor 一轮回合下来得到的 r e w a r d reward reward 的期望值:
R ˉ θ = ∑ τ R ( τ ) p ( τ ∣ θ ) bar{R}_{theta}=sum_{tau}R(tau)p(tau|theta) Rˉθ=τR(τ)p(τθ)

但是我们无法遍历所有的 τ tau τ,故只能采取抽样的方式,我们让这个 a c t o r actor actor N N N 场游戏,获得 N N N 个不同的游戏过程,即 { τ 1 , τ 2 , . . . . , τ N } {tau^1, tau^2, ...., tau^N} {τ1,τ2,....,τN},可以理解为从 p ( τ ∣ θ ) p(tau|theta) p(τθ) s a m p l e sample sample N N N 次。即:
R ˉ θ = ∑ τ R ( τ ) p ( τ ∣ θ ) ≈ 1 N ∑ n = 1 N R ( τ n ) bar{R}_{theta}=sum_{tau}R(tau)p(tau|theta)approx frac{1}{N}sum_{n=1}^{N}R(tau^n) Rˉθ=τR(τ)p(τθ)N1n=1NR(τn)

那么现在已经找到了 R ˉ θ bar{R}_{theta} Rˉθ,我们希望找到了一个 θ ∗ theta^* θ,能 m a x θ R ˉ θ underset{theta}{max} bar{R}_{theta} θmaxRˉθ,也就是 θ ∗ = a r g m a x θ R ˉ θ theta^*=argunderset{theta}{max}bar{R}_{theta} θ=argθmaxRˉθ,我们可以利用 G r a d i e n t   a s c e n t Gradient ascent Gradient ascent 来不断逼近:

  • s t a r t   w i t h   θ 0 start with theta^0 start with θ0
  • θ 1 ← θ 0 + η ▽ R ˉ θ 0 theta^1leftarrow theta^0+eta triangledown bar{R}_{theta^0} θ1θ0+ηRˉθ0
  • θ 2 ← θ 1 + η ▽ R ˉ θ 1 theta^2leftarrow theta^1+eta triangledown bar{R}_{theta^1} θ2θ1+ηRˉθ1

那么 ▽ R ˉ θ triangledown bar{R}_{theta} Rˉθ 怎么求呢?

这里写图片描述

可以实际的推导一下 ▽ R ˉ θ triangledown bar{R}_{theta} Rˉθ

这里写图片描述

其中:

这里写图片描述

这里写图片描述

则:

这里写图片描述

可以直观的理解上面 ▽ R ˉ θ triangledown bar{R}_{theta} Rˉθ 结果:

  • R ( τ n ) R(tau^n) R(τn))(***注意这里是一个回合的 r e w a r d reward reward***) 为正的时候,我们希望调整 θ theta θ,增大 p ( α t n ∣ s t n ) p(alpha_t^n|s_t^n) p(αtnstn) ,使其在时间 t t t 更大可能选择 α t n alpha_t^n αtn
  • R ( τ n ) R(tau^n) R(τn) 为正的时候,我们希望调整 θ theta θ,减小 p ( α t n ∣ s t n ) p(alpha_t^n|s_t^n) p(αtnstn) ,使其在时间 t t t 更小可能选择 α t n alpha_t^n αtn

上面的求 ▽ R ˉ θ triangledown bar{R}_{theta} Rˉθ 过程就是 p o l i c y   G r a d i e n t policy Gradient policy Gradient

Critic

给定一个 a c t o r   π actor pi actor π,用 C r i t i c Critic Critic 来衡量 a c t o r actor actor 好或者不好,记做 V π ( s ) V^{pi}(s) Vπ(s),这里 s s s 就是当前的环境状态。 V π ( s ) V^{pi}(s) Vπ(s) 就是当观察到 s s s 后,到一轮游戏结束,我们所能得到的 r e w a r d reward reward 的期望值有多大。以此来更新 a c t o r actor actor(即其中的参数)

这里写图片描述

那么如何得到 V π ( s ) V^{pi}(s) Vπ(s) 呢?

Monte-Carlo

c r i t i c critic critic 观察 π pi π 玩游戏,举例来说:

  • 当看到环境 s a s_a sa 后,直到一轮回合结束,所积累的 r e w a r d reward reward G a G_a Ga,那么 V p i ( s a ) = G a V^{pi}(s_a) = G_a Vpi(sa)=Ga
  • 当看到环境 s b s_b sb 后,直到一轮回合结束,所积累的 r e w a r d reward reward G b G_b Gb,那么 V p i ( s b ) = G b V^{pi}(s_b) = G_b Vpi(sb)=Gb

Temporal-Difference

这里写图片描述

MC VS TD

这里写图片描述

不同的方法,其 V π ( s ) V^{pi}(s) Vπ(s) 值不一样,选哪个方法视具体情况而言。

Actor-Critic

这里写图片描述

我们在上面讲到了 a c t o r actor actor 与环境互动时,会得到一个 r e w a r d reward reward 的反馈,如上面在求 ▽ R ˉ θ triangledown bar{R}_{theta} Rˉθ 时:

这里写图片描述

如上图所示,可以直接把 R ( / t a u n ) R(/tau^n) R(/taun) 看做 c r i t i c critic critic

Advantage Actor-Critic

对于 a c t o r   π ( s ) actor pi(s) actor π(s) c r i t i c   V ( π s ) critic V^{pi}_(s) critic V(πs) 可以共享一些参数,如下图所示:

这里写图片描述

最后

以上就是忧虑期待为你收集整理的强化学习-->Deep Reinforcement Learning的全部内容,希望文章能够帮你解决强化学习-->Deep Reinforcement Learning所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部