VGG网络

目录

背景介绍

网络结构

感受野

训练细节

1. 权重初始化

2. 损失函数

3. 优化器

4. 学习率调度

5. 正则化

6. 数据增强

总结

AlexNet and  VGG

1. 深度增加

2. 更小的卷积核

3. 权重层的堆叠

4. 统一的卷积核和池化操作

5. 更多的参数

总结


 

背景介绍

VGG(Visual Geometry Group)网络是一种卷积神经网络(CNN)架构,由牛津大学的Visual Geometry Group团队在2014年提出。这种网络架构在ImageNet大规模视觉识别挑战赛中取得了很好的成绩,并且由于其简单性和有效性,得到了广泛的应用和研究。相比Alexnet ,VGG使用了更深的网络结构,证明了增加网络深度能够在一定程度上影响网络性能。

论文原址:https://arxiv.org/pdf/1409.1556

 

网络结构

1b71d4b8917b4b9d9cf20a76939c3101.png2a5f30d61b2f4f99a2cf95ea86c25e07.png

  1. A 组:最简单的配置,有11层。
  2. A-LRN 组:在A组基础上加了LRN(局部响应归一化),但效果不明显。
  3. B 组:在A组基础上增加了两个3x3卷积层,总共13层。
  4. C 组:在B组基础上增加了三个1x1卷积层,总共16层。
  5. D 组:在C组基础上,将1x1卷积层换成3x3卷积层,总共16层。
  6. E 组:在D组基础上再增加三个3x3卷积层,总共19层。

关键发现:

  1. LRN效果一般:对比A和A-LRN组,LRN效果不明显,后续配置不再使用。
  2. 小卷积核更好:多个3x3卷积核比1x1卷积核效果好。
  3. 深度提升性能:网络层数越多,性能越好。

以 VGG16 为例:

 

  1. 卷积层1: 两个3x3卷积层,输出64个特征图。
  2. 池化层1: 2x2最大池化。
  3. 卷积层2: 两个3x3卷积层,输出128个特征图。
  4. 池化层2: 2x2最大池化。
  5. 卷积层3: 三个3x3卷积层,输出256个特征图。
  6. 池化层3: 2x2最大池化。
  7. 卷积层4: 三个3x3卷积层,输出512个特征图。
  8. 池化层4: 2x2最大池化。
  9. 卷积层5: 三个3x3卷积层,输出512个特征图。
  10. 池化层5: 2x2最大池化。
  11. 全连接层: 两个4096节点的全连接层,最后一个1000节点的全连接层。
  12. Softmax层: 输出1000个类别的概率分布。

总结:

VGG16和VGG19通过增加网络深度,显著提升了图像分类性能,证明了深度卷积神经网络的强大能力。

 

感受野

7d0c5ad7462744448dcfd054d6388428.png

感受野指的是一个神经元所能“看到”的输入区域的大小。上图展示了不同卷积核大小的感受野:

  1. 第一幅图(3x3卷积核):每个神经元连接到上一层的3个神经元。
  2. 第二幅图(5x5卷积核):等效于两个3x3卷积核的叠加,因此每个神经元连接到5个神经元。
  3. 第三幅图(7x7卷积核):等效于三个3x3卷积核的叠加,因此每个神经元连接到7个神经元。

在最左边的图中,改变最后一层的一个节点会影响第一层的7个节点。同样,在最右边的图中,改变最后一层的一个节点也会影响第一层的7个节点。这表明3个3x3卷积层堆叠与一个7x7卷积层在感受野上是相同的。

在相同感受野的情况下,堆叠小卷积核(如3x3)比使用大卷积核(如7x7)有以下优点:

  1. 更多激活函数:小卷积核堆叠带来更多的激活函数(如ReLU),增强了网络的非线性表示能力,使其更能区分不同类别。
  2. 丰富特征:堆叠小卷积核可以捕捉到更细致的特征变化。例如,3x3卷积核可以捕捉到图像中的细节变化,而多个3x3卷积核的叠加效果近似于一个7x7卷积核。
  3. 更强的辨别能力:通过堆叠小卷积核,网络变得更深,具有更大的容量,从而提高了对不同类别的区分能力。总之,堆叠小卷积核不仅能保持较大的感受野,还能增加网络的复杂性和特征提取能力。

总之,堆叠小卷积核不仅能保持较大的感受野,还能增加网络的复杂性和特征提取能力。

 

训练细节

1. 权重初始化

  • Xavier初始化:这种方法确保了每层的输出方差在训练开始时是相同的。它通过使权重的初始值在一个较小的范围内随机分布来实现。
  • He初始化:这种方法是Xavier初始化的改进版本,特别适用于ReLU激活函数。它使得权重的初始值服从一个正态分布,方差为2/n,其中n是前一层的神经元数量。

2. 损失函数

  • 交叉熵损失(Cross-Entropy Loss)
    • 这是用于分类问题的标准损失函数。
    • 公式:ebe28af14dcc40cd947a3e50845d92da.png409d7e731ba84c95b71d40ae0007d202.png

3. 优化器

  • 随机梯度下降(SGD)

    • 这是最经典的优化算法,通过对每个小批量数据计算梯度并更新模型参数。
    • 带动量的SGD(SGD with Momentum):在标准SGD的基础上加入动量项,帮助跳出局部极小值,提高收敛速度。
    • 公式:8fa101a6e7ff446f9dedb81402f7553e.png
  • Adam优化器

    • Adam(Adaptive Moment Estimation)结合了动量和RMSProp优化器的优点,自适应调整学习率。
    • 公式:119a91e6ecf3465d96581d63700e61bf.png

4. 学习率调度

  • 阶梯式下降(Step Decay):在训练过程中,按预定的间隔将学习率缩小一半或一定比例。
  • 余弦退火(Cosine Annealing):逐渐减少学习率,通过一个余弦函数来实现平滑过渡。
  • 自适应学习率(Adaptive Learning Rate):如在训练过程中检测到损失没有显著减少,则减少学习率。

5. 正则化

  • L2正则化:在损失函数中加入参数的平方和,防止过拟合。

    • 公式:f268ee7fe2f54ad9afbb5cd3f97a089c.png
  • Dropout:在训练过程中随机丢弃部分神经元,减少模型对特定神经元的依赖,防止过拟合。

6. 数据增强

  • 随机裁剪:随机裁剪图像的一部分,提高模型的鲁棒性。
  • 旋转:随机旋转图像,增加数据多样性。
  • 颜色扰动:随机改变图像的亮度、对比度、饱和度等。

总结

通过合理的初始化、选择合适的损失函数和优化器、调整学习率以及应用正则化和数据增强技术,可以显著提高VGG网络的训练效果和最终性能。这些训练细节在深度学习模型的开发过程中至关重要,能够有效提升模型的泛化能力和准确性。

 

AlexNet and  VGG

1. 深度增加

  • AlexNet:有8层权重层(5个卷积层 + 3个全连接层)。
  • VGG:有16或19层权重层,具体取决于VGG16还是VGG19(13-16个卷积层 + 3个全连接层)。

2. 更小的卷积核

  • AlexNet:使用较大的卷积核(例如,第一个卷积层的卷积核大小为11x11,步幅为4)。
  • VGG:采用更小的卷积核(3x3,步幅为1),并通过堆叠多个小卷积核层来增加网络的深度和感受野。

3. 权重层的堆叠

VGG通过在每个块中堆叠多个3x3卷积层,相对于AlexNet的大卷积核来说,能够更有效地捕捉细节特征。如下所示:

  • VGG 的卷积层堆叠方式:多个3x3卷积层(例如,每个卷积块中堆叠2到3个3x3卷积层)。
  • AlexNet 的卷积层堆叠方式:较少的卷积层,并且使用较大的卷积核。

4. 统一的卷积核和池化操作

  • VGG:统一采用3x3卷积核和2x2最大池化层,这种统一的设计使得网络结构更为简单和规整。
  • AlexNet:卷积核大小和池化操作各异,例如11x11、5x5等不同大小的卷积核和3x3、2x2等不同大小的池化层。

5. 更多的参数

由于增加了更多的卷积层和参数,VGG网络的参数量显著增加。如下表所示:

  • AlexNet:大约6000万参数。
  • VGG16:大约1.38亿参数。
  • VGG19:大约1.44亿参数。

总结

相比于AlexNet,VGG网络通过增加更多的卷积层(即权重层)和采用更小的卷积核,提升了模型的表达能力和性能。同时,VGG在结构设计上更加统一和规整,便于后续的改进和扩展。虽然VGG的参数量和计算量增加了,但它在许多视觉任务中表现出了更优异的性能。

 

 

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值