深度学习 A to Z · 3-3

图像与 CNN — 从数字网格到概率

对计算机来说,照片是一个密密麻麻排满数字的网格。无论是人工设定的特征,还是把像素排成一行的神经网络(MLP),在这个网格面前都很容易动摇。让一个小滤波器在网格上滑动的卷积神经网络(CNN)解决了什么、还有什么没能解决,我们将亲手逐个计算数字来跟进。

1980新认知机(Neocognitron)发表 [R2]
1998LeNet 与手写数字识别 [R3]
15.3%2012 年 ImageNet 竞赛冠军 CNN 的 top-5 错误率(第 2 名 26.2%) [R4]
9 个一个 3×3 滤波器拥有的权重
2,371 : 527本页 MLP 与 CNN 的参数数量
2 段可在 Colab 中直接运行的代码
1数字网格

照片就是数字网格

把屏幕上的图片放得很大,就能看到一个个小方块(像素)。一个像素是表示亮度的一个数字,如果是彩色,则是红·绿·蓝三个数字。

图片
查看

给初学者的解说

数字网格通常以 0(黑)到 255(白)的整数存储。输入神经网络时,多数情况下会除以 255,变为 0~1。本页的计算也使用 0~1。一张手机照片(例:4000×3000 彩色)有 3,600 万个数字。数字网格如此之大,这一事实正是后面各节的出发点。

2传统机器学习

传统机器学习 — 人工设定的特征只能承受预想到的变化

需要区分三种图形(+、×、○)。人设定了两条线索:“中间是否被涂满”、“横·竖条是否比对角线条更深”。机器只学习赋予这两个数字的权重。

测试条件

那么人们做了什么

这个例子的特征是故意做得很简单。实际上,研究者长期以来设计了精巧得多的特征,例如按区域统计边缘方向。即便如此,照片中物体的位置·大小·光照·角度变化无穷,人很难预先想到所有变化并把它们装进特征里。2012 年,在对 1,000 类照片进行分类的 ImageNet 竞赛中,连特征也自行学习的 CNN 以 15.3% 的 top-5 错误率大幅领先第 2 名(26.2%),潮流随之改变 [R4]。

3MLP 的局限

MLP 在照片上碰壁的四个原因

要把照片输入 3-2 的 MLP(多层感知机),必须把网格展开成一行。我们逐个来看展开那一刻产生的问题。

照片尺寸(用于②)
4CNN 的解法

CNN 的四种解法 — 让小滤波器滑动

局部连接 · 权重共享 · 池化 · 层层堆叠Fukushima 1980 → LeCun 1998

MLP 的问题CNN 的解法解决到什么程度
① 邻接关系丢失局部连接:一个神经元只看 3×3 这样的相邻小块把“一起看相邻像素”嵌入了结构之中
② 权重爆炸权重共享:在所有位置使用同一个滤波器只需 滤波器数 × 9 个。与照片尺寸无关
③ 位置变化权重共享 + 池化:无论在哪里都由同一个滤波器寻找,池化吸收小的移动相对不太容易动摇。并不完美。移动得多,准确率就会下降(第 8 节) [R6]
④ 忽略像素顺序层层堆叠:把相近的像素组合起来,逐步形成更大范围的形状代价是依赖“相近的像素彼此相关”这一假设。打乱像素,性能就会下降(第 8 节)

与果蝇·大脑的联系

Hubel 和 Wiesel 在猫的视觉皮层中区分了两类细胞:对狭小区域内特定方向的条形作出反应的“简单细胞”,以及只要方向相同、位置稍有不同也会反应的“复杂细胞” [R1]。Fukushima 的新认知机模仿这两种细胞,交替堆叠了“寻找特征的层”和“模糊位置的层” [R2]。今天 CNN 的卷积层和池化层就是它们的后代。不过,新认知机并不是用反向传播,而是用其他方式学习的;让用反向传播训练的 CNN 在手写识别上取得成功的是 LeCun 等人 [R3]。

5卷积

卷积计算 — 逐格相乘后全部相加

输出 = Σ (输入小块 × 滤波器)6×6 输入 · 3×3 滤波器 → 4×4 输出

滤波器

给初学者的解说

把滤波器窗口叠在输入的某个位置上。重叠的 9 格逐格相乘后全部相加,得到的值就是输出的一格。窗口逐格移动并重复。6×6 输入上的 3×3 窗口横向可放 4 个位置、纵向可放 4 个位置,所以输出是 4×4(不做用 0 填充边缘的填充时)。

竖直边缘滤波器左列为 +1,右列为 −1。因此在“左亮右暗”的位置为正数,相反则为负数,均匀时接近 0。神经网络并不由人来设定这些滤波器数字,而是通过反向传播学习。补充一点,深度学习中所说的“卷积”与数学中的卷积不同,不翻转滤波器(互相关)。由于数字是靠训练确定的,结果是一样的 [R8]。

6ReLU·池化

ReLU 与池化 — 抹去负数,四个只留一个

把第 5 节的 4×4 输出经过 ReLU(负数 → 0)后,每个 2×2 窗口只留下一个数字(最大值或平均值)。还要看看把图片移动一格时会有什么变化。

池化
滤波器
输入

池化的作用与局限

池化把数字减少到四分之一,减轻下一层的计算,并吸收 2×2 窗口内发生的小移动。跨越窗口边界的移动或 2 格以上的移动则会直接改变结果。所以与其说“CNN 对位置变化很强”,不如说“相对不太容易动摇”更准确。实际上有研究表明,即使是知名的大型 CNN,只要把图片移动几个像素,答案也可能改变 [R6]。

7直到概率

展平 → 概率 — 特征图如何变成答案

把最后的特征图变成一行数字,经过全连接层和 softmax,输出“是 + 的概率、是 × 的概率、是 ○ 的概率”。直接使用预先训练好的第 8 节 CNN。

输入
变成一行的方法

给初学者的解说

LeNet 这样的经典 CNN 把最后的特征图直接拼接起来(展平,Flatten)输入全连接层 [R3]。这种方式连“特征在图的哪一格”也一并传递,因此又会对位置变得敏感。每张图只留下一个数字(最大值或平均值)的全局池化抹去了位置信息,对移动不太容易动摇,参数也更少 [R5]。本页的 CNN 使用全局最大池化。

softmax 把 3 个分数变成总和为 1 的 3 个概率。分数大的一方概率也大。概率高并不总是正确。对于训练时没见过的样子,也可能给错误答案很高的概率(3-1 第 4 节)。

8对比仪表板

MLP 对 CNN — 用同一数据直接比拼

用 12×12 的 3 种图形共 120 张(各 40 张)进行训练。训练图片全部位于中间(±0.5 格),混有噪声·干扰笔画·旋转·粗细变化。测试使用各 150 张从未见过的图片。

实验

实验条件(准确地说)

  1. 模型:MLP = 像素 144 → 隐藏 16(ReLU)→ 3。CNN = 3×3 卷积 6 个(ReLU)→ 2×2 最大池化 → 3×3 卷积 8 个(ReLU)→ 全局最大池化 → 3。两者都用同样的训练数据,以随机梯度下降(学习率 0.02,每次一张)训练 30 个轮次(epoch)。随机数固定种子。
  2. 移动位置:训练只用居中的图片,只把测试图片向上下左右中的一个方向移动 1~3 格。没有用移动后的图片进行训练(数据增强)。
  3. 打乱像素:定下一条改变 144 格顺序的规则,对训练·测试图片同样应用,并把两个模型从头重新训练。这不是把打乱的图片输入已经训练好的模型的实验。
  4. 数字的范围:本仪表板是一个种子的结果。Colab 代码 2 用 Keras 对 3 个种子取平均做同样的实验,数字略有不同,但趋势相同(A 节)。

Colab 代码 — 亲手运行本页内容

两段代码都只使用 Colab 默认安装的库。点击“下载笔记本(.ipynb)”后,在 Colab 中通过文件 → 上传笔记本打开,或者复制后粘贴到新笔记本的单元格中。

代码 1 · 用 numpy 手算卷积·ReLU·池化对应第 5·6 节 · numpy, matplotlib · CPU 不到 1 秒

用与第 5·6 节相同的 6×6 数字“7”和相同的 4 个滤波器,计算卷积 → ReLU → 最大·平均池化。输出的数字与页面上的数字连格子都一致。若要换成自己的数据,只需修改代码中 [换成自己的数据] 标记处的 IMG。

运行结果(2026-10-03 运行,numpy 2.4 · matplotlib 3.10 · CPU)。计算中没有随机数,无论何时运行结果都相同。
代码 2 · 用 Keras 比较 MLP 与 CNN — 移动位置与打乱像素对应第 3·8 节 · tensorflow(Keras), numpy, matplotlib · CPU 约 1~2 分钟

用与第 8 节相同的模型结构和相同的图形规则,在实用库中重做实验。优化器换成了 Adam(40 个轮次),并用 3 个种子重复后取平均。打乱像素时,用按同一规则打乱的数据从头重新训练。

运行结果(2026-10-03 运行,TensorFlow 2.21 · Keras 3.15 · CPU)。数字与浏览器仪表板(一个种子,SGD)不同,但趋势相同。在 GPU 或其他版本上,数字可能略有不同。

AI 应用提示词 — 以这段代码为起点

这是粘贴到 ChatGPT、Qwen、Claude 等 AI 助手中的提示词。点击“复制”时,所选代码会一并附在提示词后面。把〔 〕里的内容换成自己的情况即可。

一并附上的代码

AI 的回答只是起点。它提出的论文·数值·库函数务必对照原文和官方文档核实。如果在竞赛·论文中借助了 AI,请按照主办方和期刊的规定说明使用的事实和范围。

术语表

与正文中黄色虚线下划线相同的词典。整个系列使用统一的写法。点击章节名可跳到首次出现的位置。

类比合集 — 以及类比失灵之处

类比是理解的第一步,但也可能成为误解的种子。果蝇·大脑类比标注了强度。直接 有证据表明实际在做同样的事 · 部分 只有部分性质相似 · 无 尚未发现对应的东西

概念日常类比果蝇·大脑类比类比失灵之处
像素一块马赛克瓷砖部分 果蝇复眼中的一个小眼小眼呈六边形排列,对亮度变化敏感。照片的像素是方形网格中的静止数值
滤波器只照出特定花纹的放大镜部分 初级视觉皮层的方向选择细胞 [R1]神经元的感受野因位置而略有不同。CNN 的滤波器在所有位置完全相同
权重共享在纸上各处盖同一个印章部分 果蝇视觉系统中同一类神经元在整个视野中重复排列大脑的神经元各自拥有独立的连接强度,并不“共享”数字
池化把地图缩小复印部分 位置稍有不同也会反应的复杂细胞 [R1]复杂细胞是否恰好在做选取最大值的计算,尚未得到证实
层层堆叠按点 → 线 → 图形的顺序画画部分 视觉通路 V1 → V2 → V4 → 下颞叶皮层(3-1 第 5 节)大脑中有许多反馈连接,而 CNN 只朝一个方向流动
展平把棋盘上的棋子排成一行无排成一行后,“谁是谁的邻居”就消失了(第 3 节 ①)
softmax把投票结果换算成得票率无得票率高并不代表答案正确。对于从未见过的图片,可能信心满满地答错
打乱像素按既定规则打乱拼图块无人几乎认不出打乱后的图片,但 MLP 照样能学习。“像人一样看”的标准因模型而异

作者简介与参考文献

E-1 作者简介 · E-2 学术参考文献 · E-3 图片参考资料

E-1 作者简介

Sangsun Ahn(M-Robo 公司代表)

曾任职于韩国电气安全公社、《每日经济新闻》,现创办每日经济外部风投企业 M-Robo 公司并担任代表。M-Robo 公司是由媒体内部创业起步的媒体风投企业,曾为《国民日报》提供机器人记者(StockBot)服务,并在韩国互联网振兴院、韩国言论振兴财团、韩国广播通信电波振兴院等机构开展了多个项目。此后运营自有的 AI 新闻报纸 Money-Robo。任代表期间获得亚洲开放数据黑客马拉松冠军,并因在数据创业领域的贡献两次获得行政安全部长官奖,是人工智能及区块链领域 5 项专利的发明人和注册人。著有《AI 犯罪与自我防御》,并为韩国技术教育大学在线终身教育院开发了金融科技、统计学、人工智能领域的在线学习内容。最高学位为经济学博士(东国大学,微观数理经济学)。目前在国民大学、湖西大学等多所大学讲授数据及人工智能相关课程。详细简历

课程

  • Sangsun Ahn (2025). 《面向商业的数据科学》讲义. 韩国开放网络大学 人工智能融合学科.
  • Sangsun Ahn (2025). [K-数字] 人工智能自然语言处理. STEP(智能职业培训平台), 韩国技术教育大学 在线终身教育院.
  • Sangsun Ahn (2024). [K-数字] 金融科技数据分析基础. STEP(智能职业培训平台), 韩国技术教育大学 在线终身教育院.

STEP 课程直达链接:link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
如因网站改版无法顺利访问,请访问 www.step.or.kr。

论文与报告

  • Sangsun Ahn (2025). 利用国民养老保障面板数据的家庭支出预测模型研究:基于人工智能模型的方法. 《未来社会》, 16(2). 原文
  • Sangsun Ahn (2025). 利用国民养老保障面板数据的家庭支出预测模型研究:人工智能方法. 国民养老保障面板学术会议报告资料(2025.05.13), 国民年金公团 国民年金研究院. 报告资料
  • Sangsun Ahn (2025). 基于 SNS 文本的可疑毒品交易检测算法研究:以模式与语境分析为中心. 《未来社会》, 16(1). 原文
  • Sangsun Ahn (2024). 面向金融领域异常检测模型安全的基于统计的对抗性数据应对方案:实证分析与模拟结果. 《未来社会》, 15(3). 原文
  • Sangsun Ahn (2024). 利用人工智能、基于虚拟角色特性的 SNS 帖子检测解决方案. 2024 Summer Newmedia Party 海报发表(2024.06.19), 首尔媒体研究生院大学.
  • Sangsun Ahn (2024). 利用工伤面板数据的机器学习模型. 第 10 届工伤保险面板学术会议海报发表(2024.05.17), 劳动福利公团 劳动福利研究院.
  • Sangsun Ahn (2024). 虚拟资产时间序列数据的分析与预测:时间序列模型与人工智能模型的比较及改进建议. 《未来社会》, 15(1). 原文

E-2 学术参考文献

  1. [R1] Hubel, D. H., & Wiesel, T. N. (1962). Receptive fields, binocular interaction and functional architecture in the cat's visual cortex. The Journal of Physiology, 160(1), 106–154. doi:10.1113/jphysiol.1962.sp006837 — 第 4 节(简单细胞·复杂细胞)
  2. [R2] Fukushima, K. (1980). Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position. Biological Cybernetics, 36(4), 193–202. doi:10.1007/BF00344251 — 开篇,第 4 节
  3. [R3] LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), 2278–2324. doi:10.1109/5.726791 — 开篇,第 4·7 节
  4. [R4] Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2017). ImageNet classification with deep convolutional neural networks. Communications of the ACM, 60(6), 84–90. doi:10.1145/3065386(原始发表:NIPS 2012) — 开篇,第 2 节(ILSVRC-2012 top-5 错误率 15.3%,第 2 名 26.2%)
  5. [R5] Lin, M., Chen, Q., & Yan, S. (2014). Network in network. ICLR 2014. arXiv:1312.4400 — 第 7 节(全局平均池化)
  6. [R6] Azulay, A., & Weiss, Y. (2019). Why do deep convolutional networks generalize so poorly to small image transformations? Journal of Machine Learning Research, 20(184), 1–25. jmlr.org — 第 4·6·8 节(CNN 即使对小的移动也并非完全不变)
  7. [R7] LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436–444. doi:10.1038/nature14539 — 第 4·5 节
  8. [R8] Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. deeplearningbook.org — 第 5·6 节(第 9 章 卷积网络:互相关、池化)

E-3 图片参考资料

以下资料作为结构和内容的参考。

  • CNN 结构信息图(含卷积·池化示例) — 第 5·6 节
  • 第 1 节的彩色果蝇 — 系列通用像素画

给教育者的提示

这是面向讲师、实务 OJT 负责人和辅导老师的教学指南。时间为预估值,请根据实际课堂调整。

对象学完 3-2 的大学生·职场人士。处理图像数据的从业者(检测影像、医学影像、文档扫描)
先修知识3-2 的隐藏层·反向传播概念。只用乘法和加法就能跟上第 5·6 节的计算
学习目标① 说明照片是数字网格,并举出 MLP 碰壁的四个原因 ② 手算卷积·ReLU·池化 ③ 用实验结果说明 CNN 对位置变化“相对不太容易动摇,但并不完美”
预计时间阅读 40~50 分钟 · 动画演示 25 分钟 · Colab 实践 30 分钟(代码 1 10 分钟,代码 2 20 分钟)

三种教学方案

讲授型 50 分钟

以概念为主

导入 5 分钟(第 1 节彩色果蝇的数字)→ 第 3 节四个原因 10 分钟 → 第 5·6 节手算 15 分钟 → 第 8 节仪表板 15 分钟 → 检测题 5 分钟。

实务 OJT 90 分钟

以业务应用为主

用本公司的图像尺寸计算第 3 节 ② 权重爆炸 10 分钟 → 第 8 节 20 分钟(现场摄像头位置变了会怎样?)→ 代码 2 实操 30 分钟 →“我们的数据需要什么样的增强?”讨论 20 分钟 → 提示词卡片 10 分钟。

一对一辅导

按水平安排进度

入门者只看第 1·3·5·8 节。中级者先手算第 5 节输出的一格,再与代码 1 的 conv2d 函数对照,并在第 7 节亲自数一数展平与全局池化的参数数量。

各节教学要点

章节停下来提问的问题操作提示
1 数字网格“果蝇眼睛的红色,在三个通道中分别是什么数字?”在彩色果蝇中依次点击红·绿·蓝查看
2 传统机器学习“人工设定的特征为什么在移动后的图片上会崩溃?”按 干净图片 → 移动 2 格 的顺序点击,比较准确率条形图
3 MLP 的局限“正下方的像素在一行中相隔几格?”在 ② 权重爆炸中点击 1000×1000,让学生被数字之大吓一跳
4 CNN 的解法“为什么共享滤波器后,权重数就与照片尺寸无关了?”在层层堆叠中指出一个神经元看到的范围从 3 → 4 → 8 逐步扩大
5 卷积“这个位置的输出为什么是负数?”暂停后用“移动一格”一起解读算式
6 ReLU·池化“移动一格时,池化前和池化后哪一边变化更小?”交替点击原图和移动 1 格的图片
7 直到概率“展平和全局池化,哪一种对位置更不敏感?”选择“移动 2 格的 +”后,交替查看两种方法
8 对比仪表板“在居中的图片上谁赢?在移动后的图片上谁赢?”先看移动位置,再切换到打乱像素,观察结果反转

常见误解 Top 5

误解正确解释要展示的场景
即使位置改变,CNN 也能同样识别只是相对不太容易动摇而已。移动得多准确率就会下降,大型 CNN 也可能因移动几个像素而改变答案第 8 节 移动位置,第 6 节
CNN 总是比 MLP 更准确像本页这样图片总在同一位置时,MLP 有时反而更高。CNN 的优势在于参数效率和对移动的鲁棒性第 8 节 移动 0 格时的准确率
滤波器由人来设定第 5 节的滤波器是为了说明。实际的 CNN 通过反向传播学习滤波器数字第 7 节中学到的特征图
池化会增加信息池化在减少数字的同时丢弃信息。作为交换,它吸收小的移动并减少计算第 6 节的 4×4 → 2×2
CNN 和大脑的视觉皮层一样虽然受简单·复杂细胞启发,但学习方法和连接结构不同公共 D 节的“部分”标记

检测题(点击展开解析)

Q1. 把 224×224 彩色照片输入有 1,000 个隐藏神经元的 MLP,第一层的权重有多少个?(不含偏置)

224 × 224 × 3 = 150,528 个输入 × 1,000 = 150,528,000 个(约 1.5 亿个)。有 64 个 3×3 彩色滤波器的卷积层是 3 × 3 × 3 × 64 = 1,728 个(含偏置 1,792 个)。

Q2. 对 6×6 输入不加填充、以步长 1 应用 3×3 滤波器,输出尺寸是多少?

(6 − 3 + 1) × (6 − 3 + 1) = 4×4.

Q3. 把第 5 节的竖直边缘滤波器放在左上角位置时,输出为 −3,请通过计算说明原因。

重叠小块的第二行是 [0, 3, 3],滤波器的每一行是 [1, 0, −1]。0×1 + 3×0 + 3×(−1) = −3。第一·第三行全是 0,相加后仍是 −3。

Q4. 2×2 窗口 [6, 3, 0, 3] 的最大池化值和平均池化值是多少?

最大 6,平均 (6 + 3 + 0 + 3) / 4 = 3。

Q5. 用同一规则打乱像素后从头训练,MLP 和 CNN 哪一个下降得更多?为什么?

是 CNN。CNN 把“相近的像素彼此相关”这一假设装进了结构(3×3 滤波器、池化),而打乱后,相近的格子变成了毫无关系的像素。MLP 本来就不利用像素之间的位置关系,所以打乱后几乎不变。重要的条件是:不是把打乱的图片输入已经训练好的模型,而是用打乱的数据从头训练。

Colab 作业

基础

在代码 1 的 FILTERS 中添加一个对角线边缘滤波器,找出 6×6“7”中哪一格反应最大,并用两句话写出原因。

挑战

在代码 2 的训练数据中混入移动了 1~2 格的图片(数据增强)。把两个模型在 0~3 格下的准确率如何变化整理成表格,并比较“靠结构获得的鲁棒性”和“靠数据获得的鲁棒性”。

难度调整与延伸学习

入门者跳过第 2 节和第 7 节也不会打断思路。第 8 节只一起看结果条形图
进阶让学生把第 4 节层层堆叠中的感受野计算(3 → 4 → 8)整理成一般公式。把第 6 节的局限与 [R6] 论文中的表格联系起来讨论
延伸学习Sangsun Ahn,《面向商业的数据科学》讲义(数据科学总览) · STEP [K-数字] 人工智能自然语言处理(与 3-5·3-8 相关) · STEP [K-数字] 金融科技数据分析基础(与 3-6 相关)
讲师用资料检测题的评分标准和作业参考答案可在教师用答案页面(3-3)查看

辛苦了!

「3-3 图像与 CNN」篇读完啦。实验室的成员们各说一句,帮你总结一下。

博士
博士我们一路跟着照片从数字网格变成了概率。
  • 照片就是数字网格
  • 一个小滤波器在任何地方都能找到同样的花纹(权重共享)
  • 移动位置时,MLP 大幅动摇,CNN 相对不太容易动摇(但也有局限)
助手
助手就算把数字 7 移动了,CNN 也能认出来呢。
果蝇研究员
果蝇研究员我的复眼也是几百个小滤波器哦。