人眼与计算机视觉,有啥不一样?
自人工智能发展早期以来,科学家们就一直梦想着创造出能够“观察”真实世界的计算机。考虑到人类社会对于视频要素的高度依赖,以代码形式实现计算机视觉自然成为人工智能不能回避的核心课题之一。
但与其他众多AI发展目标一样,计算机视觉同样是那种说起来容易、实现起来却极难的挑战。1966年,麻省理工学院的科学家们发起“夏季视觉项目(The Summer Vision Project)”,希望在两个月之内开发出一套能够识别图像中物体及背景区域的计算机系统。但事实证明,短短一个暑假根本不够解决问题。直到二十一世纪的第二个十年,图像分类器与物体检测器才获得进入主流应用的充分灵活性与可靠性。
过去几十的中,机器学习与神经科学的进步帮助我们在计算机视觉方面取得了长足进步。但是,要想构建起能够与人类一样灵活观察世界的AI系统,我们还有很长的路要走。
哈佛大学医学院Gabriel Kreiman教授扬鞭的《生物与计算机视觉(Biological and Computer Vision)》一书探讨了人类与动物如何处理视觉数据,并展望了我们要如何在计算机上重现这种强大的识别能力。
Kreiman在书中讲解了生物与计算机视觉之间的差异,包括介绍数十亿年的演变如何为我们带来复杂的视觉处理系统,以及如何通过生物学研究成果构建起更好的计算机视觉算法。
硬件差异
在这本书的序言部分,Kreiman写道,“我对生物与计算系统中的连接电路特别感兴趣。生物视觉是数百万年间持续进化的产物。而在开发计算模型时,我们当然没必要重新发明轮子。我们可以直接学习生物解决视觉问题的方法,并以此为基础构建起更强大的算法。”
的确,对视觉皮层的研究已经成为计算机视觉与AI设计灵感的重要来源。但在全面实现视觉数字化之前,科学家们还必须克服生物与计算机视觉之间巨大的硬件鸿沟。生物视觉系统运行在皮层细胞与有机神经元相互连接而成的网络之上;与之不同,计算机视觉则运行在由晶体管组成的电子芯片当中。
因此,视觉理论必须先与计算机的底层原理相统一,再实现与生物视觉相等的效能。Kreiman将此称为“戈尔迪洛克式解决方案”,即抽象级别属于既不过度复杂、又不过于简单的水平。
例如,早期计算机视觉曾经尝试以一种高度抽象的方式达成目标,其中忽略了人脑与动物大脑的既有视觉识别模式。但事实证明,这种方法效率低下且极易出错。而另一方面,在分子水平上研究并直接模拟大脑,则没有任何现实可行性。
Kreiman在采访中表示,“我不是所谓「复制生物学」思路的忠实拥护者。生物学中的很多元素应该得到抽象与整理。我们并不需要2万种蛋白质、细胞质加复杂的树突状几何结构才能实现视觉能力。我们既应该适当剥离不必要的生物学细节,但又不能单纯研究具体行为——这种抽象度又过高了。”
在书中,Kreiman将新皮层回路的戈尔迪洛克量度定义为每毫秒发生的神经元活动。神经科学与医学技术的进步,使得研究毫秒级粒度下单一神经元的活动成为可能。
这些研究的成果帮助我们开发出不同类型的人工神经网络。所谓人工神经网络是一种AI算法,能够轻松模拟哺乳动物大脑皮质区域的运作。近年来,神经网络已被证明是视觉数据中实现模式识别功能的最佳算法,并成为多种计算机视觉应用中的关键组成部分。
架构差异
最近几十年来,深度学习领域迎来了大量革命性创新,也让计算机得以更从容地模拟生物视觉中的某些功能。受到动物视觉皮层研究的启发,卷积层开始在从视觉数据中查找模式方面发挥巨大作用。池化层有助于概括卷积层的输出,并保证其不会对视觉模式的漂移太过敏感。卷积层加上池化层,就足以识别出从简单模式(拐角、边缘等)到复杂对象(人脸、椅子、汽车等)的各类图像内容。
但是,人工神经网络中使用的高级架构与我们对哺乳动物视觉皮层的认知之间仍然存在错位。
Kreiman强调,“遗憾的是,「层」这个字眼仍然比较含糊。计算机科学当中,人们会使用层来表示不同的处理阶段(各层基本类似于大脑中的不同区域)。但在生物学中,大脑中的各个区域包含有6个皮质层(及更多次级结构)。乍看上去,这种六层结构应该非常关键(各层间的连通性,有时也称为标准微回路),但我们并不清楚要怎么把这些回路添加到神经网络当中。有些人认为这种六层结构已经得到了一定体现(例如归一化操作),但这里肯定还有不少需要充实的空间。”
同样的,Kreiman还在书中提到,大脑中的信息会朝着多个方向移动。光信号由视网膜移动至颞下皮层,再被传输至视觉皮层的V1、V2及其他层。与此同时,每个层还同时向前一层提供反馈。在各层中,神经元彼此交互并传递信息,而所有交互作用与往来联系在实质上是帮助大脑填补视觉输入中的空白,借此在信息不完整时做出推断。
相反,在人工神经网络中,数据通常只在单一方向上移动。卷积神经网络属于“前馈网络”,意味着信息只会从输入层一步步转向较高层与输出层。
目前也存在一种名为“反向传播”的反馈机制,有助于纠正错误并调整神经网络参数。但这种反向传播会带来高昂的计算成本,而且仅能在神经网络的训练期间发挥作用。我们也不清楚反向传播是否真的直接对应于皮质层的反馈机制。
在另一方面,强调将较高层的输出与前一层输入相结合的递归神经网络,在计算机视觉中的使用仍然比较有限。
在视觉皮层(右)中,信息会沿多个方向移动。但在神经网络(左)中,信息只沿单一方向移动。
在交流当中,Kreiman认为向人工神经网络引入横向及纵向信息流,可能有助于其更好地与生物视觉系统相匹配。
他认为,“横向连接(即同一层内各单元间的连接)对于图形补全等计算任务可能至关重要。而纵向连接(即由上层单元到下层单元间的连接)对于做出预测、唤起注意力、合并上下文信息等也许具有关键意义。”
他还提到,大脑神经元具有“现有网络中所缺少的复杂时间整合能力。”
目标差异
生物进化成功发展出了能够完成诸多任务的神经架构。已经有多项研究表明,我们的视觉系统能够根据不同目标动态调节关注敏感性。但是,这种灵活性在计算机视觉系统上仍然很难实现。
目前的计算机视觉系统主要为单一任务而设计,例如通过不同的神经网络进行对象分类、对象定位、按对象拆分图像区域、描述图像内容、生成新图像等,但这些神经网络各自只能完成自己份内的一项工作。
面对“应该如何以目标为中心灵活地传递视觉信息?”这个问题,Gabriel Kreiman教授强调“在本质上,人类能够根据同一图像回答无数个问题,包括标记对象、计算对象、描述对象颜色、对象间的相互作用、各对象的大小等。我们目前只能构建出解决其中一个问题的神经网络,却无法通过单一网络同时解决所有问题。虽然也有一些新兴算法做出了尝试,但其水平仍然相当原始,远不能与人类的表现相提并论。”
综合差异
对人类及动物来说,视觉往往与嗅觉、触觉和听觉密切相关。视觉皮层、听觉皮层、体感皮层以及嗅觉皮层间相互影响并相互提示,帮助人体调整对周遭世界的推断。但在AI系统中,这些元素还只能分别独立存在。
我们是否需要建立起这种综合体系,由此构建起更强大的计算机视觉方案?
Kreiman回答道,“作为科学家,我们习惯于把问题拆解开来分别处理。我个人认为这样的起点确实比较合理,例如先实现视觉,暂时不考虑嗅觉或听觉。这有点像电影工业早期制作的默片。跨模式用例当然值得期待,但我认为先把问题简化也许更有利于获得研究进展。”
但是,生物视觉本身就与大脑中的各个复杂区域相互关联。在人体中,视觉离不开逻辑、推理、语言及常识等关联体系。
Kreiman指出,“其实大部分视觉问题都要求我们把输入内容与原有常识结合起来。”
他以下面这张美国前总统奥巴马的照片为例,阐述了自己的思考。
要理解图片内容,需要一定的通识知识与社会知识,例如弄明白体重秤上的人在做什么、奥巴马在做什么,这需要大量的背景信息。通识知识会让AI代理意识到体重秤的作用是测量体重,物理知识则指明奥巴马在给面前的人加力,心理知识则是人们在看到远超预期的体重指数时往往会感到惊讶。而这也是恶作剧的意义所在。
Kreiman提到,“目前的架构明显做不到这一点。各项信息会以我们自己意识不到的方式整合起来,并与脑中储备的信息相互映射和补充。”
对语言和常识的理解本身,就是横亘在AI社区面前的一座高峰。更要命的是,我们甚至不清楚这类问题到底能不能以拆解的方式逐步解决;或者说,只有统一整体处理才有可能带来真正的答案。
Kreiman最后总结道,“终有一天,我们要将认知的各个层面都考虑进来,而没有语言和逻辑作支撑的视觉终究不够可靠。希望我们能在未来几年中获得重大突破,努力将语言、逻辑与视觉模型统一起来。”