猫 vs 狗——叠加层来改变坐标

猫和狗都有毛,有眼睛,也有耳朵。要区分低层特征相似的两种对象,需要什么呢?我们会在三维空间里旋转观察感知机和 SVM 为什么会被一个平面卡住,并确认隐藏层改变坐标的样子。接着跟随 CNN 把照片变成概率的全过程以及训练过程,最后亲手试一试把核心小块贴过去、把答案也混合起来的数据增强(Attentive CutMix)。

57.7% → 99.2%相同的点:线性 SVM 对比 3 个隐藏神经元的 MLP(代码 1)
29,858小型 CNN 需要训练的数字个数
7 × 7最后的特征图网格(与 ResNet-50 相同)
6/49Attentive CutMix 中猫的标签比例
93.3 → 95.2%200 张照片时 CutMix 的效果(代码 2)
2 段可在 Colab 中直接运行的代码
1问题

猫 vs 狗——都有毛、有眼睛、有耳朵

两者都有毛,都有两只眼睛,耳朵都竖着。只靠低层特征很难区分。模型要叠加什么,才能把这两者分开?

把灰色猫的照片输入特征提取网络得到特征图,把反应大的小块贴到金毛寻回犬的照片上,再把标签混合为猫 6/49、狗 43/49 的过程示意图
作者亲自制作的图片,描绘了 Attentive CutMix [R6] 的流程。

4-2 的猫 vs 人从毛发和皮肤这样的低层特征就已经不同了。猫 vs 狗则不一样。两者都有毛,边缘地图相似,差别在于嘴部长度、鼻子大小、脸部轮廓这类局部形状。

这一篇要看三件事:为什么叠加层之后,原本一个平面分不开的东西就能分开(第 2 节);CNN 把照片变成概率的过程(第 3~4 节);以及教模型专注于关键部位的数据增强,也就是图中的 Attentive CutMix(第 5~6 节)。

给初学者的讲解

图中的方法是:从猫的照片里选出模型反应最强的小块(眼睛、耳朵附近)贴到狗的照片上,再按贴上去的面积混合标签。49 格中有 6 格是猫,所以标签变成“猫 6/49,狗 43/49”。我们会在第 6 节亲手试一试。

2为什么要叠加层

分类边界与改变坐标——叠加层的原因

4-1 的感知机和 SVM 只画一个平面。直接用像素坐标,一个平面分不开。解决办法是改变坐标,而由谁来决定改变的方法,正是核SVM 与多层神经网络的分水岭。

1模型

线性分类器在特征空间中画一个平面(二维时是直线,三维时是平面,更高维时是超平面),根据点落在哪一侧给出答案。单层感知机和线性 SVM 都是这种形式,两者都要求出权重 w 和偏置 b。区别只在于选择平面的标准:感知机在没有分错的点时就停下,SVM 则选择与两组点之间间隔最大的平面。所以“求权重”这件事并不是两者的区别。

线性 SVM ≈ 单层感知机在原始坐标上画一个平面
核SVM用人设定的公式改变坐标后再画平面
多层感知机·CNN连改变坐标的方法也学会后再画平面

简单来说这就像用一把尺子把桌上混在一起的黑珠子和白珠子分开。如果黑珠子聚在中间、白珠子围在四周,不管尺子怎么摆,都会切到一边。这时如果把桌子弯成中间凹陷的样子,黑珠子就会落到下面,白珠子留在上面,用一块水平板就能把它们分开。核SVM 是由人来决定桌子怎么弯,而多层神经网络则是自己学会怎么弯。

2公式
线性分类器:  ŷ = 1  if  w · x + b > 0, 否则 0
线性 SVM:  在答对所有样本的同时,使间隔 2 / ‖w‖ 最大的 (w, b)它与感知机的边界形状相同,只是“选择哪个平面”的标准不同。实际中使用允许少量错误的软间隔。
核SVM:  w · φ(x) + b,  φ 由人选择(例:φ(x₁, x₂) = (x₁, x₂, x₁² + x₂²))
多层感知机:  h = σ(W₁x + b₁),  ŷ = [ w₂ · h + b₂ > 0 ]隐藏层 h 就是新坐标,W₁·b₁ 由训练决定。最后一行是在新坐标 h 上画平面的单层感知机。
w, b
平面的方向和位置。所有方法都要求出
φ(x)
改变坐标的函数。在核SVM 中由人选择的核决定
σ
tanh、ReLU 这类带折弯的函数(激活函数)。没有它,叠再多层也等同于一个平面
h
隐藏层的输出。通过训练得到的新特征
逐块读懂公式
  1. w · x + b这是感知机的加权和。给每个特征乘上权重再相加,大于 0 就回答属于某一类。把等于 0 的点连起来,就是边界平面。
  2. φ(x)这是改变坐标。目标是让在原始空间中弯曲的边界,在变换后的空间中变成平坦的平面。
  3. σ(W₁x + b₁)这是把 φ 做成可学习的公式。修改 W₁ 就会改变坐标的变换方式,训练会朝着让最后的平面分得更好的方向修正 W₁。CNN 的卷积层也起着这个作用。
用数字算一遍点 (0.1, 0.2) 和 (0.7, 0.1):在原始坐标中一个在中间、一个在外圈,用一条直线无法把中间围起来
换成 φ = (x₁, x₂, x₁² + x₂²) 后,第三个坐标分别是 0.05 和 0.50 → 用“第三个坐标 = 0.3”这一个平面就能分开
3在三维中旋转观察 · 用三种方法划分同一批点

这是两组点:中间的一组和围在它四周的一组(说明用的虚拟数据)。用按钮切换方法,拖动图形来旋转。③ 的隐藏层(3 个神经元)是这个页面打开时在浏览器里实际训练出来的结果。

方法
100%
用一个平面答对的比例:-
坐标轴:-

● 中间组   ● 外圈组   紫色面 = 边界平面。点击图形后也可以用方向键旋转。

4用同一标准比较
方法边界形状坐标(特征)由谁定在原始像素照片上出现时间
单层感知机一个平面不改变效果不好1958
线性 SVM一个平面(间隔最大)不改变效果不好(通常比感知机好一些)1990 年代
核SVM在原始空间中弯曲的边界由人通过核来决定简单照片(手写数字)效果好,自然照片有局限1992~
多层感知机 · CNN在原始空间中弯曲的边界从数据中学习效果好(需要足够的数据)1986 年起,2012 年 CNN 飞跃

在手写数字(MNIST)上,核SVM 仅用像素就达到了 1% 左右的错误率(LeCun 等,1998 年的比较)。照片越复杂,人就越难选出合适的核。反过来,在训练好的 CNN 提取的特征向量上接一个线性 SVM,分类效果也很好(Razavian 等,2014)。这说明决定性能的不是分类器的种类,而是特征。

5解读 · 纠正常见误解

“因为 SVM 不行才出现了感知机”,这个顺序是反的。感知机(1958)先出现;在难以训练多层神经网络的 1990~2000 年代,SVM 成了主流。2012 年,深层 CNN 在大规模照片分类中大幅击败基于 SVM 的方法,潮流才再次转变。

“感知机会求权重,所以很准确”也只对了一半。求权重这一点 SVM 也一样。单层感知机和线性 SVM 一样是只有一个平面的分类器,在原始像素照片上同样会卡住。效果好的是带隐藏层的多层感知机和 CNN。

总结一下,差别不在于用 SVM 还是感知机,而在于坐标(特征)是由人决定,还是从数据中学习。像素规则会挑中没有意义的背景格子(4-4),是因为像素这种坐标本身不好;而 4-2 的滤波器和本篇的 CNN 正是通过训练改变这种坐标的装置。CNN 能胜出,除了叠加层之外,卷积的权重共享、大量带标签的数据和 GPU 运算也共同发挥了作用。

✓小测验

Q1. 关于单层感知机和线性 SVM 的关系,哪一项正确?

Q2. 核SVM 和多层感知机最重要的区别是什么?

Q3. 如果从隐藏层中去掉 σ(激活函数),会怎样?

给初学者的讲解

隐藏层的一个神经元通过“加权和 → 带折弯的函数(tanh、ReLU)”生成一个新坐标。训练会修正生成这个坐标的方法本身,让最后的平面分得更好。在代码 1 中,对同一批点,线性 SVM 答对 57.7%,加入人选的 x₁² + x₂² 的 SVM 答对 98.8%,只有 3 个隐藏神经元的多层感知机答对 99.2%。CNN 的卷积层也是针对照片做的这种“改变坐标”。

3CNN 结构

一张图看懂 CNN——越来越小、越来越厚的特征图

反复进行卷积 → ReLU → 池化,照片会变小,特征图的张数会增加。最后展平后输入感知机层,就得到各类别的分数。

1模型

卷积神经网络(CNN)是把 4-2 的零件(卷积、池化)叠起来做成的模型,也是第 2 节中“通过训练改变坐标后再画平面”的多层神经网络的照片专用版。把 [卷积 → ReLU → 池化] 重复多次,照片会越来越小,而特征图的张数(通道)会增加。把最后的特征图展平成一行,输入全连接层(多个感知机),每个类别就得到一个分数,Softmax 再把这些分数变成总和为 1 的概率。

输入像素矩阵 56 × 56 × 3
中间越来越小、越来越厚的特征图
输出P(猫)、P(狗)

简单来说这就像公司的汇报体系。一线员工(第 1 层)汇报“这里有一条线”这样的小事实,组长(第 2~3 层)把这些汇报汇总成“这里有眼睛和耳朵”再往上报,高管(全连接层)只看摘要,决定“是猫的概率为 93%”。越往上,报告越短,内容越抽象。

2公式
F(ℓ) = Pool( ReLU( F(ℓ−1) ∗ K(ℓ) + b(ℓ) ) ),   F(0) = X
h = flatten(F(L)),  z = W·h + b把最后的特征图排成一行得到 h,输入感知机层,得到各类别的分数 z。
pk = ezk / Σj ezj,  L = −log p正确
ℓ
层的编号。F⁽ˡ⁾ 是第 ℓ 层的特征图
K⁽ˡ⁾
第 ℓ 层的一组滤波器。通道有几张,滤波器就有多厚(3 × 3 × 通道数)
h
展平后的特征。若为 7 × 7 × 64,就是 3,136 个数字
z, p, L
分数、概率、交叉熵损失
逐块读懂公式
  1. F⁽ˡ⁻¹⁾ ∗ K⁽ˡ⁾前一层的特征图就是下一层的输入。第 2 层的滤波器看的不是像素,而是第 1 层找到的那些“边缘地图”,从中寻找角或曲线。
  2. flatten把三维的数字盒子排成一行。数字不变,只是顺序改变。
  3. ez / Σez这就是 Softmax。分数越大,概率越大,所有概率加起来等于 1。
  4. −log p正确这就是交叉熵。给正确答案的概率为 1 时为 0,越小惩罚越重。训练会朝着让这个值减小的方向同时修正滤波器 K 和 W。
用数字算一遍分数 z = (猫 3.0,狗 0.5) → e³ = 20.09,e⁰·⁵ = 1.65,和为 21.74
p(猫) = 20.09 / 21.74 = 0.924, p(狗) = 1.65 / 21.74 = 0.076
如果正确答案是猫,L = −log 0.924 = 0.079(小惩罚)。如果正确答案是狗,L = −log 0.076 = 2.58(大惩罚)
3图解 · 一张图看懂小型 CNN
小型 CNN 的结构56×56×3 的输入经过三次卷积和池化变成 7×7×64,展平后的 3136 个数字经过全连接层,再由 Softmax 变成两个概率 输入56 × 56 × 3 卷积1 + 池化28 × 28 × 16线条·边缘 卷积2 + 池化14 × 14 × 32角·纹理 卷积3 + 池化7 × 7 × 64眼睛·耳朵·鼻子 ⋮ 展平3,136 个 z₁z₂ 全连接2 个分数 猫 0.92 狗 0.08 Softmax概率(和 = 1) ← 宽高变小,特征图张数变多 →
阶段作用输出尺寸数字个数要学习的数字(参数)
输入像素矩阵56 × 56 × 39,4080
卷积116 个 3 × 3 滤波器,边缘填充56 × 56 × 1650,1763·3·3·16 + 16 = 448
池化12 × 2 最大池化28 × 28 × 1612,5440
卷积2 + 池化232 个滤波器 → 减半14 × 14 × 326,2723·3·16·32 + 32 = 4,640
卷积3 + 池化364 个滤波器 → 减半7 × 7 × 643,1363·3·32·64 + 64 = 18,496
展平排成一行3,1363,1360
全连接2 个分数223,136·2 + 2 = 6,274
Softmax变成概率220  (合计 29,858)

请记住,最后的特征图是 7 × 7。实际中常用的 ResNet-50 输入 224 × 224 的照片时,最后的特征图也是 7 × 7 的网格(2,048 个通道),第 6 节的 Attentive CutMix 用的正是这 49 个格子。

给初学者的讲解

跟着表中的数字看一看。56 × 56 × 3 的照片经过三次卷积和池化变成 7 × 7 × 64,展平后的 3,136 个数字经过全连接层,变成 2 个分数。要学习的数字一共 29,858 个。实际中常用的 ResNet-50 大约有 2,500 万个,但最后的特征图同样是 7 × 7 的网格 [R4]。

4概率

照片变成概率的过程——Softmax 与训练

用 Softmax 把最后的分数变成概率,再按照与正确答案的差距(交叉熵)修正滤波器和权重。

1动态图解 · 照片变成概率的过程

请在上方选择照片。第 1 层的特征图和池化结果,是在本页面中对真实照片应用滤波器计算出来的。后面各层的反应和最后的概率,是为了展示流程而设定的示例值。

照片

  1. 输入矩阵
  2. 第 1 层:找边缘
  3. 池化:缩小
  4. 后面的层:找局部
  5. 分数 → 概率
2Softmax 计算器

拖动全连接层给出的两个分数试试。假设正确答案是猫。

3解读 · 滤波器的数字是怎么定下来的

一开始,CNN 滤波器的数字 K 和全连接层的 W 全是随机的。即使输入猫的照片,得到的概率也差不多是一半一半。

告诉它正确答案后,就计算损失 L = −log p正确,再用上一集学过的梯度下降法,朝着损失减小的方向把所有数字一点点修正。这个梯度从输出往输入方向逐层反向传递(反向传播)。

把这个过程在几万张照片上反复进行,即使没人指定,第 1 层滤波器也会变成边缘滤波器的样子,后面各层的滤波器则会对眼睛或耳朵产生反应。连“看哪些特征”都从数据中学到,这是它与由人来设定特征的方式最大的不同。

4主要特点
优点
  • 从像素到概率一次性学习(不需要设计特征)
  • 共享滤波器,参数比同等规模的全连接网络少得多
  • 层越深,表达的特征越抽象
局限
  • 训练需要大量带标签的照片
  • 遇到没学过的组合(长得像松饼的吉娃娃)可能会自信地答错
  • 概率高不代表理由正确(可能只看背景就猜对了)
发展脉络:新认知机(1980)→ LeNet(1989·1998)→ AlexNet(2012)→ VGG·GoogLeNet(2014)→ ResNet(2016)。如今的视觉 Transformer 在第一步也同样把照片切成小块再变成数字。
✓小测验

Q1. 经过 CNN 后,特征图的形状大体会怎样?

Q2. 如果分数 z 是 (2.0, 2.0),Softmax 概率是多少?

Q3. 训练过程中会被修正的是?

给初学者的讲解

Softmax 把分数变成和为 1 的概率。交叉熵在给正确答案的概率越低时给出越大的惩罚。训练就是朝着让这个惩罚减小的方向,把所有滤波器的数字和权重一点点修正,这个梯度从输出往输入方向逐层反向传递(反向传播)[R3]。

5猫 vs 狗

猫 vs 狗——由局部的形状来区分

低层特征(毛发的边缘)很相似。区分二者的是第 3 层以后看到的局部特征,比如嘴部长度、鼻子大小、脸部轮廓。

②猫 vs 狗 中等

这一次低层特征很相似。两者都有毛,边缘强度图在整张照片上都很密集,两只眼睛和竖起的耳朵也一样。只靠第 1~2 层的特征很难区分。

差别在于局部的形状。狗的嘴部向前伸得很长,鼻子大,有时张着嘴露出舌头。猫的脸圆圆的,鼻子和嘴都小。第 3 层以后观察“眼睛·鼻子·嘴部排列”的特征,能把两者区分开。

于是出现了一种技巧:教模型不要关注整张照片的氛围(毛色、背景),而要专注于这些关键部位。第 6 节讲的就是第 1 节图片中出现的 Attentive CutMix。

给初学者的讲解

在成对比较中切换到“边缘强度”视图,两张照片都因为毛发而边缘图很密集。再把分辨率降到 7,看看什么先消失。要让模型看的是脸的局部,而不是毛色或背景(草地)这类容易的线索,如何提供训练数据就变得很重要。这就是第 6 节的数据增强。

6数据增强

数据增强与 Attentive CutMix——贴上碎片,标签也混合

当照片太少,或者模型依赖了不相干的线索时,就改变或混合训练照片,教它“应该看什么”。

1数据增强的种类 · 把同一张照片换着花样多看几遍
方法作用标签呢?教会它的
翻转·裁剪·旋转左右翻转,或裁下一部分放大不变位置·方向变了也是同一对象
改变亮度·颜色做成像是不同光照下的照片不变看形状而不是光照
Cutout擦掉一个矩形不变一部分被遮住也能认出
Mixup把两张照片半透明叠加按比例混合减少过度自信 [R7]
CutMix贴上另一张照片的矩形碎片按贴上的面积混合只看局部也能认出 [R5]
Attentive CutMix只挑反应大的碎片贴上按贴上的面积混合专注于关键部位 [R6]

在 Colab 代码 2 中,手写数字每类只给 20 张(共 200 张)来训练同一个 CNN,直接训练的测试准确率为 93.3%,用 CutMix 则为 95.2%(3 个随机种子的平均)。这是照片少时混合拼贴起作用的一个例子。数据和模型不同,效果的大小也会不同。

②+动手试试 Attentive CutMix · 把猫的关键碎片贴到狗身上

方法分四步。(1) 把猫的照片输入已经训练好的 CNN,得到最后的 7 × 7 特征图。(2) 在 49 个格子中选出反应最大的 k 个。(3) 把这些格子对应的猫照片碎片,贴到一张随机狗照片的相同位置。(4) 标签也按面积比例混合。k = 6 时,猫 6/49,狗 43/49。

猫 · 反应弱的格子变暗
随机狗照片
混合后的照片
混合照片的标签

注意:论文是根据在 ImageNet 上训练的 ResNet-50 的真实反应来挑选碎片的。这里没有用训练好的模型,而是用“格子内边缘强度的平均值”来代替反应。因此,除了眼睛、鼻子之外,额头条纹或背景边缘这类只是边缘多的格子也可能被选中。真正训练好的模型会选哪些格子,可能和这里不同。

为什么这样做会更好
  1. 只看碎片也是猫混合照片中猫的成分只有六块眼睛·耳朵碎片。要据此答对“猫 12%”,模型就必须看局部特征,而不是毛色或背景。
  2. 标签也混合不让它硬说“100% 是狗”,而是回答 88%。这有正则化效果,能减少模型过度自信的毛病(过拟合)。
  3. 与随机碎片的区别原本的 CutMix 是在随机位置裁下一个矩形贴上。如果只贴上了背景,就可能产生“猫 30%”这样错误的标签。Attentive CutMix 挑选反应大的地方,减少了这个问题。

给初学者的讲解

数据增强是不改变模型结构、只改变训练照片来提升性能的方法。它有正则化效果,能减少过拟合,也就是模型只对训练照片拟合得过分的情况。请记住,上面的实践用“格子内的边缘强度”代替了训练好的 ResNet-50 的反应。

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

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

代码 1 · 为什么要叠加层——隐藏层改变坐标的样子对应第 2·4 节 · numpy, scikit-learn, matplotlib · CPU 不到 1 秒

用感知机、线性 SVM、人工挑选的变换、RBF 核SVM、3 个隐藏神经元的多层感知机(用 numpy 亲手实现反向传播)来比较中心和外圈两群点,并计算 Softmax 和交叉熵。

运行结果(2026-10-04 运行,numpy 2.4 · scikit-learn 1.8 · CPU)。固定了随机种子,任何时候运行结果都相同。
代码 2 · 小型 CNN 与 CutMix——照片少时混合拼贴有帮助吗对应第 3·6 节 · numpy, tensorflow(Keras), scikit-learn · CPU 约 1 分钟

在 8 × 8 的手写数字中每类只用 20 张训练,用直接训练 / CutMix 两种方式训练同一个 CNN,以 3 个随机种子比较测试准确率。如果想换成猫·狗照片,就从 keras.datasets.cifar10 中选出第 3 类(猫)和第 5 类(狗),并把 Input 的形状改为 (32, 32, 3)。

运行结果(2026-10-04 运行,TensorFlow 2.21 · Keras 3 · CPU)。数字可能因随机种子、版本、硬件而略有变化。

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

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

一起附上的代码

AI 的回答只是起点。它推荐的论文·数值·库函数一定要对照原文和官方文档核实。如果在竞赛·论文中得到了 AI 的帮助,要按照主办方和期刊的规定说明使用的事实和范围。

术语表

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

类比合集——以及类比不成立的地方

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

概念日常类比人眼·人脑类比类比不成立的地方
隐藏层把揉皱的纸展开,再用尺子分开无纸是人来展开的,而隐藏层会学习“怎么展开”。而且实际上这发生在几百维空间中,肉眼看不到
CNN 的层基层员工 → 组长 → 高管的汇报体系部分 视觉通路也是从视网膜 → 初级视觉皮层 → 高级区域,越往后越对更大的区域和更复杂的形状作出反应大脑里有很多反向下行的连接和注意机制,而 CNN 只朝一个方向计算
Softmax把得票数换算成得票率无得票率是真实的投票结果,而 Softmax 概率只是模型的“自信程度”,不一定等于答对的概率
反向传播结果出错时,从最后一道工序开始倒着追究责任无“分摊”责任的多少是用求导精确算出来的,并不是由人来判断谁犯了错
CutMix把两张照片剪下来拼成拼贴画,按拼贴的面积比例分配答案无如果贴上的碎片只有背景,就会产生“猫 30%”这样错误的答案。Attentive CutMix 能减少这种情况

作者简介与参考文献

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

E-1 作者简介

Sangsun Ahn(M-Robo Inc. 代表)

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

课程

  • Sangsun Ahn (2025).《面向商业的数据科学》(비즈니스를 위한 데이터 과학)讲义。韩国开放网络大学(Open Cyber University of Korea)人工智能融合学科。
  • Sangsun Ahn (2025). [K-Digital] 人工智能自然语言处理。STEP(智能职业培训平台),韩国技术教育大学(KOREATECH)在线终身教育院。
  • Sangsun Ahn (2024). [K-Digital] 金融科技数据分析基础。STEP(智能职业培训平台),韩国技术教育大学(KOREATECH)在线终身教育院。

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),国民年金公团国民年金研究院(National Pension Service, National Pension Research Institute)。报告资料
  • Sangsun Ahn (2025). 基于 SNS 文本的疑似毒品交易检测算法研究:以模式与语境分析为中心。《未来社会》(미래사회),16(1)。原文
  • Sangsun Ahn (2024). 面向金融领域异常检测模型安全的基于统计的对抗性数据应对方案:实证分析与模拟结果。《未来社会》(미래사회),15(3)。原文
  • Sangsun Ahn (2024). 利用人工智能、基于虚拟角色特征的 SNS 帖子检测解决方案。2024 Summer Newmedia Party 海报发表(2024.06.19),首尔媒体研究生院大学(Seoul Media Institute of Technology)。
  • Sangsun Ahn (2024). 利用工伤面板数据的机器学习模型。第 10 届工伤保险面板学术会议海报发表(2024.05.17),勤劳福祉公团勤劳福祉研究院(COMWEL Labor Welfare Research Institute)。
  • Sangsun Ahn (2024). 虚拟资产时间序列数据的分析与预测:时间序列模型与人工智能模型的比较及改进建议。《未来社会》(미래사회),15(1)。原文

E-2 学术参考文献

  1. [R1] Rosenblatt, F. (1958). The perceptron. Psychological Review, 65(6), 386–408. —— 章节 2
  2. [R2] Boser, B. E., Guyon, I. M., & Vapnik, V. N. (1992). A training algorithm for optimal margin classifiers. COLT 1992. —— 章节 2(核SVM)
  3. [R3] Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323, 533–536. —— 章节 2·4
  4. [R4] He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. CVPR 2016. —— 章节 3·6
  5. [R5] Yun, S., Han, D., Oh, S. J., Chun, S., Choe, J., & Yoo, Y. (2019). CutMix: Regularization strategy to train strong classifiers with localizable features. ICCV 2019. —— 章节 6,代码 2
  6. [R6] Walawalkar, D., Shen, Z., Liu, Z., & Savvides, M. (2020). Attentive CutMix: An enhanced data augmentation approach for deep learning based image classification. ICASSP 2020. —— 章节 1·6
  7. [R7] Zhang, H., Cisse, M., Dauphin, Y. N., & Lopez-Paz, D. (2018). mixup: Beyond empirical risk minimization. ICLR 2018. —— 章节 6
  8. [R8] Razavian, A. S., Azizpour, H., Sullivan, J., & Carlsson, S. (2014). CNN features off-the-shelf: An astounding baseline for recognition. CVPR Workshops 2014. —— 章节 2
  9. [R9] Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet classification with deep convolutional neural networks. NeurIPS 2012. —— 章节 2

E-3 图片·数据参考资料

  • 章节 1 的图像由作者亲自制作,描绘的是 [R6] 的流程
  • 章节 2 中的点是用于说明的虚拟数据,③ 的隐藏层会在页面打开时在浏览器里真正进行训练
  • 章节 4 动画中第 1 层的特征图和池化是真实计算,后面各层的反应和概率是示例值
  • 章节 6 的 7 × 7 反应图没有使用训练好的模型,而是用每格的边缘强度来代替

给教师的 TIP

这是给讲师、在职培训(OJT)负责人和辅导老师的运营指南。时间为预估值,请根据实际课堂进行调整。

对象学完 4-1·4-2 的大学生和上班族;需要讲清深度学习“为什么要深”的从业者
预备知识4-1 的感知机·SVM,4-2 的卷积;指数函数 e^z 的含义
学习目标① 能举出线性分类器无法处理的数据作为例子,并说明隐藏层改变坐标的原理 ② 能计算 CNN 各层的输出尺寸和参数数量 ③ 能计算 Softmax·交叉熵,并说明 CutMix 的答案混合
预计时间阅读 45~55 分钟 · 实践演示 25 分钟 · Colab 实践 30 分钟(代码 1 10 分钟,代码 2 运行 1 分钟 + 解读 19 分钟)

三种运营方案

讲授式 50 分钟

以概念为中心

导入 5 分钟(章节 1)→ 章节 2 三维图 15 分钟 → 章节 3 尺寸表 10 分钟 → 章节 4 Softmax 计算器 10 分钟 → 章节 6 CutMix 5 分钟 → 小测验 5 分钟。

在职培训(OJT)90 分钟

以业务应用为中心

把章节 2 换成自己数据中“用平面分不开的案例”讨论 20 分钟 → 用章节 3 的表计算自己输入尺寸下的参数数量 15 分钟 → 在章节 6 的增强表中挑选适合自己照片的方法 20 分钟 → 把代码 2 改成自己照片较少的情况并运行 35 分钟。

一对一辅导

按水平安排进度

入门者只学章节 1·2·4。中级学习者让他们亲手重算章节 3 表中的参数数量,并把代码 1 中反向传播的三行代码与公式逐行对照。

各章节运营要点

章节停下来提的问题操作技巧
1 问题“猫和狗有什么共同点?”先问图像中的 6/49 是从哪里来的
2 为什么要叠加层“为什么平面不管立在哪里,总有一边会被切开?”按 ① → ② → ③ 的顺序点击并旋转图形
3 CNN 结构“池化层要学习的数字有几个?”在表中上下对照尺寸列和参数列
4 概率“分数相同时,概率是多少?”在 Softmax 计算器中把两个分数调成一样
5 猫 vs 狗“只看毛色来区分会有什么问题?”看成对比较中的边缘强度和分辨率 7
6 数据增强“猫的碎片占 10 格时,答案是多少?”把 k 滑块从 1 → 15 移动,观察答案条

常见误解 Top 5

误解正确解释要展示的画面
只要叠加层,就会得到弯曲的边界没有折线函数(激活函数),叠加再多层也等同于一个平面章节 2 小测验 Q3
SVM 无法做非线性分类核SVM 能画出弯曲的边界,只是核要由人来选章节 2 的 ② 和代码 1 的 RBF 结果
Softmax 概率 = 答对的概率那只是模型的自信,可能与实际正确率不同(校准问题)在章节 4 的计算器中把分数拉开很大差距
CNN 表现好是因为要学习的数字多由于反复使用同一个滤波器,参数比全连接网络少得多章节 3 表中的 29,858
数据增强只是增加照片数量它是教模型该看什么的正则化手段,也有混合答案的方法章节 6 的增强表和代码 2

小测验(点击展开解析)

Q1. 当点按中心·外圈交织在一起时,线性 SVM 为什么无能为力?

因为边界只是一个平面(二维中是一条直线),不管朝哪个方向立,都会把外圈那一群切成两半。代码 1 中的结果是 57.7%。

Q2. 用 32 个 3 × 3 滤波器处理 16 张特征图的卷积层,参数数量是多少?

3 × 3 × 16 × 32 + 32(偏置)= 4,640 个。

Q3. 分数 z = (2.0, 2.0) 的 Softmax 概率是多少?正确答案是第一个时,交叉熵是多少?

概率 (0.5, 0.5)。损失 −log 0.5 ≈ 0.693。

Q4. 在 7 × 7 网格中贴了 10 格猫的碎片。答案比例是多少?

猫 10/49 ≈ 0.204,狗 39/49 ≈ 0.796。

Q5. 在代码 2 中,CutMix 提高了测试准确率。为什么两者的训练准确率都是 100%?

训练照片只有 200 张,数量很少,两个模型都能把训练照片全部答对。差别出现在第一次见到的测试照片上(过拟合的程度)。

Colab 作业

基础

在代码 1 中把隐藏神经元数改为 1、2、3、8,把准确率整理成表格,写出从几个开始能区分中心和外圈,以及原因。

挑战

把代码 2 的 PER_CLASS 改为 10、20、50、100,用 3 个随机种子报告 CutMix 的效果(测试准确率差异)如何随照片数量变化。

难度调整与延伸学习

入门者章节 3 的表和章节 4 的公式可以跳过。一定要亲手试一试章节 2 的三维图和章节 6 的 CutMix 实践
进阶把 Mixup 和 CutMix 都加入代码 2 进行比较,并让学生汇报混合答案的增强如何改变模型的自信(Softmax 最大值)
延伸学习3-3 图像与 CNN · 4-4 吉娃娃 vs 松饼(高层特征与模型的局限)
讲师用资料小测验的评分标准和作业参考答案可以在教师用答案页面(4-3)中查看

辛苦了!

你已经读完了《4-3 猫 vs 狗》篇。实验室的伙伴们每人用一句话为你总结。

在能看到夜晚城市的窗边,四位实验室成员挥手的像素画
博士
博士我们找到了叠加层的理由。
  • 一个平面分不开,就改变坐标
  • CNN 一边变小变厚,一边层层积累特征
  • CutMix 贴上碎片,也把答案混合起来
助手
助手只用三个隐藏神经元就达到了 99%!
果蝇研究员
果蝇研究员最后是吉娃娃和松饼。这可是连人都会搞混的一对。