相关说明
这篇文章的大部分内容参考自我的新书《解构大语言模型:从线性回归到通用人工智能》,欢迎有兴趣的读者多多支持。
文章列表:
- 利用神经网络学习语言(一)——自然语言处理的基本要素
- 利用神经网络学习语言(二)——利用多层感知器(MLP)学习语言
- 利用神经网络学习语言(三)——循环神经网络(RNN)
- 利用神经网络学习语言(四)——深度循环神经网络
- 利用神经网络学习语言(五)——长短期记忆网络(LSTM)
内容大纲
- 相关说明
- 一、要点回顾
- 二、常见面试问题
- 1. 自然语言处理
- 2. 迁移学习
- 3. 循环神经网络
- 4. 长短期记忆网络
一、要点回顾
语言既是人类智慧的栖息之所,也是一个非常复杂难以建模的领域。从本章开始,本书的讨论重点放在自然语言处理领域。首先,讨论如何将语言数字化,这个过程中涉及两个关键技术:分词和文本嵌入。对于中文而言,分词一直是一个挑战,它直接影响了模型对中文的建模效果。
自然语言处理涵盖多种任务,为了提高模型在语言处理方面的性能,学术界提出了迁移学习的方法。迁移学习分为两个阶段:预训练和微调。在预训练阶段,有3种常见的模式:自回归、自编码和序列到序列。结合目前的业界发展趋势,本章将讨论的范围限定在自回归模式。
在自回归模式下,本章分别使用多层感知器、标准循环神经网络和长短期记忆网络来学习开源的Python代码。多层感知器由于其模型结构的限制,主要适用于处理定长输入的情况,对序列数据的建模能力相对较弱。循环神经网络可以处理不定长输入,并具备生成定长或不定长输出的能力,在自然语言处理领域表现出色。然而,标准循环神经网络受限于短期记忆,难以有效捕捉长距离的依赖关系。为了解决这个问题,学术界引入了长短期记忆网络,它引入了细胞状态和门控机制,有效地支持了长距离信息传递,从而提高了模型预测的准确性。
在结构上,之前的神经网络通常按层次结构组织神经元,同一层的神经元之间没有连接,神经元的结构相对简单。循环神经网络打破了这两个限制,使神经网络的结构更加灵活,能够更好地捕捉数据之间的复杂关系。循环神经网络还有许多复杂的变体,如多层、双向、编码器和解码器等,鉴于篇幅有限,本系列文章只进行了简要介绍,读者可以根据兴趣在其他文献中深入了解这些内容。
循环神经网络正如其名,其核心特点是循环。循环计算的串行性质在很大程度上限制了模型的计算效率。尽管可以通过张量计算来加速模型的训练,但模型结构的局限性意味着无法完全消除串行计算。因此,在处理大规模数据集时,本系列文章实现的两个模型(标准循环神经网络和长短期记忆网络)都需要较长时间的计算。
二、常见面试问题
针对本系列文章讨论的内容,常见的面试问题如下。
1. 自然语言处理
- 什么是分词器?它的作用是什么?请列举几个常用的分词器。
- 在自然语言处理中,分词器的选择对建模任务的成功有何影响?
- 能否列举分词器在不同语言中遇到的挑战?
2. 迁移学习
- 什么是迁移学习?在自然语言处理领域,为什么迁移学习如此重要?
- 什么是自回归模式和自编码模式?
- 什么是序列到序列模式?一般的模型结构是怎样的?
3. 循环神经网络
- 请简要介绍循环神经网络的工作原理。
- 循环神经网络为什么会出现梯度消失或者梯度爆炸现象?有哪些改进方案?
- 多层双向循环神经网络是什么?它为什么能在自然语言处理任务中表现出色?
4. 长短期记忆网络
- 长短期记忆网络是什么?与标准循环神经网络相比,它有什么优势?
- 长短期记忆网络是如何实现长短期记忆功能的?
- 在长短期记忆网络中,各模块使用什么激活函数?可以使用其他的激活函数吗?