RNN 及其变体的数学理解

发布于:2024-05-09 ⋅ 阅读:(32) ⋅ 点赞:(0)

一、介绍:

        专家预计人工智能(AI)将致力于创造更美好的生活。他们表示,随着未来将提供更多的计算能力,即更多的图形处理单元,人工智能将为人类带来更多进步和生产力。这篇特别的文章讨论了 RNN、它的变体(LSTM、GRU)及其背后的数学。

        如今,人们可以看到很多这样的人工智能应用程序,例如打击人口贩运、医疗保健顾问、自动驾驶汽车、入侵检测和预防、物体跟踪和计数、人脸检测和识别、疾病预测和人类虚拟援助。         RNN 是一种接受可变长度输入并产生可变长度输出的神经网络。它用于开发各种应用程序,例如文本到语音、聊天机器人、语言建模、情感分析、时间序列股票预测、机器翻译和名称实体识别。

文中的内容:

  • 什么是 RNN 以及它与前馈神经网络有何不同
  • RNN 背后的数学
  • RNN 变体(LSTM 和 GRU)
  • RNN 的实际应用
  • 最后说明

二、什么是 RNN 以及它与前馈神经网络有何不同

        RNN 是一种循环神经网络,其当前输出不仅取决于其当前值,还取决于过去的输入,而对于前馈网络,当前输出仅取决于当前输入。看看下面的例子可以更好地理解 RNN。

亚伯拉罕是以色列人文始祖。

亚伯拉罕是美国总统。

        如果有人被问到谁是亚伯拉罕,他/她会说亚伯拉罕是不同的,一个来自圣经,另一个来美国总统。现在,如果将相同的任务交给机器来给出输出,则在它知道完整的上下文之前它无法说出,即预测单个单词的身份取决于了解整个上下文。此类任务可以通过 Bi-LSTM(RNN 的变体)来实现。 RNN 因其学习上下文的能力而适合此类工作。其他应用包括语音到文本转换、构建虚拟辅助、时间序列股票预测、情感分析、语言建模和机器翻译。另一方面,前馈神经网络产生的输出仅取决于当前输入。例如图像分类任务、图像分割或对象检测任务。此类网络的一种类型是卷积神经网络(CNN)。请记住,RNN 和 CNN 都是有监督的深度学习模型,即它们在训练阶段都需要标签。

三、RNN 背后的数学

3.1 RNN的数学方程

        要了解 RNN 背后的数学原理,请看下图

RNN 背后的数学

RNN 背后的数学

        正如第一个标题中所讨论的,输出取决于当前和过去的输入。令I 1为第一个输入,其维度为n*1,其中 n 是词汇表的长度。S 0是具有 d 个神经元的第一个 RNN 单元的隐藏状态。对于每个单元格,输入隐藏状态应该是前一个。对于第一个单元,用零或某个随机数初始化S 0 ,因为没有看到先前的状态。U是另一个维度为d*n的矩阵,其中d是第一个 RNN 单元中的神经元数量,n是输入词汇量大小。W是另一个矩阵,其维度为d*db是偏差,其维度为d*1。为了找到第一个单元的输出,采用另一个矩阵V ,其维度为k*d,其中c是维度为k*1 的偏差。

从数学上讲,第一个 RNN单元的输出如下

S 1 = UI 1 + WS 0 + b
O 1 = VS 1 +c

一般来说,

S n = UI n + WS n-1 + b
O n = VS n + c

上述方程的关键要点

        一般来说,输出O n取决于S n且S n取决于S n-1。 S n-1取决于S n-2。过程一直进行到达到S 0为止。这清楚地表明第 n个时间步的输出取决于所有先前的输入。

3.2 参数和梯度

        RNN 中的参数U、V、b、c、W  在所有 RNN 单元之间共享。共享的原因是创建一个可以在所有时间步上应用的通用函数。参数是可学习的,负责训练模型。在每个时间步,都会计算损失并通过梯度下降算法反向传播。

3.2.1  损耗相对于V的梯度

        梯度表示切线的斜率,并指向函数增长率最大的方向。我们有兴趣找到损失最小的 V。从损失来看,它意味着成本函数或误差。简单来说,成本函数是真实值与预测值之间的差值。移动方向与相对于 V 的损失梯度方向相反。使用以下数学公式获得 V 的新数学值

        其中d(L)/d(V)是从时间步长获得的所有损失的总和。有两种更新权重的方法。一种是计算定义批次的梯度然后更新它(Mini Batch)或按样本计算并更新(随机)。在计算d(L)/d(V)期间,应用链式法则。看下图来理解计算和链式法则。

用于计算 V 损失梯度的链式规则实现

用于计算 V 损失梯度的链式规则实现

3.2.2 损失相对于W的梯度

        W乘以S。为了计算任意时间步上损失相对于权重的导数,应用链式法则来考虑从S nS 0到达W的所有路径。这意味着由于任何错误的 S n,W 都会受到影响。换句话说,一些错误的信息来自某些隐藏状态,从而导致损失。从数学上讲,权重更新如下

        要记住的关键点是,梯度和权重要么在每个样本中更新,要么在批次之后更新。这取决于算法选择随机还是小批量。看一下下面的屏幕截图,以更精致的方式形象化这个概念。

关于 W 的梯度下降

关于 W 的梯度下降

四、RNN 变体(LSTM 和 GRU)

        通过上面的讨论,我希望 RNN 背后的数学原理现在已经清楚了。 RNN 的主要缺点是无论序列长度如何,状态向量的维度保持不变。考虑到一种情况,如果输入序列的长度很长,则新信息会被添加到同一状态向量中。当到达距离第一个时间步很远的第n个时间步时,信息会变得非常混乱。在这样的位置,并不清楚在时间步骤1或2提供的信息是什么。它类似于一块尺寸固定的白板,可以在上面不断地书写。在某些位置,它会变得非常混乱。人们甚至无法阅读船上写的内容。为了解决这些问题,其变体被开发为所谓的 LSTM 和 GRU。他们的工作遵循选择性阅读、写作和遗忘的原则。现在白板(类似于状态向量)是相同的,但仅在时间步写入所需的信息,并过滤掉不必要的信息,使顺序神经网络适合长序列的训练。从这里可以看出 LSTM 和 GRU 之间的区别。

4.1 LSTM(长短期记忆)  

        数学表示:

        遵循的策略是选择性地写、读和忘记。

选择性写入

 选择性写入

        选择性写入:

        在 RNN 中,   S t- 1与x t一起输入 到单元中,而在 LSTM 中,S t-1使用另一个向量t-1 转换为h t-1。这个过程称为选择性写入。选择性写入的数学方程如下

        选择性阅读:

        看一下下图来理解这个概念

选择性阅读

选择性阅读

        h t-1与x t 相加得到 s t。然后对 (图中写为tc )进行阿达玛积 ,得到t。这称为输入门。只有选择性信息才会进入,这个过程称为选择性读取。从数学上讲,选择性读取的方程如下:

选择性忘记:

        看一下下图来理解这个概念

选择性遗忘

选择性遗忘

        s t-1是与ft 的 阿达玛积,称为选择性遗忘。总体t是通过选择性阅读和选择性遗忘相加得到的。请看下图来理解上面的说法

添加选择性阅读和忘记

添加选择性阅读和忘记 

        从数学上讲,选择性遗忘的方程如下:

        注意: GRU(门控循环单元)没有忘记门。它只有输入门和输出门。

4.2 RNN 的实际应用:

        RNN 的用例包括语音到文本转换、构建虚拟辅助、情感分析、时间序列股票预测、机器翻译、语言建模。更多研究正在使用 RNN 及其变体创建生成式聊天机器人。其他应用程序包括图像字幕、从小段落生成大文本和文本摘要器(像 Inshorts 这样的应用程序正在使用此功能)。音乐创作和呼叫中心分析是使用 RNN 的其他领域。

五、最后注意事项:

        简而言之,从开头一段就可以理解 RNN 和前馈神经网络的区别,然后深入了解 RNN 背后的数学原理。最后,通过解释 RNN 的不同变体以及 RNN 的一些实际应用来完成本文。为了研究 RNN 的应用,必须掌握微积分、导数方面的丰富知识,尤其是链式法则的工作原理。研究完理论后,应该用您最喜欢的编码语言编写有关这些主题的一些代码。


网站公告

今日签到

点亮在社区的每一天
去签到