LSTM详解

LSTM概览

首先引用一片文章 https://zhuanlan.zhihu.com/p/36455374来形象解释LSTM的整个执行过程。

 很多初学者对time_stepbatch_size概念的理解不太清晰,下面给出形象解释:

 

time_step表示序列数据的长度,batch_size表示一次性输入几个样本进行训练,通常每个词都需要编码(embeddinghttps://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的基本算法原理,在实际运用时为了提高算法效率,会在其基础上优化,比如TBPTThttps://www.cnblogs.com/shiyublog/p/10542682.html#_label2

 损失函数

用于分类的损失函数一般采用交叉熵函数,常用的有softmax_cross_entropybinary_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

 

posted @ 2022-10-13 21:00  guang_blog  阅读(506)  评论(0)    收藏  举报