动图形象理解LSTM
LSTM——是一种特殊RNN类型,可以学习长期依赖信息。LSTM由Hochreiter&Schmidhuber(1997)提出,并在近期被AlexGraves进行了改良和推广。在很多应用问题,LSTM都取得相当巨大的成功,并得到了广泛的使用。然而LSTM结构复杂,初学者难于理解,本文通过动图形象直观的理解LSTM.短时记忆RNN会受到短时记忆的影响。
梯度更新规则因此,在递归神经网络中,获得小梯度更新的层会停止学习——那些通常是较早的层。由于这些层不学习,RNN可以忘记它在较长序列中看到的内容,因此具有短时记忆。作为解决方案的LSTM和GRULSTM和GRU是解决短时记忆问题的解决方案,它们具有称为“门”的内部机制,可以调节信息流。
这些“门”可以知道序列中哪些重要的数据是需要保留,而哪些是要删除的。随后,它可以沿着长链序列传递相关信息以进行预测,几乎所有基于递归神经网络的技术成果都是通过这两个网络实现的。LSTM和GRU可以在语音识别、语音合成和文本生成中找到,你甚至可以用它们为视频生成字幕。对LSTM和GRU擅长处理长序列的原因,到这篇文章结束时你应该会有充分了解。
当你浏览评论时,你的大脑下意识地只会记住重要的关键词,比如“amazing”和“awsome”这样的词汇,而不太会关心“this”、“give”、“all”、“should”等字样。如果朋友第二天问你用户评价都说了什么,那你可能不会一字不漏地记住它,而是会说出但大脑里记得的主要观点,比如“下次肯定还会来买”,那其他一些无关紧要的内容自然会从记忆中逐渐消失。
而这基本上就像是LSTM或GRU所做的那样,它们可以学习只保留相关信息来进行预测,并忘记不相关的数据。RNN述评为了了解LSTM或GRU如何实现这一点,让我们回顾一下递归神经网络。RNN的工作原理如下;第一个词被转换成了机器可读的向量,然后RNN逐个处理向量序列。逐一处理矢量序列处理时,RNN将先前隐藏状态传递给序列的下一步。
当向量流经神经网络时,由于有各种数学运算的缘故,它经历了许多变换。因此想象让一个值继续乘以3,你可以想到一些值是如何变成天文数字的,这让其他值看起来微不足道。没有tanh函数的向量转换tanh函数确保值保持在-1~1之间,从而调节了神经网络的输出。你可以看到上面的相同值是如何保持在tanh函数所允许的边界之间的。有tanh函数的向量转换这是一个RNN。
LSTM的细胞结构和运算这一系列运算操作使得LSTM具有能选择保存信息或遗忘信息的功能。咋一看这些运算操作时可能有点复杂,但没关系下面将带你一步步了解这些运算操作。核心概念LSTM的核心概念在于细胞状态以及“门”结构。细胞状态相当于信息传输的路径,让信息能在序列连中传递下去。你可以将其看作网络的“记忆”。理论上讲,细胞状态能够将序列处理过程中的相关信息一直传递下去。
Sigmoid将值压缩到0~1之间接下来了解一下门结构的功能。LSTM有三种类型的门结构:遗忘门、输入门和输出门。遗忘门遗忘门的功能是决定应丢弃或保留哪些信息。来自前一个隐藏状态的信息和当前输入的信息同时传递到sigmoid函数中去,输出值介于0和1之间,越接近0意味着越应该丢弃,越接近1意味着越应该保留。遗忘门的运算过程输入门输入门用于更新细胞状态。
细胞状态的计算输出门输出门用来确定下一个隐藏状态的值,隐藏状态包含了先前输入的信息。首先,我们将前一个隐藏状态和当前输入传递到sigmoid函数中,然后将新得到的细胞状态传递给tanh函数。最后将tanh的输出与sigmoid的输出相乘,以确定隐藏状态应携带的信息。再将隐藏状态作为当前细胞的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。
领取专属 10元无门槛券
私享最新 技术干货