深度学习与NLP核心笔记:从神经元到Transformer的演进之路
深度学习与NLP核心笔记:从神经元到Transformer的演进之路
📝 前言
本周的学习重点在于打通深度学习(Deep Learning)与自然语言处理(NLP)的任督二脉。我们不仅回顾了神经网络的生物学起源,更从数学底层剖析了前向传播与反向传播的机制,深入探讨了CNN、RNN、LSTM等经典架构,并梳理了NLP的文本处理全流程。
🧠 一、神经网络的本质与数学基础
1. 感知机:从生物神经元到数学模型
笔记中提到了一个核心类比:生物神经元→人工神经元。
- 生物视角:树突接收电信号→细胞体处理→轴突输出。
- 数学视角(感知机模型):
一个神经元本质上就是一个数学函数。它接收输入信号,进行加权求和,加上偏置,最后通过激活函数输出。
$$
y = f\left(\sum_{i=1}^{n} w_i x_i + b\right)
$$
- $x_i$:输入特征(Input)
- $w_i$:权重(Weight),代表特征的重要性。
- $b$:偏置(Bias),相当于函数的截距,决定激活的难易程度。
- $f$:激活函数(Activation Function),引入非线性因素。
🤔 深度解析
感知机是神经网络的最小单元,也是最古老的分类算法之一(Rosenblatt, 1957)。在数学上,它是一个二分类的线性分类模型。
你可以把它想象成一个“决策神经元”:
- 结构:它接收多个输入信号($x_1, x_2, …$),每个信号都有一个对应的“重要性”权重($w$)。
- 机制:神经元将输入信号加权求和,再加上一个偏置($b$),最后通过一个“开关”(激活函数,如Sign函数)。
- 公式:$y = f(\sum w_i x_i + b)$。如果总和超过某个阈值,它就“激活”(输出1),否则“抑制”(输出-1)。
🛠️ 如何应用
虽然单层感知机现在很少单独使用,但它是构建现代深度神经网络的基石。
在逻辑回归中,我们依然可以看到感知机的影子,只是将阶跃函数换成了Sigmoid函数。
2. 核心架构:多层感知机
- 单层感知机局限:只能解决线性可分问题(如逻辑与、或),无法解决异或(XOR)这种非线性问题。
- 多层感知机:引入隐藏层,使得网络具备了拟合任意复杂函数的能力(万能逼近定理)。
- 输入层:接收原始数据。
- 隐藏层:提取特征(Feature Extraction)。
- 输出层:输出预测结果(分类概率或回归值)。
🤔 深度解析
神经网络是由大量神经元(感知机)按照一定的层次结构连接而成的网络模型。它通过模拟人脑神经元的连接方式来处理信息。
- 层次化特征提取:就像工厂的流水线。
- 输入层:原材料进场。
- 隐藏层:不同的车间对原材料进行加工。浅层网络提取边缘、颜色等简单特征,深层网络提取形状、语义等复杂特征。
- 输出层:成品出厂(预测结果)。
- 万能逼近器:只要隐藏层足够多,神经元足够多,神经网络理论上可以拟合任何复杂的函数(比如从图片像素到“猫”这个概念的映射)。
🛠️ 如何应用
- 计算机视觉:识别图像中的物体(CNN)。
- 自然语言处理:翻译语言、生成文本(RNN/Transformer)。
- 推荐系统:预测用户喜欢什么商品。
🔄 二、神经网络的工作原理:训练闭环
1. 前向传播
数据从输入层进入,经过隐藏层的加权求和与激活函数处理,层层传递,最终在输出层得到预测值。这是一个“信息流动”的过程,同层神经元之间无连接,计算相互独立,天然适合矩阵并行运算。
🤔 深度解析
前向传播是数据在神经网络中流动的过程:从输入层开始,经过隐藏层的加权求和与激活函数处理,层层传递,最终在输出层得到预测值的过程。
这是一个“推理”或“考试”的过程:
数据就像水流一样,从输入端流向输出端。每一层神经元都在对数据进行变换。
在这个过程中,网络的参数(权重$W$和偏置$b$)是固定的,不进行更新。
🛠️ 如何应用
- 预测阶段:模型训练好后,实际使用时(比如你上传一张照片让AI识别),只进行前向传播。
- 训练阶段的第一步:算出预测值$\hat{y}$,以便和真实值$y$对比计算误差。
2. 损失函数
为了衡量模型预测值与真实值之间的差距,我们需要一个“裁判”,这就是损失函数。
- 回归任务:常用均方误差(MSE)。
- 分类任务:常用交叉熵损失(Cross-Entropy Loss)。它衡量的是两个概率分布之间的距离,预测概率分布与真实分布越接近,损失值越小。
🤔 深度解析(交叉熵损失)
损失函数用于衡量模型预测值与真实值之间的差距。交叉熵是分类问题(尤其是二分类或多分类)中最常用的损失函数。
衡量“惊讶”程度:交叉熵衡量的是两个概率分布的差异。
直觉:如果真实是“猫”(概率1),模型预测是“猫”(概率0.9),那么损失很小(你不惊讶)。如果模型预测是“狗”(概率0.1),损失就会非常大(你很惊讶,模型错得离谱)。
公式(二分类):
$$
L = -\left[ y \ln(\hat{y}) + (1-y) \ln(1-\hat{y}) \right]
$$
🛠️ 如何应用
在训练神经网络进行分类任务时(如图像分类、垃圾邮件识别),通常将交叉熵作为优化的目标函数。我们的目标就是让这个值越小越好。
3. 反向传播
这是神经网络学习的核心。
- 原理:利用链式法则(Chain Rule),将输出层的误差反向传递给每一层,计算每个参数(权重和偏置)对总误差的贡献程度(即梯度)。
$$
\frac{\partial L}{\partial w} = \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial x} \cdot \frac{\partial x}{\partial w}
$$
- 目的:告诉模型“哪个参数导致了错误”,以便在下一步进行修正。
🤔 深度解析
反向传播是一种高效计算神经网络中参数梯度的算法。它利用链式法则,将输出层的误差从后向前逐层传递,计算每个权重对总误差的贡献。
归责机制:假如考试考砸了(损失大),反向传播就是分析原因的过程。
是最后一层没学好?还是中间层特征没提取好?
通过链式法则:
$$
\frac{\partial L}{\partial w} = \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial x} \cdot \frac{\partial x}{\partial w}
$$
我们可以算出每个参数$w$对最终错误的“贡献率”(梯度)。
指导方向:算出梯度后,我们就知道该往哪个方向调整参数,才能让下次考试分数更高。
🛠️ 如何应用
它是神经网络训练的核心。没有反向传播,深层网络就无法自动更新参数。配合优化器(如SGD, Adam)使用,通过 loss.backward() (在PyTorch中) 实现。
4. 参数更新与优化器
计算出梯度后,我们需要根据梯度来调整参数,使损失函数最小化。这就涉及到了三种梯度下降策略:
- BGD:每次更新都使用全部数据。
- 优点:方向准确,收敛稳定。
- 缺点:计算量巨大,速度慢,内存要求高。
- SGD:每次更新只随机抽取一个样本。
- 优点:速度极快,可以在线学习。
- 缺点:震荡剧烈,方向不稳定,容易陷入局部最优。
- MBGD:每次更新使用一小批样本(如32、64、128个)。
- 优点:结合了前两者的优点,既利用了矩阵运算的并行加速(GPU友好),又保持了收敛的稳定性。这是目前深度学习最常用的策略。
- 缺点:需要调节批量大小这个超参数。
🤔 深度解析(三种梯度下降对比)
梯度下降是优化算法,用于根据反向传播计算出的梯度来更新参数。主要有三种策略:
| 策略 | 全称 | 怎么理解(比喻) | 优缺点 |
|---|---|---|---|
| BGD | 批量梯度下降 | 老师傅下山:每次下山(更新参数)前,都要看完所有的样本数据,算出平均梯度再走一步。 | 优:走得稳,指向全局最优。 缺:数据量大时太慢,内存装不下。 |
| SGD | 随机梯度下降 | 盲人下山:每次只看一个样本就更新一次参数。 | 优:速度极快,可以在线学习。 缺:走位风骚(震荡大),容易陷入局部最优。 |
| MBGD | 小批量梯度下降 | 小组下山:每次看一小批(如32个、64个)样本,取平均梯度更新。 | 优:兼顾了速度和稳定性,是工业界最常用的方法。 缺:需要调节批量大小这个超参数。 |
🛠️ 如何应用
在代码中通常通过设置 batch_size 来控制。
batch_size = 1对应 SGD。batch_size = 全量数据对应 BGD。batch_size = 32/64/128对应 MBGD。
⚡ 三、激活函数:引入非线性的灵魂
如果没有激活函数,无论神经网络有多少层,其本质都只是一个线性模型(因为线性函数的组合依然是线性函数)。激活函数赋予了神经网络拟合非线性关系的能力。
- Sigmoid:将输出压缩到(0,1)之间,常用于二分类问题的输出层。但在深层网络中,由于其两端梯度趋近于0,容易导致梯度消失问题,且涉及指数运算,计算较慢。
- Tanh:输出压缩到(-1,1)之间,是Sigmoid的变体,收敛速度通常比Sigmoid快,但同样存在梯度消失问题。
- ReLU:当输入大于0时,输出等于输入;否则输出为0。它有效缓解了梯度消失问题(正区间梯度恒为1),且计算极其简单(只需阈值操作),是目前隐藏层最常用的激活函数。
- Leaky ReLU:为了解决ReLU在负区间“死亡”(梯度为0)的问题,给负区间赋予了一个很小的斜率(如0.01),使得神经元在负区间也能更新参数。
🤔 深度解析
激活函数是加在神经元输出端的非线性函数。如果没有它,无论神经网络有多少层,最终都只是一个线性模型。
引入非线性:现实世界的问题(如猫和狗的区别)不是画一条直线就能分开的。激活函数让神经网络具备了画曲线、分割复杂空间的能力。
常见类型补充:
- Sigmoid: 将输出压缩到(0,1),适合做概率输出,但容易梯度消失。
- Tanh: 输出在(-1,1),比Sigmoid收敛快,但仍有梯度消失问题。
- ReLU: $f(x) = \max(0, x)$。目前最常用。计算快,解决了梯度消失问题,但可能导致神经元“坏死”(输出恒为0)。
🛠️ 如何应用
在构建卷积层或全连接层后,通常紧接着加一个ReLU层:Conv -> ReLU -> Pooling。
输出层根据任务选择:回归用线性,二分类用Sigmoid,多分类用Softmax。
🏗️ 四、经典网络架构演进
1. 卷积神经网络(CNN)
- 核心思想:模拟人类视觉皮层对图像局部特征的感知。
- 关键操作:
- 卷积层:使用卷积核在图像上滑动,提取局部特征(如边缘、纹理)。通过权值共享,大大减少了参数数量。
- 池化层:对特征图进行降采样(如最大池化、平均池化),保留主要特征的同时减小数据维度,提高模型的平移不变性。
- 全连接层:将卷积和池化提取的特征展平,连接到输出层进行分类或回归。
- 应用:图像分类、目标检测、图像分割等计算机视觉任务。
🤔 深度解析
卷积神经网络,一种专门用来处理具有类似网格结构数据(如图像、时间序列)的深度学习模型。
核心思想:局部感知和权值共享。
- 卷积层:就像一个“手电筒”(卷积核)在图片上滑来滑去,提取边缘、纹理等局部特征。
- 池化层:像“压缩图片”,保留主要特征(如最大池化保留最明显的纹理),降低数据维度,减少计算量。
- 全连接层:在最后将提取到的所有特征汇总,进行分类判断。
🛠️ 如何应用
- 图像处理:图像分类(ResNet)、目标检测(YOLO)、人脸识别。
- NLP:虽然现在Transformer流行,但CNN早期也用于文本分类(TextCNN),提取N-gram特征。
2. 循环神经网络(RNN)
- 核心思想:引入“记忆”机制,处理序列数据。当前时刻的输出不仅取决于当前输入,还取决于上一时刻的隐藏状态。
- 结构特点:网络中存在环状结构,信息可以在时间维度上循环传递。
- 问题:在处理长序列时,容易出现梯度消失或梯度爆炸问题,导致模型难以捕捉长距离依赖关系。
🤔 深度解析
循环神经网络,专门为处理序列数据(如时间序列、文本)而设计。
记忆能力:传统神经网络处理每个输入是独立的。RNN有一个“隐藏状态”$h_t$,它不仅看当前的输入$x_t$,还记住了上一时刻的信息$h_{t-1}$。
公式:
$$
h_t = f(W \cdot x_t + U \cdot h_{t-1} + b)
$$
直觉:就像读句子,理解当前的词需要结合前面的词。
🛠️ 如何应用
处理具有时间依赖性的数据。
早期的机器翻译、语音识别、文本生成。
缺点:标准RNN存在梯度消失和梯度爆炸问题,导致它记不住太长的历史信息(长距离依赖问题)。
3. 长短期记忆网络(LSTM)
- 核心思想:为了解决RNN的长距离依赖问题,引入了“门控”机制。
- 关键结构:
- 遗忘门:决定丢弃哪些过去的信息。
- 输入门:决定保留哪些新的信息。
- 输出门:决定当前时刻的输出。
- 优势:通过门控机制,LSTM能够有效地控制信息的流动,保留长期记忆,在处理长文本、语音等序列数据时表现优异。
🤔 深度解析
长短期记忆网络,是RNN的一种变体,专门解决了RNN无法处理长序列依赖的问题。
门控机制:LSTM在神经元内部设计了三个“开关”(门):
- 遗忘门:决定忘掉哪些过去的信息(比如读到新主语,忘掉旧主语)。
- 输入门:决定记住哪些新信息。
- 输出门:决定当前时刻输出什么信息。
细胞状态:就像一条高速公路,信息可以在上面长距离传输而不受阻碍,除非被门控调节。
🛠️ 如何应用
在Transformer出现之前,LSTM是NLP领域的王者。
适用于长文本分析、股票预测、复杂的序列标注任务。
📖 五、自然语言处理(NLP)全流程
1. NLP核心概念
🤔 是什么
自然语言处理是AI的一个分支,致力于让计算机理解和生成人类语言。
💡 怎么理解
计算机不懂文字,只懂数字。NLP的核心流程就是“翻译”:
- 分词:把句子切开(如 jieba 分词)。
- 去停用词:去掉“的、是、了”等无意义词。
- 向量化:将词变成向量(Word Embedding),让语义相近的词在空间距离上接近(如 国王-男人+女人=女王)。
🛠️ 如何应用
- 文本分类:垃圾邮件拦截、情感分析。
- 信息抽取:从新闻中提取人名、地名、事件。
- 机器翻译:谷歌翻译、DeepL。
- 生成式任务:ChatGPT、文本摘要。
2. 文本预处理
- 文本清洗:去除噪声数据(如HTML标签、特殊符号)。
- 分词:将连续的文本切分成独立的词语。
- 精确模式:试图将句子最精确地切开,适合文本分析。
- 全模式:把所有可能的词语都扫描出来,适合搜索引擎构建倒排索引。
- 搜索引擎模式:在精确模式基础上,对长词再次切分,提高召回率。
- 去停用词:去除“的”、“是”、“在”等对语义贡献不大的高频词。
- 词向量化:将词语转换为计算机可处理的数字形式(如One-hot、Word2Vec、GloVe)。
3. 模型应用
- 传统模型:基于统计的模型(如N-gram、HMM)。
- 深度学习模型:基于神经网络的模型(如RNN、LSTM、Transformer)。
- 预训练模型:在大规模语料上预训练的模型(如BERT、GPT),通过微调即可在下游任务上取得优异效果。
📚 学习心得
本周系统梳理了深度学习从基础到经典架构的完整知识体系,最大的收获是打通了“数学原理→网络结构→实际应用”的逻辑链条。
从最基础的感知机,到解决长序列依赖的LSTM,每一个技术演进都是为了解决上一代模型的核心痛点。而NLP的本质,就是将人类语言转化为计算机可计算的数字,再通过神经网络挖掘其中的语义规律。
这些基础是后续学习Transformer、大语言模型的核心基石,只有把底层原理搞懂,才能真正理解现代AI的工作机制。