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

这里写目录标题

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 对比

相关推荐
Loving_enjoy4 小时前
ChatGPT详解
人工智能·自然语言处理
落魄君子5 小时前
BP回归-反向传播(Backpropagation)
人工智能·神经网络·回归
最好Tony6 小时前
深度学习blog-Transformer-注意力机制和编码器解码器
人工智能·深度学习·机器学习·计算机视觉·自然语言处理·chatgpt
开放知识图谱6 小时前
论文浅尝 | 编辑基于语言模型的知识图谱嵌入(AAAI2024)
人工智能·语言模型·自然语言处理·知识图谱
顾道长生'8 小时前
(NIPS-2024)PISSA:大型语言模型的主奇异值和奇异向量适配
人工智能·语言模型·自然语言处理
Macropodus8 小时前
near-synonym反义词生成(2):Prompt +Bert-MLM(FT)
自然语言处理·prompt·反义词生成·中文反义词·bert-mlm
语音之家8 小时前
CultureLLM 与 CulturePark:增强大语言模型对多元文化的理解
人工智能·语言模型·自然语言处理
Anna_Tong9 小时前
人工智能的视觉天赋:一文读懂卷积神经网络
人工智能·神经网络·cnn
爱研究的小牛12 小时前
Pika Labs技术浅析(四):数据可视化
神经网络·计算机视觉·信息可视化·aigc
麦田里的稻草人w15 小时前
【YOLO】(基础篇一)YOLO介绍
人工智能·python·神经网络·yolo·机器学习