1.序列数据
序列数据是常见的数据类型,前后数据通常具有关联性,例如句子文本,音乐生成,DNA序列分析,视频行为识别等。
2.语言模型
概念:计算一个句子是句子的概率的模型,语言模型是NLP重要技术,NLP中常把文本看为离散时间序列,一段长度为T的文本的词依次为w1,w2,...,wn,其中wt是时间步t的输出或标签。
P(w1,w2,...,wn)=P(w1)P(w2|w1)P(w3|w1w2)...P(wn|w1w2...wn-1)
语言模型会计算该序列是句子的概率P(w1,w2,...,wn)。
统计语料库中的词频,得到以上概率。
缺点:时间步t的词需要考虑t-1步的词,其计算量随t呈指数增长。
3.RNN
RNN是针对序列数据而生的神经网络结构,核心在于循环使用网络参数以避免时间步增大带来的参数激增,同时引入隐藏状态用于记录历史信息处理数据的前后关联性。
隐藏状态(Hidden State)用于记录历史信息,有效处理数据的前后关联性。激活函数用tanh,将输出值限制在(-1,1)防止数值呈指数级变化。
特性:隐藏状态捕捉截至当前时间步的序列的历史信息;模型参数的数量不随时间步的增加而增长
RNN反向传播中的问题:梯度会随时间t呈指数变化,易引发梯度消失或梯度爆炸(连乘)
4.门控循环单元(GRU)
为了缓解RNN梯度消失带来的问题,引入门概念来控制信息流动使模型更好的记住长远时期的信息,并缓解梯度消失。
激活函数:sigmoid(0,1)0表示遗忘,1表示保留
重置门:用于候选隐藏状态计算过程当中用来控制上一时间步隐藏状态中要遗忘哪些信息
更新门:更新当前时间步隐藏状态的时候,去组合上一时间步隐藏状态以及当前时间步的候选隐藏状态(若更新门自第一个时间步到t-1时间过程中一直保持为1,信息可有效传递到当前时间步)
候选隐藏状态:输入与上一时间步隐藏状态共同计算得到候选隐藏状态,用于最终的隐藏状态计算。通过重置门,对上一时间步隐藏状态进行选择性遗忘,对历史信息更好的选择。
隐藏状态:由候选隐藏状态及上一时间步隐藏状态组合得来。
5.长短期记忆网络(LSTM)
引入3个门和记忆细胞,控制信息传递。
遗忘门:由输入和上一时间步隐藏状态计算得出,控制上一时间步记忆细胞有哪些信息要流入记忆细胞。
输入门:由输入和上一时间步隐藏状态计算得出,控制候选记忆细胞有哪些信息要流入记忆细胞。
输出门:由输入和上一时间步隐藏状态计算得出,控制记忆细胞有哪些信息要流入隐藏状态。
候选记忆细胞:由输入和上一时间步隐藏状态计算得出,与输入门结合流入记忆细胞。
记忆细胞:特殊的隐藏状态,记忆历史信息,由候选记忆细胞及上一时间步记忆细胞组合得来。
隐藏状态:由输出门控制记忆细胞信息流入隐藏状态。