CapsNet模型:Dynamic Routing Between Capsules

CapsNet模型旨在解决CNN在捕捉图形局部特征与关系上的不足,通过引入胶囊网络(Capsules)来更好地表示特征及其关系。胶囊由一组神经元构成,输出向量表征概率和图形属性。动态路由机制允许低层胶囊的输出有选择地进入高层胶囊,增强特征表示。模型结构包括CNN层、primary capsules层和DigitCaps层,损失函数采用合页损失,同时利用重构验证胶囊的表示能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.CNN模型的缺陷

  • CNN主要用于捕捉图形的局部特征,但是在探索这些特征之间的关系似乎不是特别好(比如相对位置关系、相对大小关系,特征的方向等等关系)
  • 如下面两幅图,由于局部特征相同,所以CNN可能将它们都识别成一张人脸:
  • 一个简单的CNN模型可以正确地提取鼻子,眼睛和嘴巴的特征,但是并不能提取出特征之间的相对关系:
  • CapsNet模型就是为解决CNN这个缺陷而产生的。

2.Capsules网络的概念

  • 在一般的神经网络中,一层一般由若干神经元组成,每个神经元对应一个常数(或者叫常数的输出和输出)。下图为一个全连接神经网络:

    每层的小⚪对应一个神经元,神经元的输入输出都是一个常量

  • 一般神经网络中每层(layer)的神经元(neuron)太过简单很难表征一些概念;为了能表示一些复杂的概念,将一组神经元封装起来形成Capsule(胶囊),每个Capsule对应一个向量而不是标量,而向量就可以作为良好的表征(比如word2vec中的向量就可以良好表征词汇)。Capsule的输入和输出就不再是标量而是向量。

  • Capsule 的输出向量表征了两个部分:

    • 其长度表征了某个实例或实例的一部分出现的概率
    • 其方向表征了实体的某些图形属性(位置,颜色,方向,形状等等)
  • 将上面全连接网络的每个神经元⚪换成Capsule⬜:

    其中⬜表示Capsule,中间的红色⚪表示Capsule包含的神经元

  • 激活函数

    • 首先需要考虑一下什么样的激活函数可以用于向量的激活,论文中使用了下面激活函数: v j = ∣ s j ∣ 2 1 + ∣ s j ∣ 2 s j ∣ s j ∣ v_j=\frac{|s_j |^2}{1+|s_j |^2 }\frac{s_j}{|s_j |} vj=1+sj2sj2sjsj
    • 该激活函数称为squashing,是一个非线性激活函数;其中 s j s_j sj是当前Capsule的输入, v j v_j vj是当前Capsule的输出。
    • 上面公式可以拆成两个部分:后半部分是一个单位向量 s ^ j = s j ∣ s j ∣ \hat{s}_j=\frac{s_j}{|s_j |} s^j=sjsj,前半部分是模长放缩因子 ∣ s j ∣ 2 1 + ∣ s j ∣ 2 \frac{|s_j |^2}{1+|s_j |^2 } 1+sj2s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值