动机

CNN缺陷:

  • 无法从新的视角去理解对象。

    • 例如下图中,当图片角度发生变化,就会无法识别。CNN通过数据增强,即会将图片进行翻转,旋转等操作。会造成数据量变得非常大,降低训练速度。
  • 难以识别精确空间关系。
    • 比方说右图中尽管嘴巴的相对位置发生了改变,CNN仍会将其识别成人脸。

  • 最大池化。减少通过网络的数据的空间大小,从而增加了上层网络神经元的“视野”。

    • 丢失了大量信息,因为只有值最大的神经元会被传递到下一层,导致层与层之间信息丢失。

结论:

  1. 正确地分类和辨识对象,要对 对象部件间的分层位姿关系建模。
  2. 取代最大池化的新方法。既能保证数据空间减小,又尽量保证重要信息传递。

为什么胶囊网络就能学习到位姿信息?

将同一三维物体从两个不同视角的渲染出图像,作为胶囊网络的输入和输出,目标是图像重构。作者想要证明胶囊网络在处理位置、方向、尺度等方面的优势。

什么是胶囊网络

将神经元替换为胶囊就是胶囊网络。

高层胶囊和低层胶囊之间权重通过dynamic routing获得。

胶囊是一组神经元,它会学习检测给定区域图像的特定目标,它输出一个向量,向量的长度代表目标存在的概率估计,用向量的方向表示实体的属性。如果对象有轻微的变化(例如移位、旋转、改变大小等),那么胶囊将输出相同长度但方向略有不同的向量,因此,胶囊是等变化的(Equivariance)。
CNN:

胶囊网络:

CNN训练神经元来检测不同的pattern,即使是同一pattern的不同角度。使得卷积核个数和层数越来越多。

而胶囊网络希望通过一个胶囊能够识别同一类pattern。通过胶囊输出向量的长度代表目标存在的概率估计,向量的方向表示实体的属性

动态路由:通过实现分割高度重叠对象,作者证明动态路由机制是一个有效的方式。

胶囊计算方式

作者用胶囊输出向量的模长来表示一个胶囊所表征的实体在输入中出现的概率。因此作者采用一个非线性函数对向量进行“压缩”,短向量被压缩到几乎为零,长向量也被压缩到1以下长度。判别学习中充分利用这个非线性函数。
Vj=∣∣sj∣∣21+∣∣s∣∣2sj∣∣sj∣∣(1)V_j = \frac{||s_j||^2}{1+||s||^2} \frac{s_j}{||s_j||} \tag{1} Vj​=1+∣∣s∣∣2∣∣sj​∣∣2​∣∣sj​∣∣sj​​(1)
其中vj是胶囊j的输出向量,sj是它的全部输入。

除了第一层胶囊,胶囊sj的全部输入是对预测向量uj|i的加权求和。这些预测向量都是由低一层的胶囊产生,通过胶囊的输出ui 和一个权重矩阵Wij相乘得来,通过矩阵乘法对视角的影响进行建模。
sj=∑iciju^j∣iu^j∣i=Wijuis_j = \sum_i c_{ij} \hat{u}_{j|i} \\ \hat{u}_{j|i} = W_{ij} u_i sj​=i∑​cij​u^j∣i​u^j∣i​=Wij​ui​
其中cijc_{ij}cij​是由迭代的动态路径过程决定的耦合系数,即权重。

胶囊i和其上一层中所有胶囊的耦合系数的和为1,并由“routing softmax”决定。这个“routing softmax”的初始逻辑值bij 是胶囊i耦合于胶囊j的对数先验概率。
cij=exp(bij)∑kexp(bik)c_{ij} = \frac{exp(b_{ij})}{\sum_k exp(b_{ik})} cij​=∑k​exp(bik​)exp(bij​)​
这个对数先验可以和其他权重一起被判别学习。他们由两个胶囊的位置和类型决定,而不是当前的输入图像决定。耦合系数会从初始值开始迭代,通过测量每个高一层胶囊j的当前输出vi和低一层胶囊i的预测值ui|j之间的一致性。

所述一致性是简单的点积aij=vj⋅u^j∣ia_{ij} = v_j ·\hat u_{j|i}aij​=vj​⋅u^j∣i​。这个一致性可被看做最大似然值,并在计算出所有将胶囊i连接到更高层胶囊得到的新耦合值前,加到初始逻辑值bij=bij+vj⋅u^j∣ib_{ij} = b_{ij} + v_j ·\hat u_{j|i}bij​=bij​+vj​⋅u^j∣i​上。


Dynamic Routing

路由计算的伪码如下图,其中T是超参数。

损失函数

margin loss

作者用胶囊向量的模长来表征的pattern的概率。对每一个表征数字k的胶囊分别给出单独的边缘损失函数(margin loss):
Lc=Tcmax(0,m+−∣∣v∣∣)2+λ(1−Tc)max(0,∣∣vc∣∣−m−)2L_c = T_c max(0, m^+ - ||v||)^2 + \lambda (1-T_c) max(0, ||v_c|| - m ^-)^2 Lc​=Tc​max(0,m+−∣∣v∣∣)2+λ(1−Tc​)max(0,∣∣vc​∣∣−m−)2
其中Lc表示类别c的损失,Tc=1当且仅当图片中有属于类别C的数字,m+=0.9,m-=0.1。是为了减小某类的数字没有出现时的损失,防止刚开始学习就把所有数字胶囊的激活向量模长都压缩了。作者推荐选用 λ = 0.5。总损失就是简单地把每个数字胶囊的损失加起来的总和。

reconstruction loss,

通过将capsnet在digitcaps输出的10个capsule中,不是target的capsule的向量值都设为0,然后将这160维的值作为一个MLP的输入,最后得到一个784维向量,与原始输入图片的784维向量求欧氏距离,作为reconstruction loss。

CapsNet 结构

为什么conv1->PrimaryCaps由[20, 20, 256]->[6, 6, 8x32]呢?
卷积层是一个channel=32通道, 9x9 kernel size和strides 2的CNN,输入是20x20x256, 那么输出的size为:(20-(9-1))/2=6, 即6x6x1x32,同时呢,使用了8个不同视角的convd,最终concat为6x6x8x32

图1:一个简单的3层CapsNet。这个模型的结果能和深层卷积网络(比如. Batch-normalized maxout network in network,2015)的结果媲美。DigitCaps层每个胶囊的激活向量模长给出了每个类的实例是否存在,并且用来计算分类损失。 是PrimaryCapsules中连接每个 ui, i ∈ (1, 32 × 6 × 6) 和每个vj , j ∈ (1, 10)的权重矩阵。

图2:从DigitCaps层来重构数字的解码结构。

用掩蔽的方法只把正确的数字胶囊的激活向量保留下来。然后用这个激活向量来做重构。

训练过程中极小化图像和Sigmoid层的输出之间的欧氏距离。训练中作者们用真实的标签作为重构的目标。

实验

MINIST数据集。

从结果可知使用CapsNet和重构任务效果取得最好。
同时,在affnsit数据集上做测试。即测试集和训练集分布存在差异,在此测试集上,CapsNet效果下降到79%,而CNN下降到66%。

从结果上也说明,CapsNet更加鲁棒。

胶囊可视化

如何分析viv^ivi每一个维度代表一类特征,论文将viv^ivi通过重构网络,并每一次将v的一个维度依次增加0.05,查看其变化,通过图像观察其代表什么样的特征。

貌似也可以用来生成图像。

重构能力

训练集和测试集都是重叠的数字,将重叠的数字分别重构。

例如第一幅图,是2和7的重叠图案,而L表示标签是2和7,R表示重构输入2和7对应的胶囊的向量,重构出的图在下面。

discuss

  • Invariance VS Equivariance

reference

  • Dynamic Routing Between Capsules
  • https://www.youtube.com/watch?v=UhGWH3hb3Hk&t=0s
  • https://jhui.github.io/2017/11/14/Matrix-Capsules-with-EM-routing-Capsule-Network/
  • hinton的公开演讲
  • Understanding Hinton’s Capsule Networks
  • Capsule Networks Explained
  • https://www.leiphone.com/news/201710/seYRjGDt30yXcNSr.html

【胶囊网络-CapsNet】胶囊网络-CapsNet原理相关推荐

  1. python实现胶囊网络_胶囊网络结构 Capsule 初探

    作为神经网络的大牛Geoffrey Hinton在17年十月提出了一种新的网络结构,他称之为Capsule,这个词的中文意思是胶囊.在本周,Capsule的代码在github上开源,瞬间成为爆款. C ...

  2. python实现胶囊网络_胶囊网络(Capsule Network)在文本分类中的探索

    作者丨杨敏 单位丨中国科学院深圳先进技术研究院助理研究员 研究方向丨自然语言处理 文本建模方法大致可以分为两类:(1) 忽略词序.对文本进行浅层语义建模 (代表模型包括 LDA,EarthMover' ...

  3. 深度学习之生成对抗网络(7)WGAN原理

    深度学习之生成对抗网络(7)WGAN原理 1. JS散度的缺陷 2. EM距离 3. WGAN-GP  WGAN算法从理论层面分析了GAN训练不稳定的原因,并提出了有效的解决方法.那么是什么原因导致了 ...

  4. 深度学习之生成对抗网络(2)GAN原理

    深度学习之生成对抗网络(2)GAN原理 1. 网络结构 生成网络G(z)\text{G}(\boldsymbol z)G(z) 判别网络D(x)\text{D}(\boldsymbol x)D(x) ...

  5. 什么是网络光端机?网络光端机工作原理及功能介绍!

    网络光端机,就是光信号传输的终端设备.由于目前技术的提高,光纤价格的降低使它在各个领域得到很好的应用.在远程光纤传输中,光缆对信号的传输影响很小,光纤传输系统的传输质量主要取决于光端机的质量,因为光端 ...

  6. 2018-2019 20165208 网络对抗 Exp3 免杀原理与实践

    目录 2018-2019 20165208 网络对抗 Exp3 免杀原理与实践 实验内容 基础问题回答 实践过程记录 任务一:正确使用免杀工具或技巧 任务二:通过组合应用各种技术实现恶意代码免杀 任务 ...

  7. 西电继续教育计算机试题答案,西安电子科技大学网络与继续教育学院微机原理试题...

    西安电子科技大学网络与继续教育学院微机原理试题 5. MOV AX,[BP][DI] +13H 指令的源操作数的寻址方式为 . 6.若(DS)=0100H ,(SS)=0150H ,(BX)=0003 ...

  8. python爬虫哪个选择器好用_Python网络爬虫四大选择器用法原理总结

    前几天小编连续写了四篇关于Python选择器的文章,分别用正则表达式.BeautifulSoup.Xpath.CSS选择器分别抓取京东网的商品信息.今天小编来给大家总结一下这四个选择器,让大家更加深刻 ...

  9. 编译原理第三版清华pdf_清华网络科学与网络空间研究院考研经验分享

    清华网络科学与网络空间研究院考研经验分享 盛世清北,清北硕博摇篮,专注清华北大考研辅导近十年,盛世清北-北京大学考研辅导班开设清华土木工程考研辅导系列课程.上清华北大,就上盛世清北! 考试科目 参考书 ...

  10. 《网络攻防》 免杀原理与实践

    20145224陈颢文 <网络攻防> 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征码: 基于行为: 启发式. 免杀是做什么? 避免恶意代码被杀毒软件扫描出来被删除, ...

最新文章

  1. 面试题目(1)如何从一组数据中怎样最快找到第二大数?
  2. python学习一(python与pip工具下载与安装)
  3. SpringBoot BasicService
  4. Codeforces Round #361 (Div. 2) B. Mike and Shortcuts bfs
  5. STM32开发 -- 系统软复位
  6. SpringCloud Alibaba Sentinel断路器介绍与控制台搭建
  7. 交换机连接控制器_DELL MD3200I存储单双控制器的自由切换
  8. 自学dapp开发资料
  9. Linux防火墙-iptables
  10. [转]CMS Content Management System(内容管理系统) 提供商
  11. 2021届成都高考一诊成绩查询,2021届成都一诊来了!你想知道的,都在这儿!(附2020年985/211高校在川调档线及位次)...
  12. 自定义NodeJS-C++ Addons使用说明
  13. 三星5G先锋计划:0元起抢先换5G不是梦
  14. Linux上安装rz、sz命令
  15. 软约束、硬约束、Minimum Snap的轨迹优化方法
  16. 如何去掉百度地图logo
  17. VHDL实现数码管的动态扫描(可以连接其他的模块)
  18. 在linux中安装google拼音输入法
  19. 记忆翻牌游戏——react算法学习
  20. 哪个软件可以测试服装的衣服,测试男生穿什么衣服的软件:男生脸型测试软件...

热门文章

  1. html中背景条纹效果,CSS3做出条纹大背景
  2. 《都挺好》苏大强,锦鲤杨超越,表情包为何会刷屏?
  3. 2022年电子造粒计数器市场前景分析及研究报告
  4. 学习Java软件开发的就业前景怎么样
  5. matlab求对数正态的均值和标准差,matlab – 从变量的均值,系数生成对数正态分布随机数...
  6. 绑定变量窥视 oracle,Oracle bind peeking(绑定变量窥视)
  7. 【论文笔记】气道树分割:A 3D UNet-Graph Neural Network for Airway Segmentation
  8. 2022年广东省安全员A证第三批(主要负责人)考试题模拟考试题库及答案
  9. 【Focal Loss】Focal Loss理解
  10. macos下安装john the ripper并配置zip2john