深入解析循环神经网络(RNN)的工作原理与应用场景
我们为大家准备了现成的人工智能资料,点击→→腾讯文档←←即可获取介绍
如今,关于机器学习、深度学习和人工神经网络的讨论越来越多。但程序员往往只想使用这些神奇的框架,而大多数人并不想知道它们在幕后是如何工作的。但如果我们能掌握这些背后的原理,我们使用它们不是更好吗?今天我们将讨论循环神经网络及其背后的基本数学原理。这些原理允许循环神经网络做其他神经网络做不到的事情。
〄 RNN(循环神经网络)。
本文的目的是提供对循环神经网络的功能和结构的直观理解。
神经网络通常采用一个自变量(或一组自变量)和一个因变量,然后学习 和 之间的映射(我们称之为训练)。一旦训练完成,当给定一个新的自变量时,它就可以预测相应的因变量。
但是如果数据的顺序很重要怎么办?想象一下所有自变量的顺序是否重要?
让我直观地解释一下。
假设每只蚂蚁都是一个自变量,如果一只蚂蚁朝不同的方向前进,对其他蚂蚁来说并不重要,对吗?但如果蚂蚁的顺序很重要怎么办?
这时,如果一只蚂蚁错过或离开群体,就会影响到后面的蚂蚁。
那么,在机器学习领域,数据的什么顺序很重要?
那么 RNN 如何解决整体顺序很重要的数据呢?我们以自然文本数据为例来解释RNN。
假设我正在对电影的用户评论进行情感分析。
从这部电影很好 - 积极,到这部电影很糟糕 - 消极。
我们可以使用简单的词袋模型对它们进行分类,我们可以预测(正面或负面),但是等等。
如果评论说这部电影不好怎么办?
BOW 模型可能会说这是一个积极的信号,但事实并非如此。 RNN 理解它并将其预测为负面信息。
RNN 是如何做到的?各种RNN模型
1.一对多
RNN 接受输入(例如图像)并生成单词序列。
2. 多对一
https://img0.baidu.com/it/u=2579749908,2129786059&fm=253&fmt=JPEG&app=120&f=JPEG?w=800&h=500
RNN 接受单词序列作为输入并产生输出。
3. 多对多
接下来我们重点关注第二种模式多对一。 RNN 的输入被视为时间步长。
示例:Input(X) = [“这个”,“电影”,“是”,“好”]
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,类似地我们可以计算所有其他时间步。
步:
需要注意的事项是:
https://img2.baidu.com/it/u=3283825930,526367895&fm=253&fmt=JPEG&app=120&f=JPEG?w=865&h=500
前馈输入完成后,我们需要计算误差并使用反向传播方法将误差传播回去。我们使用交叉熵作为成本函数。
BPTT(时间反向传播)
如果你知道正常的神经网络是如何工作的,那么剩下的就非常简单了。如果不确定,可以参考本期之前关于人工神经网络的文章。
我们需要计算以下项目,
由于 W 对于所有时间步长都是相同的,因此我们需要返回并更新它。
〄 RNN 中的 BPTT。
请记住,RNN 的反向传播与人工神经网络的反向传播相同,但这里当前的时间步是根据前一个时间步计算的,因此我们必须从头到尾来回遍历。
如果我们应用链式法则,它看起来像这样
〄 反向传播链式法则。
W 在所有时间步长上都是相同的,因此根据链式法则,展开项越来越多。
循环神经网络讲座幻灯片 中可以看到类似但不同的计算公式的方法。
所以这里和我们一样。
, , 可以使用任何优化算法进行更新,例如梯度下降。
返回实例
现在让我们回到我们的情感分析问题,这里我们有一个 RNN,
我们为每个单词提供一个词向量或一个热编码向量作为输入,并执行前馈和 BPTT。训练完成后,我们可以给出新的文本进行预测。它会学习诸如“不”+积极的词=消极的东西。
RNN 的问题 → 梯度消失/爆炸问题
由于W对于所有时间步都是相同的,在反向传播过程中,当我们返回并调整权重时,信号会变得太弱或太强,导致消失或爆炸的问题。为了避免这种情况,我们使用GRU或LSTM,这将在后续文章中介绍。
⟳学习资料⟲
我们为大家准备了现成的人工智能资料,点击→→腾讯文档←←即可获取
页:
[1]