设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 561|回复: 1
收起左侧

人工智能|Dynamic Routing Between Capsules

[复制链接]
发表于 2017-11-10 21:17:48 | 显示全部楼层 |阅读模式
本帖最后由 yeslab官方 于 2017-11-10 21:32 编辑

Capsule 是由著名的谷歌科学家 Hinton 提出的神经网络技术,而基于 Capsule 搭建的神经网络,是一种在不同神经层的神经元之间进行向量表示的新型计算网络,从而让传递实数信息的神经网络升级为能够使用实向量作为信息传递的基本单元。随着科学家们的不断探索,神经网络的结构正越来越接近于生物神经的分布结构,拥有方向、路由、信息负载等特性,逐渐摆脱简单重复的批量排列结构。

                               
登录/注册后可看大图

首先让我们忽略晦涩难懂的学术语言,用想象力揭开 Capsule 的神秘面纱。这个故事要从卷积神经网络(CNN)讲起,当你在欣赏一幅美丽的画时,其实每一霎那,你只能注视一个爱情的泡沫,了解这一个泡沫的相关信息(形状、大小、适不适合你等)。科学家称之为“感受野”,现在如果让你把所有泡沫数一遍,当然这很痛苦,但是让计算机完成就很容易。

                               
登录/注册后可看大图

然而当我们看着一个懵懂到什么都不懂的 Ai 在面对这些泡沫一脸懵圈时,请让它使用 CNN,使用后,它就学会了每次只看图片的一小部分(可能就是一个小泡沫大小),即“感受野”。并且 CNN 的独特魔力,能让Ai把每次看到的泡沫记下来,并且与其他所有的泡沫进行比较,将比较出的特征记忆下来,接着使用一种叫“最大池化(Max Pooling)”的优化方式,让它学会铭记最容易感动的泡沫信息。最终,Ai 就学会了区分整张图中的每个泡沫,并且不同样式、不同大小的泡沫在它心里都有了不同的感觉。

但生活本不应如此简单,在繁忙的大都市,无意中你在人群中看到了那个追思已久的她,当你的感受野完全在她身上时,好一段时间周围都是模糊的,除了她,你已经忽略了其他所有的信息,这也是人之常情,是我们的正常观察方式与神经反应方式。

                               
登录/注册后可看大图

如何让我们的 Ai 具有这种注视物体,并且对物体的连续信息(例如轮廓)具有优先理解与记忆的能力呢?这篇论文中的 Capsule 就基本实现了这样的效果,所以取得了下列成就。

                               
登录/注册后可看大图

仅仅使用了最简单的 3 层的 CapsNet,就获得了 0.25 test error 的好成绩,堪比精工细雕的各类 CNN 变种。而进一步的实验中,CapsNet 在重叠数字上也取得了比 CNN 更好的效果,且参数的数量只有 CNN 的一半,紧接着一些 Cifar10 等数据集效果也不错,具体参见论文本尊。

                               
登录/注册后可看大图

童话总有结束的时候,接下来就必须进入到更加抽象的科学时空了,CapsNet 到底是怎样的一种结构呢?

构成 CapsNet 的基本计算单元称为 Capsule,也就是神经元,然而如果你学习过网络技术这个学科中的交换机生成树,这个问题就简单了,因为最终 Capsule 的造型就是一颗生成树,只不过是动态的。在生成树里我们关心这些:父节点、子节点、路径选择,CapsNet 也是一样的,不论父子,都是 Capsule,这种树就跟下面这张图类似

                               
登录/注册后可看大图

我们科学技术的故事就从这里开始:
• 首先最底层是由一层卷积网络来生成基本数据的,CapsNet 还是不能脱离 CNN,借助 CNN 的感受野扫视能力,扫一遍图得到一批感受野数据;
• 这批数据最先到达的目的地就是最底层的网络末梢,我们称之为第i层的 Capsules,当然每一层网络都是由很多 Capsule 神经元组成的,这种神经元同样产生激活值 U_i,然后结合两层之间的权值矩阵,就如同生成树中的权重一样,每个 i 层的 Capsule 就有了自己指向上层 j 的激活向量 U(hat)_j|I,如同下面的公式:

                               
登录/注册后可看大图

• 网络刚刚建立时 Capsule 也是不知道向上的路,所以 i 层每个 Capsule 都会产生指向所有 j 层 Capsule 的激活向量,然而为了让其选路,这里就设计了一种动态路由方法——耦合值 C_ij,当然这个耦合值一会再讲,通过耦合值和激活向量,就形成了能交付到上一层的 “j 层输入”S_j:

                               
登录/注册后可看大图

• 故事暂停,旁白出场:“通过耦合值的作用,很快i层的 Capsule 就只会向很少的j层Capsule 发送信息了,即实现了“注视”的效果,纵观整个网络的话,如果感受野是保持在图片上的某个特定物体,那么就会有部分从低到高的路径是长期激活的,而也会有一些是长期沉默的。”
• 故事继续: 这时 j 层的 Capsule 感受到了底层发来的深深的爱意(j层输入),于是与之结合,按下方的公式繁衍出j层的输出 V_j:

                               
登录/注册后可看大图


• 从此周而复始,当然我们是话分两头了,再来看看耦合值 C_ij,首先它是 softmax的近亲,看公式就知道了:

                               
登录/注册后可看大图

之所以它会跟概率扯上关系,是因为要确保同一层所有的耦合值的和为 1,这样才能保障网络刚刚建立时无知的全选路线,很快就可以优化为跟激活向量相关的特选路线。
• 上面公式有个 b,这个 b 一开始是 0,等数据在网络跑一轮后,b 就发现 j 层的Capsule 有了宝宝 V_j,那么它就根据这个宝宝调整了自己的值:

                               
登录/注册后可看大图
,当然大哥 b 不会亲自出场,所以就派小弟 a_ij 去收保护费,a_ij 归队后钱就给回到 b了(add),以更新 b_ij 自己。

• 呐~ 下面这个惨不忍睹的逻辑过程自己脑补一下吧:

                               
登录/注册后可看大图

以及下面这个网络结构:

                               
登录/注册后可看大图

其实就是三层而已:
• Layer1: 普通卷积层,256 个 9x9 卷积核,步幅为1 ,ReLU 为激活函数,该层将图像转换为基本的输入(通过局部特征检测器);
• Layer2: 卷积 Capsule 层,32 个通道,卷积 8D Capsule(每个主 Capsule 包括8 个卷积单元,每个卷积单元有一个 9x9 卷积核,步幅为 2)。每个主 Capsule 输出接收到所有 256×81 Conv1 单元的输出,它们的感受野与 Capsule 的中心位置重叠。
• Layer3: Digit Caps 的每个数字类别都有一个16D Capsule,每个 Capsule 默认接收来自下面一层所有 Capsule 的输入。
而紧接着研究人员还继续做了从 DigitCaps 层重构图像的任务,结构大致如下图:

                               
登录/注册后可看大图

在上面这些任务中,研究人员均使用 Tensorflow 作为深度学习系统,使用 Adam 优化器,而目标优化误差是 Margin loss:

                               
登录/注册后可看大图

上面这个误差 L_c 是针对每一个 DigitCapsule 的(c 属于 k 个类之一),即存在 k 个这样的误差,想想 softmax 就明白了;m+ 是 0.9,m- 是 0.1 限定了概率范围;如果数据中存在 c 类物体(例如当前标签是数字 2,预测值也包含数字 2),则 T_c 等于 1;V_c 的长度就可以很好的表达物体的存在概率。

最后总结下 Capsule,它是的激活方式是一种向量,其方向与高层谁将被激活有密切关系,而其大小就成为了数据存在的一种概率,或者数据是 XXX 的一种概率,例如数据是否为轮廓?是否为物体 A?等等…

以上就是这篇论文的核心内容了。站在深一点的角度来看,通过前一批数据得到的参数导致这一批数据经过网络时某条路线的 a_ij 过大,就如同生成树协议某条路权重较大一样,这一次就可以有路线可以选择,反复训练过程中路线可能会变也可能不变,是动态的;站高一点角度来看,CapsNet 的低层神经元对于物体位置的表示更接近于“位置编码”(就是用哪些神经元被激活了来表示物体位置)而在高层时,这种编码就变成了“率编码”(即用激活值的数值就可以表示物体位置)所以高级别的Capsule 能表示更复杂的、更自由、更多维度的特征信息。

此论文一出就被各种转载,沸沸扬扬,也希望它能成为推动人工智能发展的有效力量。

                               
登录/注册后可看大图



发表于 2017-11-10 21:40:55 | 显示全部楼层
感谢楼主分享!
沙发 2017-11-10 21:40:55 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-4-19 09:39 , Processed in 0.059973 second(s), 8 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表