TensorFlow深度学习实战——胶囊网络

TensorFlow深度学习实战------胶囊网络

    • [0. 前言](#0. 前言)
    • [1. CNN 存在的问题](#1. CNN 存在的问题)
    • [2. 胶囊网络的创新点](#2. 胶囊网络的创新点)
    • 相关链接

0. 前言

胶囊网络 (Capsule Network, CapsNet) 是一种新颖的深度学习网络类型,CapsNet 已经在 MNIST 分类任务上超越了最优秀的卷积神经网络 (Convolutional Neural Network, CNN)

1. CNN 存在的问题

卷积神经网络 (Convolutional Neural Network, CNN)中,每一层对图像的理解逐渐深入,第一层最有可能识别直线或简单的曲线和边缘,而后续层则学习识别更复杂的形状,如矩形、圆形,甚至人脸。
CNN 中使用的一个关键操作是池化,池化旨在实现位置不变性,它在每个 CNN 层之后使用。然而,池化的引入也带来一个问题,因为池化会丢失所有的位置信息。例如,对于人脸而言,由两只眼睛、一张嘴和一个鼻子组成,这些部分之间存在空间关系(例如,嘴在鼻子下方,鼻子在眼睛下方)。CapsNet 认为,从技术上讲,我们不需要位置不变性,而是需要等变性。等变性用于表示我们希望理解图像中的旋转或比例变化,并希望网络相应地进行调整。通过这种方式,图像中不同部分之间的空间位置关系不会丢失。

2. 胶囊网络的创新点

CapsNet 认为,大脑有存在称为"胶囊" (capsules) 的模块,每个胶囊处理特定类型的信息,有些胶囊在擅长"理解"位置、大小、方向、纹理等概念。此外,大脑有特别高效的机制来动态地将每一条信息传递给最适合处理该类型信息的胶囊。

因此,CNNCapsNet 之间的主要区别在于,CNN 通过不断添加层来创建深度网络,而 CapsNet 则是将一个神经层嵌套在另一个层中。胶囊 (Capsule) 是一组神经元,为网络引入了更多的结构,并生成一个向量来表示图像中实体的存在。具体来说,使用活动向量的长度来表示实体存在的概率,使用向量的方向来表示实例化参数。当多个预测达成一致时,更高层的胶囊会被激活。每个可能的父胶囊会生成一个额外的预测向量。

第二个创新点是胶囊之间的动态路由,而不再使用传统的池化方法。低层胶囊倾向于将其输出发送到活动向量与预测值有较大标量积的高层胶囊。具有最大标量预测向量积的父胶囊会增强胶囊的连接,其他父胶囊则减少连接。换句话说,如果高层胶囊与低层胶囊一致,它会请求接收更多该类型的信息;如果不一致,接收更少该类型的信息。这种基于一致性的动态路由方法优于池化机制(如最大池化),路由最终是一种解析图像的方式。实际上,最大池化忽略了除最大值之外的所有信息,而动态路由则根据低层和高层之间的一致性选择性地传播信息。

第三个区别是引入了一种新的非线性激活函数。与 CNN 中对每层添加非线性激活函数不同,CapsNet 在一组嵌套层上添加非线性激活函数。非线性激活函数如下所示,称为压缩函数:
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+∣∣sj∣∣2∣∣sj∣∣2∣∣sj∣∣sj

其中, v j v_j vj 是胶囊 j j j 的向量输出, s j s_j sj 是其总输入。

经过判别训练的多层胶囊系统在 MNIST 数据集上的性能优于 CNN,并且在识别高度重叠的数字时,比卷积神经网络更具优势,一个简单的 CapsNet 架构如下所示:

该架构较为简单,仅包含两个卷积层和一个全连接层。Conv1 层包含 2569 x 9 的卷积核,步幅为 1,并使用 ReLU 激活函数。该层的作用是将像素强度转换为局部特征检测器的激活,然后作为 PrimaryCapsules 层的输入。PrimaryCapsules 是一个卷积胶囊层,具有 32 个通道;每个胶囊包含 8 个卷积单元,使用尺寸为 9 x 9 的卷积核,步幅为 2。总体而言,PrimaryCapsules 层输出 [32, 6, 6] 个胶囊(每个输出是一个 8D 向量),并且 [6, 6] 网格中的每个胶囊之间共享权重。最终层 (DigitCaps) 为每个数字类别有一个 16D 的胶囊,这些胶囊接收来自下层所有其他胶囊的输入。路由操作仅发生在两个相邻的胶囊层之间(例如,PrimaryCapsulesDigitCaps)。

相关链接

TensorFlow深度学习实战(1)------神经网络与模型训练过程详解
TensorFlow深度学习实战(2)------使用TensorFlow构建神经网络
TensorFlow深度学习实战(3)------深度学习中常用激活函数详解
TensorFlow深度学习实战(4)------正则化技术详解
TensorFlow深度学习实战(5)------神经网络性能优化技术详解
TensorFlow深度学习实战(6)------回归分析详解
TensorFlow深度学习实战(7)------分类任务详解
TensorFlow深度学习实战(8)------卷积神经网络
TensorFlow深度学习实战(9)------构建VGG模型实现图像分类
TensorFlow深度学习实战(10)------迁移学习详解
TensorFlow深度学习实战(11)------风格迁移详解
TensorFlow深度学习实战(12)------词嵌入技术详解
TensorFlow深度学习实战(13)------神经嵌入详解
TensorFlow深度学习实战(14)------循环神经网络详解
TensorFlow深度学习实战(15)------编码器-解码器架构
TensorFlow深度学习实战(16)------注意力机制详解
TensorFlow深度学习实战(17)------主成分分析详解
TensorFlow深度学习实战(18)------K-means 聚类详解
TensorFlow深度学习实战(19)------受限玻尔兹曼机
TensorFlow深度学习实战(20)------自组织映射详解
TensorFlow深度学习实战(21)------Transformer架构详解与实现
TensorFlow深度学习实战(22)------从零开始实现Transformer机器翻译
TensorFlow深度学习实战(23)------自编码器详解与实现
TensorFlow深度学习实战(24)------卷积自编码器详解与实现
TensorFlow深度学习实战(25)------变分自编码器详解与实现
TensorFlow深度学习实战(26)------生成对抗网络详解与实现
TensorFlow深度学习实战(27)------CycleGAN详解与实现
TensorFlow深度学习实战(28)------扩散模型(Diffusion Model)
TensorFlow深度学习实战(29)------自监督学习(Self-Supervised Learning)
TensorFlow深度学习实战(30)------强化学习(Reinforcement learning,RL)
TensorFlow深度学习实战(31)------强化学习仿真库Gymnasium
TensorFlow深度学习实战(32)------深度Q网络(Deep Q-Network,DQN)
TensorFlow深度学习实战(33)------深度确定性策略梯度
TensorFlow深度学习实战(34)------TensorFlow Probability
TensorFlow深度学习实战(35)------概率神经网络
TensorFlow深度学习实战(36)------自动机器学习(AutoML)
TensorFlow深度学习实战(37)------深度学习的数学原理
TensorFlow深度学习实战(38)------常用深度学习库
TensorFlow深度学习实战(39)------机器学习实践指南
TensorFlow深度学习实战(40)------图神经网络(GNN)
TensorFlow深度学习实战(41)------TensorFlow生态系统

相关推荐
哈__3 分钟前
CANN加速VAE变分自编码器推理:潜在空间重构与编码解码优化
人工智能·深度学习·重构
觉醒大王13 分钟前
哪些文章会被我拒稿?
论文阅读·笔记·深度学习·考研·自然语言处理·html·学习方法
禁默14 分钟前
Ops-Transformer深入:CANN生态Transformer专用算子库赋能多模态生成效率跃迁
人工智能·深度学习·transformer·cann
杜子不疼.16 分钟前
基于CANN GE图引擎的深度学习模型编译与优化技术
人工智能·深度学习
chaser&upper26 分钟前
预见未来:在 AtomGit 解码 CANN ops-nn 的投机采样加速
人工智能·深度学习·神经网络
机器懒得学习42 分钟前
智能股票分析系统
python·深度学习·金融
vx_biyesheji00011 小时前
豆瓣电影推荐系统 | Python Django 协同过滤 Echarts可视化 深度学习 大数据 毕业设计源码
大数据·爬虫·python·深度学习·django·毕业设计·echarts
饭饭大王6662 小时前
当 AI 系统开始“自省”——在 `ops-transformer` 中嵌入元认知能力
人工智能·深度学习·transformer
TechWJ2 小时前
CANN ops-nn神经网络算子库技术剖析:NPU加速的基石
人工智能·深度学习·神经网络·cann·ops-nn
心疼你的一切2 小时前
拆解 CANN 仓库:实现 AIGC 文本生成昇腾端部署
数据仓库·深度学习·aigc·cann