分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

『科学计算』Capsule_Net

发布时间:2023-09-06 01:28责任编辑:白小东关键词:暂无标签

Capsule概述

Capsule机理是使用一个向量代替传统神经网络的输出的标量信息,

传统的标量只能表示表示出回归结果或者分类结果,不能表示出同类不同输入之间的差异,也缺少泛化性:如下向左的和向右的鸟喙并不能经由同一个网络划为一种(对于图像一些变换鲁棒性不好)。

而Capsule使用向量L2范数表示输出分类概率,而向量本身的各个元素对应着输入图像的某些特征,如下:使用第一个元素表示鸟喙的方向。

Capsule结构输入为Capsule的输出向量,输出也是向量,这个结构的提出是为了取缔pooling,使用近似聚类的方式取代pooling的简单舍弃大量信息的手法。

Capsule结构分析

对于输入的向量v,首先乘一个矩阵W,这个W是可学习的,然后使用这个转换后的u进行下一步处理,

然后使用这些u来使用权重c计算中间结果s,s进行一个压缩得到最后的结果,这个压缩使得输出向量各个元素为0-1之间的值。

 这个c实际上就是比较关键的中间参量(dynamic routing关键,不是可学习量)

下面简单介绍一下c的用法,这实际上也是网络的精华,

初始化中间值b,个数对应输出向量数,

循环T次,属于超参数,

  将b使用softmax映射为权重

  各个向量加权平均

  均值挤压操作,使之进入其他向量的值域(就是各个元素都在01之间的空间)

  更新b,这个更新会赋予与均值接近的各个点更高权重

这样循环下来会实现数据降维(多个向量合并为一个向量),而且更够保留各个向量的信息。

画成流程图,类似RNN,而且训练过程仍然使用的反向传播,

Reconstruction模块

因为输出向量是可以体现输入特征的,所以还有复原图像的部分,这里会使用最大类别的输出(可以看到只有v1乘了1,其他乘的都是0),进行图像还原,

而分类部分的训练就是最大化正确类别的L2范数,最小化其他输出模长的L2范数,

 实验结果

实验一

比起BL(CNN网络),错误率更低(routing的次数,以及Loss是否加入重建损失 是两个超参数),而且面对干扰比传统神经网络性能更强劲,

实验二

调整某个已知输入图像的输出向量的某个值,观察重建图片的变化,以验证输出向量各个元素的意义,如下,效果不错,

实验三

输入重叠的数字训练,输出重叠的数字,并可以复原(将两个输出向量分别送入重建模块)

根据星标的几组数据,可以看到,如果重建数字是错的,那么该错误向量还原的数字也是很模糊的,佐证了向量对于原始信息和分类肯定程度的双重含义

讨论

在保留分类信息的情况下,不同的输入有着不同的输出,可以看到输入的差异,如下,

很明显,池化层没有保留这种信息,

 这是李宏毅老师对其work的可能性的分析,涉及到注意力机制,不太了解,如有需要之后去补,

『科学计算』Capsule_Net

原文地址:http://www.cnblogs.com/hellcat/p/7954652.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved