目录

DNN

DNN(Deep Neural Network,深度神经网络)是由多个神经网络层堆叠形成的人工神经网络。DNN 并不是由某一位研究者在某一篇论文中单独提出的概念,而是在 人工神经网络、反向传播 和 深度学习 的发展过程中逐渐形成的。现代 DNN 的重要理论基础来自 Rumelhart、Hinton 和 Williams 于 1986 年发表的《Learning representations by back-propagating errors》,该工作系统展示了 反向传播 如何训练多层神经网络;2010 年代 深度学习 的突破则使 DNN 成为现代 机器学习 的核心模型之一。

基本结构

DNN 通常由输入层、多个隐藏层和输出层组成:

输入层 → 隐藏层 → 隐藏层 → …… → 输出层

其中隐藏层数量较多,因此称为“Deep”。

一个简单的神经网络可以表示为:

x → Linear → Activation → Linear → Activation → Output

每一层通常执行:

z = Wx + b

然后经过激活函数:

a = f(z)

其中 W 是权重,b 是偏置,f 是 激活函数。

多层网络不断进行这种变换:

x → f(W₁x + b₁) → f(W₂x + b₂) → …… → y

为什么叫 Deep

这里的“Deep”主要指网络具有较多的计算层,而不是指模型参数一定非常多。

例如:

输入 → 输出

只有很少的计算层,可以认为是浅层模型。

而:

输入 → Layer 1 → Layer 2 → Layer 3 → Layer 4 → 输出

具有更多层,因此属于深层神经网络。

深度使模型能够逐层学习更加复杂的表示。

例如在 计算机视觉 中:

像素 → 边缘 → 纹理 → 局部结构 → 物体部件 → 完整物体。

这就是 表示学习 的典型思想。

神经元

DNN 的基本计算单元可以理解为人工神经元。

一个神经元首先对输入进行加权求和:

z = w₁x₁ + w₂x₂ + …… + wₙxₙ + b

然后通过 激活函数:

a = f(z)

常见激活函数包括:

* Sigmoid * Tanh * ReLU * GELU

激活函数引入非线性,使多个神经网络层能够表示复杂的非线性函数。

全连接层

最经典的 DNN 使用 全连接层(Fully Connected Layer)。

假设输入有 n 个特征,下一层有 m 个神经元,那么这一层可以表示为:

y = Wx + b

其中 W 的大小为 m × n。

每一个输出神经元都与上一层的所有神经元连接,因此称为“全连接”。

前向传播

DNN 计算预测结果的过程称为 前向传播(Forward Propagation)。

例如:

输入 x → 第一层 → 第二层 → 第三层 → 输出 ŷ

每一层接收上一层的输出,并产生自己的输出。

最终得到模型预测值:

ŷ = fₗ(…f₂(f₁(x)))

训练时,模型需要不断调整各层的参数,使预测值接近真实标签。

损失函数

DNN 通常通过 损失函数 衡量预测结果与真实结果之间的差异。

例如回归任务可以使用均方误差:

Loss = (1 / n) Σᵢ(yᵢ - ŷᵢ)²

分类任务常使用 交叉熵损失。

训练目标就是:

最小化 Loss。

反向传播

DNN 的训练通常依赖 反向传播(Backpropagation)。

基本过程是:

前向传播 → 计算 Loss → 反向传播 → 计算梯度 → 更新参数。

反向传播利用 链式法则 计算损失函数对于网络中各个参数的梯度。

例如:

∂Loss / ∂W

得到梯度后,可以使用 梯度下降 或 Adam 等优化算法更新参数。

最基本的参数更新方式是:

W ← W - η∇W Loss

其中 η 是学习率。

DNN 与深度学习

DNN 是 深度学习 的重要组成部分,但两者并不完全等价。

深度学习是一个更大的研究领域,而 DNN 是其中的一类模型。

例如:

* MLP:典型的 DNN。 * CNN:主要用于图像等具有空间结构的数据。 * RNN:用于序列数据。 * Transformer:现代 大语言模型 的主要基础架构。 * 扩散模型:常用于图像、视频和其他生成任务。

因此,“深度学习”不是某一种具体网络,而是一类利用深层神经网络进行表示学习和函数逼近的方法体系。

DNN 的表达能力

DNN 的重要优势之一是具有很强的函数逼近能力。

增加网络深度后,模型可以通过多个非线性变换构造复杂函数。

例如:

输入特征 → 低级表示 → 中级表示 → 高级表示 → 预测结果。

这使 DNN 能够直接从原始数据中学习有用特征,而不必完全依赖人工设计的特征工程。

这也是 表示学习 能够改变传统机器学习流程的重要原因。

DNN 的训练过程

一个典型的 DNN 训练过程是:

数据 → 前向传播 → 计算 Loss → 反向传播 → 梯度计算 → 参数更新 → 下一批数据 → …… → 收敛。

训练通常采用 Mini-Batch,即每次只使用一部分训练数据计算梯度。

完整遍历一次训练数据称为一个 Epoch。

DNN 的泛化

DNN 不仅需要在训练数据上表现良好,还需要能够处理没有见过的数据,这称为 泛化(Generalization)。

如果模型过于复杂而训练数据不足,就可能出现 过拟合。

常见方法包括:

* 正则化 * Dropout * 数据增强 * Early Stopping * 增加训练数据

DNN 的优点

* 能够学习复杂的非线性关系。 * 可以自动学习特征表示。 * 可以通过增加深度和宽度提升模型容量。 * 能够处理图像、文本、语音、时间序列等多种数据。 * 可以通过 GPU 和 分布式训练 进行大规模训练。

DNN 的局限

DNN 也存在一些重要问题:

计算成本

网络越大,训练和推理通常需要更多计算资源。

数据需求

大型 DNN 通常需要大量高质量训练数据。

可解释性

模型内部的参数和表示通常难以直接解释。

过拟合

在数据不足或者模型容量过大时容易过拟合。

训练稳定性

深层网络可能出现梯度消失、梯度爆炸等问题,因此需要合适的初始化、激活函数、归一化和优化方法。

DNN 与 Transformer

Transformer 本质上也可以看作一种深度神经网络,但现代 Transformer 与传统 DNN 存在明显区别。

传统 DNN 通常主要依赖全连接层:

x → Linear → Activation → Linear → Activation。

Transformer 则使用 Self-Attention 和 Feed Forward Network 等结构:

x → Attention → FFN → Attention → FFN → ……

因此,Transformer 可以被视为 DNN 架构发展的一个重要阶段。

现代 大语言模型,例如 GPT 系列,本质上都是大规模的深度神经网络。

DNN 的发展意义

DNN 的核心意义并不只是“增加网络层数”,而是让神经网络能够通过多层非线性变换自动学习层次化表示。

传统机器学习往往需要:

原始数据 → 人工特征工程 → 模型 → 预测。

DNN 则更加倾向于:

原始数据 → 神经网络自动学习表示 → 预测。

这一思想最终推动了 深度学习 在计算机视觉、语音识别、自然语言处理和生成式 AI 等领域的大规模应用。

从今天的角度看,CNN、RNN、Transformer、大语言模型 等现代模型都可以放在 DNN 这一更大的框架中理解。

相关条目

* 人工神经网络 * 深度学习 * MLP * 反向传播 * 激活函数 * Transformer * 表示学习 * 梯度下降

参考资料

* Rumelhart, Hinton, Williams, 1986, 《Learning representations by back-propagating errors》 * LeCun, Bengio, Hinton, 2015, 《Deep learning》, Nature * Goodfellow, Bengio, Courville, 2016, 《Deep Learning》 * Krizhevsky, Sutskever, Hinton, 2012, 《ImageNet Classification with Deep Convolutional Neural Ne*