Very deep convolutional networks for large-scale image recognition.(用于大规模图像识别的非常深的卷积网络)

1 绪论

该文章提出了经典的VGG-16,VGG-19等网络。主要探讨了深度对于卷积神经网络结构设计的重要性。通过添加更多的卷积层增加网络深度,通过3*3的卷积核并且使padding=1来维持卷积后的层宽高不变,以实现更深的卷积网络。

2 卷积神经网络配置

2.1 架构

  • 图像预处理:每个像素减去平均RGB值。
  • 图像输入大小:224 x 224px。
  • 层设计:
    1. 主要使用3 x 3的卷积核,填充为1像素,以保留输入层的空间分辨率。
    2. 在其中一个配置中,使用1 x 1卷积核(被视为输入通道的线性变换)。
    3. 空间池化由五个最大池化层执行,这些层紧随某些卷积层之后(并非所有卷积层都紧随最大池化层),最大池化在2 x 2像素窗口上进行,步长为2。
    4. 一系列卷积层(在不同的架构中具有不同的深度)之后是三个全连接(FC)层:前两个层分别具有4096个通道,第三个层执行1000个通道的分类。
    5. 所有隐藏层都配备了ReLU。
    6. 仅一个网络配备了局部响应归一化层(LRN),这种归一化不会提高ILSVRC数据集上的性能,但会导致内存消耗和计算时间增加。LRN层的参数与AlexNet中的参数相同。

2.2 配置

以下6个网络配置仅在深度方面有所不同:从网络A的11个权重层(8个卷积层和3个全连接层)到网络E的19个权重层(16个卷积层和3个全连接层)。

网络的宽度(通道数)比较小,从第一层的64开始,然后在每个最大池化层之后乘以2,直到达到512。

表 1:卷积神经网络配置(列出)。配置的深度从左(A)到右(E)增加,因为添加了更多层(添加的层以粗体显示)。卷积层参数表示为“conv⟨感受野大小⟩-⟨通道数⟩”。为了简洁起见,ReLU 激活函数没有显示。

尽管VGG网络深度很大,但是VGG网络中的权重数量并不超过具有更大卷积的更浅网络中的权重数量。

2.3 讨论

该网络在整个网络中使用非常小的3 x 3感受野,两层3 x 3卷积层的有效感受野为5 x 5; 三层这样的层具有7 x 7的有效感受野。使用三层3 x 3卷积层而不是单层7 x 7层,使得加入了三个ReLU,而不是一个,这使得决策函数更具判别性。同时还减少了参数数量:假设三层 3 × 3 卷积堆栈的输入和输出均具有C个通道,则该堆栈由 3(32C2) = 27C2 个权重参数化; 单个 7 × 7 卷积层需要 72C2 = 49C2

表 2:参数数量(百万)。

将 1 × 1 卷积层(配置 C,表 1)整合进来,是一种在不影响卷积层感受野的情况下 增加决策函数非线性的方法。1 × 1 卷积本质上是到相同维数 空间的线性投影(输入和输出通道数量相同),但整流函数引入了额外的非线性。

3 分类框架

3.1 训练

从多尺度训练图像中采样输入裁剪,训练使用小批量梯度下降和动量来对损失函数进行优化。批次大小设置为 256,动量设置为 0.9。训练通过权重衰减进行正则化( L2 惩罚乘数设置为\( 5 \cdot 10^{-4} \) )和对前两个全连接层的 dropout 正则化(dropout 比例设置为 0.5)。学习率最初设置为 \(10^{-2}\),然后在验证集精度停止提高时降低 10 倍。总共降低学习率 3 次,并在 370K 次迭代(74 个 epoch)后停止学习。

在网络权重初始化中,首先训练了配置A,该配置很浅,用随机初始化进行训练。然后在训练更深层的架构时,将前四个卷积层和最后三个全连接层初始化为网络A的层(中间层随机初始化),学习率的设定没有改变,还是\(10^{-2}\)。对于随机初始化,从均值为零、方差为\(10^{-2}\)的正态分布中采样权重。

卷积神经网络输入图像的大小时固定的224 x 224,它们是从重新缩放的训练图像中随机裁剪的,先进行重新缩放后在随机裁剪,裁剪大小为224 x 224,而缩放大小具有几种方案。。为了进一步扩充训练集,裁剪图像经过随机水平翻转和随机 RGB 颜色偏移。令 S 为等比例缩放后的训练图像的最小边,从中裁剪出卷积神经网络的输入。虽然裁剪尺寸固定为 224 × 224,但原则上可以取任意不小于 224 的值:对于 S = 224,裁剪将捕获整个图像的统计信息,完全跨越训练图像的最小边;对于 S ≫ 224,裁剪将对应于图像的一小部分,包含一个小物体或物体的一部分。

考虑两种设置训练规模的方法。第一种方法是固定 S ,这对应于单尺度训练。评估了在两个固定尺度上训练的模型: S = 256 和 S = 384。给定一个卷积神经网络配置, 首先使用 S = 256 训练网络。为了加速 S = 384 网络的训练, 我们使用 S = 256 预训练的权重对其进行初始化, 并使用 \(10^3\) 的较小初始学习率。设置的第二种方法是多尺度训练, 其中每个训练图像通过从一定范围内随机采样 (使用\(S_{min} = 256\)和\(S_max = 512\))进行单独的重新缩放, 因为图像中的物体可能具有不同的尺寸。这也可以被视为通过尺度抖动进行训练集增强, 其中一个模型被训练来识别各种尺度范围内的物体。出于速度原因, 通过微调具有相同配置的单个尺度模型的所有层来训练多尺度模型, 该模型使用固定的 S = 384 进行预训练。

3.2 测试

在测试时,给定一个训练好的卷积神经网络和一个输入图像, 分类过程如下。首先, 将图像各向同性地重新缩放至预定义的最小图像边长, 记为 Q (我们也将其称为测试尺度)。Q 不一定等于训练尺度 S, 对每个 S 使用多个 Q 值可以提高性能。因为图像没有再经过裁剪,所以缩放到预定义的最小图像边长Q时,图像的尺寸大小并不一致(不管 Q 是否固定,因为图像没有缩放之前尺寸是不一致的,所以即使短边长度缩放到固定的Q值时,图像大小也是不固定的)。这个时候再使用矩阵展开输入到全连接层,矩阵的尺寸是不一样的,所有作者把测试层的所有全连接层全都换成了卷积层(第一个全连接层转换为 7 × 7 卷积层, 最后两个全连接层转换为 1 × 1 卷积层)。然后将得到的全卷积网络应用于整个(未裁剪)图像。

看完说谢谢了吗?哈哈哈~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇