GoogleNet Inception和ResNet中的可视化
可视化有助于探索负责提取特定特征的层。在建立CNN模型的过程中,可视化层与计算训练误差(准确性)和验证误差一样重要。它还通过可视化和嵌入具有当前需求指定权重的所需滤波器,帮助使用预先训练的模型进行迁移学习。可视化可以应用于类激活、过滤器和激活函数的热图。
GoogleNet Inception
在GoogleNet Inception中,多个大小的滤波器与1×1的卷积一起应用于同一级别。并非总是可以使用相同的滤波器来从图像中检测对象。例如,当对下面的图像进行对象检测和特征提取时,有必要对左边的图像(棕色狗的特写)使用较大的滤波器,对右边的图像(背景中有树的狗)使用较小的滤波器。
(有关GoogleNet Inception的架构图,请参阅https://web.cs.hacettepe.edu.tr/~aykut/classes/spring2016/bil722/slides…,第31-32页。)
GoogleNet Inception通过增加模型相对于深度的宽度来帮助避免过度拟合。随着模型的深度增加以捕获更多的特征,激活函数负责防止模型由于过拟合训练数据而过于笼统。
下图描述了一般(简单)和过拟合(复杂)模型。
在GoogleNet Inception中,具有不同大小的过滤器被应用于单个输入,因为如上面的狗的例子所述,通过特征提取的对象检测是不同的。在同一级别使用多个大小的过滤器可以确保容易地检测到不同图像中不同大小的对象。
在应用滤波器之前,将输入与1×1矩阵进行卷积,从而减少对图像进行的计算次数。例如,大小为14×14×480的输入与大小为5×5×48的滤波器卷积会导致(14×14 x 48)×(5×5 x 480)=1.129亿次计算。但是,如果在与3×3卷积之前将图像与1×1卷积,则计算次数降至(14×14×16)×(1×1×480)=150万和(14×14*48)×(5×5×16)=380万。过滤器串联用于收集该初始块的所有过滤器。
初始块也可以有一个辅助分支。辅助分支存在于训练时间架构中,但不存在于测试时间架构中。当它们鼓励在分类器的较低阶段进行区分时,它们在分类过程中引入了更多的攻击性。它们增加了传播回来的梯度信号,并提供了额外的正则化。
ResNet
如果神经网络太深,损失函数的梯度将向零发展,这是一个被称为“消失梯度”的问题。ResNet用于解决这个问题,方法是从后面的层向后跳过连接到最初的层。
ResNet(残差网络)包含四个残差块:Layer1、Layer2、Layer3和Layer4。(有关ResNet的体系结构图,请参阅https://towardsdatascience.com/understanding-and-visualizing-resnets-44….)
每个块包含不同数量的残差单元,这些残差单元以独特的方法执行一组卷积。通过最大池化来增强每个块,以减少空间维度。
如下所示,残差单元有两种类型:基线残差单元和瓶颈残差单元。
基线残差单元包含两个具有批量归一化和ReLU激活的3×3卷积。
瓶颈残差单元由三个堆叠运算组成,其中包含一系列1×1、3×3和1×1卷积运算。这两个1×1操作是为减小和恢复尺寸而设计的。3×3卷积用于对密度较小的特征向量进行运算。此外,在每次卷积之后和ReLU非线性之前应用批量归一化。
最新内容
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week 6 days ago
- 2 weeks ago
- 2 weeks 3 days ago
- 2 weeks 3 days ago
- 2 weeks 3 days ago