VGG网络

简介: VGG网络

三 VGG


VGG 在2014年由牛津大学著名研究组 VGGVisual Geometry Group)提出,斩获该年 ImageNet 竞赛中 Localization Task(定位任务)第一名和 Classification Task(分类任务)第二名。


原论文地址:Very Deep Convolutional Networks for Large-Scale Image Recognition

VGG网络的创新点:通过堆叠多个小卷积核来替代大尺度卷积核,可以减少训练参数,同时能保证相同的感受野。


论文中提到,可以通过堆叠两个3×3的卷积核替代5x5的卷积核,堆叠三个3×3的卷积核替代7x7的卷积核。


1. CNN感受野


在卷积神经网络中,决定某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野receptive field)。


通俗的解释是,输出feature map上的一个单元 对应 输入层上的区域大小。


以下图为例,输出层 layer3 中一个单元 对应 输入层 layer2 上区域大小为2×2(池化操作),对应输入层 layer1 上大小为5×5


(可以这么理解,layer2中 2×2区域中的每一块对应一个3×3的卷积核,又因为 stride=2,所以layer1的感受野为5×5)


e2e26c772cd1484f8ad7102301a2bc2c.png


感受野的计算公式为:

F ( i ) = ( F ( i + 1 ) − 1 ) × Stride + Ksize

   F ( i ) F(i)F(i) 为第 i ii 层感受野

   S t r i d e StrideStrid**e 为第 i ii 层的步距

   K s i z e KsizeKsize 为 卷积核 或 池化核 尺寸


以上图为例:

   Feature map: F ( 3 ) = 1

   Pool1:F ( 2 ) = ( 1 − 1 ) × 2 + 2 = 2

   Conv1: F ( 1 ) = ( 2 − 1 ) × 2 + 3 = 5




2. 小卷积核


现在,我们来验证下VGG论文中的两点结论:


1.堆叠两个3×3的卷积核替代5x5的卷积核,堆叠三个3×3的卷积核替代7x7的卷积核。替代前后感受野是否相同?


(注:VGG网络中卷积的Stride默认为1)


Feature map: F = 1

Conv3x3(3): F = ( 1 − 1 ) × 1 + 3 = 3

Conv3x3(2): F = ( 3 − 1 ) × 1 + 3 = 5 (5×5卷积核感受野)

Conv3x3(1): F = ( 5 − 1 ) × 1 + 3 = 7 (7×7卷积核感受野)


2.堆叠3×3卷积核后训练参数是否真的减少了?


注:CNN参数个数 = 卷积核尺寸×卷积核深度 × 卷积核组数 = 卷积核尺寸 × 输入特征矩阵深度 × 输出特征矩阵深度


现假设 输入特征矩阵深度 = 输出特征矩阵深度 = C


  • 使用7×7卷积核所需参数个数:

  • 堆叠三个3×3的卷积核所需参数个数:



3. VGG-16

VGG网络有多个版本,一般常用的是VGG-16模型,其网络结构如下如所示:



稍作计算可以发现,经3×3卷积的特征矩阵的尺寸是不改变的:

相关文章
|
5月前
|
机器学习/深度学习 计算机视觉 网络架构
是VGG网络的主要特点和架构描述
是VGG网络的主要特点和架构描述:
71 1
|
5月前
|
机器学习/深度学习 网络架构 计算机视觉
VGG深度卷积神经网络架构
VGG深度卷积神经网络架构
|
6月前
|
机器学习/深度学习 数据采集 算法
深入理解VGG网络,清晰易懂
深入理解VGG网络,清晰易懂
|
机器学习/深度学习 数据挖掘 PyTorch
图像分类经典神经网络大总结(AlexNet、VGG 、GoogLeNet 、ResNet、 DenseNet、SENet、ResNeXt )
图像分类经典神经网络大总结(AlexNet、VGG 、GoogLeNet 、ResNet、 DenseNet、SENet、ResNeXt )
5598 1
图像分类经典神经网络大总结(AlexNet、VGG 、GoogLeNet 、ResNet、 DenseNet、SENet、ResNeXt )
|
计算机视觉
使用VGG网络进行MNIST图像分类
使用VGG网络进行MNIST图像分类
159 0
|
机器学习/深度学习
|
并行计算 Java PyTorch
使用VGG网络训练发生错误RuntimeError: CUDA out of memory解决方案:
使用VGG网络训练发生错误RuntimeError: CUDA out of memory解决方案:
662 0
|
机器学习/深度学习
如何搭建VGG网络,实现Mnist数据集的图像分类
如何搭建VGG网络,实现Mnist数据集的图像分类
127 0
|
数据可视化
探索VGG网络与LeNet网络对精度的影响
探索VGG网络与LeNet网络对精度的影响
72 0
|
3天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第23天】在数字时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将探讨网络安全漏洞、加密技术和安全意识等方面的内容,以帮助读者更好地了解如何保护自己的网络安全。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,我们将为读者提供一些实用的建议和技巧,以增强他们的网络安全防护能力。