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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人