胶囊网络与卷积网络的区别
深度学习广泛应用于图像
-
识别、图像分类、图像分割、目标检测、身份认证、知识图谱、自然语言处理、语音识别、文本分类等各个领域。
-
图像预处理操作的意义主要是为了增强目标图像信息,同时可以减少很多干扰,能够更好地迚行图像特征提取。
-
胶囊网络具备捕捉局部和整体之间的内在空间关系的特性可以构成视点不变的知识,自动推广到新的视点。
-
胶囊网络有能力处理对象重叠的复杂场景。
-
目前可以将损失函数作为胶囊网络的主要改变方向,损失函数不光对胶囊网络具有重要意义,也对整个神经网络的改迚与优化存在非常重要的作用。
为什么卷积神经网络需要的数据集比较大,胶囊网络需要的数据集不能过于大,适量就可以?
个人理解:
- 问题一:本质是因为,卷积网络训练的过程(卷积层、特征映射等)是记住数据集的特征,所以少量的数据集无法记训练出能较好记住数据集特征的网络,所以越多的数据越好。
- 问题二:胶囊的本质是以向量的方式利用了数据集的空间特征,并且主要步骤在路由,找到合适的预测胶囊i去激活到j,所以,适量的数据集有助于在一定的时间、参数范围根据空间特征训练出合适的网络,过大的数据集会加大路由时间和参数反而使得网络性能降低。
卷积神经网络的特点:
- 输入层、卷积层、池化层、全连接层、输出层。
- 卷积层以空间上下文感知的方式将多个低层特征编码为更具区分性的高级特征,再用过池化层降低图像的维度,最终由全连接层作为分类器对隐藏层的输出进行分类,输出结果。
- 网络结构过于复杂会导致过拟合和梯度爆炸。
- LeNet-5、AlexNet、VGGNet、GoogLeNet、ResNet、DenseNet(注:以上均是LeNet的改进版模型)
- CapsNet 解决了 CNN 对物体大幅度旋转之后识别能力低下及物体之间的空间辨识度差的两个缺陷。
卷积神经网络的缺点:
-
上一层神经元传递到下一层神经元中的是标量,标量没有方向,无法表示高层特征与低层特征之间的位姿关系,以及底层对象之间的空间关系。因此,CNN在识别具有空间关系特征时存在很大局限性。
-
池化层会丢失大量有价值的信息,因此卷积神经网络存在较大的局限性。
-
CNN有优秀的图像处理能力,但由此固化的网络结构多产生的问题日益凸显,经典的CNN模型不能满足当前社会人工智能技术的需要。已经不能解决一些复杂的图像处理问题,如图像旋转、指静脉识别等。
2017年Hinton等人提出一种新型神经网络:胶囊网络(当今图像识别领域最先进的技术之一)
胶囊网络的特点:
-
胶囊不是以单个神经元的形式出现,而是一组神经元的集合,此集合可以是向量或者矩阵,多个胶囊构成了一个隐藏层,深浅两层之间的关系通过动态路由算法确定。
-
向量的形式表示部分与整体之间的关系,不仅能够以特征响应的强度来表示图像,还能够表征图像特征的方向、位置等信息。
-
胶囊间的动态路由算法,取代传统卷积神经网络中的最大池化法,避免了图像因池化导致精确位置信息的丢失。
-
胶囊的组成形式非常灵活,动态路由算法没有固定的模板,并且是单独计算深浅两层隐藏层中每个胶囊之间的关系,动态路由的计算方式决定了深浅两层隐藏层之间是动态连接的关系,因此模型可以自动筛选更有效的胶囊,从而提高性能。
-
CapsNet解决了CNN对物体大幅度旋转之后识别能力低下以及物体之间的空间辨识度差的两个缺陷。
-
胶囊与神经元的差异
胶囊网络结构:
-
胶囊网络层较浅,由卷积层、PrimaryCaps(主胶囊)层、DigitCaps(数字胶囊)层构成。
-
整体结构图
-
胶囊网络允许多个分类同时存在,因此不能再使用传统交叉熵损失函数,而是采用了间隔损失的方式作为损失函数,间隔损失公式如下:
- CapsNet的解码器结构
动态路由算法
-
胶囊是一组神经元的集合,他的输出是一个多维向量,因此它可以用来表示实体的一些属性信息,其模长可以用来表示实体出现概率,模长值越大,表示该实体存在的可能性越大。若实体的特征位置发生变化,胶囊输出的向量对应的模长不会变化,只改变其方向,实现同变性。
-
胶囊的工作原理如图所示,可以简单概括为4个步骤,矩阵转化、输入加权、加权求和、以及非线性变换。
注:转化矩阵通过成为成本函数反向传播的得到。
(CNN中的最大池化处理了平移变化。如果一个特征稍微移动一下,只要它仍然在池化窗口中,就依然可以被检测到。然而,这种方法只保留最大的特征(最主要的)并且丢弃其他的特征,而胶囊则保留前一层的特征加权总和。因此,它更适合于检测重叠特征。例如,在手写字体中检测多个重叠的数字)
两者的比较:
附自己胶囊论文地址:论文链接
2021.03.01/周一
by 922