AI ID a Cat

引文

神经网络是人工智能的算法基础。我在阮一峰的科技爱好者周刊(第 363 期)(https://www.ruanyifeng.com/blog/2025/08/weekly-issue-363.html) 中看到了美国科普网站《量子杂志》用一个浅显的例子 + 插图解释了神经网络,堪称我见过的最好懂的教程,最好懂的神经网络解释。

强烈建议阅读原文(https://www.quantamagazine.org/how-can-ai-id-a-cat-an-illustrated-guide-20250430)。

以下是我使用 AI 对原文的翻译:

译文


如何让 AI 识别猫?图解指南

  • 本•布鲁贝克(Ben Brubaker,特约撰稿人)
  • 马克•贝兰(Mark Belan,图形编辑)
  • 2025 年 4 月 30 日

神经网络驱动着当今人工智能的蓬勃发展。要理解它们,我们只需要一张地图、一只猫和几千个维度。

看一张猫的图片,你会立刻认出它是一只猫。但试着编程让计算机识别猫的照片,你会很快意识到这远非易事。 你需要编写代码来精准定位那些在具有独特背景、从不同相机角度拍摄的大量猫照片中共享的典型特征。你甚至该从哪里开始呢?

如今,计算机能轻易识别猫的照片,但这并非因为某个聪明的程序员找到了一种隔离“猫性”本质的方法。 相反,它们是通过神经网络来实现的,这是一种通过观察数百万或数十亿个示例来学习识别图像的人工智能模型。 神经网络还能以惊人的流畅性生成文本,精通复杂的游戏, 并解决数学生物学 中的问题–所有这一切都不需要任何明确的指令。

研究人员对神经网络的内部工作机制仍有很多不理解的地方。但它们并非完全不可捉摸。 通过将神经网络分解为其基本构建模块,我们可以探索它们如何学会区分虎斑猫和桌布。

一个简单的分类器

猫的识别是一个研究人员称之为分类任务的例子。给定一个对象——在这种情况下是一张图片——目标是将它分配到正确的类别。 有些分类任务比区分“猫”和“非猫”要简单得多。让我们考虑一个虚构的例子,涉及两个虚构的地区,三角形领地和方形州。

The Image of Triangle Territory and Square State

你得到一个新的点,由其经度和纬度坐标描述,并且必须决定这个点位于哪个区域。但你没有显示边界的地图。相反,你只有两个区域中的一些已知点。

Triangle-Rectangle Distribution Chart

要构建一个能自动对未知点进行分类的“分类器”系统,你需要划定一个边界。之后,当你得到一个新的点时,分类器只需查看它位于边界的哪一侧即可。

但如何决定边界在哪里呢?这就是神经网络发挥作用的地方。它们根据初始的一组已知数据点找到最可能的边界。

在理解该过程之前,我们需要放下我们的地图,探索神经网络的基石——神经元。 神经元只是一个数学函数,有几个输入和一个输出。输入一些数字,它就会输出一个新的数字。就是这样。

更简单来说,输出几乎总是接近 0 或接近 1。它会是哪一个呢?这取决于输入以及另一组称为参数的数字。 一个具有两个输入的神经元有三个参数。其中两个,称为权重,决定了每个输入对输出的影响程度。 第三个参数,称为偏差,决定了神经元在输出 0 或 1 方面的总体偏好。

现在让我们来看看输入和输出之间的关系。下面三幅插图展示了具有三组不同参数的神经元。 在每个情况下,随着输入的变化,它们会穿过一个边界,此时神经元的输出会从 0 迅速上升到 1。 在这些图中,边界始终是一条直线。参数决定了这条线的位置和角度。

The image about the influence of parameters on a straight line

要创建一个分类器,告诉我们一个新的点应该位于方形州还是三角形领地,我们需要调整这条线,使其准确表示两个区域的边界。 在这里,我们将如果输出接近 0,则称一个点位于方形州;如果输出接近 1,则称其位于三角形领地。

要调整这条线,我们需要通过一个称为训练的过程来调整神经元的参数。第一步是将参数设置为随机值,这意味着神经元的初始边界线看起来一点也不像实际的边界。

The Image about Initial Boundary Random Value

在训练过程中,我们将每个已知数据点的经度和纬度输入到神经元的输入端。神经元会根据其当前参数输出一个结果,然后将该结果与真实值进行比较。有时它会得到正确答案。

其他点将被错误分类。

每当神经元给出错误答案时,一个自动算法会稍微调整神经元的参数,使边界向错误点移动。

The image about auto algorithm adjust neuron parameters

算法在处理训练数据时会重复这个过程很多次。最终我们会得到与最佳逼近真实边界形状的直线相对应的参数值。

最后,我们终于可以使用分类器处理那些未用于训练的新数据了。它并不完美,但大多数时候能给出正确答案。

神经网络

对于简单的例子,单个神经元已经相当有效,但这仅仅是因为三角形领地和正方形国家的真实边界接近于一条直线。 对于更复杂的任务,我们需要使用许多相互连接的神经元——即神经网络。与单个神经元一样,网络也只是一个数学函数。 输入数字,输出其他数字。

神经网络内部的神经元以称为层的组的形式排列。

一个层可以包含任意数量的神经元,网络可以有任意数量的层。每一层中神经元的输出成为下一层神经元的输入。

大型网络有许多参数:每个神经元有一个偏差,神经元之间的每个连接有一个权重。这些额外的参数使网络能够找到更复杂的边界。

例如,想象一下你正在尝试做同样的地图分类任务,但真正的边界远非直线。

The image about Non-linear Map Classification Task

我们可以尝试训练一个单神经元分类器来逼近这个边界,但它永远不会很好地工作。一般来说,更大的网络可以处理更复杂的工作,尽管它们也需要更多的训练数据。

Single-Neuron and Multi-Neuron Classifiers

从地图到猫

我们已经看到,通过使用更多的神经元可以使神经网络更强大。但到目前为止,我们只研究了具有两个输入的网络。 神经网络的输入数量没有限制。大多数有用的任务都需要具有许多输入的网络。

在我们之前的例子中,神经元的两个输入是地图上点的经度和纬度坐标。神经网络的输入数字也可以表示其他类型的数据。 例如,一个介于 0 和 1 之间的数字可以代表单个像素的灰度值。

这意味着任何一对像素都可以在二维空间中绘制为一个点。

同样地,像素三元组对应于三维空间中的点。

更多的像素需要更多的维度。我们无法可视化超过三维的内容,但研究人员已经开发出查看这些抽象空间的三维表示方法, 类似于观看一个三维空间的两维快照。在九个维度中,我们可以在一个三行三列的网格上表示不同的模式。

要了解这有何用处,让我们从九个输入跳到 2,500 个输入,代表一个 50×50 像素的网格。在这个尺寸的网格上不同的图案可以描绘出有意义的图像, 比如猫的图片。每张猫的图片都对应于 2,500 维空间中的一个不同点。

The images about cat of 2500 dimensions

这个空间中的其他点对应着咖啡杯的照片。

A photo of a coffee cup

只要有足够的数据点,我们就可以训练一个大型网络来区分猫和非猫。

A photo of cat and non-cat

所有猫的照片都位于 2,500 维空间中的某个复杂区域。训练算法会反复调整网络的参数,直到找到这个难以可视化的区域的边界。

A photo of complex region

经过训练的网络将能够正确分类训练数据中未出现的新图像。瞧:我们已经构建了一个能够“识别”猫图像的网络。

不只是猫

我们的猫检测网络有很多神经元和很多输入,但只有一个输出。如果有更多输出,我们可以训练网络识别多种类别的物体, 而不仅仅是猫。每个类别都对应于 2,500 维空间中的不同区域。更复杂的图像识别网络已经在天体物理学、细胞生物学、医学和其他许多领域找到了应用。

神经网络也能执行分类以外的任务。像 ChatGPT 这样的大型语言模型基于输入和输出数量代表单词的神经网络。 最先进的网络非常庞大,拥有数十亿或数万亿个参数。这使得很难确切知道网络的不同部分在做什么。 试图理解大型神经网络中发生的事情是当今许多研究人员面临的挑战。

参考链接