深度学习是近期在诸多领域取得显著效果的一种方法。与传统监督学习依赖手工构造特征不同,深度学习通过构造“端到端”的多层网络结构,自动学习隐含在数据内部的层级化特征表达。
深度学习的历史发展
深度学习的思想源于对人脑神经系统的模拟。其发展历程中经历了多次起伏,最终在海量数据、强大算力和算法改进的共同推动下,成为当前人工智能的核心技术。
前馈神经网络
前馈神经网络是深度学习的基础架构。信息从输入层开始,逐层向前传播,经过若干隐藏层,最终到达输出层,网络中没有反馈回路。
若干概念
神经网络的基本计算单元。一个神经元接收来自 个其他神经元的输入信号 ,通过带权重的连接进行传递,总输入与阈值 比较后,经过激活函数 处理产生输出:
常见激活函数
| 激活函数 | 表达式 | 特点 |
|---|---|---|
| Sigmoid | 输出范围 ,常用于二分类输出层;易产生梯度消失 | |
| Tanh | 输出范围 ,零中心化;仍存在梯度消失 | |
| ReLU | 计算简单,缓解梯度消失;输出非零中心;可能出现神经元“死亡” | |
| Leaky ReLU | 解决ReLU神经元死亡问题,给负区间一个微小斜率 | |
| Softmax | 将输出转换为概率分布,常用于多分类输出层 |
多层前馈网络结构
- 隐藏层:位于输入层和输出层之间,对数据进行特征变换和提取。可以有多个隐藏层
- 输出层:产生最终预测结果
- 全连接:相邻层之间的神经元两两连接,每条连接有一个权重
万能近似定理
具有至少一个隐藏层、且隐藏层使用“挤压”性质激活函数(如Sigmoid)的前馈网络,只要隐藏层神经元数量足够多,可以以任意精度逼近任意连续函数。但定理并未说明需要多少神经元,也未保证实际训练能收敛到该函数。
感知机模型
- 模型:
- 学习策略:误分类驱动。对误分类样本 ,更新权重:
- 收敛性:若数据线性可分,感知机算法必收敛
- 局限:无法解决异或(XOR)等线性不可分问题,这直接导致了神经网络研究的第一次低潮
参数优化与学习
误差反向传播(Backpropagation,
BP算法的核心思想是:利用链式法则,将输出层的误差从后向前逐层传递,从而高效计算出损失函数对网络中每个参数的梯度。
算法流程:
- 前向传播:将输入样本送入网络,逐层计算各神经元的输出,最终得到预测值
- 计算输出层误差:根据损失函数,计算预测值与真实值之间的误差
- 反向传播:从输出层开始,利用链式法则将误差逐层向前反向传播,计算每层神经元权重的梯度
- 更新参数:利用梯度下降法更新各层权重和偏置
批量梯度下降 vs 随机梯度下降 vs
| 方法 | 描述 | 特点 |
|---|---|---|
| 批量梯度下降(BGD) | 使用全部训练数据计算梯度 | 收敛稳定但速度慢,内存开销大 |
| 随机梯度下降(SGD) | 每次使用一个样本计算梯度 | 更新快,但收敛过程波动大 |
| 小批量梯度下降(Mini-batch SGD) | 每次使用一小批样本计算梯度 | 最常用,兼顾稳定性和效率 |
卷积神经网络(CNN)
卷积神经网络是专门为处理网格化结构数据(如图像)而设计的深度学习架构。其核心组件包括卷积层、池化层和全连接层。
CNN的主要特点:
- 局部连接:每个神经元只与上一层的局部区域连接,减少参数数量
- 权值共享:同一卷积核在整个输入上滑动,共享权重参数
- 层次化特征提取:低层提取边缘、纹理等简单特征,高层组合成复杂语义特征
卷积计算
卷积核(滤波器)在输入特征图上滑动,每次与对应位置的局部区域做逐元素乘积后求和,生成输出特征图。多个卷积核可提取多种不同特征。
卷积操作的核心参数:
| 参数 | 说明 |
|---|---|
| 卷积核大小 | 感受野的大小,如 、 |
| 步长(Stride) | 卷积核每次移动的像素数 |
| 零填充(Padding) | 在输入特征图边缘补零,控制输出尺寸 |
输出尺寸计算公式: 假设输入尺寸为 ,卷积核大小为 ,步长为 ,填充为 ,则输出尺寸为:
池化(Pooling)
池化层对特征图进行下采样,减少特征图尺寸,从而降低计算量和参数量,同时增加感受野,具有一定的不变性(如平移不变性)。
| 池化类型 | 操作 | 特点 |
|---|---|---|
| 最大池化 | 取局部区域的最大值 | 最常用,保留最显著特征 |
| 平均池化 | 取局部区域的平均值 | 保留整体信息,更平滑 |
神经网络正则化
| 方法 | 核心思想 |
|---|---|
| L1/L2正则化 | 在损失函数中加入权重的 L1 或 L2 范数惩罚项,限制权重大小 |
| Dropout | 训练时随机“丢弃”一部分神经元,相当于每次训练一个子网络,有效防止过拟合。测试时使用全部神经元 |
| 数据增强 | 通过旋转、翻转、裁剪、色彩变换等手段生成更多训练样本 |
| 批归一化(Batch Normalization) | 对每层输入进行归一化,加速训练,减少对初始化的敏感度 |
循环神经网络(RNN)
循环神经网络专门用于处理序列数据(如文本、语音、时间序列),其核心特点是具有记忆能力,当前时刻的输出不仅依赖当前输入,还依赖之前时刻的隐藏状态。
循环神经网络模型
核心思想:在每个时间步 ,RNN 接收当前输入 和上一时刻的隐藏状态 ,计算当前隐藏状态 和输出 :
- 在所有时间步共享,大大减少参数数量。
- 通过沿时间的反向传播(Backpropagation Through Time, BPTT)进行训练。
RNN的局限性:
- 梯度消失/爆炸:序列较长时,梯度在反向传播中呈指数级衰减或增长,导致难以学习长期依赖关系。
- 短时记忆问题:标准RNN仅能有效记住较短时间步之前的信息。
长短时记忆网络(LSTM)
LSTM 是为解决标准RNN的长期依赖问题而设计的改进模型。它引入门控机制和细胞状态,可以学习何时记住、何时遗忘信息。
LSTM的核心组件:
| 组件 | 功能 |
|---|---|
| 遗忘门 | 决定从细胞状态中丢弃哪些信息: |
| 输入门 | 决定将哪些新信息存入细胞状态: |
| 候选细胞状态 | 生成候选的新信息: |
| 更新细胞状态 | 整合遗忘门和输入门: |
| 输出门 | 决定输出什么信息: |
| 隐藏状态 |
门控循环单元(GRU)
GRU 是 LSTM 的简化变体,将遗忘门和输入门合并为更新门,将细胞状态和隐藏状态合并。参数更少,计算效率更高,在很多任务上效果与 LSTM 相当。
- 更新门 :控制保留多少过去信息,以及接收多少新信息
- 重置门 :控制忽略多少过去信息
深度生成学习
生成对抗网络(GAN)
GAN 由 Goodfellow 于 2014 年提出,由两个网络组成,通过对抗训练共同优化:
- 生成器(Generator, G):接收随机噪声 ,生成伪造样本 ,目标是“骗过”判别器
- 判别器(Discriminator, D):接收真实样本或生成样本,判断输入是真实的还是伪造的
核心思想:两个网络间进行极小极大博弈(Minimax Game)。
生成对抗网络算法
- 判别器优化:最大化 ,即正确分类真实样本和生成样本
- 生成器优化:最小化 ,即最小化 ,等价于最大化 ,让判别器将生成样本判为真
训练过程:交替训练判别器和生成器,二者在对抗中共同提升。理论上,当 时,博弈达到纳什均衡,此时 。
条件生成对抗网络(CGAN)
原始 GAN 无法控制生成样本的类别。CGAN 通过向生成器和判别器额外输入条件变量 (如类别标签),使生成过程可控,可生成指定类别的样本。
- 生成器: ,根据随机噪声和条件生成样本
- 判别器: ,不仅判断样本真假,还判断样本与条件是否匹配
- 优化目标:
用生成对抗网络抵御对抗样本攻击
对抗样本:在原始输入上添加微小、人眼不可察觉的扰动后,会导致深度学习模型以高置信度做出错误预测。这种现象揭示了深度学习模型的脆弱性。
防御思路:利用GAN生成对抗样本,将其加入训练数据,使模型“见过”对抗样本后获得鲁棒性,从而抵御对抗攻击。
深度学习在NLP和CV上的应用
词向量模型(Word2Vec)
- 目的:将单词从离散的独热编码(One-hot)映射到低维稠密的连续向量空间,使语义相似的词在向量空间中距离也相近。
- 核心假设:分布假说——“一个词的含义可由其上下文推断”
- 主要模型:
- Skip-gram:用中心词预测周围上下文词
- CBOW(Continuous Bag of Words):用上下文词预测中心词
- 著名特性:词向量能捕获语义关系,如“国王 - 男人 + 女人 = 王后”
图像分类与目标定位
| 模型 | 特点 |
|---|---|
| AlexNet | 2012年 ImageNet 冠军,首次展示深度学习潜力(ReLU + Dropout) |
| VGGNet | 使用堆叠的小卷积核( ),网络结构规整 |
| GoogLeNet(Inception) | 引入 Inception 模块,并行使用多种大小卷积核提取多尺度特征 |
| ResNet | 引入残差连接(跳层连接),解决深层网络退化问题,可训练上百层网络 |
除图像分类外,CNN 还广泛用于目标检测(Faster R-CNN、YOLO)、语义分割(FCN、U-Net)等视觉任务。
小结
- 前馈神经网络是网络基础,通过反向传播算法进行参数优化
- CNN 利用卷积、池化等操作,极大推动了计算机视觉的发展
- RNN/LSTM/GRU 的循环结构和门控机制,为处理序列数据提供了有效方案
- GAN 开创了对抗训练范式,使模型具备生成逼真数据的能力