LSTM详解

LSTM概览
首先引用一片文章 https://zhuanlan.zhihu.com/p/36455374来形象解释LSTM的整个执行过程。
很多初学者对time_step、batch_size概念的理解不太清晰,下面给出形象解释:
time_step表示序列数据的长度,batch_size表示一次性输入几个样本进行训练,通常每个词都需要编码(embedding:https://zhuanlan.zhihu.com/p/53194407),比如“光”编码为[0.1,0.2,0.3,0.9],这个向量的大小4就是输入层大小。如此,一次训练输入的数据维度便为batch_size*time_step*input_size=2*5*4。假设隐藏层大小是10,则隐层输出的数据维度为batch_size*time_step*hide_size=2*5*10
LSTM前馈与BPTT
理解LSTM的理论推导过程,对于深度了解神经网络训练原理、参数之间的关系与影响十分重要,对于想从零手写LSTM的同学更是必不可少。
LSTM的前馈理论可以参考这篇文章http://colah.github.io/posts/2015-08-Understanding-LSTMs/
LSTM的反馈理论可参考https://zhuanlan.zhihu.com/p/402373336
以上是LSTM的基本算法原理,在实际运用时为了提高算法效率,会在其基础上优化,比如TBPTT(https://www.cnblogs.com/shiyublog/p/10542682.html#_label2)
损失函数
用于分类的损失函数一般采用交叉熵函数,常用的有softmax_cross_entropy、binary_cross_entropy,详见https://www.jianshu.com/p/47172eb86b39
交叉熵函数用于反馈时的求导方法参见https://zhuanlan.zhihu.com/p/25723112
预测一般采用MSE等,详见https://www.icode9.com/content-4-782377.html
实例
参见https://gitee.com/ggkm/rnn-text-classifier

浙公网安备 33010602011771号