用户工具

站点工具


cnn

这是本文档旧的修订版!


CNN

CNN(Convolutional Neural Network,卷积神经网络)是一类以 卷积(Convolution)为核心计算操作的 DNN。CNN 最初主要用于处理具有网格结构的数据,尤其是图像。现代 CNN 的理论与应用基础来自 1980 年代 Yann LeCun 等人对卷积网络的研究,其中 LeCun 等人在 1989 年提出用于手写数字识别的卷积神经网络,并在 1998 年的论文《Gradient-Based Learning Applied to Document Recognition》中系统介绍了 LeNet-5。

CNN 的核心思想是利用局部连接、权重共享和层次化特征提取,让网络能够从原始输入中逐层学习空间结构。

基本结构

典型 CNN 可以表示为:

输入图像 → 卷积层 → 激活函数 → 池化层 → 卷积层 → 激活函数 → …… → 全连接层 → 输出

现代 CNN 不一定包含全连接层,也可以使用 Global Average Pooling 等结构直接产生分类结果。

例如一张猫的图片:

像素 → 边缘 → 纹理 → 局部形状 → 身体部件 → 猫。

这种从低级特征逐渐构建高级特征的过程是 CNN 的核心特点。

为什么需要卷积

如果直接使用 全连接层 处理图像,会产生非常多的参数。

例如一张 224 × 224 × 3 的 RGB 图片具有:

224 × 224 × 3 = 150,528

个输入特征。

如果下一层有 4096 个神经元,仅这一层就需要约 6.17 亿个权重。

CNN 使用卷积核只在局部区域进行计算,同时让同一个卷积核在整个图像上共享参数,因此可以大幅减少参数量。

卷积

卷积层使用一个较小的卷积核(Kernel)在输入上滑动。

例如一个 3 × 3 卷积核:

输入 → 3×3 局部区域 → 计算 → 输出一个值 → 移动卷积核 → 再计算。

整个过程会产生一个 Feature Map(特征图)。

卷积核中的参数通过训练自动学习。

早期卷积核可能学习到:

* 水平边缘。 * 垂直边缘。 * 纹理。 * 颜色变化。

更深层的卷积则能够组合这些低级特征,学习更加复杂的结构。

===== 局

cnn.1789112949.txt.gz · 最后更改: 由 holdsark