cs224官网,梯度消失与多种循环神经网络,拓展阅读5-了解LSTM神经网络
内容仅为记录,加强记忆,深化学习,翻译定有瑕疵,仅供参考阅读。
网址:http://colah.github.io/posts/2015-08-Understanding-LSTMs/
第一节循环神经网络
当你在阅读本篇文章时,你通常是基于前面的内容来了解现在的内容,而不是每阅读一个词句都单独处理一次,既是你的思想具有连贯性,你的想法是有持续性的。
传统的神经网络并不会体现持续性这种特性,这也是其中的一个缺点。他不能运用之前的信息来对现有状况做出预测。循环神经网络解决了这一问题,使得信息能保持一段时间。神经网络有了记忆。循环神经网络是内有循环结构的网络结构,上一时间的状态作为输入传递到下一时间的计算,当我们将结构进行展开,得到链式的一种结构,而链式结构的本质解释了循环神经网络与序列与列表密切相关。RNN正适合处理这类型的数据。
近年来RNN在语音识别,语言建模,翻译,图像标题一系列任务重表现出色,此处引出LSTM,他比RNN更加出色,并且应用更加广泛。
第二节长期依赖引发的问题
RNN的确能做到将之前信息与现有输入结合起来运算的能力,但是,当记忆状态与现有输入的时间差相差过多时,RNN就越来越无法利用之前的记忆,我们称其为长依赖问题(long-term problem)。依照原理,RNN是有能力解决类似问题的,但是实际操作时,RNN表现为无法学习到连接长距离记忆的权值。
长短时记忆网络,有能力解决上述long-term dependecy问题。论文连接:http://www.bioinf.jku.at/publications/older/2604.pdf
效果佳受用面广,大受欢迎。
LSTM就是被设计来克服长时依赖问题的一种网络结构,网络结构存储长时间之前的状态(~30,40)
LTSM的核心点
cell state 是LSTM的核心点,图中的水平线Ct-1 ----> Ct-2。cell state就像是一条传送带,从整个LSTM单元穿过,只有一些小的小型交互(两个加法),信息从cellstate可以轻松得到传送并不被修改。LSTM有能力修改过往状态的信息,这与被称为门的结构控制。门结构由sigmoid网络层和一个点积组成。
LSTM运行过程细节
第一步,决定有哪些是要丢给cell state的。(输入与前一状态经过sigmoid层)(forget gate),输出一个0-1之间的小数,决定了保留的比率。处理过往cell-state
第二步,决定存储那些新信息,同时进行sigmoid计算与tanh计算,一计算决定更新那些信息,二计算生成新的候选值,被加入到cell state中,下一步将两个值点乘
第三步,更新前一步长的状态cellstate,点乘第一步产物forget系数,抛弃决定抛弃的,加上第二步输入门与新候选值的点积结果,相加决定了我们要更新哪些部分的权值(维度?)第三步就是我们决定抛弃那些信息与更新哪些信息的步骤。
第四步,最后一步,决定输出,输出基于cellstate,但是会是滤波后的cellstate,首先将输入做sigmoid计算,对cellstate做tanh计算,二者相乘完成输出
前馈步骤结束,变体部分明天再写吧
结论
LSTM真的很棒,但是有没有什么其他方法呢?
是的,船新版本的Attention正式上个问题的答案,简述原理为,RNN的单元进行一次计算时,都会从大信息集合中选取信息(全文)还有grid LSTM看起来也是前途无量(谁高一脚我不知道,attention是挺火),在生成模型中使用RNN看起来也是十分有趣。在过去的几年里,对于递归神经网络来说是一个激动人心的时期,而未来的神经网络将会更加激动人心!
致谢
感谢各位朋友和提供帮助的人(随便点开一个就是googleai研究员,真好)