神经网络与深度学习(四)--自然语言处理NLP

发布于:2024-05-04 ⋅ 阅读:(26) ⋅ 点赞:(0)

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文本预处理

一篇文章可以被简单地看作一串单词序列,甚至是一串字符序列。我们将解析文本的常见预处理步骤。 这些步骤通常包括:

  1. 将文本作为字符串加载到内存中。
  2. 将字符串切分为词元(如单词和字符)。
  3. 建立一个字典,将拆分的词元映射到数字索引。
  4. 将文本转换为数字索引序列,方便模型操作。

第一步:读取数据集
以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)

一个良好的记忆产生一个良好的预测。良好的记忆要素:
关注机制(更新门)
遗忘机制(重置门)

基本思想:不是每个观察都同样重要

  1. 门控机制: GRU引入了门控机制来控制信息的流动,这些门控机制有助于模型学习长期依赖关系。与长短期记忆网络(LSTM)类似,GRU也有遗忘门和更新门,但其结构更加简单。
  2. 更新门(Update Gate): GRU中的更新门决定了在当前时间步,模型将多少来自前一个时间步的信息保留下来。更新门的值在0到1之间,它们通过一个sigmoid激活函数生成。当更新门接近1时,大部分过去的状态信息被保留,而当它接近0时,则意味着大部分过去的状态信息被遗忘。
  3. 重置门(Reset Gate): 重置门决定了在当前时间步,模型将如何考虑先前的信息。重置门的作用是控制过去状态的遗忘程度,从而允许模型更灵活地适应不同的时间序列结构。
  4. 候选状态(Candidate State): 在每个时间步,GRU会计算一个候选状态,该状态是根据当前输入和前一个状态生成的。候选状态会结合更新门的信息和先前的状态信息。
  5. 更新状态: 最后,根据更新门和候选状态,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 对比
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到