加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长资讯 > 动态 > 正文

详解:递归神经网络和LSTM网络那些事儿

发布时间:2018-04-15 18:12:58 所属栏目:动态 来源:李佳惠
导读:【编译】递归神经网络是最先进的顺序数据算法之一,在苹果Siri和Google语音搜索中都使用到的算法。这是因为它是第一个记忆它的输入的算法,由于内部存储器,这使得它非常适合涉及顺序数据的机器学习问题。它是过去几年Deep Learning的惊人成就背后的算法之
副标题[/!--empirenews.page--]

  【编译】递归神经网络是最先进的顺序数据算法之一,在苹果Siri和Google语音搜索中都使用到的算法。这是因为它是第一个记忆它的输入的算法,由于内部存储器,这使得它非常适合涉及顺序数据的机器学习问题。它是过去几年Deep Learning的惊人成就背后的算法之一。在这篇文章中,你将学习递归神经网络如何工作的基本概念,最大的问题是什么以及如何解决它们。

  介绍

  递归神经网络(RNN)是一种功能强大的神经网络类型,属于目前最有前途的算法,因为它们是唯一具有内部存储器的算法。

  与许多其他深度学习算法一样,RNN也相对较旧。它们最初是在20世纪80年代创建的,但是由于可用计算能力的增加,现在我们拥有的大量数据以及20世纪90年代的LSTM的发明,这些数据的真正潜力逐渐发挥出来。

  由于内部记忆,RNN能够记住他们收到的输入的重要信息,这使得他们能够非常精确地预测接下来会发生什么。

  这就是为什么它们是像时间序列、语音、文本、财务数据、音频、视频、天气等时序数据的首选算法,因为它们可以形成对序列及其上下文的深入理解的算法。

  递归神经网络在连续数据中产生预测结果,而其他算法则不能。

  但是,你何时需要使用循环神经网络?

  “每当有数据序列时,连接数据的时间动态都比每个帧的空间内容更重要。”

                                                                                                           - Lex弗里德曼(麻省理工学院)

  由于它们正在苹果和谷歌翻译的Siri软件中使用,神经网络正在各地出现。

  他们如何工作?

  我们将首先讨论一些关于“正常”前馈神经网络的重要事实,你需要知道,以正确理解递归神经网络。

  但是了解什么是顺序数据也很重要。它基本上只是有序的数据,其中相关的东西彼此相关。最流行的连续数据类型可能是时间序列数据,它只是按时间顺序列出的一系列数据点。

  前馈神经网络

  详解:递归神经网络和LSTM网络那些事儿

  RNN和前馈神经网络都是以它们传递信息的方式命名的。

  在前馈神经网络中,信息只从一个方向移动,从输入层,通过隐藏层到输出层。信息直接通过网络。因为这个原因,信息从来不会触及一个节点两次。

  前馈神经网络,对他们以前收到的输入是没有记忆的,因此不大好预测接下来会发生什么。由于前馈网络只考虑当前的输入,因此没有时间顺序的概念,除了训练,他们根本不记得过去发生的事情。

  递归神经网络

  在RNN中,信息只在一个方向上移动。当它作出决定时,会考虑当前的输入以及它从之前收到的输入中学到的内容。

  下面的两张图片说明了RNN和前馈神经网络之间的信息流的差异。

  详解:递归神经网络和LSTM网络那些事儿

  通常RNN是具有短期记忆的,结合LSTM,他们也有长期记忆,这一点,我们将在下面进一步讨论。

  说明RNN记忆概念的另一个好方法是用一个例子来解释它:

  假设你有一个正常的前馈神经网络,并给它一个单词“neuron(神经元)”作为输入,并逐字处理这个单词。当它到达字符“r”时,它已经忘记了“n”,“e”和“u”,这使得这种类型的神经网络几乎不可能预测接下来会出现什么字符。

  而经常性的神经网络则能够准确记住,因为它是内部记忆。它产生输出,复制输出并将其循环回网络。

  递归神经网络有两个输入,现在和最近的过去。这很重要,因为数据序列包含关于接下来会发生什么的重要信息,这就是为什么RNN可以做其他算法无法做的事情。

  与所有其他深度学习算法一样,前馈神经网络将权重矩阵分配给其输入,然后生成输出。请注意,RNN将权重应用于当前以及之前的输入。此外,他们还通过梯度下降和反向传播时间调整权重,我们将在下面的部分讨论。

  还要注意,尽管前馈神经网络将一个输入映射到一个输出,但RNN可以映射一对多,多对多(翻译)和多对一(分类语音)。

  详解:递归神经网络和LSTM网络那些事儿

  反向传播时间

  要理解反向传播时间的概念,你必须首先理解前向传播和后向传播的概念。这里不会详细讨论这些细节,只是会有尽可能简单的一个概念定义,但是可以让你理解反向传播的整体概念。

  在神经网络中,你基本上会进行前向传播以获取模型的输出,并检查此输出是正确还是错误,从而弄清楚错误的地方。

  现在你做了向后传播,这只不过是通过你的神经网络向后退出来找到相对于权重的误差的偏导数,这使得你可以从权重中减去这个值。

  这些衍生物然后被渐变下降使用,这是一种用于迭代最小化给定函数的算法。然后根据减少误差的大小来调整权重。这正是神经网络在训练过程中学习的方式。

  通过反向传播,你基本上可以在训练时调整模型的权重。

  下图以前馈神经网络为例,对前向传播和后向传播的概念进行了完美的阐述:

  详解:递归神经网络和LSTM网络那些事儿

  随时间反向传播(BPTT)基本上只是一个在展开的递归神经网络上进行反向传播的流行词汇。展开是一种可视化的概念工具,可帮助你了解网络内正在发生的事情。大多数情况下,当你在通用编程框架中实施循环神经网络时,他们会自动处理反向传播,但你需要了解它是如何工作的,这使你能够解决开发过程中出现的问题。

  你可以将RNN视为一系列神经网络,并通过反向传播逐个训练。

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读