深度神经网络
深度神经网络 (DNN)
Section titled “深度神经网络 (DNN)”深度神经网络 (DNN) 本质上是一种人工神经网络 (ANN),其特点是在输入层和输出层之间有多个隐藏层。虽然浅层 ANN(带有一个或很少的隐藏层)可以建模非线性关系,但 DNN 利用深度来学习数据的分层表示,使其能够建模更复杂的模式和函数。
可以将 DNN 中的层视为从原始输入逐步构建更抽象的特征。例如,在图像识别中:
- 早期层: 可能会检测边缘、角点、纹理等简单特征。
- 中间层: 可能会组合这些简单特征来识别物体的一部分(例如,眼睛、鼻子、轮子、把手)。
- 更深层: 可能会组合这些部分来识别完整的物体(例如,人脸、汽车、动物)。
这种分层特征学习是深度架构的一个关键优势。“深度”(层数)允许网络学习复杂的关联和抽象级别,这对于具有相同参数数量的浅层网络来说将非常困难,甚至不可能实现。
典型的全连接前馈 DNN 结构涉及数据从输入层顺序流经多个隐藏层,最终到达输出层。每个连接都有一个权重,每个神经元(通常在隐藏层和输出层)都有一个偏置,并应用非线性激活函数(如 ReLU、Sigmoid、Tanh)。
隐藏层的数量和每层中的神经元数量是影响模型能力和性能的关键架构选择(超参数)。
训练 DNN
Section titled “训练 DNN”训练 DNN 遵循与训练浅层 ANN 相同的基本原理:前向传播以获得预测结果,计算损失函数,反向传播以计算梯度,以及使用优化器(如梯度下降变体:Adam, SGD, RMSprop 等)更新参数。
然而,深度引入了挑战,特别是梯度消失/爆炸问题。当梯度通过许多层反向传播时,它们可能会指数级地缩小到零(消失)或指数级地增大(爆炸),这使得早期层难以有效学习或导致训练不稳定。现代技术有助于缓解这个问题:
- 激活函数: 使用 ReLU 及其变体等非饱和激活函数有助于防止梯度缩小到零。
- 权重初始化: 精心设计的初始化方案(例如 He、Xavier/Glorot)有助于保持信号传播的平衡。
- 批量归一化 (Batch Normalization): 在 mini-batch 内对激活值进行归一化,有助于稳定训练并减少对初始化的敏感性。
- 残差连接 (ResNets): 引入允许梯度绕过层的“跳跃连接”,有助于信息更容易地流过非常深的层网络。
- 梯度裁剪 (Gradient Clipping): 限制梯度的最大幅值,防止梯度爆炸。
训练深度模型还需要大型数据集(如图像领域的 ImageNet,自然语言处理领域的庞大文本语料库)和显著的计算能力,通常利用 GPU 或 TPU 进行加速。
为何选择深度?DNN 与浅层网络对比
Section titled “为何选择深度?DNN 与浅层网络对比”虽然理论上,一个具有足够多神经元的浅层网络可以近似任何函数(万能近似定理),但在实践中,对于复杂任务,深度网络通常更有效率。
- 参数效率: 深度网络通常能用显著更少的参数来表示复杂函数,达到与浅层网络相同的准确度。
- 分层特征学习: 深度自然地促进了在不同抽象级别上学习特征,这非常适合处理图像和语言等真实世界数据。
- 模块化和可重用性: 在较低层学到的特征通常可以在不同任务中重复使用(这是迁移学习的核心思想)。
深度学习和浅层学习之间没有严格的界限,但一般来说,超过两三个隐藏层的网络就被认为是深度网络。“深度”是指从输入到输出的变换路径的长度,通常用顺序层的数量(或信用分配路径 - CAP 深度)来衡量。
深度学习架构类型
Section titled “深度学习架构类型”虽然基本的前馈 DNN 是基础,但也为不同类型的数据和任务开发了专门的架构:
- 卷积神经网络 (CNNs): 擅长处理网格状数据,例如图像。它们使用带有可学习滤波器的卷积层来检测空间特征的层次结构(边缘、纹理、部分、物体)。关键概念包括卷积 (convolution)、池化 (pooling) 和参数共享 (parameter sharing)。
- 循环神经网络 (RNNs): 专为序列数据(如文本或时间序列)设计。它们有形成定向循环的连接,使其能够保持关于过去信息的内部状态或“记忆”。LSTM (长短期记忆) 和 GRU (门控循环单元) 等变体解决了学习长距离依赖关系中的挑战。
- Transformer: 一种更近期的架构,目前在自然语言处理 (NLP) 领域占据主导地位,完全依赖于自注意力 (self-attention) 机制来建模输入元素之间的依赖关系,无论它们在序列中的距离如何。高度并行化,并且在捕捉长距离上下文方面非常有效。
- 自编码器 (Autoencoders): 一种无监督网络,训练目标是重建其输入。它们由一个将输入压缩到低维潜在表示的编码器 (encoder) 和一个从该表示重建输入的解码器 (decoder) 组成。用于降维、特征学习和生成建模。
- 生成对抗网络 (GANs): 由生成器 (generator) 和判别器 (discriminator) 两个网络组成,以对抗方式进行训练。生成器试图创建逼真的数据,而判别器试图区分真实数据与生成器创建的假数据。用于生成逼真的图像、音乐等。
- 深度信念网络 (DBNs): 由堆叠的受限玻尔兹曼机 (RBMs) 组成的生成模型。历史上很重要,但现在不如 GANs 和其他生成模型常见。
- 图神经网络 (GNNs): 设计用于直接处理图结构数据(例如社交网络、分子结构)。
选择深度网络架构
Section titled “选择深度网络架构”架构的选择在很大程度上取决于数据类型和具体任务:
- 图像识别/计算机视觉: CNNs 是标准选择,常使用预训练模型(ResNet、VGG、EfficientNet)。
- 文本分类、翻译、摘要: Transformer(BERT、GPT、T5)是目前最先进的。LSTM/GRU 也是可行的替代方案。
- 时间序列分析/序列建模: RNNs (LSTMs/GRUs) 或有时使用一维 CNNs 或 Transformer。
- 表格数据: 前馈 DNNs、梯度提升机(如 XGBoost、LightGBM - 通常具有竞争力或更优),或专门架构如 TabNet。
- 生成任务(图像、音乐): GANs、扩散模型 (Diffusion Models)、变分自编码器 (VAEs)。
- 图数据: GNNs。
深度学习为解决跨领域复杂模式识别和预测问题提供了强大的工具箱。专门架构和训练技术的不断发展持续推动着人工智能的进步。