跳转至

其它架构

Capsule Network

  • 能够识别相对位置。
  • 但是不能很好适配当前硬件。

底层的"Capsule"先把小图形提取出来,结合置信概率,偏移方向等等,输出一个向量(与神经网络相比,神经元输出仅为一个标量)。再由动态路由算法进行分类。

动态路由算法 (Dynamic Routing / Routing-by-Agreement)

  • 目的:决定底层Capsule的输出应该如何“路由”或贡献给上一层(更高级)的Capsule。它要解决的问题是:当前层检测到的“部分”(如眼睛、鼻子)应该组成上一层的哪个“整体”(如人脸)?

  • 预测 (Prediction):每一个底层Capsule_i 会为所有可能的上层Capsule_j 生成一个“预测向量” û_j|i。这个预测是通过将底层Capsule i 的输出向量 u_i 乘以一个变换矩阵 W_ij 来完成的 (û_j|i = W_ij * u_i)。这个变换矩阵 W_ij 正是编码了部分 i 和整体 j 之间的期望空间关系(比如,“如果我检测到了一个左眼,那么对应的人脸中心应该在我右上方某个位置”)。这个 W_ij 是通过学习得到的。

  • 迭代更新耦合系数 (Iterative Update of Coupling Coefficients):算法通过迭代过程动态调整底层Capsule i 和上层Capsule j 之间的连接强度(耦合系数 c_ij)。
  • 一致性检查 (Agreement Check):在每次迭代中,上层Capsule j 的输出 v_j 是根据所有底层Capsule对其的加权预测 (Σ_i c_ij * û_j|i) 计算得到的。然后,算法会检查每个底层Capsule i 的预测 û_j|i 与最终得到的上层Capsule输出 v_j 的一致性(通常通过点积衡量)。
  • 路由更新 (Routing Update):如果底层Capsule i 对上层Capsule j 的预测 û_j|i 与 v_j 非常一致(即它们的预测吻合),那么它们之间的耦合系数 c_ij 就会在下一次迭代中增加;反之,则减少。

alt text

KAN

训练激活函数,而非边的权重。 alt text

普通KAN对于一个神经元的多个输入,简单相加或者相减。但是MultKAN可以学习做乘法,大大减少运算量。仔细研究下面两个KAN怎么表示xy的alt text

具体函数实现来讲,使用B-spline,通过几个控制点控制整个曲线,同时保证曲线处处可微(为了反向传播)。 alt text

此外还可以在已经训练好的模型中添加参数,因为B-spline中两个点之间新增额外的点,也不会影响其外的函数曲线。