这里写目录标题
- 1.序列模型
- 2.数据预处理
- 2.1特征编码
- 2.2文本处理
- 3.文本预处理与词嵌入
- 3.1文本预处理
- 3.2文本嵌入
- 3.RNN模型
- 3.1RNN概要
- 3.2RNN误差反传
- 4.门控循环单元(GRU)
- 4.1GRU基本结构
- 5.长短期记忆网络 (LSTM)
1.序列模型
分类问题与预测问题
- 图像分类:当前输入->当前输出
- 时间序列预测:当前+过去输入->当前输出
自回归模型
2.数据预处理
2.1特征编码
- 第1列表示年龄,是一个数值特征
- 第2列表示性别,是一个只有位( 0,1)的特征
0 -> Male, 1 > Male, 1 > Male, 1 > Male, 1 -> Female > Female > Female - 第3列表示国籍,目前有 197 个国家1 -> US, 2 -> China,
可以用一个整数来表示,或者独热 向量来表示 , 如US: [1,0, ….,0]
2.2文本处理
按字母处理
例如:S=“… to be or not to be”
将文本切分为字母排列:
L=[…, ‘t’, ‘o’, ’ ', ‘b’, ‘e’]
按单词处理文本切分
给定文本片段,如:S=“… to be or not to be”
将文本切分为单词序列:
L=[…,to,be,or,not,to,be]
3.文本预处理与词嵌入
3.1文本预处理
一篇文章可以被简单地看作一串单词序列,甚至是一串字符序列。我们将解析文本的常见预处理步骤。 这些步骤通常包括:
- 将文本作为字符串加载到内存中。
- 将字符串切分为词元(如单词和字符)。
- 建立一个字典,将拆分的词元映射到数字索引。
- 将文本转换为数字索引序列,方便模型操作。
第一步:读取数据集
以H.G.Well的时光机器为例,从中加载文本。 这是一个相当小的语料库,只有30000多个单词,而现实中的文档集合可能会包含数十亿个单词。如Chatgpt包含65T数据
第二步:词汇切分
将原始文本以文本行为单位进行切分
第三步:构建词索引表
3.2文本嵌入
如何将词映射成向量?
直接想法:使用之前所述的独热向量
问题:维数过高→解决方案:
词嵌入(word embedding),将独热向量映射为低维向量
映射参数矩阵
词嵌入训练效果
准确率74%(测试集),不好不差
3.RNN模型
3.1RNN概要
用RNN建模序列数据
输入:The cat sat on the mat
问题
随着输入的增加,会产生“遗忘”问题
3.2RNN误差反传
每个时间步的隐状态和输出可以写为:
通过一个目标函数在所有𝑇个时间步内评估输出 ot和对应的标签 yt之间的差异:
按照链式法则:
ht既依赖于ℎ𝑡−1,又依赖于 wh , 其中 ht−1的计算也依赖于wh。因此,用链式法则产生:
使用下面的公式移除上式的循环计算:
截断时间步:可以在𝜏步后截断上式中的求和计算
4.门控循环单元(GRU)
一个良好的记忆产生一个良好的预测。良好的记忆要素:
关注机制(更新门)
遗忘机制(重置门)
基本思想:不是每个观察都同样重要
- 门控机制: GRU引入了门控机制来控制信息的流动,这些门控机制有助于模型学习长期依赖关系。与长短期记忆网络(LSTM)类似,GRU也有遗忘门和更新门,但其结构更加简单。
- 更新门(Update Gate): GRU中的更新门决定了在当前时间步,模型将多少来自前一个时间步的信息保留下来。更新门的值在0到1之间,它们通过一个sigmoid激活函数生成。当更新门接近1时,大部分过去的状态信息被保留,而当它接近0时,则意味着大部分过去的状态信息被遗忘。
- 重置门(Reset Gate): 重置门决定了在当前时间步,模型将如何考虑先前的信息。重置门的作用是控制过去状态的遗忘程度,从而允许模型更灵活地适应不同的时间序列结构。
- 候选状态(Candidate State): 在每个时间步,GRU会计算一个候选状态,该状态是根据当前输入和前一个状态生成的。候选状态会结合更新门的信息和先前的状态信息。
- 更新状态: 最后,根据更新门和候选状态,GRU会计算出当前时间步的隐藏状态。更新门控制了过去的信息如何被整合到当前的状态中,从而使模型能够更好地适应长期依赖关系。
4.1GRU基本结构
训练结果(The time machine):和RNN对比
5.长短期记忆网络 (LSTM)
网络模型
遗忘门(Forget Gate): 遗忘门决定了在当前时间步,模型将保留多少来自前一个时间步的状态信息。遗忘门的值为0到1之间,当门接近0时,意味着大部分过去的状态信息被遗忘,而当门接近1时,则意味着大部分过去的状态信息被保留。
输入门(Input Gate): 输入门决定了在当前时间步,模型将保留多少来自当前输入的信息。输入门的值为0到1之间,它控制了新信息与先前状态的整合程度。
输出门(Output Gate): 输出门决定了在当前时间步,模型将输出多少信息到下一个时间步。输出门的值为0到1之间,它控制了当前状态的哪些部分将被输出。
总结
参数量是RNN的4倍
输入输出和RNN相同
训练结果和 GRU 对比