胶囊网络:将CNN推下神坛的“天命之子”
点击次数:2019-05-27 09:31:07【打印】【关闭】
当然,让大家激动的并不是源自对“大神”科研处女作的好奇,也不是提出的
前不久,图灵奖得主Geoffrey Hinton的第一篇论文被扒了出来,在推特上引发了不少关注。
当然,让大家激动的并不是源自对“大神”科研处女作的好奇,也不是提出的算法有多么颠覆,而是Hinton这位AI界的人形自走教科书,早在40年前这篇论文中,就提出了“让AI具备空间感”的松弛算法,解题思路与2017年其提出的“胶囊网络”不谋而合。
要知道,“胶囊网络”早已是公认将成为下一代深度学习基石、CNN“接班人”的神经网络。
经历了长达四十年的思考,“胶囊网络”将会怎样大显神威,技术背后代表的未来能量才是让网友们“鹅妹子嘤”的地方啊~
如果你还不太了解“胶囊网络”,或是对其最新进展不甚了了,那么,不妨跟随这篇文章,来系统性地了解一下这个人工智能未来的“种子选手”。
神经网络“宫心计”:胶囊是如何“争宠”的?
对AI发展略有了解的同学们可能都知道,Hinton被人所熟知,并获得图灵奖,主要归功于其在深度神经网络上的贡献。
1986年,Hinton发表了《Learning representations by back-propagation errors》(通过反向传播误差来学习表征),作为这位图灵奖得主的代表作之一,标志着反向传播算法正式被引进深度学习,这对人工智能的应用有着重大的意义。
反向传播出现之前,多层神经网络的训练主要是通过前向传递来输入信号,直至产生误差,再进行优化。以梯度下降(Gradient Descent)为例,输入数据每向前走一步,都沿着最陡峭的地方下脚,就这样一步步走到山底(梯度的反方向)。因此,该算法可以直接将每层的误差反馈给系统,并进行参数优化。
但这种方式在应对具有多个隐层的神经网络时,就有些力不从心了。在下降时隐层中的误差无法被直接反馈出来,因此其权重参数也就不能直接被优化,这就给神经网络的性能表现带来了极大的不稳定性。
怎样才能将隐层的误差表示出来呢?反向传播算法的出现是一场“及时雨”。
它的原理简单来说,就是一旦下降时(即前向传播)输出层没有得到适当而明确的误差参数,那么反向传播就会借助转置权重矩阵,让误差可以被隐藏层感知到,进而产生“间接误差”。而隐藏层的权重矩阵就可以借助间接误差进行更新。这样反复迭代,就能将包含隐藏层的多层神经网络误差降到最小。
正是在此基础上,卷积神经网络展现出了前所未有的性能。
输入数据的特征经过归一化处理后,就会进入隐含层中,完成卷积计算、池化、调参等一系列模拟神经元的操作,再输出成不同的识别效果。
这种分层认知特征的学习能力,和人类大脑的思维方式高度相似。这也是为什么,卷积神经网络在机器视觉及很多问题上都取得了当时最好的性能,成为应用最广泛的深度神经网络结构。
但是,受限于反向传播的天然缺陷,卷积神经网络并不完美,黑箱性、高消耗、迁移能力差等诸多问题,一直为学界和产业界所诟病。这也是为什么,Hinton一直在寻找着CNN的替代者。
2011年,Hinton认为目前的图像识别方法在智力上表现不够好,提出了“胶囊”的概念。数年之后,2017年10月,则在机器学习的顶级会议“神经信息处理系统大会(NIPS)”上发表了题为《胶囊之间的动态路由》的论文,提出了全新的深度学习方法——胶囊网络(CapsNet)。
“胶囊”代表图像中特定实体的各种特征,比如位置、大小、方向、速度、色调、纹理等等,作为一个单独的逻辑单元存在。然后,使用一个协议路由算法,当胶囊将自己学习并预测到的数据传递给更高层次的胶囊时,如果预测一致,更高级别的胶囊变得活跃,这个过程就被称作动态路由。
随着路由机制的不断迭代,就能够将各种胶囊训练成学习不同思维的单元。例如,让神经网络识别面部,就将面孔的不同部分分别“路由”到能够理解眼睛、鼻子、嘴、耳朵的胶囊里去。
换句话说,神经胶囊就是一组被打包好的神经元,它们在内部进行大量运算,然后仅向上输出一个结果——高维向量。
(胶囊网络流程)
那么,胶囊网络,比常规的卷积神经网络好在什么地方?大约可以总结为三点:
首先,卷积神经网络的输出结果是标量,而胶囊网络是带有方向的向量。而向量存在的意义是,胶囊网络不仅可以根据统计信息进行特征检测,比如根据眼睛鼻子嘴等五官识别出一张“脸”,还可以对特征进行理解,如果五官不在其特定的区域了,比如嘴长到了额头、眼睛长到了耳朵上,胶囊网络却不会像CNN一样含糊放过。因为它能够检测不同方向的同一个物体类别(例如,顺时针旋转),从而学习到基本的思维,知道到底什么样子的五官才能被称作是“脸”。
第二,卷积神经网络的每一层都需要做同样的卷积运算,因此需要相当多的网络数据才能学习,否则就无法精准地调参,非常耗时、低效且昂贵。比如让它学会认脸技能,需要投喂大量不同的变体,MNIST数据集就包含55,000个训练数据,即每个数字单元都有5,500个样本。
胶囊网络则要求模型在胶囊中学习特征变量,最大化保留那些有价值的信息,因此它可以使用更少的训练数据就推断出可能的变量,达到CNN的预期效果。这就使得它在人脸识别、图像识别、字符识别等领域的落地更受欢迎了。
(MultiMNIST数据集中,胶囊网络输出性能远超CNN)
第三,卷积神经网络不能很好地处理模糊性,因为不断池化会丢失许多重要的特征信息,因此对微小的变化不甚敏感,在完成语义分割等复杂任务时,需要构建复杂的体系结构来解决信息丢失问题。也难怪Hinton会说出“CNN分类正确率很高,看似一个大好局面,实则是一场灾难”的话了。
但胶囊网络不同,由于每个胶囊都携带了大量的信息,目标位置、旋转、厚度、倾斜、大小等详细信息都被保存并平移给了上层胶囊,自然也就可以用简单一致的架构应对不同的视觉任务。
听起来是不是还蛮不错的,别激动,除此之外,胶囊网络还有一个比较“形而上”的优势,那就是它的传输和运算逻辑更符合人脑神经元的工作方式,不同的胶囊可以携带不同属性,就像人脑的不同区域负责不同的工作。因此,其智能化表现上更加优秀,能够举一反三。
比如下面这些自由女神像,各种角度都能认出来,对胶囊网罗来说非常简单。而CNN在模拟人类神经元这件事上,却只能“有多少人工(数据)就有多少智能”,真是高下立见啊。
胶囊神经网络想要上位,差在哪些地方?
被AI教父亲口断定没有前途,一场神经网络界庶长子与嫡次子的夺位之战即将拉开序幕……
显然,又聪明又能干又会过日子的“胶囊网络”才是民心所向,2018年2月该论文第一作者刚刚在GitHub开源了胶囊网络的代码,就吸引来了数万人fork(复制源代码在其上开发)。
按理说,以AI算法的迭代速度,一年多时间怎么都够孵化出N个新模型了,比如AlphaGo开源并隐退后,很快又出现了强化版“师弟”AlphaGo Master,击败了世界排名第一的人类选手柯洁。五个月之后,更强的AlphaGozero从零自学了40天,又打败了AlphaGo Master版本。
既然如此,怎么胶囊网络就是“雷声大雨点小”呢?
显然,不是“嫡次子”能力不行,也不是智囊团不给力,而是想要真的把“ANN长子”拉下马,势必会遭遇若干阻碍,比如说:
1.模型训练的周期局限。由于需要在每个胶囊单元中完成计算(协议路由算法),导致其训练模型的时间更慢。在不同硬件和云服务器上的50迭代训练时间说明,与CNN相比,胶囊网络模型需要更大的耐心。
2.学术起步阶段的研究局限。目前针对胶囊网络的研究大多集中在零样本和少样本任务中,而且,胶囊网络在CIFAR10数据集、ImageNet等大图像上的准确性并没有CNN的高。产业端自然不会在缺乏足够实验例证、投资回报不明晰的前提下,贸贸然就选择跟进了。
3.胶囊网络自身的性能局限。与CNN一样,胶囊网络也有其不完美之处,比如胶囊拥挤,即如果一个胶囊网络彼此之间太接近,就没有办法区分出同一类型的两个对象。因此在模型中,给定的位置上只能有一个给定类型的胶囊,这就大大局限了其现实中应用的条件。
从某种程度上来说,胶囊网络还是一个刚刚坠地的孩童,距离拿下CNN的位置还是非常遥远的。
但是也别急着失望,让CNN在现阶段发光发热,同时继续培养未来堪当大任的接班人,这样生生不息的AI未来也蛮值得期待的,“养成”也是一种乐趣嘛~
学而时习之:胶囊网络的新发现
虽然现在的胶囊网络还很弱小,但并不妨碍无数“最强大脑”拼命教它本领。那么近两年来,胶囊网络有哪些新的发现可以给大家汇报一下呢?
有几个重要的成就值得说说:
1.通过胶囊网络抵御对抗性攻击
还是熟悉的配方,还是熟悉的味道。在胶囊网络模型提出的一年之后,原作者团队(Sabour、Frosst 以及 Hinton)在2018年的机器学习安全研讨会中展示了自己的新成果——胶囊网络在抵御对抗性攻击上的能力。
对抗性攻击会对传统的CNN产生较大影响,比如不同方向的图片,CNN很容易辨认不清,如果一些特征被放置在了错误的地方,CNN也会被图片所欺骗。这会引发一系列安全问题,比如自动驾驶汽车搞混了真的人脸与打印的人脸。
对此,原团队提出了一种与攻击独立的检测技术——DARCCC,它能够识别出真实图像和GAN生成的图像在距离上的分布误差,从而有效检测出“对抗”图像,防止系统被假图片欺骗而导致错误的分类。
(用真实数据和对抗样本分别训练出的胶囊网络,后者重构出的图像更像“1”)
2.胶囊网络+图卷积GCN的图分类能力
图分类是一个应用非常广泛的技术,在分子表示、社会网络分析、金融等领域,都需要从图形中提取特征信息,并对其进行结构化的数据表示和分类。但是,已有的CNN分类算法在运行过程中,往往需要固定大小的矩阵,但图形节点和边的数量却可能存在很大的变化,给任务带来很大的困难。
而判断特征之间的相似性,正是胶囊网络所擅长的。因此,有研究团队将胶囊网络与图卷积GCN相结合,开发出了新的图分类模型。靠胶囊网络记住图结构中的丰富信息,以及图的节点和边等实体特征,将其转化成向量。再将CNN和胶囊层结合在一起,从而提高分类性能。
实验结果表明,在所有7个基准数据集上,胶囊网络的加入确实效果优于CNN分类器。不过,执行速度也比CNN慢上八倍,同志仍需努力呀。
3.胶囊网络+注意力机制=零样本意图识别
在少量样本或无样本情况下,对新的类别进行理解,是困扰学界和产业界的老大难问题。比如在智能问答和对话系统中,如何快速识别明明确新用户的对话和意图,对其进行正确分类和处理,就是提升智能对话、降低无效沟通的重要课题。
就在前不久,ACL 2018中就出现了相关研究,研究人员首先通过与训练方式提取文本信息,对其层次特征进行向量化处理。然后利用胶囊动态路由算法,将新的用户意图与已有用户意图之间的相似度进行对比,再将已有用户意图上的信息迁移至新的用户意图分类上,从而实现对新意图的预测。
在SNIPS-NLU和CVA两个语音助手数据集上,胶囊网络的加入都让语义理解能力有了一定的提升。
关于胶囊网络的相关学术论文还有不少,比如基于胶囊网络的手势识别,正确率达到94.2%,能够帮助听障人群进行更有效地沟通;以及在ICLR 2019上发表的图片分类新框架胶囊图神经网络(CapsGNN),也是将胶囊网络与图神经网络(GNN)结合的新模型。
如果说以卷积神经网络为尊,是现阶段AI产业的“原教旨主义”,胶囊网络显然正在让这一信仰土崩瓦解。不过,从实验室到真实的应用体系中,想要真正取代CNN,还有千千万万特殊问题亟待处理。但如果把它当做一个思路,与现有的深度学习模型相结合,那么现在,胶囊网络就可以给予我们不少意外和惊喜。
这当然仅仅是个开始,正如不断手撕CNN的Hinton所总结的——科学是踩着葬礼前行的。站在前人的肩膀上前行,才能让人工智能始终作为一种“杀手锏”式技术,成为我们博弈未来的武器。