2026 年 10 月 14 日 · 星期三
你给电脑看一张刚拍的猫。它歪着头,半张脸藏在窗帘后面,背景是一间电脑从未见过的房间。屏幕上却出现了一个词:猫。
这张照片刚刚诞生,不可能已经存在于训练图库中。机器凭什么给出这个答案?
要回答它,我们先把问题缩小:只讨论一种常见做法——用带标签的照片训练图像分类器。它的任务是在预先规定的类别中,为输入的照片选择一个类别。现实中的视觉系统还有其他训练方式,但这个例子足以让我们看清学习怎样发生。
照片到了电脑里,首先是一组数
对人来说,照片里有猫、窗帘和房间。对分类程序来说,输入首先是表示像素颜色的数值。
同一只猫只要转一下头、换一种光照,许多像素就会改变。如果把新照片与旧照片逐个像素比较,很可能发现:同一只猫的两张照片,差别也非常大。
所以,能够识别新照片,需要找到比“这些像素完全相同”更有用的依据。
我们可以把分类器的工作概括成一条路径:
像素数值 → 用于判断的内部表示 → 各类别的分数 → 分类结果。
这里的“内部表示”,可以理解为程序在计算过程中提取和组合的信息。它不必是一串人类能直接念出来的特征名称。
不把每条识别规则都写出来,怎么训练?
假设我们准备了一批猫和狗的照片,并为每张照片附上标签。
一个神经网络中有许多可以调整的数,叫作参数。开始训练时,它的判断可能很差。我们把一批图片输入网络,比较输出和正确标签,再用一个“损失函数”给这种偏差打分。优化算法依据这个分数对参数的变化率,逐步调整参数,尝试降低训练损失。
例如,一张标为“猫”的图片,网络给猫的概率很低,就会受到相应的损失惩罚。调整不只是改变屏幕上的词,而是改变从输入到输出的计算关系。这样的过程在许多样本上反复进行。《动手学深度学习》:分类与损失函数
人没有逐条规定“耳朵多尖算猫”,却仍然参与了学习过程:选择样本、提供标签、设计网络、决定优化目标。这些选择都在影响机器最终学会什么。
它会自己找到什么特征?
以卷积神经网络为例,它会让一组可学习的局部计算在图像不同位置重复使用。这样,同一种局部图案出现在左边或右边时,都有机会被同一组计算捕捉,而不必为每个位置重新学习一套规则。这种结构利用了图像的空间性质。《动手学深度学习》:从全连接层到卷积
多层计算可以逐步组合信息。但不要把它想成一张固定的流水线:第一层必定认边缘,第二层必定认耳朵,最后一层才认猫。实际学到的表示取决于网络和训练数据,也常常分散在许多计算单元中。
大型卷积网络能够从图像中学习对分类有用的表示,并在未参与训练的图片上接受检验;经典的 AlexNet 研究就是一个实例。Krizhevsky 等:ImageNet 图像分类研究
这还没有回答最关键的一步:训练时有用的信息,为什么到了新照片里仍然有用?
“从没见过”不等于“毫无共同之处”
一张新照片虽然没有出现过,其中的局部形状、纹理和组合关系,却可能与训练照片共享一些结构。分类器如果利用了这些可重复出现的信息,就可能把已有经验用到新图片上。
这种在未见样本上保持有效的能力,叫作泛化。
要检查泛化,我们必须留出一些不用于训练的样本。常见安排是:训练集用来调整参数,验证集用来比较方案和调整设置,测试集留到方案确定后评估。训练照片上的高分,不能代替对新照片的检验。scikit-learn:交叉验证与数据划分
然而,“新”也有程度之分。同一只猫的连拍照片,一张放进训练集,一张放进测试集,可能让任务显得很容易。换成另一只猫、另一间房间、另一种拍摄设备,才发现原来的分数没有覆盖这些变化。
评估有多可信,既取决于图片是否参与训练,也取决于测试情境与实际使用情境是否相符。
它认出了猫,还是认出了沙发?
做一个思想实验:训练照片中,猫几乎都坐在沙发上,狗几乎都站在草地上。模型可能发现,背景足以帮助分类。
现在给它一张草地上的猫,它就可能出错。
这是为说明问题设想的例子,并非某个具体模型的实验记录。它对应一个真实的研究问题:模型可能依赖在训练环境中有效、换个环境就失效的“捷径”。得到正确答案,并不能单凭这一点认定它利用了我们期待的依据。Geirhos 等:深度神经网络中的捷径学习
因此,多给照片也不一定够。如果新增的照片继续保留同样的背景关联,机器可能把这条捷径学得更牢。
我们需要有针对性地检查:背景改变以后呢?光照改变以后呢?如果遮住动物、只留下背景,模型还能猜中多少?这些变化能够帮助暴露它依赖的线索,但任何单个检查也不等于完整解释了网络内部的工作。
一个可以自己设计的小测验
假如你负责验收一个猫狗分类器,可以先准备三组没有用于训练的照片:常见场景中的猫狗、背景互换的猫狗,以及部分遮挡或不同光照下的猫狗。
不要急着把三组成绩合成一个总分。先分别看:它在哪一组明显变差?错误集中在哪些条件下?
这些问题比“它到底聪不聪明”更具体,也更容易带来改进。
昨天,我们通过恒星留下的变化推断行星;今天,我们让程序从照片样本中学习分类关系。两件事并不具有完全相同的机制,但都提醒我们:一个结果值不值得相信,要追问它依据了什么,以及这些依据能用到哪里。
机器可以对从未见过的照片作出有效判断。不过,要是它在所有训练照片上都答对了,这是否意味着我们终于训练出了最可靠的模型?

发表回复