前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【一文读懂Hinton最新Capsules论文】CNN 未来向何处去

【一文读懂Hinton最新Capsules论文】CNN 未来向何处去

作者头像
新智元
发布2018-03-21 15:55:56
1K0
发布2018-03-21 15:55:56
举报
文章被收录于专栏:新智元新智元
【新智元导读】Hinton 上周发表的一篇论文 Dynamic Routing Between Capsules 提出用 Capsule 这个概念代替反向传播,引起广泛关注,大数医达创始人,CMU计算机学院暨机器人研究所博士邓侃用浅显的语言梳理解读了论文。邓侃认为,capsule 作为视觉数学表征,很可能是为了把视觉,听觉、阅读的原本相互独立的数学向量,统一起来,完成多模态机器学习的终极目标。

邓侃也是 AI WORLD 2017 世界人工智能大会智能医疗论坛的讲者,届时他将以《多模态智能疾病诊断系统的四大技术难点》为题做出精彩分享。

CNN 未来向何处去?

做领袖不容易,要不断地指明方向。所谓正确的方向,不仅前途要辉煌,而且道路要尽可能顺畅。

Geoffrey Hinton 是深度学习领域的领袖。2011 年,正当 CNN 模型爆发性地取得一个又一个靓丽成就时,老爷子却开始冷静地剖析 CNN 模型存在的致命弱点,指出前进的方向。

老爷子上周刚刚发表了一篇论文,题为 Dynamic Routing Between Capsules。一看这题目就预料得到,这篇论文一定会引起广泛关注。因为这题目里,涉及到两个概念,CapsuleDynamic Routing。而这两个概念,正是老爷子主张的 CNN 前进的方向。

老爷子的论文,读起来略感晦涩,其实道理并不难懂。笔者尝试用浅显的语言,把论文梳理一下,或许有助于理解。

Capsule:实体的视觉数学表征

深度学习,其实就是一系列的张量变换

从图像、视频、音频、文字等等原始数据中,通过一系列张量变换,筛选出特征数据,以便完成识别、分解、翻译等等任务。

譬如原始数据是 28 x 28 的黑白图像,每个黑白像素可以用 8 个 bits 来表达,那么这张黑白图像就可以用 28 * 28 * 8 的张量来表达,张量中每个元素的取值是布尔值,0 或者 1。

又譬如想识别在这些黑白图像中,是否包含从 0 到 9 的手写体数字,那么深度学习的传统做法是,输出一个 10 维向量,( x_{0}, x_{1}, ... x_{9} ),其中每个元素 x_{i} 的取值范围是 [0, 1.0],表示出现相应数字的概率。

例如,输出的向量是 ( 0.2, 0.1, 0.7, 0.9, 0.2, ..., 0.1 ),那么意味着,图像中出现数字 2 的概率是 70%,出现数字 3 的概率是 90% 等等。

Capsule 的创新,在于改变了输出,不是输出一个向量,而是输出 10 个向量。每个向量分别表达某个数字的若干个属性。

老爷子的论文中,输出的是十个 16 维向量,( x_{i, j} ) 其中 i = 0 ... 15, j = 0, ... 9。也就是说,老爷子认为每个手写体数字包含 16 个属性,包含几个圆圈,几个弯勾,几个折角,几根横竖,弯勾折角的大小,笔划的粗细,整个字体的倾斜度,等等。

Capsule 的想法,不难理解。但是仔细想想,存在以下几个问题。

  1. 传统的图像识别的解决方案,是把识别问题转化为分类问题。这个方法已经足以解决识别问题。实体的视觉数学表征 capsule 的意义是什么?
  2. 如何证明 16 维的 capsule 向量,能够作为手写体数字的视觉数学表征?为什么不是 32 维或者更多?
  3. Capsule 向量中的元素 x_{i},与实体的属性之间的关联,是机器自动学习出来的。但是是否可以被人为预先强制指定?
  4. 低级 capsule 与高级 capsule 之间的关联关系,是机器自动学习出来的,还是可以被人为预先强制指定?

Capsule 的意义

老爷子试图用 capsule 向量,囊括实体的所有重要属性。如果某个实体的所有属性,都在图像中出现,那么可以确认,这个图像一定包含这个实体。所以他把这个向量,称为实体胶囊 capsule。

一个手写体数字,不管字体是否端正,笔划是粗还是细,圆圈和弯勾是大还是小,都用同一个胶囊 capsule 来表征。

一个轮胎,不管拍摄的角度如何,不管是正圆还是椭圆,不管轮毂是什么式样,也都可以用同一个胶囊 capsule 来表征。

说得抽象一点,capsule 就是实体的视觉的数学表征。

想起了词向量,word vector,词向量是文字词汇的数学表征。

能否把 capsule 和 word vector 统一起来,不管实体的表达是图像还是文字,都可以用同一个数学向量来表征?

论文中没有明说,但是老爷子多半心怀这个想法。

说得更直白一点,capsule 作为视觉数学表征,很可能是为了把视觉,听觉、阅读的原本相互独立的数学向量,统一起来,完成多模态机器学习的终极目标。

重构图像:验证 Capsule 的猜想

假设 capsule 包含了某个实体的所有重要视觉属性,那么理论上来说,应该可以从 capsule 还原包含该实体的图像。

为了证明这个猜测,论文使用了一个神经网络,把 capsule 向量作为输入,重构手写体数字图像并输出。

实验结果证明,capsule 确实能够重构出正确的手写体数字图像。

而且更让人惊奇的是,这些 capsules 中的某些属性,也就是 ( x_{i, j} ), i = 0...15,j = 0...9,其中的几个 x{i},具有明确的物理意义,譬如手写体字体大小宽窄倾斜度,以及字体中弯勾圆弧等局部特征的大小位置等等。

为什么每个手写体数字只包含 16 个属性,而不是 32 个或者更多属性?

16 个属性,已经足以正确地重构手写体数字图像。32 个或者更多属性,无非是表达方式更细腻而已,这个问题不太重要。

Dynamic Routing:从原始数据中寻找实体属性的存在证据

Capsule 向量的元素 x_{i},与实体的属性之间的关联,是人为确定的,还是机器自动对应的?

根据论文的描述,关联关系是机器自动对应的,所以在 capsule 向量 ( x_{i} ), i = 0...15 中,某些 x_{i} 的物理意义比较明确,其它 x_{i} 的物理意义却可能难以解释。

假如人为强制指定 capsule 中各个 x_{i} 的物理意义,换句话说,人为强制指定 capsule 向量元素 x_{i} 与实体属性之间的关联关系,是否会有助于提高识别精度,降低训练数据的数量?

回答这个问题之前,需要先了解的 capsule 向量中 ( x_{i} ) 的取值,是怎么来的。

前文说到,深度学习其实就是一系列的张量变换。通过一系列张量变换,从图像、视频、音频、文字等等原始数据中,筛选出特征数据,以便完成识别、分解、翻译等等任务。

论文使用了两层卷积神经网络,对原始黑白照片,也就是 28 * 28 * 8 的原始张量,用两层卷积,完成一系列张量变换,转变成新的张量 ( x_{attr, lon, lat, channel} ) ,attr = 0 ... 7, lon = 0 ... 5, lat = 0 ... 5, channel = 0 ... 31。

这个新张量中的 ( x_{attr} ) 是初级 capsule,表达原始图像中值得注意的特征。其中 attr 代表初级 capsule 的属性,维度为 8。

新张量中的 ( x_{lon, lat} ) 表示 capsule ( x_{attr} ) 在原始图像中的方位。经过张量变换后,28 * 28 的原始图像,被缩略为 6 * 6 个方位。( x_{channel} ) 是频道,类似于多机位拍摄同一个场景,全面表达 capsule 在原始图像中的视觉特点,总共有 32 个频道。

在新张量中,总共有 lon * lat * channel = 6 * 6 * 32 = 1152 个初级 capsule ( x_{attr} ) 。换句话说,经过一系列张量变换,从原始图像中,筛选出了 1152 个值得注意的图像特征。

高级 capsule 是前文说的十个手写体数字的 16 维属性向量,即 ( x_{attr, class} ), attr = 0 ... 15, class = 0 ... 9。

想识别原始图像中,是否包含手写体数字 3,也就是 class = 2,只需要把 1152 个初级 capsules,逐一与高级 capsule 向量 x_{*, 2} 做比对。

如何做比对呢?先做一次线性变换,把 8 维的初级 capsule,变换成 16 维的初级 capsule。然后计算 16 维的初级 capsule 与 16 维的高级 capsule 之间的余弦距离,也就是两个向量之间的点乘。

从每个高级 capsule 出发,在低级 capsules 中寻找它存在的证据,这个过程,就是 Dynamic Routing。

如果某一个高级 capsule 中每一个属性,都能在 1152 个初级 capsules 中,找到 “对应的” 一个或多个 capsules,那么就证实了高级 capsule 中的这个属性,确实在图像中存在。

如果某一个高级 capsule 中的全部 16 个属性,都能在 1152 个初级 capsules 中,找到存在的证据,那么就认定这个高级 capsule 在原始图像中存在。

如果有多个高级 capsules,都能在 1152 个初级 capsules 中,找到各自存在的证据,那么就认定在原始图像中存在多个高级 capsules。

Capsule 与先验知识

回到前文的问题,假如人为强制指定 capsule 中各个 x_{i} 的物理意义,换句话说,人为强制指定 capsule 向量元素 x_{i} 与实体属性之间的关联关系,是否会有助于提高识别精度,降低训练数据的数量?

假如人为强制指定 capsule 中某个 x_{i} 用于表达图像中是否存在圆圈,那么需要改变训练数据。

现在的训练数据,由输入和输出一对数据构成。输入数据是原始照片,输出数据是标签,说明原始照片中含有哪些数字。

如果要人为指定手写体数字的 capsule 中的元素 x_{i},那么需要改变训练数据。譬如输入是原始照片,输出的标签,是说明这张照片中是否有圆圈。

改变训练数据有什么意义?一个可能的意义是 transfer learning

一张轮胎的照片中,也包含圆圈。用现在的方法,轮胎的照片无助于手写体数字的识别,但是用 transfer learning,可以用轮胎的照片,来训练机器识别圆圈,然后把识别圆圈的算法模块,融合到手写体数字的识别系统中。

至于用这种方法,是否能够提高识别精度,降低训练数据的数量,需要做实验来验证。

Parse Tree:实体特征的多层次分解,及与先验知识的融合

在原始图像中,识别手写体数字,这个实验比较简单。

假如设计一个难度更高的实验,在原始图像中,识别自行车。自行车由两个轮胎,两个脚踏板,一个龙头和骨架等等构件组成。

要完成这个实验,需要先识别原始图像中,是否存在轮胎、脚踏板、龙头和骨架等等构件。然后识别这些构件之间的位置关系。

老爷子提议,用 Parse Tree 来分解整个识别任务,从原始图像,到图像特征,到不同构件,到自行车的识别。

Parse Tree 的生成,当然可以完全靠机器,从大量训练数据中自动学习。而且是一气呵成地完成各个环节,从原始图像,到图像特征,到不同构件,到最终的自行车识别。

但是如果融合先验知识,人为预先指定 Parse Tree 的结构,或许有助于把识别自行车的问题,拆解为若干子问题,分别识别轮胎、脚踏板、龙头和骨架等等构件,然后再把子模块整合成为自行车的识别系统。

当然,把大问题拆解为若干子问题,需要针对各个子问题,准备各自的训练数据。

这样做是否有利于提高识别精度,降低训练数据的数量,也需要做实验来验证。

11月8日,新智元AI World 2017世界人工智能大会,邓侃博士将在 AI Industry 会场发表演讲《多模态智能疾病诊断系统的四大技术难点》,该系统把 CNN、RNN、Attention、GAN、RL、MCTR、Knowledge Graph 等多种前沿技术融为一体,构建医学智能诊断新体系。

邓侃 大数医达创始人

CMU计算机学院暨机器人研究所博士

邓侃,上海交通大学本科及硕士,美国卡内基梅隆大学(CMU)计算机学院暨机器人研究所博士,专攻人工智能及数据挖掘。历任美国甲骨文公司(Oracle)主任系统架构师,美国泰为手机导航公司(Telenav)北京分公司总经理,百度高级总监并主管网页搜索和知识图谱。2015年,邓侃创建北京大数医达科技有限公司,旨在将深度强化学习技术应用于医疗健康领域。

《多模态智能疾病诊断系统》演讲重点介绍该系统以下 4 个方面的技术难点:

  1. 把多模态数据,都转换成以医疗知识图谱为轴心的语义向量,在同一个参照系下进行相互比较和交叉操作。
  2. 在知识图谱为轴心的语义向量空间中,融合多模态数据,并使用生成对抗模型提供可行又可靠的质量评估方案。
  3. 用卷积神经网络技术,从病情描述中提炼病情特征,用聚焦机制,从医学知识图谱中补充相应病理逻辑,优化疾病的诊断与验证。
  4. 用深度强化学习和蒙特卡洛搜索树技术,给医生推荐最佳后续化验和检查项目,补充病情描述,用最小的代价,找到诊断金指标,提高诊断精度。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
灰盒安全测试
腾讯知识图谱(Tencent Knowledge Graph,TKG)是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档