关于强化学习(1)

作者: Mezereon | 来源:发表于2018-10-19 16:48 被阅读3次

    来源于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: 增强信号
    • x^i: 是一个输入向量, x^i=(x^i_1, x^i_2, ..., x^i_n)
    • y_i: 是一个值, 代表第i个输出单元的值
    • W: 权值矩阵, 类似NN里面的边的权值
    • w^i: 权值向量, 即w^i=(w_{i1}, w_{i2}, ..., w_{in})

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

    质量函数的数学定义为, 假设X是一个定义在可数样本空间S上的离散随机变量 S ⊆ R,则其概率质量函数 f_X(x)
    \begin{equation} f_X(x)=\left\{ \begin{array}{rcl} Pr(X=x) & & {x \in S}\\ 0 & & {x \in \mathbb{R} \backslash S} \end{array} \right. \end{equation}

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

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

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

    一个特殊的随机半线性单元是一个伯努利半线性单元, 即y_i是一个随机的伯努利变量, 参数是p_i, 输出要么是0, 要么是1. 即Pr(y_i=0|w^i, x^i)=1-p_i以及Pr(y_i=1|w^i, x^i)=p_i, 因此给出该单元的形式
    \begin{equation} g_i(\xi, w^i, x^i)=\left\{ \begin{array}{rcl} 1-p_i & & {\xi = 0}\\ p_i & & {\xi = 1} \end{array} \right. \end{equation}
    玻尔兹曼机就是用的上述类型的单元

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

    特别地, 假设一个单元这样来计算它的输出:
    \begin{equation} y_i=\left\{ \begin{array}{rcl} 1 & & {if \sum_j{w_{ij}x_j}+\eta > 0}\\ 0 & & {otherwise} \end{array} \right. \end{equation}

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

    image
    如果 \Psi 可微, 则其压缩映射可以为 f_i(s_i)=1-\Psi(-s_i)

    3. 期望的强化性能标准

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

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

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

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

    4. 强化算法

    我们定义权值在强化学习里面的改变如下所示:
    \Delta w_{ij}=\alpha_{ij}(r-b_{ij})e_{ij}
    其中\alpha_{ij}学习率因子, b_{ij}强化的基准(baseline), 并且有e_{ij}=\frac{\partial ln g_i}{\partial w_{ij}}

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

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

    定理1

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

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

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

    我们利用伯努利单元来试着计算, 对于伯努利单元呢, 参数只有p_i=Pr(y_i=1), 我们可以算出
    \begin{equation} g_i(y_i,p_i)=\left\{ \begin{array}{rcl} 1-p_i & & {if y_i = 0}\\ p_i & & {if y_i=1} \end{array} \right. \end{equation}
    进而得到
    \begin{equation} e_i=\frac{\partial lng_i}{\partial p _i}=\left\{ \begin{array}{rcl} -\frac{-1}{1-p_i} & & {if y_i = 0}\\ \frac{1}{p_i} & & { if y_i=1 } \end{array} \right. \end{equation}=\frac{y_i-p_i}{p_i(1-p_i)}
    我们取b_i=1, \alpha_i=\rho_ip_i(1-p_i)
    得到\Delta p_i=\rho_ir(y_i-p_i)

    伯努利单元十分简单, 现在我们考虑伯努利半线性单元
    利用链式法则, 可以得到
    \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

    如果是logistic函数, 注意到其性质:
    f'_i(s_i)=f_i(s_i)(1-f_i(s_i))=p_i(1-p_i)
    故上式可以转化为
    \frac{\partial lng_i(y_i, w^i, x^i)}{\partial w_{ij}}=(y_i-p_i)x_j
    \alpha_{ij}=\alpha, b_{ij}=0可以得到
    \Delta w_{ij}=\alpha r(y_i-p_i)x_j
    我们可以和关联反馈-处罚算法(associative reward-penalty)比较一下, 这里给出他们的格式
    \Delta w_{ij}=\alpha [r(y_i-p_i)+\lambda(1-r)(1-y_i-p_i)]x_j
    其中0<\lambda<1, 如果\lambda = 0, 则变为关联反馈迟钝算法(associative reward-inaction)

    Sutton提出了另一种策略
    \Delta w_{ij}=\alpha (r-\bar{r})(y_i-p_i)x_j
    其中
    \bar{r}(t)=\gamma r(t-1)+(1-\gamma)\bar{r}(t-1)
    类似指数平滑的策略

    相关文章

      网友评论

        本文标题:关于强化学习(1)

        本文链接:https://www.haomeiwen.com/subject/nicuzftx.html