卷积虽好,处理序列还有更好的RNN

从哪里开始

研究卷积神经网络也有一段时间了,因为其相对简单易学,实现也容易,所以偷懒就没有去深究其他的网络类型,但是处理一个语音信号处理相关的任务,循环神经网络有优势,那就是对过去(未来)状态的记忆,正如人脑思考的上下文一样,RNN能联系起来时间序列的记忆,以及由过去对未来的期许,最终目的是准确滴解决当下的问题

参考

Understanding LSTM Networks
RNN详解(Recurrent Neural Network)
关于序列建模,是时候抛弃RNN和LSTM了
Sequences in Caffe
The Unreasonable Effectiveness of Recurrent Neural Networks

从CNN到RNN

CNN的思想是每一层的卷积核,将原始数据线性变换到不同类型的高维度空间,进而通过层数的堆叠,让信息彻底进入人类无法理解的异次元,然后经过训练,实现分类或者回归拟合的任务。RNN又是什么?卷积核没有了,也无法像CNN一样去理解所谓的Deep learning。孤立宏观的看RNN像一个旋转的陀螺,每次抽打(输入 X T X_T XT),这个陀螺都会根据自己之前的状态和被抽打的样子,旋转出新的姿势来。为了分析方便,结合了参考【1】和【4】两张图,来认识一下最简单的RNN,上下两个图的拓扑结构还是有差别的,上图用了一层激活函数,而下图用了两层激活函数,显然下层的权重矩阵也多了一级。

卷积虽好,处理序列还有更好的RNN_第1张图片

RNN的进阶-LSTM

因为简单Rnn容易引起梯度灾难,难于训练,在Long Short-Term Memory论文中引入了Rnn的革新,从外观黑盒子来看,相对于每次输出又迭代进入下一次的输入(短期记忆),就是加入了所谓了长期记忆,还是用caffe里的图来表示,而且解决掉梯度灾难,内部逻辑增加了门控方式,gate掉有梯度风险的计算单元。
卷积虽好,处理序列还有更好的RNN_第2张图片
很多博主有引用Christopher Olah介绍RNN的Understanding LSTM Networks博文里的图,分别阐述了遗忘门、输入门和输出门的工作机制。下图就是介绍了longterm memory的引入:
卷积虽好,处理序列还有更好的RNN_第3张图片遗忘门是根据短期记忆和输入数据的关系,决定哪些长期记忆的运算节点被遗忘,等到经过输入门,这些节点其实就是短期记忆了。而不被遗忘节点将于输入门的结果融合。

卷积虽好,处理序列还有更好的RNN_第4张图片下图是输入门参与下,经过计算,得出跟新后的长期记忆:
卷积虽好,处理序列还有更好的RNN_第5张图片最后输出门控制本次计算的输出结果,这个结果也作为下一次计算的短期记忆输入:
卷积虽好,处理序列还有更好的RNN_第6张图片

结尾

几张图对比下来,对RNND阿志有了直观的认识,但还是对其权重值能否收敛,如何收敛,为什么能收敛无法理解,有一篇The Unreasonable Effectiveness of Recurrent Neural Networks,要感性上接受,还是需要多训练,多使用,多体会。

你可能感兴趣的:(人工智能,机器学习,RNN)