以往,我们提起 AI,有一个共识,即它在某些方面已经碾压人类,比如下围棋;它在另一些方面远不及人类,比如认识一只动物、认识很多只动物。原因之一是 AI 自主学习能力远不及人。
前几天,AlphaGo Zero 横空出世,从零开始,闭关 72 小时自我对弈围棋,即 100:0 完胜之前用了几个月时间成长、胜了李世乭的 AlphaGo。这似乎表明,开发某个专项智能时,AI 算法不再像过去那样动辄需要百万、千万量级的有监督大数据,算法甚至可以从 0 数据开始自主学习,顶多只需大规模无监督数据。
于是,很多人惊呼 AI 自主学习的时代到来了。似乎很快就会有一个叫做 AI Zero 的学神小宝贝横空出世,自主狂学一个月,马上长大成人,变成一个智商、情商超越人类的 AI 100。
但事实恐怕并非如此。
我本人是做计算机视觉研究工作的,尤以人脸识别方面的研究比较多。便借 AlphaGo Zero 之东风,我也做了个 Face Zero 的梦,想了想人脸识别从 0 自主学习的可能性。
AlphaGo Zero 自造数据的思想很难扩展到 Face Zero
先看看 AlphaGo Zero 学神怎么做的:从 0 开始自造数据。对人脸来说,这个第一步就有点悬了,如何造人脸呢?围棋有明确的落子规则和输赢判断准则,按规则模拟对弈即可造出大量有监督的数据。可人脸如何从 0 造?如果没有任何的人脸样例或知识,除非上帝他老人家在,否则怕只能造一堆“鬼脸”出来——反正谁也没见过鬼,怎么造都行。
如果这样,怕是这梦只能醒了。
那,至少给一张人脸,让算法自己“举一反三”,创造千千万万张人脸可行吗?比如给算法一张大奥黛丽赫本的人脸图像,让算法把赫本这张人脸照片变啊变,变出 1000 幅赫本女神的人脸图出来,再变出成千上万不是赫本女神、但长相合理的人脸。
且不说怎么变形的难题,这里面有两个问题需要解决:如何保证算法“举一反三”变出来的人脸还是女神的脸而不是孙悟空、猪八戒的脸部照?以及,如何保证算法可以“举一反三”变出奥巴马、猫王等各种人的脸部照?要解决这两个问题,我们需要大量人脸的样例或其他知识,比如人脸的 3D 结构、成像的物理模型、老化模型、表情模型、眼镜模型等等。
这就和最初“给一张人脸”的假设矛盾了,这梦便只能是南柯梦了。
再退一步,即使我们有赫本女神人脸的 3D 结构和成像模型等,这两个问题仍然需要解决:什么幅度的 3D 形变,比如变胖或变瘦或变老,可以确保还是赫本本人而不会变成其他人? 什么样的形变可以确保变出一个合理的人脸,而不会变出一个史瑞克或猪八戒?
人脸识别在这里体现出一个和围棋对弈的较大差别:围棋有明确的胜负判定规则,而人脸识别并没有一个这样的“判定”规则。所以,人脸识别算法如果也使用对 AlphaGo 至关重要的增强学习方法,借“试错”实现自主学习,不太现实。这就像学生做模拟题,如果做完题不给他答案,不给他讲错在哪,什么是对。他恐怕难以进步。
使用大量无监督数据的思路也很难扩展到 Face Zero
退一步,看看 AlphaGo Zero 其他地方有没有值得借鉴的。据 AlphaGo Zero 的论文所说,其核心之处是用增强学习来自动学习用于启发式搜索的评分函数(价值网络)。对人脸识别来说,其核心实际上也是学习一种评分函数,即计算两张人脸照片的相似程度:同一人图像相似度尽量高,不同人相似度尽量低。
看起来有点机会。既然从 0 或从 1 开始不行,那么,是否可以给算法 1 亿张无监督(即没有标签)的人脸照片数据,然后让 Face Zero 借鉴 AlphaGo Zero 的思路学习评分函数呢?
遗憾的是这也不行。因为我们使用的是无监督人脸图像,我们不知道这 1 亿幅人脸图像是多少人的图像,其中哪些是同一人的,人脸识别算法又不能像围棋算法一样自己判断对错和好坏,当然就没办法自我增强起来。
所以学习这个相似度评分函数失去了依据。
又是南柯一梦。
看到这里,懂生成式对抗网络(GAN)的读者可能会反驳:有了大量人脸图像,即使是无监督的,我们也可以用 GAN 这样的类“增强学习”策略来生成各种看起来符合真实人脸“分布”的人脸图像。
这样一来,给定一张赫本女神的人脸图像,Face Zero 就可以生成她的各种美图了吗?可是,问题在于,没有了那些重要的监督信息,只能保证 GAN 生成的人脸图像看起来是张脸,但没法保证她不会变猫王或奥巴马。
这举一反三的想法,恐怕还是不行。
AlphaGo Zero 的思想对减少人脸识别有监督数据需求量的价值较小
再退一步,AlphaGo Zero 的思想是否可用于减少有监督数据的需求量呢?例如,按照目前的方法论,用深度学习做人脸识别,首先需要收集整理尽量多的人脸图像,比如 100 万人的 1 亿张有标注的照片,然后让深度学习算法用这些图像学习如何提取可以区分不同人脸的好特征或者如何计算相似度评分函数。
比如,先给人脸识别算法提供 1 万人的有标注人脸图像,让它学会区分 1 万人的人脸,然后让它“举一反百”、“举一反千”、“举一反万”,即从这 1 万人造出 100 万人、1000 万人、1 亿人,甚至全球所有人的图像。
这个想法如果可行,那我们对数据的需求量就减少了 100 倍,这意味着在收集和标注数据方面,大幅降低了成本,从而使得深度学习算法的易用度“蹭蹭”的提高。
为此,一种可能的办法是用 GAN 这样的类增强对抗算法“创造”不同的人脸。在“创造”第 10001 个人的面部图像时,要求其既与之前的 10000 人都不同,又要确保第 10001 个人的面部图像看起来是真实的照片,而不是卡通人像或鬼脸。
遗憾的是,按照目前 GAN 的思想,是有局限的。GAN 可以“内插式创造”,要“外延式创造”是有极大风险的,设想:如果算法能从 10000 个白人自动外延出从没见过的某个黄种人,怎么保证不外延出绿巨人?如果算法能从 10000 个鹅蛋脸自动外延创造出从没见过的国字脸,怎么保证不创造出被压扁的长条脸?
那么,我们把 GAN 的能力限定在内插式创造。这要求我们在上面提到的 10000 个人具有足够的代表性。“代表人”经过精心挑选,均匀覆盖各种面部属性,如肤色、男女、脸型、眉形、眼型、嘴型、高低鼻梁、高低颧骨、粗细肌肤……这样一来,就可以内插创造出各种可能的人脸了。
但是,10000 人是否足够代表整个人类的特征?这里涉及几十甚至上百种面部属性的组合。每多一个面部属性,组合结果的数量便多几倍,呈指数爆炸式增长。就算每个属性只有 2 个可能的取值,比如男女,即使只有 14 种面部属性就有超过 10000 种组合。更何况,很多属性有很多取值,比如脸型、肤色、眼型,组合数就更多了。
如果每种组合我们需要至少一个“代表人”(实际可能有些组合 1 个代表还不够,也有可能某种组合并不存在),这意味着我们需要的“代表人”数恐怕远远不止 10000 人…
Face Zero 的梦真要醒了吗?
减少有监督数据需求量的其他可能
别急着放弃做梦,上面的推演中并没有考虑人类对面孔的认识。以人脸识别为例,解剖学专家或许可以制定出一些“规则”,告诉我们什么样的脸部改造可以“创造”出不同但又实际存在的人脸。如此,便可使用少量有监督数据“创造”出或者说“虚拟”出大量数据,从而使得深度学习的易用性更高。
举个例子,如果我们有 10000 个“代表人”的 3D 头部模型,以及相应的可以修改这些头部模型的方法,加上上述的“解剖学专家经验”,就可以像上帝一样创造出千千万万的人脸,且还是实际存在的、合理的人脸,而非绿巨人的人脸。
这样一想,似乎最开始的想法在一定程度上成真了。但遗憾的是,这种想法离我们最初渴望的从 0 自主学习差了十万八千里了:既需要众多的精确监督 3D 人脸数据,又引入了大量的不容易用程序实现的“专家知识”。
总之,仅仅以人脸识别 Face Zero 为例,AlphaGo Zero 的启发是微弱的。谨慎乐观的说有一些,但这种启发并非 AlphaGo Zero 带来的,而是那个下围棋胜过李世乭的 AlphaGo,甚至之前就已经有的“对抗增强”思想带来的。
这令人遗憾。实际上不仅仅对人脸识别,对自然图像识别任务,对语音识别任务,对医疗诊断任务,对自动驾驶任务等众多问题,AlphaGo Zero 的算法都难以产生直接的作用。背后的根本原因在于:与围棋最终可以自判输赢不一样,对这些任务不具备 AI 算法自判对错的能力,也就难以形成以自我奖惩为目标的自主学习。
注:本文的推演并不说明 AlphaGo Zero 的算法对所有 AI 问题都没有价值,事实上,它对一大类 AI 问题的解决,特别是棋类、游戏类、模拟训练等任务,将带来方法论上的巨大变迁。
山世光研究员,中科视拓创始人、董事长兼 CTO,超过 20 年计算机视觉研究经验。研究成果获 2005 年度国家科技进步二等奖,2015 年度国家自然科学二等奖等。