胶囊网络(Capsual Network)

胶囊网络

近日学习深度神经网络了解到胶囊网络,且胶囊网络解决了CNN的一些缺点,通过查阅资料决定按照自己的理解整理一下。

1. 简单了解胶囊网络

首先胶囊网络(Capsual Network)是NeurIPS 2017的一项工作。作者首先总结了当前卷积神经网络的限制与不足:①CNN通过池化操作获得invariance,有助于分析,但是同时一些局部信息也会丢失。如果数据发生旋转、倾斜,其效果会很差 ②CNN很解释部分与整体之间的位置关系。当前针对问题1现有两种方法解决方案,一是数据增强,通过对训练样本进行旋转、位移生成新的训练集;二是使用更多的参数去建模,也就是构建一个更深层的网络。但是这些方法局限性也很大,缺少局部的等变特性(equivariance),所以其泛化能力很弱。

什么是Capsule?最简单的理解Capsule与neuron的区别是,原来neuron是output一个值, 而Capsule是output一个vector。简单结构图如下所示。图中v1与v2为黄色胶囊和绿色胶囊输出的向量。

胶囊网络(Capsual Network)
在一个network里面,每一个neuron的工作就是负责检测一个具体的模式。举例来说有一个neuron,假设你做图像辨识,有一个neuron的工作只是detect往左的鸟嘴,另外一个neuron的工作只是detect向右的鸟嘴;其实不太可能有一个neuron,它可以同时做两件事情,一个neuron它其实就是侦测一种鸟嘴而已,所以你很难说有一个neuron,它就是看说有向左边的鸟嘴,他被activate;向右边的鸟嘴,它也这被activate。Capsule有不一样的地方,Capsule是侦测某一个种类的模式,它不是只侦测一个模式。 而output向量v的每一个维度就代表了模式的特性。而向量v的norm就代表了模式是否存在。

2. 胶囊网络的整体运作

输入两个 向量,v1和v2,分别乘上另外两个矩阵w1和w2 ,得到u1和u2,接下来把和做weighted sum,得到s,s=u1 _c1+u2_c2,随后,通过一个挤压的方式得到v。挤压只会改变长度,它不会改变的方向。挤压的具体操作可以通过下图中的公式计算得出。总而言之,反正就是输入两个 向量,v1和v2,然后经过一连串的运算,得到向量v;在这一连串的运算里面有矩阵w1和w2,weighted sum和挤压,参数w1和w2通过backpropagation learn出来的。

胶囊网络(Capsual Network)
比较的特别地方是c1和c2不是通过backpropagation learn出来的。这里c1和c2叫做coupling coefficients,他们是在testing的时候在使用Capsule的动态去决的。这个决定的过程叫做动态路由(dynamic routing)。c1和c2可以想成是pooling一样。Max pooling就是有一组neuron,然后只选最大那个值出,到底哪一个neuron的值会被选, 在training的时候不知道,在testing的时候才去dynamic决定的;它这个coupling coefficients跟max pooling是一样的,它也是online的时候决定的。

3. 动态路由

胶囊网络(Capsual Network)
我们来看看c1,c2,c3是怎么运作的,首先要有一组参数b,b的初始值都是0,而b01,b02,b03就对应到c1,c2,c3,假设跑T个iteration,T是一个事先确定好的超参数。

接下来我们把b(r-1)1,b(r-1)2,b(r-1)3做softmax得到c(r-1)1,c(r-1)2,c(r-1)3,所。有了c(r-1)1,c(r-1)2,c(r-1)3以后就可以做weighted sum,得到sr,再把得到的sr做挤压得到ar。然后用计算出来的ar去update b的值,你就把ar计算出来的结果去跟每一个u做内积,如果某个u和arr的内积结果特别大,即他们特别接近,对应到的b的值就会增加。具体的计算可以看图。现在假设跑了T个iteration以后,我们就得到了T个iteration的c(T)1,c(T)2,c(T)3,这个就是我们最后要拿来计算s跟v的coupling coefficients,特别说明文章中括号里面的字母表示的是上标。如果我们用图示来展开的话,看起来像是这个样子:

胶囊网络(Capsual Network)

主要学习参考:
作者:SpareNoEfforts
链接:https://www.jianshu.com/p/83309cdb9326
来源:简书

Original: https://blog.csdn.net/littlle_yan/article/details/112961981
Author: little_yan_yan
Title: 胶囊网络(Capsual Network)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/690404/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球