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生态系统

相关推荐
doubao365 小时前
如何有效降低AIGC生成内容被识别的概率?
人工智能·深度学习·自然语言处理·aigc·ai写作
Danceful_YJ7 小时前
31.注意力评分函数
pytorch·python·深度学习
xier_ran9 小时前
深度学习:神经网络中的参数和超参数
人工智能·深度学习
8Qi89 小时前
伪装图像生成之——GAN与Diffusion
人工智能·深度学习·神经网络·生成对抗网络·图像生成·伪装图像生成
傻啦嘿哟9 小时前
Python高效实现Word转HTML:从基础到进阶的全流程方案
人工智能·python·tensorflow
思通数科多模态大模型10 小时前
扑灭斗殴的火苗:AI智能守护如何为校园安全保驾护航
大数据·人工智能·深度学习·安全·目标检测·计算机视觉·数据挖掘
xixixi7777711 小时前
了解一下LSTM:长短期记忆网络(改进的RNN)
人工智能·深度学习·机器学习
能来帮帮蒟蒻吗11 小时前
深度学习(1)—— 基本概念
人工智能·深度学习
LeonDL16811 小时前
基于YOLO11深度学习的电动车头盔检测系统【Python源码+Pyqt5界面+数据集+安装使用教程+训练代码】【附下载链接】
人工智能·python·深度学习·pyqt5·yolo数据集·电动车头盔检测系统·yolo11深度学习