Day 3 Capsule Network

Day 3 Capsule Network

前言

昨天讲到CNN的限制,那今天就要开始介绍甚麽是胶囊网路,胶囊网路是利用甚麽方法来传递向量资讯的

Capsule Network

https://ithelp.ithome.com.tw/upload/images/20210903/20140869lqs2NqMadY.png

Capsule是一群的神经元,经过演算法运算过後或得到向量的输出
而向量的输出同时也是其他胶囊的输入

https://ithelp.ithome.com.tw/upload/images/20210903/20140869eCdlTZaP4p.png

一个胶囊里面的输入,会有多个向量,这边假设只有两个向量,一个v1,一个v2,将这两个向量分别乘上一个权重矩阵W1、W2,会产生u1、u2,再来後面的c1、c2是在testing的时候动态决定的,这个动态决定的方法称为dynamic routing

Sabour, Sara, Nicholas Frosst, and Geoffrey E. Hinton. "Dynamic routing between capsules." arXiv preprint arXiv:1710.09829 (2017).

dynamic routing的方法是,模型先产生一个b1、b2,然後会将产生c的方法重复r次,这个r是一个超参数

之後将这两个值(b1、b2)经过softmax後产生c1、c2,将u1乘上c1,u2乘上c2,做一个权重和,会得到S这个向量

将这个向量经过一个挤压函数(Squashing)(下方的v),挤压函式(Squashing)就是若向量的长度越长,得到的值就会越高,经过挤压含术後会得到v1这个值

最後将v1跟u1还有u2去做内积,去更新b的参数,在下一次的iteration就会更新c1跟c2的值
这样子的做法就是可以让结果偏向正确的结果

EM Routing

https://ithelp.ithome.com.tw/upload/images/20210903/20140869SDUvWlEB4L.png
EM routing 是hinton在2018年对capsule做的修改

右方新的胶囊型态则是会需要pose matrix跟activation,由於从向量改为矩阵,因此挤压函数在这边必须做一个修改
将会使用activation来取代挤压函数

EM Routing传递的方式略为复杂,明天看熟之後会再将这部分的笔记补上
今天收工


<<:  [Day3] 使用ta-lib制作指标

>>:  React Native 优缺点,如果现在开始做会选哪个

[Day 30] 使用TensorFlow.js建置DNN手写数字辨识分类器

使用TensorFlow.js建置DNN手写数字辨识分类器 不能观看的话可以点选连结: https:...

Day 12 Compose UI Dialog

今年的疫情蛮严重的,希望大家都过得安好,希望疫情快点过去,能回到一些线下技术聚会的时光~ 今天目标:...

Day25:终於要进去新手村了-Javascript-函式-物件综合范例

今天我们举例的范例依然是由彭彭影片内的范例程序码加上自己所能理解的方式做个纪录以及学习。 在影片之中...

Day31 -- Whack A Mole

目标 今天要来做的是打地鼠 Step1 const holes = document.querySe...

[Android Studio 30天自我挑战] Progress Bar练习2

上一篇的ProgressBar练习是以Horizont的方式 这篇是以环形转圈圈的ProgressB...