本文适合有一定基础同学的复习使用,不适合小白入门,入门参考本文参考文献第一篇
结构_静态综合图
结构_分步动图
进一步,向量化参数和引入问题
1, cell 的状态是一个向量,是有多个值的
如果理解了上面结构,这个理解起来问题不大,单一数字变向量即可。
引出一个问题:int相加无问题,ht+xt组合时如何组合?直接相加不可能,毕竟维度不同,比如20维和5维
答:[x1,x2,,x20]+[y1,y2,,y5]=[x1,x2,x20,y1,y2,,,y5],直接拼接,就这么简单.
2, cell 的权重是共享的,这是什么意思呢?这是指这张图片上有三个绿色的大框,代表三个 cell 对吧,但是实际上,它只是代表了一个 cell 在不同时序时候的状态,所有的数据只会通过一个 cell,然后不断更新它的权重。
3,cell 最上面的一条线的状态即 s(t) 代表了长时记忆,而下面的 h(t)则代表了工作记忆或短时记忆
细节,参数个数(神经元分析)
忘记门层
图中公式的是上一个状态的隐向量(已设定隐向量长度为10),为当前状态的输入(长度为5),那么的长度就是10+5=15了.和为该层的参数.
该层输出是中间隐向量的长度(10),经过激活前后的长度不变.只需要考虑里面的操作得到10维特征即可.
是(1,15)的向量,与相乘得到(1,10)的向量,根据矩阵相乘规律,得到是(15,10)的矩阵,得到(1,10)矩阵后,与该门层偏置相加,偏置也应该有相同的形状,即是(1,10)的矩阵.
即:该层神经元为:
细胞状态
确定更新信息过程
更新过程
公式中的四个值,均是前面计算得到的结果,因此该过程没有参数需要学习.
输出层
总结
把公式(1),(2),(3)的神经元加起来,就是该LSTM的神经元个数了.
假设你一个时间步的特征长度是n,经过该LSTM得到的长度是m,这样就可以算出该LSTM层的神经元个数为:
参考教程:
难以置信!LSTM和GRU的解析从未如此清晰(动图+视频:https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/82922386
LSTM神经网络知识—资源整理:https://blog.csdn.net/jizhidexiaoming/article/details/80930287
RNN与LSTM系列(二)——LSTM的参数个数:https://blog.csdn.net/manmanxiaowugun/article/details/82966879