- 什么是有效负载?如何控制您的库卡机器人?
- KUKA库卡机械手KR360维修保养技巧分享
- 维修保养|库卡KUKA机器人KR 210维修保养经验丰富
- 库卡KUKA机器人维修保养小手册
- 维修保养|KUKA库卡机器人维修保养干货知识
AlphaGoZero下棋赢了它“哥”,AI自主学习的时代到了吗?
AlphaGoZero下棋赢了它“哥”,AI自主学习的时代到了吗?
以往,我们提起AI,有一个共识,即它在某些方面已经碾压人类,比如下围棋;它在另一些方面远不及人类,比如认识一只动物、认识很多只动物。原因之一是AI自主学习能力远不及人。
前几天,AlphaGoZero横空出世,从零开始,闭关72小时自我对弈围棋,即100:0完胜之前用了几个月时间成长、胜了李世乭的AlphaGo。这似乎表明,开发某个专项智能时,AI算法不再像过去那样动辄需要百万、千万量级的有监督大数据,算法甚至可以从0数据开始自主学习,顶多只需大规模无监督数据。
于是,很多人惊呼AI自主学习的时代到来了。似乎很快就会有一个叫做AIZero的学神小宝贝横空出世,自主狂学一个月,马上长大成人,变成一个智商、情商超越人类的AI100。
但事实恐怕并非如此。
我本人是做计算机视觉研究工作的,尤以人脸识别方面的研究比较多。便借AlphaGoZero之东风,我也做了个FaceZero的梦,想了想人脸识别从0自主学习的可能性。
AlphaGoZero自造数据的思想很难扩展到FaceZero
先看看AlphaGoZero学神怎么做的:从0开始自造数据。对人脸来说,这个第一步就有点悬了,如何造人脸呢?围棋有明确的落子规则和输赢判断准则,按规则模拟对弈即可造出大量有监督的数据。可人脸如何从0造?如果没有任何的人脸样例或知识,除非上帝他老人家在,否则怕只能造一堆鬼脸出来反正谁也没见过鬼,怎么造都行。
如果这样,www.zr-kuka.com,怕是这梦只能醒了。
那,至少给一张人脸,让算法自己举一反三,创造千千万万张人脸可行吗?比如给算法一张大奥黛丽赫本的人脸图像,让算法把赫本这张人脸照片变啊变,变出1000幅赫本女神的人脸图出来,再变出成千上万不是赫本女神、但长相合理的人脸。
且不说怎么变形的难题,这里面有两个问题需要解决:如何保证算法举一反三变出来的人脸还是女神的脸而不是孙悟空、猪八戒的脸部照?以及,如何保证算法可以举一反三变出奥巴马、猫王等各种人的脸部照?要解决这两个问题,我们需要大量人脸的样例或其他知识,比如人脸的3D结构、成像的物理模型、老化模型、表情模型、眼镜模型等等。
这就和最初给一张人脸的假设矛盾了,这梦便只能是南柯梦了。
再退一步,即使我们有赫本女神人脸的3D结构和成像模型等,这两个问题仍然需要解决:什么幅度的3D形变,比如变胖或变瘦或变老,可以确保还是赫本本人而不会变成其他人?什么样的形变可以确保变出一个合理的人脸,而不会变出一个史瑞克或猪八戒?
人脸识别在这里体现出一个和围棋对弈的较大差别:围棋有明确的胜负判定规则,而人脸识别并没有一个这样的判定规则。所以,人脸识别算法如果也使用对AlphaGo至关重要的增强学习方法,借试错实现自主学习,不太现实。这就像学生做模拟题,如果做完题不给他答案,不给他讲错在哪,什么是对。他恐怕难以进步。
使用大量无监督数据的思路也很难扩展到FaceZero
退一步,看看AlphaGoZero其他地方有没有值得借鉴的。据AlphaGoZero的论文所说,其核心之处是用增强学习来自动学习用于启发式搜索的评分函数(价值网络)。对人脸识别来说,其核心实际上也是学习一种评分函数,即计算两张人脸照片的相似程度:同一人图像相似度尽量高,不同人相似度尽量低。
看起来有点机会。既然从0或从1开始不行,那么,是否可以给算法1亿张无监督(即没有标签)的人脸照片数据,然后让FaceZero借鉴AlphaGoZero的思路学习评分函数呢?
遗憾的是这也不行。因为我们使用的是无监督人脸图像,我们不知道这1亿幅人脸图像是多少人的图像,其中哪些是同一人的,人脸识别算法又不能像围棋算法一样自己判断对错和好坏,当然就没办法自我增强起来。
所以学习这个相似度评分函数失去了依据。
又是南柯一梦。
看到这里,懂生成式对抗网络(GAN)的读者可能会反驳:有了大量人脸图像,即使是无监督的,我们也可以用GAN这样的类增强学习策略来生成各种看起来符合真实人脸分布的人脸图像。
这样一来,给定一张赫本女神的人脸图像,FaceZero就可以生成她的各种美图了吗?可是,问题在于,没有了那些重要的监督信息,只能保证GAN生成的人脸图像看起来是张脸,但没法保证她不会变猫王或奥巴马。
这举一反三的想法,恐怕还是不行。
AlphaGoZero的思想对减少人脸识别有监督数据需求量的价值较小
再退一步,AlphaGoZero的思想是否可用于减少有监督数据的需求量呢?例如,按照目前的方法论,用深度学习做人脸识别,首先需要收集整理尽量多的人脸图像,比如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人
FaceZero的梦真要醒了吗?
减少有监督数据需求量的其他可能