循环神经网络(RNN)与NLP
序列模型
图像分类 :当前输入 −>当前输出
时间序列预测 :当前+过去输入 −>当前输出
自回归模型:通过利用时间序列自身的延迟值来预测未来值,在预测的过程中保留一些对过去的观察总结,并且同时更新预测
与总结
,构成序列模型。
数据预处理
(1)特征编码
数值特征不适合表示类别,因此一般用独热编码。二维用一个位数字表示,多维不用减一。
(2)文本处理
按字母处理(28维,26个字母加上空格和其他)或按单词处理(但中文切分难,这步可以切分出一个处理单元即一个token),对文本进行切分。
文本预处理
一篇文章可以被简单地看作一串单词序列,甚至是一串字符序列。 我们将解析文本的常见预处理步骤。 这些步骤通常包括:
- 将文本作为字符串加载到内存中。
- 将字符串切分为词元(如单词和字符)。
- 建立一个字典,将拆分的词元映射到数字索引。
- 将文本转换为数字索引序列,方便模型操作。由于转成独热向量出现维数过高问题,因此引入词嵌入。
词嵌入
将独热向量映射为低维向量:映射矩阵:𝑑 × 𝑣 , 根据训练数据学习得到
RNN
循环神经网络(RNN)是一种具有循环连接的神经网络结构,专门用于处理序列数据。与传统神经网络不同,RNN具有记忆功能,能够保持对序列中先前信息的状态。这种记忆使得RNN在处理自然语言、时间序列等具有时序性质的数据时非常有效。
RNN的基本结构包括一个循环单元,该单元在每个时间步接收输入和前一时间步的隐藏状态,并输出当前时间步的隐藏状态。这种循环结构使得RNN能够对序列数据进行逐步处理,并在整个序列中保持记忆。然而,传统的RNN存在梯度消失和梯度爆炸等问题,限制了其在长序列上的表现。
为了克服这些问题,出现了一些改进的RNN结构,如长短期记忆网络(LSTM)和门控循环单元(GRU)。LSTM引入了三个门控单元(输入门、遗忘门、输出门),以控制信息的输入、遗忘和输出,从而更有效地处理长期依赖关系。而GRU则简化了LSTM的结构,仅使用了更新门和重置门来控制信息的流动。
因为有正有负,所以用tanh。
RNN误差反传:
截断时间步可以使计算变快,防止sigmoid梯度消失,交叉熵损失,困惑度。
门控循环单元(GRU)
门控循环单元(GRU)是一种改进的循环神经网络(RNN)结构,用于处理序列数据。与传统的RNN相比,GRU引入了门控机制,以更好地捕捉序列中的长期依赖关系,并且减少了参数量。
GRU的核心思想是通过更新门(关注机制)和重置门(遗忘机制)来控制隐藏状态的更新和遗忘。更新门决定保留多少上一时刻的信息,而重置门则决定如何将当前输入与上一时刻的信息相结合。
长短期记忆网络(LSTM)
遗忘门=重置门;输入门=更新门
遗忘、输入、更新、输出
深度循环神经网络
类比由于特征复杂时,一个全连接层解决不了特征提取的问题,层数过多参数量过大,因此引入卷积神经网络。此处深度循环神经网络是为了解决隐含状态很深的问题。
生成对抗网络
Gan由一个生成模型G和一个判别模型D组成,完成相互对立的事儿,进行博弈,但是可能相互妥协。