pytorch中LSTM的一些感悟
https://zhuanlan.zhihu.com/p/41261640,(https://zhuanlan.zhihu.com/p/47802053)--采用pytorch进行了一些简明的说明
前馈网络:对前馈网络比较熟悉了,就是网络中不会保存状态,然而,在自然语言处理中,序列模型是一个核心概念。
序列模型:所谓序列模型,即输入依赖于时间信息的模型,一个典型的序列模型是隐马尔可夫模型,另一个序列模型是条件随机场CRF
循环神经网络:可以保存某种状态的神经网络,比如上个时刻的输出可以作为下个时刻的输入的一部分,以此信息就可以通过序列在网络中一直往后传递,对于LSTM来说,序列中的每个元素都有一个相应的隐状态
门控循环单元GRU:当时间步数较大或者时间步数较小时,循环神经网络的梯度较容易出现衰减或爆炸,虽然裁剪梯度可以应对梯度爆炸,但无法解决梯度衰减的问题,通常由于这个原因,循环神经网络在实际中较难捕捉时间序列中时间步距离较大的依赖关系。而门控循环单元正是为了更好地捕捉时间序列中时间步距离较大的依赖关系。
LSTM:
lstm的隐藏层输出包括隐藏状态和记忆细胞,只有隐藏状态会传递到输出层
lstm的输入门、遗忘门和输出门可以控制信息的流动,对于多层的循环神经网络,如下体所示:
总之,在深度循环神经网络中,隐藏状态的信息不断传递至当前层的下一时间步和当前时间步的下一层。