技术总结 | 十分钟了解机器如何识别一只猫?

发布于 2025-9-10 00:21
浏览
0收藏

尽管多模态大模型已广泛应用于各个领域,但计算机到底是如何识别一只猫的?最近阅读了一篇文章(https://www.quantamagazine.org/how-can-ai-id-a-cat-an-illustrated-guide-20250430/),内容容易理解,总结如下。

一个简单的分类器

假设在同一个坐标系中存在三角形和方形,如下图:

技术总结 | 十分钟了解机器如何识别一只猫?-AI.x社区

如果要将这两个类型分开,就需要一条分界线,但是如何知道这条分界线?传统的机器学习可以通过 ​​SVM​​,计算一条与刚好两个分类的各个点上距离和最小的一条边界线即可。另一种方法就是通过神经网络,根据已知的数据找到边界。

神经元

神经网络的基本单元是神经元,在计算机中就是一个数学函数,类似:​​y = f(x1,x2,...)​​,存在多个输入的数据,然后输出一个值。 现在让我们来看看输入和输出之间的关系,下面的三幅图展示了具有三组不同参数的神经元,在每种情况下,随着输入的变化,它们会跨越一个边界,神经元的输出会在这个边界上迅速从 0 上升到 1,在这些图中,边界始终是一条直线,参数决定了这条线的位置和角度。

技术总结 | 十分钟了解机器如何识别一只猫?-AI.x社区

训练

为了创建一个分类器,告诉我们一个新点应该位于正方形状态还是三角形区域,我们需要优化这条边界线,使其准确地表示两个区域之间的边界。 在这里,如果输出接近于 0,我们就说一个点位于正方形状态;如果输出接近于 1,我们就说一个点位于三角形区域。 为了优化这条边界线,我们需要通过一个叫做“训练”的过程来调整神经元的参数,第一步是将参数设置为随机值,这意味着神经元的初始边界线看起来与实际边界完全不同。

技术总结 | 十分钟了解机器如何识别一只猫?-AI.x社区

在训练过程中,我们将每个已知数据点的经度和纬度输入到神经元的输入中,神经元会根据其当前参数输出一个输出,然后将该输出与真实值进行比较,有时,它会得到正确的答案。每当神经元得到错误答案时,自动算法就会稍微调整神经元的参数,使边界更接近错误点。

技术总结 | 十分钟了解机器如何识别一只猫?-AI.x社区

神经网络

单个神经元效果很好,但这仅仅是因为三角领地和方形之间的真实边界接近直线,对于更复杂的任务,我们需要使用由许多相互连接的神经元组成的集合——神经网络。

技术总结 | 十分钟了解机器如何识别一只猫?-AI.x社区

如图所示,神经网络是多个神经元组成,与单个神经元相比,神经网络拥有更多的参数,一个神经元可能是2个参数,但是多层神经网络一一组合就可能超过 ​​100​​ 万个参数,这些参数不断拟合你需要分类的边界。

从三角形和正方形分类问题到识别猫

三角形和正方形分类问题和猫有什么不同呢?三角形正方形坐标是可以看成两个维度(例如:(1,2),(3,10)),但是猫是照片,那么猫的照片的每个像素格就是一个维度​​(50x50)​​,将二维输入转换为2500维输入:

技术总结 | 十分钟了解机器如何识别一只猫?-AI.x社区

然后将猫的归一化的像素格作为 ​​input​​ 输入神经网络,让权重参数用大量的输入数据做拟合,只要有足够的数据点,我们就可以训练一个大型网络来区分猫和非猫。

技术总结 | 十分钟了解机器如何识别一只猫?-AI.x社区

所有猫照片都位于 ​​2500​​ 维空间中某个复杂的区域。训练算法会反复调整网络参数,直到找到这个无法可视化的区域的边界,经过训练的网络就能正确分类训练数据中没有的新图像。

技术总结 | 十分钟了解机器如何识别一只猫?-AI.x社区

参考

(1)https://www.quantamagazine.org/how-can-ai-id-a-cat-an-illustrated-guide-20250430/

本文转载自​周末程序猿​,作者:周末程序猿

已于2025-9-10 09:42:14修改
收藏
回复
举报
回复
相关推荐