概述
先推荐一篇对胶囊网络讲解很详细的 文章。
Capsule Network 很重要的是解决了如果一张图片中,鼻子眼睛的位置是错的,如何识别出它不是一张脸的问题。那么我们来思考一下它为什么有这个能力?
在最后一层的 10*16 矩阵中,假设 16 个数代表鼻子或者眼睛中的一个东西,那么两个数对调,模型结果会变化吗?不会。因为后边接的是全连接网络,和普通的 CNN 没什么区别,你把这 16 个数全打乱,模型的能力也是一样的。那么这个能力到底是从哪里来的呢?
是 W 矩阵。W 矩阵的大小和特征图的大小是一致的。它就像一面镜子一样,记录下了图片中元素的相对位置。
CNN 不能识别鼻子眼睛错位的图片是因为我们没教他。可以借鉴负采样,搞一堆鼻子眼睛错位的图片喂给他,让他学习,他也能学会。由此想到,NLP 中,没有负采样,网络会说胡话,这还是要靠创新网络结构去解决。
Capsule Network 学习特征的能力更强是因为它不断的在筛选特征,关键特征会在动态路由过程中迅速加强。CNN 也有特征加强。那么 CapsNet 强在哪里?他能正确的对低级特征进行归类,从而产生高级特征。CNN 就是盲目的探索。比如两个椭圆、几条曲线如何构成鼻子?CNN 盲目进行组合,而CapsNet 会先组合起来试一试,看对不对。这就是c_ij的作用,W 中对特征的更精细刻画也起到了作用。如果不对 v_j 就不激活。
那么准确率为什么不如 CNN ?CapsNet 的高级特征不是对照实物的,他可能学会了上面是一团黑色(头发)、下面有两个黑色(眼睛,甚至网络恰好没有识别圆形的kernel)这种没有意义的特征。这也不是大问题。对特征的快速聚类会让 CapsNet 迷之自信,他可能会不太注意其他特征,那么用一张与这些特征类似的房子的照片也能骗过他。这让 CapsNet 能判断多个类别,是优势,但在准确率上是劣势。CNN 一般学到的都是有意义的特征。这个例子或许不妥,但是 CapsNet 显然比 CNN 更容易盲目自信。另外低级特征似乎只能属于一个高层特征。因为 c 的计算是用 e 的指数得来的,这显然不太好。
最后
以上就是美满项链为你收集整理的对 Capsule Network 的理解的全部内容,希望文章能够帮你解决对 Capsule Network 的理解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复