图解 循环神经网络 面前的数学原理 RNN

引言

如今,关于机器学习、深度学习和人工神经网络的讨论越来越多了。但程序员往往只想把这些魔幻的框架用起来,大多并不想知道面前究竟是如何运作的。然而假设咱们能够把握这些面前的原理,关于经常使用起来岂不更好。

当天咱们就来讨论下循环神经网络及其面前的基本数学原理,这些原理使得循环神经网络能够做到其余神经网络做不到的事情。

〄 RNN(循环神经网络)。

这篇文章的目的是对循环神经网络的配置、结构提供一个直观的意识。

一个神经网络通常取自变量 X(或一组自变量)和因变量y ,而后它学习X 和 y之间的映射(咱们称之为训练),一旦训练成功,当给定一个新的自变量,就能预测相应的因变量。

但假设数据的顺序很关键呢?构想一下,假设一切自变量的顺序都很关键呢?

让我来直观地解释一下吧。

只需假定每个蚂蚁是一个独立变量,假设一个蚂蚁朝着不同的方向行进,对其余蚂蚁来说都没相关,对吧?然而,假设蚂蚁的顺序很关键怎样办?

此时,假设一只蚂蚁错过或许分开了个体,它将会影响到前面的蚂蚁。

那么,在机器学习空间中,哪些数据的顺序是关键的呢?

那么 RNN 是如何处置全体顺序很关键的数据呢?咱们用人造文本数据为例来解释 RNN。

假定我正在对一部电影的用户评论启动情感剖析。

从这部电影好(This movie is good) — 侧面的,再到这部电影差(This movie is bad) — 负面的。

咱们可以经过经常使用繁难的词汇袋模型对它们启动分类,咱们可以预测(侧面的或负面的),然而等等。

假设影评是这部电影不好(This movie is not good),怎样办?

BOW 模型或许会说这是一个踊跃的信号,但实践上并非如此。而 RNN 了解它,并预测它是消极的消息。

一. RNN 如何做到的呢?

1.各类 RNN 模型

(1)、一对多

RNN 接受一个输入,比如一张图像,并生成一个单词序列。

(2)、多对一

RNN 接受一个单词序列作为输入,并生成一个输入。

(3)、多对多

接上去,咱们正专一于第二种形式多对一。RNN 的输入被视为期间步长。

示例: 输入(X) = [" this ", " movie ", " is ", " good "]

this 的期间戳是 x(0),movie 的是 x(1),is 的是 x(2),good 的是 x(3)。

2. 网络架构及数学公式

上方让咱们深化到 RNN 的数学环球。

首先,让咱们了解 RNN 单元格蕴含什么!我宿愿并且假定大家知道前馈神经网络,FFNN 的概括,

〄 暗藏层只要繁多神经元的前馈神经网络示例。

〄 具备繁多暗藏层的前馈神经网络。

在前馈神经网络中,咱们有 X(输入)、H(暗藏)和 Y(输入)。咱们可以有恣意多的暗藏层,然而每个暗藏层的权值 W 和每个神经元对应的输入权值是不同的。

上方,咱们有权值 Wy10 和 Wy11,区分对应于两个不同的层相关于输入 Y 的权值,而 Wh00、Wh01 等代表了不同神经元相关于输入的不同权值。

由于存在期间步长,神经网络单元蕴含一组前馈神经网络。该神经网络具备顺序输入、顺序输入、多期间步长和多暗藏层的特点。

与 FFNN 不同的是,这里咱们不只从输入值计算暗藏层值,还从之前的期间步长值计算暗藏层值。关于期间步长,暗藏层的权值(W)是相反的。上方展现的是 RNN 以及它触及的数学公式的完整图片。

在图片中,咱们正在计算暗藏层的期间步长 t 的值:

〄 不同的激活函数。

上方咱们只计算了 Ht,相似地,咱们可以计算一切其余的期间步长。

步骤:

须要留意的是:

一旦前馈输入成功,咱们就须要计算误差并经常使用反向流传法来反向流传误差,咱们经常使用交叉熵作为代价函数。

3. BPTT(期间反向流传)

假设你知道反常的神经网络是如何上班的,剩下的就很繁难了,假设不分明,可以参考本号前面关于人工神经网络的文章。

咱们须要计算上方各项,

由于 W 关于一切的期间步长都是一样的,咱们须要前往到前面,来启动降级。

〄 RNN 中的 BPTT。

记住 RNN 的反向流传和人工神经网络的反向流传是一样的,然而这里的期间步长是基于之前的期间步长计算的,所以咱们必定从头到尾遍从来回。

假设咱们运用链式规律,就像这样

〄 反向流传链式规律。

在一切期间步长上的 W 都相反,因此按链式规律倒退项越来越多。

回到实例

如今咱们回过头来谈谈咱们的情感剖析疑问,这里有一个 RNN,

咱们给每个单词提供一个词向量或许一个热编码向量作为输入,并启动前馈和 BPTT,一旦训练成功,咱们就可以给出新的文原本启动预测。它会学到一些物品,比如不+踊跃的词 = 消极的。

RNN 的疑问 → 隐没/爆炸梯度疑问

由于 W 关于一切的期间步长都是一样的,在反向流传环节中,当咱们回去调整权重时,信号会变得要么太弱要么太强,从而造成要么隐没要么爆炸的疑问。

您可能还会对下面的文章感兴趣: