强化学习笔记(1)

基于Simple statistical gradient-following algorithms for connectionist reinforcement learning

0. 概述

该文章提出了一个关于联合强化学习算法的广泛的类别, 针对包含随机单元的有连接的网络, 这些算法, 称之为强化算法, 看上去像是沿着某个方向对权重进行调整, 依赖于期望强化的梯度, 比如在即时强化的任务中和确定受限的延迟强化形式的任务中, 不用显式地计算梯度估计甚至存储这些计算这种估计的信息. 会给出这种算法的具体例子, 有一些和现存的确定的算法有很近的联系, 有些是新颖的但是却可能由于其正确性比较有趣. 当然也给出了一些展现怎样一个算法能够被自然地和反向传播(Back propagation)集成的结果. 文章以一个由关于这个算法的使用的一系列额外问题组成的简短的讨论而结束, 包括那些是已知的关于受限制的特性以及更远的可能可以用来帮助开发相似的但是潜在更强的强化学习算法的考虑.

1. 介绍

强化学习的一个通用的框架包含许多问题来自许多在一个极端去学习控制其他的函数优化, 在这些独立的领域的研究趋向于去分析不同的独立的问题集合, 这就像是对于自动化agent在现实环境下的操作的一个有效的强化学习技术将不得不联合解决所有的这些问题. 然而仍然存在有用的关注于强化学习问题的受限的形式的研究策略来简化使得问题易于处理. 重要的是对于大多数有挑战的问题的结果将会可能需要集成许多可应用的技术.

在这篇文章中, 我们提出了对于确定的相关任务的算法的分析性结果, 意味着学习者只需要表现输入输出映射, 并且, 有一个额外的限制性, 即, 包含即时的强化, 也就是被提供给学习者的强化只通过大多数输入输出对来进行确定.

当然, 延迟性的强化也是很重要的, 之后受到了应有的关注, 一个广泛使用的来开发应对这样的任务的算法的方法, 即将一个即时强化学习者和一个自适应预测者或者基于Sutton提出来的时间差分法的批评者(critic), 这个**"actor-critic"算法, Barto, Sutton和Anderson都有研究, Sutton将其格式变得清晰, 比如Watkins的Q-learning算法**

一个更远的假设是学习者的搜索行为, 通常是一个对于任意形式的强化学习算法来说必要的部分, 通过学习者随机性的输入和输出来提供. 这里有一个通用的方法来实现期望的搜索行为, 值得注意的是其他的策略有时候在特定的案例里面有效, 包括系统化搜索(systematic search)或者明显的最优选择的连续选择(consistent selection). 后面的策略当选择动作的女神由估计那些是过度乐观以及哪些在连续的经验下变得更加现实起作用, 比如Nilsson的A*搜索.

另外, 所有的结果将会通过有连接的网络被再次制定, 主要关注点为跟从或者估计相关梯度的算法. 当然这样的算法我们知道通常会有一些限制, 这也是它们的研究是有用的原因. 首先, 作为反向传播的经验, 这个梯度看上去对于生成算法来说提供了一个有力的和富有启发性基础, 并且是易于实现的和在某些情况下效果很好. 其次, 当需要更为复杂的算法的时候, 梯度计算通常作为这样的算法的核心. 当然, 对于已有的确定算法的范围类似产生这样一个梯度分析的算法, 我们对于他们的理解可能增强了.

另一个这里所提出的算法的有区别的特征是, 它们能够被概略地描述为统计意义上的攀爬一个合适的梯度, 它们设法不用显式地计算一个梯度估计或者存储这些能够被直接计算的信息. 这就是为什么它们被称之为simple的原因. 可能一个更具信息化的形容词为无模型基础的(non-model-based), 则会在文章后期进行讨论.

2. 连接形网络的强化学习

这里给出部分符号的解释

  • r r r: 增强信号
  • x i x^i xi: 是一个输入向量, x i = ( x 1 i , x 2 i , . . . , x n i ) x^i=(x^i_1, x^i_2, ..., x^i_n) xi=(x1i,x2i,...,xni)
  • y i y_i yi: 是一个值, 代表第 i i i个输出单元的值
  • W W W: 权值矩阵, 类似NN里面的边的权值
  • w i w^i wi: 权值向量, 即 w i = ( w i 1 , w i 2 , . . . , w i n ) w^i=(w_{i1}, w_{i2}, ..., w_{in}) wi=(wi1,wi2,...,win)

对于每一个 i i i, 我们定义 g i ( ξ , x i , w i ) = P r ( y i = ξ ∣ x i , w i ) g_i(\xi, x^i, w^i)=Pr(y_i = \xi | x^i, w^i) gi(ξ,xi,wi)=Pr(yi=ξxi,wi), g i g_i gi是一个概率质量函数, 所谓概率质量函数即离散的概率密度函数.

质量函数的数学定义为, 假设 X X X是一个定义在可数样本空间 S S S上的离散随机变量 S ⊆ R S ⊆ R SR,则其概率质量函数 f X ( x ) f_X(x) fX(x)
KaTeX parse error: No such environment: equation at position 7: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ f_X(x)=\left\{…

y i y_i yi连续自然就变成概率密度函数, w i w^i wi包含所有的跟第 i i i个单元的相关的输入输出行为的参数, 一个更为准确的定义为
g i ( ξ , w i , x i ) = P r ( y i = ξ ∣ W , x i ) g_i(\xi, w^i,x^i )=Pr(y_i=\xi|W, x^i) gi(ξ,wi,xi)=Pr(yi=ξW,xi)

我们知道一来一回类似神经网络的BP训练, 那么强化学习之中, 在新的输入之前, 前一步的输入之后, 称一个时间步, 我们主要关注每个时间步的细节.

我们定义一个随机半线性单元, 即输出是 y i y_i yi, 由给定的概率分布得到, 其概率质量函数为
p i = f i ( s i ) p_i=f_i(s_i) pi=fi(si)
其中 f i f_i fi可微的压缩映射, 并且有:
s i = ( w i ) T x i = ∑ j w i j x j s_i=(w^i)^Tx^i=\sum_j{w_{ij}x_j} si=(wi)Txi=jwijxj

一个特殊的随机半线性单元是一个伯努利半线性单元, 即 y i y_i yi是一个随机的伯努利变量, 参数是 p i p_i pi, 输出要么是0, 要么是1. 即 P r ( y i = 0 ∣ w i , x i ) = 1 − p i Pr(y_i=0|w^i, x^i)=1-p_i Pr(yi=0wi,xi)=1pi以及 P r ( y i = 1 ∣ w i , x i ) = p i Pr(y_i=1|w^i, x^i)=p_i Pr(yi=1wi,xi)=pi, 因此给出该单元的形式
KaTeX parse error: No such environment: equation at position 7: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ g_i(\xi, w^i, …
玻尔兹曼机就是用的上述类型的单元

关于压缩映射, 可以使用我们熟悉的logistics函数
f i ( s i ) = 1 1 + e − s i f_i(s_i)=\frac{1}{1+e^{-s_i}} fi(si)=1+esi1
与上述单元结合起来, 称之为伯努利-逻辑斯蒂单元

特别地, 假设一个单元这样来计算它的输出:
KaTeX parse error: No such environment: equation at position 7: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ y_i=\left\{ \b…

其中 η \eta η是依据给定的分布 Ψ \Psi Ψ随机产生
利用伯努利半线性单元的定义, 我们发现

![Alt text](./1539932921404.png)
如果$\Psi$可微, 则其压缩映射可以为$$f_i(s_i)=1-\Psi(-s_i)$$

3. 期望的强化性能标准

这里给出了一些衡量强化的指标, 对于一个强化学习网络来说, 我们的性能测量为 E ( r ∣ W ) E(r|W) E(rW), 其中 E E E是期望, r r r是强化信号, W W W是网络的权值矩阵.

我们需要使用期望值是因为潜在的随机性:

  • 对于网络来说, 输入的环境的选择
  • 输出的网络的选择对应任意特定的输入
  • 环境的强化值的选择, 对于特定的输入输出对

注意到, E ( r ∣ W ) E(r|W) E(rW)独立于时间的才有意义, 我们的目标就是找到 W W W, 使得 E ( r ∣ W ) E(r|W) E(rW)最大化.

4. 强化算法

我们定义权值在强化学习里面的改变如下所示:
Δ w i j = α i j ( r − b i j ) e i j \Delta w_{ij}=\alpha_{ij}(r-b_{ij})e_{ij} Δwij=αij(rbij)eij
其中 α i j \alpha_{ij} αij学习率因子, b i j b_{ij} bij强化的基准(baseline), 并且有 e i j = ∂ l n g i ∂ w i j e_{ij}=\frac{\partial ln g_i}{\partial w_{ij}} eij=wijlngi

假设 b i j b_{ij} bij条件独立于 y i , W , x i y_i, W, x^i yi,W,xi以及非负的 α i j \alpha_{ij} αij, 主要依赖于 w i w^i wi t t t, 任何具有上述形式的算法都称之为一个强化算法(REINFORCE Algorithm)

其实这个名字是缩写, 即**“REward Increment = Nonnegative Factor times Offset Reinforcement times Characteristic Eligibility”**

定理1

对于任意的REINFORCE算法, E { Δ W ∣ W } E\{\Delta W|W\} E{ΔWW} ∇ W E { r ∣ W } \nabla_WE\{r|W\} WE{rW}的内积是非负的, 更进一步, 如果 α i j > 0 \alpha_{ij}>0 αij>0, 那么当仅当 ∇ W E { r ∣ W } = 0 \nabla_WE\{r|W\}=0 WE{rW}=0, 内积才为0, 如果 α i j \alpha_{ij} αij是和 i , j i,j i,j独立的话, 有 E { Δ W ∣ W } = α ∇ W E { r ∣ W } E\{\Delta W|W\}=\alpha\nabla_WE\{r|W\} E{ΔWW}=αWE{rW},

我们上面所提及的 ∇ W E { r ∣ W } \nabla_WE\{r|W\} WE{rW}是性能度量在权值空间上的梯度, E { Δ W ∣ W } E\{\Delta W|W\} E{ΔWW}为权值空间的平均更新向量, 对于任意的REINFORCE算法来说.

特别地, 这意味着对于任意的这样的算法, 在权值空间上的平均更新向量在这个性能指标增长的方向上, 该定理的最后一句, 等价于对于每一个权值 w i j w_{ij} wij, 有 ( r − b i j ) ∂ l n g i ∂ w i j \frac{(r-b_{ij})\partial ln g_i}{\partial w_{ij}} wij(rbij)lngi
这个是对 ∂ E { r ∣ W } / ∂ w i j \partial E\{r|W\}/\partial w_{ij} E{rW}/wij的无偏估计

我们利用伯努利单元来试着计算, 对于伯努利单元呢, 参数只有 p i = P r ( y i = 1 ) p_i=Pr(y_i=1) pi=Pr(yi=1), 我们可以算出
KaTeX parse error: No such environment: equation at position 7: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ g_i(y_i,p_i)=\…
进而得到
KaTeX parse error: No such environment: equation at position 7: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ e_i=\frac{\par…
我们取 b i = 1 , α i = ρ i p i ( 1 − p i ) b_i=1, \alpha_i=\rho_ip_i(1-p_i) bi=1,αi=ρipi(1pi)
得到 Δ p i = ρ i r ( y i − p i ) \Delta p_i=\rho_ir(y_i-p_i) Δpi=ρir(yipi)

伯努利单元十分简单, 现在我们考虑伯努利半线性单元
利用链式法则, 可以得到
∂ l n g i ( y i , w i , x i ) ∂ w i j = ∂ l n g i ( y i , w i , x i ) ∂ p i ∂ p i ∂ s i ∂ s i ∂ w i j = y i − p i p i ( 1 − p i ) f i ′ ( s i ) x j \frac{\partial lng_i(y_i, w^i, x^i)}{\partial w_{ij}}=\frac{\partial lng_i(y_i, w^i, x^i)}{\partial p_i}\frac{\partial p_i}{\partial s_{i}}\frac{\partial s_i}{\partial w_{ij}}=\frac{y_i-p_i}{p_i(1-p_i)}f'_i(s_i)x_j wijlngi(yi,wi,xi)=pilngi(yi,wi,xi)sipiwijsi=pi(1pi)yipifi(si)xj

如果是logistic函数, 注意到其性质:
f i ′ ( s i ) = f i ( s i ) ( 1 − f i ( s i ) ) = p i ( 1 − p i ) f'_i(s_i)=f_i(s_i)(1-f_i(s_i))=p_i(1-p_i) fi(si)=fi(si)(1fi(si))=pi(1pi)
故上式可以转化为
∂ l n g i ( y i , w i , x i ) ∂ w i j = ( y i − p i ) x j \frac{\partial lng_i(y_i, w^i, x^i)}{\partial w_{ij}}=(y_i-p_i)x_j wijlngi(yi,wi,xi)=(yipi)xj
α i j = α , b i j = 0 \alpha_{ij}=\alpha, b_{ij}=0 αij=α,bij=0可以得到
Δ w i j = α r ( y i − p i ) x j \Delta w_{ij}=\alpha r(y_i-p_i)x_j Δwij=αr(yipi)xj
我们可以和关联反馈-处罚算法(associative reward-penalty)比较一下, 这里给出他们的格式
Δ w i j = α [ r ( y i − p i ) + λ ( 1 − r ) ( 1 − y i − p i ) ] x j \Delta w_{ij}=\alpha [r(y_i-p_i)+\lambda(1-r)(1-y_i-p_i)]x_j Δwij=α[r(yipi)+λ(1r)(1yipi)]xj
其中 0 &lt; λ &lt; 1 0&lt;\lambda&lt;1 0<λ<1, 如果 λ = 0 \lambda = 0 λ=0, 则变为
关联反馈迟钝算法(associative reward-inaction)

Sutton提出了另一种策略
Δ w i j = α ( r − r ˉ ) ( y i − p i ) x j \Delta w_{ij}=\alpha (r-\bar{r})(y_i-p_i)x_j Δwij=α(rrˉ)(yipi)xj
其中
r ˉ ( t ) = γ r ( t − 1 ) + ( 1 − γ ) r ˉ ( t − 1 ) \bar{r}(t)=\gamma r(t-1)+(1-\gamma)\bar{r}(t-1) rˉ(t)=γr(t1)+(1γ)rˉ(t1)
类似指数平滑的策略

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值