RNN-LSTM-BiLSTM学习
NLP-AHU-146一、NNLM在学习RNN(循环神经网络)前我们需要先掌握NNLM(神经网络语言模型)掌握NNLM后可以很便捷地以增量方式理解RNN。这是一个NNLM它包括输入层embedding(嵌入)隐藏层与输出层目的是学习一个可以根据给定前置词汇预测下一个词汇的函数f。输入层是对应的前n个词(此处n2)输出为下一个词的概率中间负责对输入层进行处理。先看输入输入通过one-hot编码方式将每个词变为一个n维词向量(n取决于词的数量)这个词向量只有这个词对应的位置为1其他为0(如词有苹果香蕉苹果为[1,0]香蕉为[0,1])。随后将预测词的前2个词的词向量拼接在一起作为输入。embedding层负责将输入转换为低维稠密的向量并拼接去除词向量中无效的0提高处理效率同时它可以使得相近的词拥有相近的数值让机器能够一定程度上对词进行区分明白哪些词相似哪些词不同。仅使用one-hot编码无法做到这一点。隐藏层对embedding层传来的向量做非线性变换(利用激活函数实现这里用tanh激活函数)使得词之间出现关联性。如果没有隐藏层模型就无法学习到词与词之间的关联输出层基于隐藏层传来的数据乘以权重添加上偏置后进行归一化(使用softmax函数)得到预测概率。(下为softmax函数)在得出预测结果后通常使用交叉熵损失评估并使用反向传播算法更新权重。(下为交叉熵损失)二、RNN了解了NNLM后接下来看RNN可以看到RNN与NNLM的区别在于输入层与隐藏层的变动。在输入层相比NNLM一次输入固定的n个词向量(即只依据前n个词预测下一个词)RNN可以灵活地输入不同数目个词向量并使得所有词向量均在预测词时有一定权重。而RNN层就是RNN算法可以依据先前的所有词来预测下一个词的核心。其原理表现如下(vn为第n个词向量经embedding层后的输出)其中H(t-1)为h(t-1)与vt的拼接。经由该方式状态h(t)记录下h(t-1)h(t-1)记录下h(t-2)最终使得所有词都参与到下一个词的预测当中解决了NNLM只能依据前n个词预测下一个词很早以前的信息无效化的问题。但RNN算法存在另一个问题其训练采用BPTT(时间反向传播)将RNN展开后使用标准BP梯度会在每一个状态处累乘权重A当A值较小时会导致梯度消失(对于较早的信息无法有效利用)A值较大时则导致梯度爆炸(模型无法收敛)。三、LSTM为解决梯度消失和梯度爆炸问题引入“三门一态”包括遗忘门输入门输出门细胞状态(记忆状态)。现在我们有三个数据长期记忆状态C(t)短期记忆状态h(t)输入x。来让我们看看遗忘门顾名思义这部分决定我们遗忘多少长期记忆保留多少长期记忆。对sigmoid激活函数的输入有公式如下输出Sigmoid(InputSigmoid)即为长期记忆C(t)在C(t1)中应当保留的百分比将它与C(t)的乘积记为Cs。接下来是输入门。图中高亮显示的部分即为输入门负责生成潜在长期记忆与Cs组合成C(t1)更新长期记忆状态。输入门主要分为两部分右半部分以tanh为激活函数生成潜在的长期记忆左半以Sigmoid为激活函数决定右半部分生成的长期记忆保留多少。两部分均使用该公式作为激活函数输入权重与偏置在实际项目中初始随机化后续利用反向传播算法更新。得到两边的输出后将输出相乘并加上Cs就可以得到更新后的长期记忆状态C(t1)了。最后是输出门。现在长期记忆状态已经更新完毕输出门来负责短期记忆状态的更新。与输入门类似输出门右半生成潜在的短期记忆左半决定生成的短期记忆保留多少。左半的保留部分与输入门的设计是一致的仅有权重与偏置的数值差异。需要注意的是右半部分右半部分的输入是更新后的长期记忆。总体公式如下图所示。现在LSTM的基本构成与运作原理已经非常清晰了回到最开始选择使用LSTM的根本原因解决梯度消失与梯度爆炸问题。RNN的连乘基于同一权重A因此过长的句子会让A连乘次数过多带来指数爆炸。而LSTM的连乘是基于C(t1)对C(t)的偏导大部分情况下偏导的值会接近1会有偶发性的偏离但不会出现指数爆炸的情况。四、BiLSTMBiLSTM是LSTM的拓展在算法上与LSTM相比没有重要更新主要是增加了一个方向为从序列结尾到开始的LSTM两个LSTM独立运行。BiLSTM相比LSTM的优势是能从序列的前后同时获取信息解决了LSTM只能获取当前位置之前的信息的问题在需要根据整体信息综合决策的任务中有着更好的表现。主要参考【【NLP】发展变化及原理初探: 神经语言模型(NNLM)、循环神经网络(RNN)和注意力(Attention)机制】https://www.bilibili.com/video/BV15b4y1R7c9?vd_sourcea37ab9aacfc596cc818242da71368fb0【【官方双语】LSTM长短期记忆神经网络最简单清晰的解释来了】https://www.bilibili.com/video/BV1zD421N7nA?vd_sourcea37ab9aacfc596cc818242da71368fb0