学习目标:
- 了解并掌握NLP与词向量,神经网络基础,循环神经网络RNN,预训练与微调,注意力机制等原理
学习内容:
-
NLP(Natural Language Processing),即“自然语言处理”,主要研究使用计算机来处理、理解及运用人类语言的各种理论和方法,属于人工智能的一个重要研究方向。简单来说,NLP就是如何让计算机理解人类语言。
-
全连接神经网络全连接神经网络是一种连接方式较为简单的人工神经网络结构,某一层的任意一个节点,都和上一层所有节点相连接。
-
感知器工作机制感知器即单层神经网络,也即"人工神经元",是组成神经网络的最小单元
-
RNN(Recurrent Neural Network),即"循环神经网络",是在基础神经网络模型中增加了循环机制。具体的表现形式为网络会对前面的信息进行记忆并应用于当前的计算中,即当前时刻利用了上一时刻的信息,这便是“循环”的含义。
-
预训练(Pre-training)是语言模型学习的初始阶段。在预训练期间,模型会接触到大量未标记的文本数据,例如书籍、文章和网站。在大量未标记文本数据上训练语言模型。比如说在包含数百万本书、文章和网站的数据集上预训练像 GPT-3 这样的语言模型。预训练目标是捕获文本语料库中存在的底层模式、结构和语义知识。
-
Transformer模型是在论文《Attention Is All You Need》里面提出来的,用来生成文本的上下文编码,传统的上下问编码大多数是由RNN来完成的,不过,RNN很难处理相隔比较远的两个单词之间的信息。
学习时间:
- 6.20
学习产出:
NLP是一个庞大的技术体系,研究方向主要包括机器翻译、信息检索、文档分类、问答系统、自动摘要、文本挖掘、知识图谱、语音识别、语音合成等。
相较于CNN重点应用于计算机视觉领域,RNN则更多地应用于NLP方向。
神经网络因为隐藏层的存在可以实现复杂的非线性拟合功能。但随着神经网络层数加深,神经网络很容易发生过拟合现象(在训练集上表现很好,在未知的测试集上表现很差,即“泛化能力差”)。
解决神经网络过拟合问题的方法
- 正则化
与很多机器学习算法一样,可以在待优化的目标函数上添加正则化项(例如L1、L2正则),可以在一定程度减少过拟合的程度。
- Dropout(随机失活)
可以将Dropout理解为对神经网络中的每一个神经元加上一道概率流程,使得在神经网络训练时能够随机使某个神经元失效。
前向传播
计算输出值的过程称为“前向传播”:将上一层的输出作为下一层的输入,并计算下一层的输出,一直到运算到输出层为止。
反向传播(Back Propagation,BP)
反向传播(BP)说白了根据根据J的公式对W和b求偏导,也就是求梯度。因为我们需要用梯度下降法来对参数进行更新,而更新就需要梯度。
RNN的应用领域
- 语音识别
- OCR识别(optical character recognition)
- 机器翻译
- 文本分类
- 视频动作识别
- 序列标注
预训练的主要特点:
- 无监督学习:预训练通常是一个无监督学习过程,模型在没有明确指导或标签的情况下从未标记的文本数据中学习。
- Masked Language Modeling:模型经过训练以预测句子中缺失或屏蔽的单词,学习上下文关系并捕获语言模式。
- Transformer 架构:预训练通常采用基于 Transformer 的架构,因为这种架构擅长捕获远程依赖关系和上下文信息。
总的来说,预训练是一种利用大规模无监督学习的方法,通过学习数据的内部表示来为模型提供初始参数和特征表示,为后续的具体任务提供更好的初始状态,从而提高模型的性能和泛化能力。
微调的关键是调整预训练模型的参数,以使其更好地适应目标任务的特定领域或数据分布。这个过程通常包括以下几个步骤:
- 冻结部分参数:为了保持预训练模型的初始表示能力,通常会冻结部分参数,特别是底层的参数,使其在微调过程中保持不变。这样可以避免较大的参数更新,防止过度调整模型的初始表示。
- 更新顶层参数:针对目标任务的特定要求,通常会添加一个或多个新的层,这些层称为顶层(top layers)。这些顶层将与预训练模型连接,并根据目标任务的标签数据进行训练。在微调过程中,主要是更新这些顶层参数,以使其适应目标任务的特定输出。
- 调整参数:在微调过程中,通过反向传播算法和优化方法(如随机梯度下降),根据目标任务的损失函数来调整模型的参数。由于预训练模型已经通过大规模无监督学习进行了初始化,微调过程通常只需要较少的训练数据和较少的迭代次数。
微调的目标是将预训练模型的泛化能力与目标任务的特定要求相结合,从而获得更好的性能。通过使用预训练模型的特征表示和参数初始化,微调可以加快模型在目标任务上的收敛速度,并提供更好的泛化能力。