目录
一、关于LSTM网络
1、什么是LSTM网络
举例:
2、RNN网络的结构
3、Tanh双曲正切函数
二、LSTM网络结构
1、遗忘门
1)功能
2)步骤
2、输入门
1)功能
2)步骤
3、输出门
1)功能
2)步骤
一、关于LSTM网络
1、什么是LSTM网络
LSTM网络,全称长短期记忆网络(Long Short-Term Memory network),是一种特殊的循环神经网络(RNN)架构,大部分与RNN模型相同,但它们用了不同的函数来计算隐状态h,旨在解决传统RNN在处理长序列数据时遇到的梯度消失或梯度爆炸问题。LSTM网络通过引入自循环的巧妙设计,使得信息能够在网络中长期保留或遗忘,从而能够捕获长距离的时间依赖关系。
举例:
当你想在网上购买生活用品时,一般都会查看一下其他已购买的用户评价。当你浏览评论时,大脑下意识记住重要的关键词,比如“好看”和“真酷”这样的词汇,而不太会关心“我”、“也”、“是”等字样。如果朋友第二天问你用户评价都说了什么,你不可能会全部记住它,而是说出大脑里记得的主要观点,比如“下次肯定还会来买”,无关紧要的内容自然会从记忆中逐渐消失。
2、RNN网络的结构
如下图所示,首先第一个单词的词向量进入隐含层与偏置项进行处理后进入tanh激活函数然后得到的结果进入下一个隐含层与第二个单词的词向量结合再传入激活函数,以此类推,将所有单词都传入隐含层处理,得到最终结果。
上述的隐状态单独拿出来一个,得到下列状态
3、Tanh双曲正切函数
保证值在-1~1之间
4、sigmoid函数
二、LSTM网络结构
X表示做内积,+表示数值相加
LSTM网络的核心在于其内部的“记忆单元”(Memory Cell),这个单元由三个“门”结构(遗忘门、输入门和输出门)来控制信息的流动。
1、遗忘门
上述第一幅图的左下角,x和h经过乘以矩阵U和W再加上偏置项后传入sigmoid激活函数,得到0-1之间的结果,然后左上角传来一个c细胞或叫c仓库,其中存储当前的关键信息(关键词信息),h存储句子的特征信息,将上述结果与c做内积,如下图所示,最终得到的结果一部分很接近0,一部分很接近1,遗忘接近0的数据,保留接近1的信息。
c仓库的数据最初为空,之后来自于上一层的隐藏层的输出的处理完的关键词信息,每输入一个词,经过sigmoid激活函数处理后与c仓库的数据内积,即可除去当前隐藏层处理的不需要的词,然后剩下的即为需要的关键词,将关键词加入c仓库,经过不断剔除,最终得到完整的所有关键词。
1)功能
决定从上一个时间步长的记忆单元状态中丢弃哪些信息。
2)步骤
来自前一个隐藏状态的信息和当前输入的信息同时传递到 sigmoid 函数中去,输出值介于 0 和 1 之间,越接近 0 意味着越应该丢弃,越接近 1 意味着越应该保留。
2、输入门
1)功能
决定当前时间步长的输入信息中有哪些部分应该被加入到记忆单元c中,以此来更新细胞状态
2)步骤
1、首先将前一层隐藏状态的信息和当前输入的信息传递到 sigmoid 函数中去。将值调整到 0~1 之间来决定要更新哪些信息。0 表示不重要,1 表示重要。
2、将前一层隐藏状态的信息和当前输入的信息传递到 tanh 函数中去,创造一个新的侯选值向量。最后将 sigmoid 的输出值与 tanh 的输出值相乘,sigmoid 的输出值将决定 tanh 的输出值中哪些信息是重要且需要保留下来的,然后将重要的信息增加到仓库c中去。
3、输出门
1)功能
用来确定下一个隐藏状态的值。
2)步骤
1、将前一个隐藏状态和当前输入传递到 sigmoid 函数中,然后将新得到的细胞状态传递给 tanh 函数。
2、将 tanh 的输出与 sigmoid 的输出相乘,以确定隐藏状态应携带的信息。再将隐藏状态作为当前细胞的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。