
技术总结 | 十分钟了解机器如何识别一只猫?
尽管多模态大模型已广泛应用于各个领域,但计算机到底是如何识别一只猫的?最近阅读了一篇文章(https://www.quantamagazine.org/how-can-ai-id-a-cat-an-illustrated-guide-20250430/),内容容易理解,总结如下。
一个简单的分类器
假设在同一个坐标系中存在三角形和方形,如下图:
如果要将这两个类型分开,就需要一条分界线,但是如何知道这条分界线?传统的机器学习可以通过 SVM
,计算一条与刚好两个分类的各个点上距离和最小的一条边界线即可。另一种方法就是通过神经网络,根据已知的数据找到边界。
神经元
神经网络的基本单元是神经元,在计算机中就是一个数学函数,类似:y = f(x1,x2,...)
,存在多个输入的数据,然后输出一个值。 现在让我们来看看输入和输出之间的关系,下面的三幅图展示了具有三组不同参数的神经元,在每种情况下,随着输入的变化,它们会跨越一个边界,神经元的输出会在这个边界上迅速从 0 上升到 1,在这些图中,边界始终是一条直线,参数决定了这条线的位置和角度。
训练
为了创建一个分类器,告诉我们一个新点应该位于正方形状态还是三角形区域,我们需要优化这条边界线,使其准确地表示两个区域之间的边界。 在这里,如果输出接近于 0,我们就说一个点位于正方形状态;如果输出接近于 1,我们就说一个点位于三角形区域。 为了优化这条边界线,我们需要通过一个叫做“训练”的过程来调整神经元的参数,第一步是将参数设置为随机值,这意味着神经元的初始边界线看起来与实际边界完全不同。
在训练过程中,我们将每个已知数据点的经度和纬度输入到神经元的输入中,神经元会根据其当前参数输出一个输出,然后将该输出与真实值进行比较,有时,它会得到正确的答案。每当神经元得到错误答案时,自动算法就会稍微调整神经元的参数,使边界更接近错误点。
神经网络
单个神经元效果很好,但这仅仅是因为三角领地和方形之间的真实边界接近直线,对于更复杂的任务,我们需要使用由许多相互连接的神经元组成的集合——神经网络。
如图所示,神经网络是多个神经元组成,与单个神经元相比,神经网络拥有更多的参数,一个神经元可能是2个参数,但是多层神经网络一一组合就可能超过 100
万个参数,这些参数不断拟合你需要分类的边界。
从三角形和正方形分类问题到识别猫
三角形和正方形分类问题和猫有什么不同呢?三角形正方形坐标是可以看成两个维度(例如:(1,2),(3,10)),但是猫是照片,那么猫的照片的每个像素格就是一个维度(50x50)
,将二维输入转换为2500维输入:
然后将猫的归一化的像素格作为 input
输入神经网络,让权重参数用大量的输入数据做拟合,只要有足够的数据点,我们就可以训练一个大型网络来区分猫和非猫。
所有猫照片都位于 2500
维空间中某个复杂的区域。训练算法会反复调整网络参数,直到找到这个无法可视化的区域的边界,经过训练的网络就能正确分类训练数据中没有的新图像。
参考
(1)https://www.quantamagazine.org/how-can-ai-id-a-cat-an-illustrated-guide-20250430/
本文转载自周末程序猿,作者:周末程序猿
