查看原文
其他

山世光 2018-06-02

点击上方“深度学习大讲堂”可订阅哦!


编者按:AlphaGo Zero的横空出世,似乎标志着AI自主学习时代的到来。那么计算机视觉领域是否能沿着AlphaGo的思路,完成从零数据开始自学或从有监督到无监督时代的跨越呢?于是,在人脸识别领域深耕二十载的山世光研究员,做了一个 Face Zero的梦,我们或许可以在他的梦中找到答案。



      最近几天,看到AlphaGo Zero横空出世,很多人惊呼AI自主学习的时代到来了!似乎明天就会有一个叫做AI Zero的学神小宝贝横空出世,自主狂学一个月,马上长大成人,变成一个智商、情商超越人类的AI 100。当然,大多数人没有那么乐观,但也可能心中暗暗期待:或许我们很快可以看到Eye Zero,Ear Zero之类横空出世,毕竟AlphaGo Zero似乎已经表明:开发某个专项智能,像过去算法动辄需要的百万、千万量级的有监督大数据不需要了,算法可以从0开始自主学习,顶多只要给算法准备大规模无监督数据,剩下的交给算法自主学习就好了。是不是真的是这样呢?



      于是乎,借AlphaGo Zero之东风,我也做了个Face Zero的梦。咱不是做计算机视觉嘛,就拿人脸识别为例吧。先看看AlphaGo Zero学神怎么学的。对!从零开始,自己造数据!那对人脸来说,这个第一步好像就有点悬了,咋造人脸呢?围棋大哥有明确的落子规则和输赢判断准则,按规则模拟对弈就好了。可人脸怎么造?如果没有任何的人脸样例或知识,除非上帝他老人家在,否则恐怕只能造“鬼脸”了——反正谁也没见过鬼,怎么造都行。如果这样,显然咱这梦只能醒了,对不对?


      好吧,至少给些例子吧,比如给算法一张大美女杨颖的人脸图像好了。然后呢?咱设计个算法“举一反三”,把女神这张照片变啊变,变出1000幅女神的人脸图出来。可是怎么完成这个“举一反三”呢?怎么保证变出来的还是杨颖的脸而不是杨幂、孙猴子、猪八戒的脸呢?更何况杨颖的脸怎么“举一反三”变成黄晓明、葛优的帅照呢?没有其他大量人脸的样例或其他知识(比如人脸的3D结构、成像的物理模型、老化模型、表情模型、眼镜模型等等),咱这梦还只能是南柯梦。



      那咱就得了寸再进一尺,假设我们有杨颖女神人脸的3D结构和成像模型之类。可是,问题又来了:什么幅度的3D形变(比如变胖或变瘦)可以确保还是杨颖而不会变成另外一个人呢?或者怎么变能把杨颖变成另外一个人?这里和围棋的差别在于:围棋有明确的胜负判定规则,而我们这里并没有一个这样的“判定”规则告诉我们答案。所以,通过对AlphaGo至关重要的增强学习方法来“试错”进行学习,宝宝很难办到啊。这就像小学生做模拟题,如果做完题不给他答案,不给他讲错题,他恐怕基本进步不了,因为他自己不能判断对错(他尤其需要知道自己答错了的题目)。


      好吧,咱再换个思路,给算法大量人脸图像,比如1亿幅人脸图像,但不幸这些人脸图像是无监督的或者说是没有标签的(否则现在的深度学习就可以解决了),也就是说,不告诉算法这些图来自多少人,更不知道哪些图是同一个人的——所谓的无监督数据。AlphaGo Zero学神的算法是不是可以用呢?根据AlphaGo Zero的论文,其核心之处是用增强学习来自动学习用于启发式搜索的评分函数,对人脸识别来说,其核心实际上也是学习一种评分函数,即计算两张人脸照片的相似程度(同一人图像相似度尽量高,不同人相似度尽量低),看到这里大家会不会心里狂喜:我们的梦是不是要实现了呢?但是,因为我们的前提是无监督,我们并不知道这1亿幅图像中任意两幅是不是来自同一个人,所以学习这个相似度评分函数又失去了依据,因为算法又不能像围棋里一样自己判断对错和好坏,更没有神仙告诉我们答案,根本增强不起来。所以,又是南柯一梦。


      看到这里,懂生成式对抗网络(GAN)的读者可能会反驳我了:有了这些大量的照片,即使是无监督的,我们不是就可以用GAN这样的类“增强学习”策略来生成各种看起来符合真实人脸“分布”的人脸图像吗?这样一来,给定一张杨颖女神的照片,我们不就可以生成各种美图了吗?可是,问题在于,没有了那些重要的监督信息,GAN生成的图像只能保证生成的人脸看起来是张脸,但没有办法保证她不会变成杨幂、范冰冰或者葛优!所谓举一反三,恐怕还是不行。


      梦醒了吗?好在还没有!那至少AlphaGo Zero的思想是不是可以用来减少对有监督数据的需求量呢?例如,按照目前的方法论,用深度学习做人脸识别,可能首先需要收集整理100万人(越多越好)的1亿张有标注的照片(每人100张各式各样的照片,越多越好),然后用这个大数据学习如何提取人脸特征或者如何计算相似度评分函数。那根据AlphaGo Zero学神的思想,咱现在能不能用1万人的100万图来解决问题?


      这是非常有价值的一件事情,如果这梦实现了,我们对数据的需求量就减少了100倍,这意味着少花100倍的银子和时间收集和标注数据啊!那怎么解决这个问题呢?对需要识别数百万人的大规模人脸识别系统来说,只学会区分1万人显然是不够的。怎么解决?我们需要“举一反百”、“举一反千”、“举一反万”的能力,即从这1万人造出100万人、1000万人、1亿人,甚至全球所有人。这任务就变得有点复杂了,答案也不再那么显然,而且会和这10000人是什么样的人群有关系。为此,一种可能的办法是用GAN这样的对抗算法“创造”不同的人脸。在“创造”第10001个人的面部图像时,要求其既与之前的10000人都不同,又要确保他/她的面部图像看起来是真实的照片,而不是像卡通或鬼脸那样。


      那么GAN是否具备这样的能力呢?我个人对此持怀疑态度。例如,假设这10000人都是男人能行吗?都是白人能行吗?都是单眼皮能行吗?按照目前GAN的思想,是不可能的,GAN可以“内插式创造”,要“外延式创造”是有极大风险的,设想:如果算法能从10000个白人自动外延出从没见过的某个黄种人,怎么保证不外延出绿巨人?如果算法能从10000个鹅蛋脸自动外延创造出从没见过的国字脸,怎么保证不创造出被压扁的长条脸?


      好吧,既然只能内插式创造,那咱们精心挑选10000个“代表人”,均匀覆盖肤色、男女、脸型、眉形、眼型、嘴型、高低鼻梁、高低颧骨、粗细肌肤……是否就可以了呢?这看起来是有可能的,因为这样貌似就可以内插创造出各种可能的人脸了!但10000人是否足够代表呢?这里涉及几十甚至上百种面部属性的组合爆炸问题,就算每个属性只有2个可能的取值(比如男女),即使只有14种属性就有超过10000种组合了!何况很多属性有很多取值(比如脸型、肤色、眼型…),显然组合数就更多了,每种组合我们至少需要一个“代表人”吧(当然实际有些组合可能1个代表还不够,也有可能某种组合并不存在这样的人),这意味着我们需要的“代表人”数恐怕远远不止10000人。说到这里,好伤心,Zero梦又要醒了。


      不过,别急着放弃做梦,上面的推演中并没有考虑咱们人对面孔的认识,毕竟咱们这社会上存在一群称为“专家”的人。我们相信,咱们的解剖学专家或许可以制定出一些“规则”,告诉我们什么样的修改可以“创造”出不同的、实际存在的人的面孔。从计算上说,如果我们有10000个“代表人”的3D头部模型,以及相应的可以修改他们各种属性的模型和方法,加上上述的“专家经验”,就可以像上帝一样创造出千千万万的人脸了。这是不是很酷?是不是梦想成真了?遗憾的是,这已经离我们最初渴望的从0自主学习十万八千里了。


      总之,AlphaGo Zero其实对Face Zero梦的实现几乎没有作用,谨慎乐观的说有一些,但也是AlphaGo甚至之前就已经有的“对抗增强”思想(GAN),而非AlphaGo Zero带来的。而这背后的根本原因在于,与围棋最终可以自判输赢不一样,人脸识别算法不具备自己判断对错的能力。


该文章属于“深度学习大讲堂”原创,如需要转载,请联系 astaryst。



作者简介:


 


山世光中科院计算所研究员、博导,基金委优青,CCF青年科学奖获得者,现任中科院智能信息处理重点实验室常务副主任,中科视拓创始人、董事长兼CTO。他的研究领域为计算机视觉和机器学习。已在国内外刊物和学术会议上发表论文200余篇,其中CCF A类论文60余篇,论文被谷歌学术引用10000余次。曾应邀担任过ICCV,ACCV,ICPR,FG,ICASSP等国际会议领域主席,现任IEEE TIP, CVIU, PRL, Neurocomputing, FCS等国际学术刊物的编委(AE)。研究成果获2005年度国家科技进步二等奖,2015年度国家自然科学二等奖,CVPR2008 Best Student Poster Award Runner-up奖。


往期精彩回顾


孙剑:如何在公司做好计算机视觉的研究|VALSE2017之十三

梅涛:深度学习敲敲视觉理解中的“钉子”

韩琥:深度学习让机器给人脸“贴标签”

为国庆献礼:无人智能系统,守护祖国海空长城

梅涛:“看图说话”——人类走开,我AI来!|VALSE2017之十二



 
  

欢迎关注我们!


深度学习大讲堂是由中科视拓运营的高质量原创内容平台,邀请学术界、工业界一线专家撰稿,致力于推送人工智能与深度学习最新技术、产品和活动信息!


中科视拓(SeetaTech)将秉持“开源赋能共发展”的合作思路,为企业客户提供人脸识别、计算机视觉与机器学习领域“企业研究院式”的技术、人才和知识服务,帮助企业在人工智能时代获得可自主迭代和自我学习的人工智能研发和创新能力。


中科视拓目前正在招聘: 人脸识别算法研究员,深度学习算法工程师,GPU研发工程师, C++研发工程师,Python研发工程师,嵌入式视觉研发工程师,运营经理。有兴趣可以发邮件至:hr@seetatech.com,想了解更多可以访问,www.seetatech.com

中科视拓

深度学习大讲堂


点击阅读原文打开中科视拓官方网站


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存