AI 机器学习入门

CNN 卷积神经网络 通俗教程

用"放大镜"和"拼图游戏"的比喻,带你彻底搞懂CNN是如何一层层"看"图片的

第一步 · 认识CNN
第一步

CNN是什么?机器的"看图"方式

人类看图片是一眼就认出猫狗,但机器看图片是一堆数字。CNN就是让机器学会"看"图片的方法。

人类 vs 机器:两种完全不同的"看"法

👁️ 人类看图

一眼就认出:这是猫!
瞬间理解整体画面

🤖 机器看图

看到的是:数字矩阵
[255, 128, 64, ...]
需要一步步分析

CNN的核心思想

CNN模仿人类视觉原理:用"小窗口"扫描图片,每移动一步只看一小块,找出局部特征(边缘、角落、纹理),然后逐层组合,最终认出整体。

人类视觉 vs CNN卷积扫描
人类视觉 🐱 一次看整张图 整体识别 CNN方式 CNN卷积扫描 小窗口逐块扫描 局部 → 整体 卷积核 (Kernel) 3×3 权重矩阵 滑动计算局部特征
第二步

一维卷积:最简单的例子

先用一条线上的数字,理解卷积的"滑动乘加"本质。

想象:用手电筒扫描一排数字

就像拿着3格宽的手电筒,从左到右扫描这条数字线。每照到3个数字,就做一次乘法再相加。

一维卷积滑动演示
输入数组 1 0 2 1 3 卷积核 (Kernel) 1 2 1 滑动计算 位置1: 1×1 + 0×2 + 2×1 = 3 位置2: 0×1 + 2×2 + 1×1 = 5 位置3: 2×1 + 1×2 + 3×1 = 7 输出数组 3 5 7
输出[i] = Σ (输入[i:i+核大小] × 卷积核)
对应位置相乘,再全部加起来 = 一个输出值

关键理解

卷积核就是一个"特征检测器"!如果输入的局部图案和卷积核的权重"匹配",输出值就大;不匹配就小或负。

第三步

二维卷积:灰度图上的滑动窗口

现在把一维扩展到二维,就像用一个正方形的放大镜扫描一张灰度照片。

3×3卷积核在5×5图片上滑动

二维卷积:5×5输入 → 3×3输出
5×5 输入图片 1 0 2 1 0 0 1 1 2 1 2 1 0 1 3 1 2 1 0 2 0 1 3 1 0 3×3 卷积核 1 0 1 0 1 0 1 0 1 = 乘加 3×3 特征图 7 6 8 9 7 5 6 8 7 左上角计算示例 1×1 + 0×0 + 2×1 + 0×0 + 1×1 + 1×0 + 2×1 + 1×0 + 0×1 = 1+0+2+0+1+0+2+0+0 = 6

5×5

输入图片尺寸

3×3

卷积核尺寸

3×3

输出特征图尺寸

9次

滑动计算次数

第四步

三维卷积:RGB彩色图的秘密

这是理解CNN最重要、也最容易出错的地方!

常见误解

"卷积核就是3×3的二维矩阵"

如果真是这样,RGB图片怎么和3×3做卷积?

正确理解

卷积核是三维的
对于RGB图片:每个通道(红/绿/蓝)都有一个独立的3×3卷积核
三个通道分别卷积后相加

三维卷积核结构:3个通道 × 3×3权重 = 三维卷积核
输入: RGB三通道 Red 红 Green 绿 Blue 蓝 分别卷积 一个卷积核 = 3个通道的3×3 (三维张量: 3×3×3) R核 101 010 101 G核 210 101 012 B核 012 101 210 + + 求和 输出: 一个值 5 特征值 卷积计算公式 输出 = Σ(通道1卷积结果) + Σ(通道2卷积结果) + Σ(通道3卷积结果) 重要澄清: "3×3卷积核"不是说只有一个3×3矩阵,而是说每个通道都是3×3,3个通道共同构成一个卷积核。

为什么这样设计?

1
红色通道

检测红色特征

+
2
绿色通道

检测绿色特征

+
3
蓝色通道

检测蓝色特征

=
综合特征

三色组合信息

关键洞察

卷积核能学习到跨通道的色彩组合特征!比如一个核可能对"红色+绿色=黄色"特别敏感,另一个可能对"红色+蓝色=紫色"敏感。

第五步

多层网络:从4个卷积核到8个卷积核

每一层卷积都会提取更高级的特征,像搭积木一样层层组合。

CNN层叠结构:从简单特征到复杂特征

输入图片
R
G
B
3通道
Conv
卷积层1
F1
F2
F3
F4
4个卷积核 → 4通道
Conv
卷积层2
G1
G2
G3
G4
G5
G6
G7
G8
8个卷积核 → 8通道
FC
全连接层
分类输出
特征逐层提取:从边缘到语义
原始图片 完整图片 RGB 3通道 第1层特征 边缘 纹理 角落 梯度 低级特征 边缘、纹理、角落 第2层特征 (8通道) 耳朵 眼睛 鼻子 胡须 嘴巴 头部 身体 尾巴 中级特征 部件组合:耳朵、眼睛、鼻子... 语义理解 Cat 猫 92.3% Dog 狗 5.1% 高级语义 "这是一只猫!"

第1层

边缘、纹理、角落

第2层

部件:眼睛、耳朵、鼻子

第3层

整体:猫、狗、汽车

训练

反向传播自动学习

第六步

交互演示:自己动手做卷积!

调整输入值和卷积核,观察输出如何变化。

二维卷积计算器
1
调整输入值或卷积核,点击"下一步"或"自动播放"观察卷积计算过程
总结

CNN核心要点回顾

卷积核是三维的

RGB图片的卷积核 = 3个通道 × 3×3权重。不是简单的3×3,而是(3×3)×3的三维张量。

滑动乘加

卷积核在图片上滑动,每步计算:对应位置相乘后全部相加 = 一个输出值。

通道数变化

4个卷积核产生4通道输出,8个卷积核产生8通道。通道数=卷积核个数。

特征逐层抽象

第1层:边缘/纹理 → 第2层:部件组合 → 第3层:语义识别。层层递进。

为什么CNN比全连接网络更适合图片?

全连接网络:每个像素都是独立输入,参数量巨大。
CNN:用卷积核共享权重,大幅减少参数量;同时局部连接抓住空间相关性。

卷积核的数值是怎么来的?

通过训练学习来的!初始化随机值,然后用反向传播和梯度下降不断调整,最终学出能区分不同类别的特征检测器。

为什么2×2池化后输出变成2×2而不是3×3?

因为池化窗口是2×2,每4个值合并成1个。对于3×3输入,2×2池化会产生2×2输出(取整舍弃边缘)。

返回首页