前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于强化学习(1)

关于强化学习(1)

作者头像
Mezereon
发布2018-11-07 15:18:48
1K0
发布2018-11-07 15:18:48
举报
文章被收录于专栏:MyBlog

来源于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

: 增强信号

x^i
x^i

: 是一个输入向量,

x^i=(x^i_1, x^i_2, ..., x^i_n)
x^i=(x^i_1, x^i_2, ..., x^i_n)
y_i
y_i

: 是一个值, 代表第

i
i

个输出单元的值

W
W

: 权值矩阵, 类似NN里面的边的权值

w^i
w^i

: 权值向量, 即

w^i=(w_{i1}, w_{i2}, ..., w_{in})
w^i=(w_{i1}, w_{i2}, ..., w_{in})

对于每一个

i
i

, 我们定义

g_i(\xi, x^i, w^i)=Pr(y_i = \xi | x^i, w^i)
g_i(\xi, x^i, w^i)=Pr(y_i = \xi | x^i, w^i)

,

g_i
g_i

是一个概率质量函数, 所谓概率质量函数即离散的概率密度函数.

质量函数的数学定义为, 假设

X
X

是一个定义在可数样本空间

S
S

上的离散随机变量

S ⊆ R
S ⊆ R

,则其概率质量函数

f_X(x)
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}
\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
y_i

连续自然就变成概率密度函数,

w^i
w^i

包含所有的跟第

i
i

个单元的相关的输入输出行为的参数, 一个更为准确的定义为

g_i(\xi, w^i,x^i )=Pr(y_i=\xi|W, x^i)
g_i(\xi, w^i,x^i )=Pr(y_i=\xi|W, x^i)

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

我们定义一个随机半线性单元, 即输出是

y_i
y_i

, 由给定的概率分布得到, 其概率质量函数为

p_i=f_i(s_i)
p_i=f_i(s_i)

其中

f_i
f_i

可微的压缩映射, 并且有:

s_i=(w^i)^Tx^i=\sum_j{w_{ij}x_j}
s_i=(w^i)^Tx^i=\sum_j{w_{ij}x_j}

一个特殊的随机半线性单元是一个伯努利半线性单元, 即

y_i
y_i

是一个随机的伯努利变量, 参数是

p_i
p_i

, 输出要么是0, 要么是1. 即

Pr(y_i=0|w^i, x^i)=1-p_i
Pr(y_i=0|w^i, x^i)=1-p_i

以及

Pr(y_i=1|w^i, x^i)=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}
\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}}
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}
\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
\eta

是依据给定的分布

\Psi
\Psi

随机产生 利用伯努利半线性单元的定义, 我们发现

image

如果

\Psi
\Psi

可微, 则其压缩映射可以为

f_i(s_i)=1-\Psi(-s_i)
f_i(s_i)=1-\Psi(-s_i)

3. 期望的强化性能标准

这里给出了一些衡量强化的指标, 对于一个强化学习网络来说, 我们的性能测量为

E(r|W)
E(r|W)

, 其中

E
E

是期望,

r
r

是强化信号,

W
W

是网络的权值矩阵.

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

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

注意到,

E(r|W)
E(r|W)

独立于时间的才有意义, 我们的目标就是找到

W
W

, 使得

E(r|W)
E(r|W)

最大化.

4. 强化算法

我们定义权值在强化学习里面的改变如下所示:

\Delta w_{ij}=\alpha_{ij}(r-b_{ij})e_{ij}
\Delta w_{ij}=\alpha_{ij}(r-b_{ij})e_{ij}

其中

\alpha_{ij}
\alpha_{ij}

学习率因子,

b_{ij}
b_{ij}

强化的基准(baseline), 并且有

e_{ij}=\frac{\partial ln g_i}{\partial w_{ij}}
e_{ij}=\frac{\partial ln g_i}{\partial w_{ij}}

假设

b_{ij}
b_{ij}

条件独立于

y_i, W, x^i
y_i, W, x^i

以及非负的

\alpha_{ij}
\alpha_{ij}

, 主要依赖于

w^i
w^i

t
t

, 任何具有上述形式的算法都称之为一个强化算法(REINFORCE Algorithm)

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

定理1

对于任意的REINFORCE算法,

E\{\Delta W|W\}
E\{\Delta W|W\}

\nabla_WE\{r|W\}
\nabla_WE\{r|W\}

的内积是非负的, 更进一步, 如果

\alpha_{ij}>0
\alpha_{ij}>0

, 那么当仅当

\nabla_WE\{r|W\}=0
\nabla_WE\{r|W\}=0

, 内积才为0, 如果

\alpha_{ij}
\alpha_{ij}

是和

i,j
i,j

独立的话, 有

E\{\Delta W|W\}=\alpha\nabla_WE\{r|W\}
E\{\Delta W|W\}=\alpha\nabla_WE\{r|W\}

,

我们上面所提及的

\nabla_WE\{r|W\}
\nabla_WE\{r|W\}

是性能度量在权值空间上的梯度,

E\{\Delta W|W\}
E\{\Delta W|W\}

为权值空间的平均更新向量, 对于任意的REINFORCE算法来说.

特别地, 这意味着对于任意的这样的算法, 在权值空间上的平均更新向量在这个性能指标增长的方向上, 该定理的最后一句, 等价于对于每一个权值

w_{ij}
w_{ij}

, 有

\frac{(r-b_{ij})\partial ln g_i}{\partial w_{ij}}
\frac{(r-b_{ij})\partial ln g_i}{\partial w_{ij}}

这个是对

\partial E\{r|W\}/\partial w_{ij}
\partial E\{r|W\}/\partial w_{ij}

的无偏估计

我们利用伯努利单元来试着计算, 对于伯努利单元呢, 参数只有

p_i=Pr(y_i=1)
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} 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)}
\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)
b_i=1, \alpha_i=\rho_ip_i(1-p_i)

得到

\Delta p_i=\rho_ir(y_i-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
\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)
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
\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
\alpha_{ij}=\alpha, b_{ij}=0

可以得到

\Delta w_{ij}=\alpha r(y_i-p_i)x_j
\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
\Delta w_{ij}=\alpha [r(y_i-p_i)+\lambda(1-r)(1-y_i-p_i)]x_j

其中

0<\lambda<1
0<\lambda<1

, 如果

\lambda = 0
\lambda = 0

, 则变为关联反馈迟钝算法(associative reward-inaction)

Sutton提出了另一种策略

\Delta w_{ij}=\alpha (r-\bar{r})(y_i-p_i)x_j
\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)
\bar{r}(t)=\gamma r(t-1)+(1-\gamma)\bar{r}(t-1)

类似指数平滑的策略

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.10.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0. 概述
  • 1. 介绍
  • 2. 连接形网络的强化学习
  • 3. 期望的强化性能标准
  • 4. 强化算法
    • 定理1
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档