一、视觉的诞生
地球上的生命在诞生后的几十亿年里,都没有发生什么巨大的变化。它们一直“平躺”在原始海洋的底部,既不能自主移动,也不能捕猎和觅食。
直到大约5亿年前,进化突然开始大爆发,在接下来的短短几千万年中,生命探索出了各种不同的身体结构,几乎覆盖了今天的所有生物类型,它们也拥有了复杂的行为,可以捕食、趋光和避害。
虽然寒武纪生命大爆发的原因有很多,但其中重要的原因之一,就是视觉的出现。视觉让生物适应环境的能力产生飞跃,也因此成为了最重要的感知功能。
乍一听起来,视觉是眼睛的功能,因为我们总是用眼睛看东西。但事实上,眼睛只是感知器官,只能被动接收外界的光线信息。这些信息要经过复杂的解码后,才能在大脑里产生理解,让我们知道周围发生了什么,应该作出什么样的反应。因此,大脑其实才是最重要的视觉器官。
对计算机来说,模拟“眼睛”的功能不难,一个摄像头就能轻松做到。但要像大脑视觉区域一样真正理解视觉信息却非常困难。
图片来源:pixabay
我们人类在年幼的时候,只需要在生活中看到几只猫,就能非常清晰地理解猫的视觉特征,下次再看到一只陌生的猫,也能一眼就认出来。但我们却很难把这样的特征转变成计算机能理解的形式。例如,图片中的猫虽然都是猫,但对计算机来说,却毫无相似性。
所以,虽然传统的视觉算法设定了大量的规则,试图提取出各种各样的图片特征,但却一直无法理解图片的内容,以至于连识别图片中的物体是猫还是狗这样对人类轻而易举的事情都做不好。
二、神经网络算法的助力
为了验证算法对图片分类的准确性。当时在普林斯顿大学任教的计算机科学家李飞飞在2010年发布了一个巨大的图片数据集 ImageNet,包含了一千多个类别。2010年,当时最先进的算法只能正确识别72%左右的图片。
但深度学习的出现改变了一切。2012年,多伦多大学的杰弗里·辛顿和他的两个学生发表了神经网络 AlexNet。这个网络立刻在 ImageNet 上产生了巨大的突破,将准确率提升到了84%多。
又过了几年,辛顿获得了图灵奖,而论文的另一个作者伊利亚·苏特斯威夫( Ilya Sutskever)则成为了 OpenAI 的创始团队成员,但这都是后话了。
神经网络是如何识别图片的?我们可以看一个简单的例子。假如我们要识别一个28*28图片上的手写数字。我们可以把图片中的像素拉长,变成一列由784个数字组成的数列。然后,我们可以把这个数列作为输入传送到神经网络里。神经网络的输出包括10个神经元,每个神经元的输出值代表一个数字。
一开始,输入图片数据后,输出的结果是随机的。但如果我们用大量训练数据训练这个神经网络,让网络根据正确结果修改自己的参数,不断反馈,神经网络逐渐就能学会如何正确识别数字了。
但这种简单的神经网络也存在问题。
三、新问题的出现
第一个问题是它的参数非常多。假如我们在输入和输出之外,只使用100个神经元作为中间层,就会产生784*100+100*10 = 79400个连接。而我们要处理的图片,往往远远大于28*28像素,所以会导致模型里带有太多参数,变得难以训练。第二个问题是,这种方法打乱了像素在原始图片中的分布,不符合人类观看图片的模式。
如何解决这两个问题呢?研究人员观察到两个特性。
首先,辨别图片中的物体不一定需要扫描图片中的每个像素,而只要找到图片的重点区域是否出现了某个重要的特征。例如,我们如果看到一块黑白相间的皮肤,也许就能直接判断出图片里的动物是斑马。
其次,这种特征在图片的位置并不关键。无论一只猫出现在照片的什么位置,它都是一只猫。
因此,研究人员不再打乱像素,而是用一个类似小窗口一样的工具在图片上滑动,捕捉图片不同位置上的局部特征。这些小窗可以通过一组参数滑遍全图,所以减少了参数量,而且也捕捉到了图片不同的区域。使用了这样“小窗”的神经网络又叫卷积神经网络。AlexNet 其实就是一种简单的卷积神经网络。
随后,神经网络技术不断得到优化,神经元数量和网络层数都在不断增加,性能也不断提升,几年后在 ImageNet 上的准确率就已经超过了97%,至少在这个数据集上接近了人类的水平。
不过,除了图片分类外,计算机视觉还有很多别的任务。比图片分类更难一些的是物体识别。物体识别任务不仅需要识别图片中的物体,还需要标出物体所在的位置。有的时候,图片中还包括不止一类物体。
物体识别被广泛应用于自动驾驶中,因为自动驾驶系统要能识别不同类型的物体,比如其他汽车、行人、信号灯和指示标识等等。
另外,我们还需要模型理解不同“模态”的数据,并把它们结合在一起。例如,结合了文本和图片的模型可以根据文字生成图片。
除了处理已经存在的图片,我们还想让机器生成新的图片和视频。现在,OpenAI、谷歌和百度等机构都已经有了较为成熟的图片生成工具,但视频生成技术还相对原始,有很大的改进空间。
计算机视觉领域还有一个开放的问题,就是是否可以开发一个类似 GPT-4或 chatGPT 这样的通用视觉模型。毕竟,视觉理解是智能不可或缺的一部分,缺少视觉能力的语言大模型不能让所有人都相信体现了全部智能。
文章由科普中国-星空计划(创作培育)出品,转载请注明来源。
作者:管心宇 科普作者
审核:于旸 腾讯玄武实验室负责人