首页 > 自考资讯 > 高考百科

深入剖析递归神经网络 – RNN 简介(1)(递归神经网络的应用领域)

小条 2024-10-30

51b4faf3cfb5467f94f085fe82e72dab~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874214&x-signature=DLGKzl7nVeAOsm5DJSik19KKuQA%3D 递归神经网络(RNN)是流行的模型,在许多NLP 任务中显示出巨大的前景。然而,尽管RNN 最近很受欢迎,但能够充分解释RNN 如何工作以及如何实现它们的资源却很有限。

作为本教程的一部分,您将实现一个基于循环神经网络的语言模型。应用语言模型有两个方面。一是每个句子都可以根据其在现实世界中发生的可能性进行评分。这提供了语法和语义准确性的衡量标准。此类模型通常用作机器翻译系统的一部分。然后可以使用语言模型生成新文本(我认为这是一个更酷的应用程序)。训练基于莎士比亚的语言模型使其能够生成类似莎士比亚的文本

我假设您对基本神经网络有一些了解。如果没有,您可能需要阅读《从头开始实现神经网络》,其中解释了非周期网络背后的想法和实现。

什么是核糖核酸?

RNN 背后的想法是利用顺序信息。传统的神经网络假设所有输入(和输出)都是彼此独立的。但对于许多任务来说,这是一个坏主意。如果您想预测句子中的下一个单词,最好知道它之前是哪个单词。 RNN 被称为递归,因为它们对序列的每个元素执行相同的任务,并且输出取决于先前的计算。

考虑RNN 的另一种方式是将它们视为具有捕获有关先前计算的信息的“记忆”。理论上,RNN 可以使用任意长度序列中的信息,但实际上它们仅限于返回固定数量的步骤(稍后会详细介绍)。典型的RNN 如下所示:

62a370b05235427681b84192b67ffc3f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874214&x-signature=xj5K%2FTcfW9X28itA0VmoHAugHt0%3D 递归神经网络及其前向计算中涉及的计算的时间膨胀。

上图显示了一个已部署(或正在部署)到完整网络中的RNN。扩张仅仅意味着写出网络的完整序列。例如,如果感兴趣的序列是一个5 个单词的句子,则网络将扩展为5 层神经网络,每个单词一层。控制RNN 中计算的方程为:

xt 是时间步t 的输入。例如,x1 将是对应于句子的第二个单词的one-hot 向量。 st 是时间步t 的隐藏状态,是网络的“记忆”。 st 是根据先前的隐藏状态和当前步骤的输入计算的: st=f (Uxt + Wst1 ) 函数f 通常是非线性的,例如tanh 或ReLU。计算第一个隐藏状态所需的s1 通常初始化为全0。 ot 是步骤t 的输出。例如,如果您想预测句子中的下一个单词,它将是来自词汇表的概率向量。 ot=软最大值(Vst) 这里有几点需要注意。

隐藏状态st 可以被认为是网络的记忆。 st 检索有关所有先前时间步骤中发生的情况的信息。该步骤的输出只是根据当时可用的内存计算t。这实际上有点复杂,因为如前所述,st 通常不会从时间步之前检索太多信息。与每层使用不同参数的传统深度神经网络不同,RNN 在每一步****享相同的参数(上面的U、V、W)。这反映了这样一个事实:每个步骤都执行相同的任务,只是使用不同的输入。这显着减少了需要学*的参数总数。尽管上图显示了每个时间步的输出,但这可能不是必需的,具体取决于您的任务。例如,在预测句子的情感时,您可能只关心最终输出,而不关心每个单词后面的情感。同样,并非所有时间步都需要输入。 RNN 的主要特征是捕获序列信息的隐藏状态。

RNN能做什么?

RNN 在许多NLP 任务中取得了巨大成功。在这一点上,应该提到的是,最常用的RNN 类型是LSTM。 LSTM 比常规RNN 更擅长捕获长期依赖性。但不用担心。 LSTM 本质上与您将在本教程中开发的RNN 相同,唯一的区别是隐藏状态的计算方式。我们将在后面的文章中更详细地讨论LSTM。以下是RNN 在NLP 中应用的一些示例,但这绝不是完整列表。

语言建模和生成文本

给定一个单词序列,您想要预测每个单词与前一个单词的概率。语言模型可以用来衡量句子的可能性(概率高的句子通常是正确的),这是机器翻译的重要输入。能够预测下一个单词的副作用是,我们现在有了一个生成模型,可以从输出概率中进行采样并生成新文本。

您可以根据训练数据生成各种内容。在语言建模中,输入通常是单词序列(例如编码为one-hot 向量),输出是预测的单词序列。在训练网络时,我们希望步骤t 的输出是实际的下一个单词,因此我们设置ot=xT+1。

关于语言建模和文本生成的研究论文:

基于递归神经网络的语言模型扩展基于递归神经网络的语言模型要使用递归神经网络生成文本,你需要这三个完整的论文文档,或者需要论文指导的朋友是。

关注作者标题【AI乔治】私信回复【666】,一对一指导材料和论文咨询。

机器翻译

机器翻译与语言建模类似,输入是源语言(例如德语)中的单词序列。我想以目标语言(例如英语)输出一组单词。主要区别在于,输出仅在看到完整输入后才开始,因为翻译句子的第一个单词可能需要从完整输入序列中获取信息。

15d32b99fbdf4f42a7db3c131dd5aaab~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874214&x-signature=wvN1XCA%2FA5Rkp5RiKHF4LfJ62Cw%3D 机器翻译研究论文:

使用递归的统计机器翻译递归神经网络使用神经网络进行序列到序列学*基于递归神经网络的协作语言和翻译建模这三者需要完整的论文文档或需要论文指导的人。

关注作者标题【AI乔治】私信回复【666】,一对一指导材料和论文咨询。

语音识别

给定来自声波的声学信号的输入序列,您可以预测音频片段的序列及其概率。

语音识别研究论文:

要实现基于循环神经网络的端到端语音识别,你需要这份完整的纸质文档,或者需要纸质指导的朋友。

关注作者标题【AI乔治】私信回复【666】,一对一指导材料和论文咨询。

生成图像描述

RNN 已与卷积神经网络一起用作生成未标记图像描述的模型的一部分。令人惊讶的是,这似乎有效。组合模型还可以将生成的单词与图像中的特征对齐。

f506b37c1b4b4d76a997862235d7a297~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874214&x-signature=yR19IxNo3H6f%2B0JLM7WrS0%2BOJ%2Fk%3D

训练核糖核神经网络#

训练RNN 与训练传统神经网络类似。它还使用反向传播算法,但需要更多调整。由于参数由网络中的所有时间步共享,因此每个输出的斜率不仅取决于当前时间步的计算,还取决于先前时间步的计算。例如,要计算梯度t=4,我们需要反向传播3 个步骤并对梯度求和。这称为时间反向传播(BPTT)。

如果这没有多大意义,别担心。我们将在本文中详细解释它。请注意,目前,由于所谓的梯度消失/爆炸问题,使用BPTT 训练的普通RNN 很难学*长期依赖关系(例如,相距较远的步骤之间的依赖关系)。有一些机制可以解决这些问题,并且某些类型的RNN(例如LSTM)是专门为解决此问题而设计的。

RNN 扩展

多年来,研究人员开发了更复杂的RNN 类型来解决原始RNN 模型的一些缺点。我们将在后面的文章中更详细地讨论这些内容,但我们希望本节作为快速概述,以帮助您理解模型分类。

双向RNN 基于这样的思想:时间t 的输出不仅取决于序列中先前的元素,还取决于未来的元素。例如,预测序列中缺失的单词需要同时查看左右上下文。双向RNN 非常简单。它们只是两个堆叠在一起的RNN。然后根据两个RNN 的隐藏状态计算输出。

b3ae2f03a2914e96b84bad87b5f01229~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874214&x-signature=BfkZEq%2FMzZris%2FMQmF3kAKyN4GI%3D 深度(双向)RNN 与双向RNN 类似,不同之处在于它们在每个时间步都有多个层。在实践中,这会带来更高的学*能力(尽管它也需要大量的训练数据)。

18a1f6b885b94ecb95bde43d1368217c~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874214&x-signature=Z7TX17tvoKo2fSRPLs6yn4SU9kc%3DLSTM网络目前非常流行,上面已经简要讨论过。 LSTM 的架构与RNN 没有根本不同,但它们使用不同的函数来计算隐藏状态。 LSTM 中的内存称为单元,可以将其视为一个黑匣子,它将先前状态ht1 和当前输入xt 作为输入。这些细胞在内部决定将什么保留在内存中(以及从内存中删除什么)。

然后它结合先前的状态、当前的记忆和输入。事实证明,这些类型的单元在捕获长期依赖性方面非常有效。 LSTM 一开始可能会让人很困惑,但如果你想了解更多,这篇文章有详细的解释。

结论

到目前为止一切顺利。我们希望您已经对RNN 是什么以及它们能做什么有基本的了解。在下一篇文章中,我们将使用Python 和Theano 实现语言模型RNN 的第一个版本。

为了帮助更多对人工智能感兴趣的朋友有效、系统地学*,提高自己的论文和研究,作者特意制作了这个专辑资料包,将作为一次性开源分享,完整发布。

常见主题包括数学基础知识、机器学*基础知识、ReLU、Sigmoid、Tanh、TensorFlow、PyTorch、卷积神经网络(CNN)、循环神经网络(RNN)、Word2Vec、GloVe、n-gram 模型、LSTM、Transformer,包括SIFT。HOG、图像分割、人脸识别、价值函数、策略函数、Q-learning、蒙特卡罗方法、马尔可夫决策过程(MDP)、深度强化学*、策略梯度、数据预处理和清理、模型解释以及其他算法和技术道德和可解释性、编程和工具。

28938d40adf64bf092fe03625a5e343a~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874214&x-signature=1F%2FwGzaoI%2F93gKoKJiKWP%2B6icuM%3D 欢迎关注并回复【666】作者标题【AI乔治】,接受最新人工智能VIP学*资料及全套论文一对一辅导。

所有专栏都是大家感兴趣的话题,具有很大的价值。如果您觉得我的文章对您有帮助,请点赞、评论、转发,以便我创作出更多优质文章。谢谢。

f616e88312d8427c9563532a90a2c1b3~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874214&x-signature=y3q4ejwsFyEYya9DiCM1VXeyXDo%3D

版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。

猜你喜欢