论文阅读之Dynamic Routing Between Capsules(2017)

news2024/11/30 10:54:00

文章目录

  • 前言
  • capsule network
  • 参考

前言

capsule network 可以简单理解为将神经网络的标量计算,赋予了方向,变换成了向量进行计算。
标量只有大小之分。
向量不仅有大小,还有方向之分。
应该可以略微感受到这种思路的魔力了。
在这里插入图片描述
capsule 主要是能够改进CV里CNN对特征提取。因为对于同类事务,CNN经过maxpooling得到最后的结果基本相同,就相当与是不同的输入得到了相同的输出,这其实是不利于泛化能力提高的。

就比如上面的鸟嘴,如果是传统CNN特征提取,两幅图得出的结果可能是一模一样的,但是如果使用capsule,那么可能二者得出的结果大小相等,方向相反,那么还是有本质区别的,也就是说capsule可以用于解决CNN中图像位置信息缺失的问题。

再比如说:
在这里插入图片描述
这两张图片都是表示1,不过方向不同,或者说位置不同,那么得出的v1 向量表示应该是不同的,但是向量的模长可以是相同的,这样就能够使得模型能够拥有更好的泛化性了。

那么如何进行capsule的计算呢?
在这里插入图片描述
通过这幅图大概就能略知一二了。

capsule network

capsule的计算的基本过程如下图所示:
在这里插入图片描述
这里是只有两个向量进行计算的形式。

首先输入向量v1v2
然后经过W进行特征变换得到u
然后各自乘以一个系数c加起来得到s向量
然后经过squashing的操作,就类似于激活函数一样的作用,在这里还会约束他模长。
值得注意的是,这里的c1+c2 = 1

capsule network有个重要的思想就是动态路由,简单来说就是c并不是固定的,而是动态调整的。
调整思路如下:
在这里插入图片描述
这里看输入向量为3的一个capsule,如何进行调整c。
T表示路由动态调整的次数
最开始,初始化b都为0
然后c经过softmax进行得到c,这样保证c为正且和为1
还记得u是输入向量v线性变换后的结果
然后计算s
经过squash后得到a
然后根据计算的结果调整b,从而动态的调整c
这就是动态路由了。

算法的作用应该就是当输入向量和大部分的向量的都不像的时候,那么他的c就会变得越来越小,相当于“排除异己”的一种动态策略。

可以再看一遍图示的计算过程:
在这里插入图片描述
调整了两次c,(初始也算一次)

在这里插入图片描述
调整了第3次c
在这里插入图片描述
这样就得到最终的结果了。

那么对于分类的预测该怎么办呢?
在这里插入图片描述

答案是使用向量的模长作为分类标签的置信度,置信度最大的就是最终的类别了。

然后文章里还提到采用重构数据来帮助模型训练,那么重构误差就是对应的数字进行重构误差的传播,例如数字1则就对capsule1的进行误差传播,否则都为0.
在这里插入图片描述
然后我们可以看看实验结果:
在这里插入图片描述
一个有意思的点就是,当调整向量某些维度时,呈现出的数字确实有微妙的变化:
在这里插入图片描述
说明capsule network 确实是有点作用的。

好了我们接下来看看原文讲的算法公式,复盘一下,应该就比较好理解了

在这里插入图片描述
这就是动态路由计算。
在这里插入图片描述
非线性变化的squashing的定义。

在这里插入图片描述
特征经过W变换然后加权求和得到s

在这里插入图片描述

在这里插入图片描述
c的计算方式

代码也是比较简单:https://github.com/naturomics/CapsNet-Tensorflow

参考

【 深度学习李宏毅 】 Capsule(中文)

https://github.com/naturomics/CapsNet-Tensorflow

Dynamic Routing Between Capsules

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/26222.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IB历史备考,如何拿高分?

邻近期末考,大伙儿是不是十分焦虑不安呢?大家的老师经常发觉学生们本来知识要点都把握得挺不错的,但每到考試便是拿不上满意的考试成绩,让人十分郁闷!因此应对那样的难点,大家的IB历史时间评委为大伙儿筹备…

行业分析| 智慧消防对讲

消防工程关系国计民生,关系到每个公民的人身和财产安全,在每个场所的建设中,消防工程建设是必不可少的一个板块,包括消防应急通道建设和应急设备建设两个方面。其中消防系统设备建设主要分为九大系统的建设:消防水系统…

VectorCAST测试工具环境搭建

**目的:**本文提供VectorCAST使用的实际操作方法,以便项目可以很好的使用VectorCAST工具。 适用范围:VectorCAST是一个专门针对嵌入式软件的C/C代码进行单元测试的工具,它可以自动生成测试用例、评估测试结果并生成测试报告。 **工…

十年来高薪专业变成了它——信息安全

“什么专业好就业?” “什么专业以后赚的钱多?” 确实,专业对应的行业薪资各有不同,选对了专业赢在起跑线也不是没有可能! 麦可思机构分析了近十年大学生就业数据情况,发现从2011年到2020年的大学毕业生高…

Windows简单安装redis

1.去git下载 或者去搜点资源,windows下载是压缩包,找个目录解压进去。 Github下载地址:https://github.com/MicrosoftArchive/redis/releases 2.打开cmd 尝试启动 比如我放在d盘soft下面,windows你直接打开cmd,输入d…

Baklib知识分享|文档生命周期:确保您的文档产出效率

一个多世纪以来,文档一直是任何产品或服务的支柱。它是用户在使用您的产品、应用程序、网站或其他软件服务时所引用的内容。但在现代,随着大多数帮助或支持文档从传统形式转移到数字形式,对效率的需求比以往任何时候都更加明显。此外&#xf…

[附源码]SSM计算机毕业设计基于javaweb电影购票系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【Shell 脚本速成】01、编程语言与 Shell 脚本介绍

目录 一、编程语言介绍 二、shell介绍 1、shell介绍 2、bash shell基本特性 2.1 命令和文件自动补全 2.2 常见的快捷键 3、shell脚本介绍 准确来说: 3.1 案例演示 3.2 什么时候用到脚本? 4、shell脚本语法 4.1 shell脚本组成 4.2 脚本文件命…

Spring事务配置(案例:转账业务追加日志,事务传播行为)

目录 Spring事务配置 案例 事务传播行为 代码实现: 1.文件大致格式: 2.ServiceAdvise(AOP功能包) 3.JdbcConfig(jdbc配置文件,包含了事务管理器) 4.MybatisConfig(mybatis配置…

Unity技术手册-UGUI零基础详细教程-ScrollBar和ScrollView

往期文章分享点击跳转>《导航贴》- Unity手册,系统实战学习点击跳转>《导航贴》- Android手册,重温移动开发 本文约8千字,新手阅读需要20分钟,复习需要12分钟 【收藏随时查阅不再迷路】 👉关于作者 众所周知&…

2022/11/22 [easyx]关于字符和一些背景

#include<stdio.h> #include<graphics.h> //包含图形库头文件 int main() {//创建一个窗口//(show console 显示控制台)&#xff0c;640&#xff0c;480为窗口大小*initgraph(640,480,SHOWCONSOLE);//showconsole可以换成NOCLOSE:程序不能关闭// NOMINIMIZE不能最小…

洛谷 T292115 [传智杯 #5 练习赛] 树的变迁#并查集+逆向思维

一道质量挺高的题&#xff08;个人感觉&#xff09;&#xff0c;题目说了每次要删除一条边&#xff0c;分成两棵树&#xff0c;那么很容易想到用并查集去维护。但是问题在于如果要将原来那棵树分成新的两个树必然不能使用路径压缩&#xff0c;如图所示 如果使用了路径压缩那就…

数据安全法vs国家标准,40+标准助力数据安全保驾护航~(附整理文档及pdf下载)

2021年9月1日&#xff0c;《中华人民共和国数据安全法》生效施行&#xff0c;如何助力数据安全法的贯彻落实&#xff0c;做到数据合法合规的使用需要建设一系列的数据安全标准体系。也就是说&#xff0c;有了数据安全相关标准&#xff0c;就是有了如何践行数据安全法落地实施的…

Oracle LiveLabs实验:Manage and Monitor Autonomous Database

概述 本研讨会中的实验将引导您完成开始使用 Oracle 自治数据库的所有步骤。 首先&#xff0c;您将创建一个 Oracle 自治数据库实例。 然后&#xff0c;您将练习使用自治数据库工具和 API 从不同位置以不同格式加载数据的几种方法。 您将使用 SQL 分析数据并使用 Oracle Analy…

JavaScript构造函数和原型:继承

ES6之前并没有给我们提供 extends 继承。我们可以通过构造函数原型对象模拟实现继承&#xff0c;被称为组合继承。 call() 调用这个函数, 并且修改函数运行时的 this 指向 fun.call(thisArg, arg1, arg2, ...) thisArg &#xff1a;当前调用函数 this 的指向对象 arg1&am…

weapp源码反编译步骤

一、下载解密工具 解密工具下载&#xff1a;地址 二、在微信电脑版&#xff0c;打开目标小程序,在如下的目录中可以找到小程序的目录 这是我自自定义的缓存目录&#xff0c;找不到自己缓存目录在哪儿的&#xff0c;手机给自己的文件助手发个文档&#xff0c;打开所在目录&…

高标准企业级安全性,华为云会议为线上沟通保驾护航

如今&#xff0c;全球企业正在以办公室为主的工作环境向混合型工作环境转变&#xff0c;线上会议逐渐成为企业的刚需。事实上通过云会议的形式进行的远程沟通协作&#xff0c;如线上招聘、培训、课堂等也已非常普及&#xff0c;不过随之而来的网络安全风险也愈发引起各界关注。…

Linux有多重要?冲30万年薪Linux学习入门指南

与 Windows 相比&#xff0c;Linux 相对来说更加安全稳定&#xff0c;而且Linux可以定制化或者选择不同的发行版&#xff0c;下面借鉴网上的一张图片展示下 Linux 与 Windows 的区别。 ​ ​简单说就是linux 性能更好&#xff0c;直接通过命令行底层运行 1.廉价&#xff08;免费…

热门资讯:超大规模数字产业生态正在加快构建!

数字化转型新闻简报&#xff1a; 近年来&#xff0c;面对数字技术突飞猛进、政府政策倾斜支持、新冠疫情反向刺激&#xff0c;国内企业均从各个环节开始着手进行数字化转型&#xff0c;以期达到提效降本的目的。了解更多关于数字化转型的资讯才能更好地进行数字化转型。 01、华…

[附源码]Python计算机毕业设计宠物短期寄养平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…