VGG论文学习心得

一、网络结构

基本概念

如果输入的是一个RGB图像,那么就会有3个通道。“channel”通常被用来描述“layer”的结构。相似的,“kernel”是被用来描述“filter”的结构。

来自 <深度学习中的各种卷积_滤波器>

VGG论文学习心得VGG论文学习心得

VGG论文学习心得

输入是一个5x5x3的矩阵,有三个通道。filter是一个3x3x3的矩阵。首先,filter中的每个卷积核分别应用于输入层中的三个通道。执行三次卷积,产生3个3x3的通道。

然后,这三个通道相加(矩阵加法),得到一个3x3x1的单通道。这个通道就是在输入层(5x5x3矩阵)应用filter(3x3x3矩阵)的结果。

VGG论文学习心得

卷积神经网络大小固定在224*224RGB大小,并对其进行预处理:average(图像像素数据-RGB值),将图片放在卷积神经网络(3*3)里面进行计算,池化是2*2 步长为2,卷积的步长为1

加了两个全连接层 都有4096个神经元 第三个全连接层 输出层有1000个神经元(因为有1000个分类) 最后一个层是soft-max层:把输出转化为概率

每一层用的激活函数是reLU激活函数

LRN:局部响应归一化 此论文认为LRN对模型的优化不会有什么提升 只会增加内存和计算时间,所以没有用到LRN技术

VGG论文学习心得

16 weight layers:表示有16层

VGG D\E网络用的比较多 VGG16 VGG19

这些网络用到的全连接层都是一样的 最后soft max输出

VGG论文学习心得

中间加了五个最大池化(maxpool)

VGG论文学习心得

网络层次比较多 那么他用到的卷积层比较多

Cov3-256:3表示卷积是3*3的窗口 cov1:1表示卷积是1*1的窗口

以D为例    输入都是224*224 用到了两个卷积层cov3-64(64表示生成64个特征图)

做了两个卷积 再做个池化(长宽都变成了原来的二分之一) 在做两个卷积(特征图变成128)

在做一次池化 在做三次卷积…… 特征图的数量越来越多 最后一次池化之后 再加三个全连接层 就有最后的输出结果了

VGG论文学习心得

VGG论文学习心得

包含权值的层才算层:卷积层和全连接层

这里总共十六个有权值的层 所以是16

最后一个×的是特征图的数量 图里表示的为厚度 越厚代表特征图数量越多

下面那个表为权值图

VGG论文学习心得

E为144表示有144millions的权值要训练

本论文提出来的跟googlenet的相似之处都是使用了很深层次的卷积网络 有很多层 googlenet有22层 卷积有3*3 1*1 5*5的卷积 与VGG16的结构有些不一样
 

二、训练参数

Batch大小256

动量:0.9 与权值调整有关系

正则化:用的是L2正则化 正则化系数5*10的-4次方

前两个全连接层使用到了dropout  dropout的参数设置为0.5

学习率的初始值为10的-2次方 会一边训练一边减少 当准确率不再提高时 学习率会减小1/10 总体学习过程中 学习率一共减少了三次 总共进行了37万次训练(74个周期:意思是所有的训练集训练了74次)

预训练方式:

先训练A(11层) 比较容易训练 参数随机初始化 正态分布的随机初始化 均值为0 方差为10的-2次方 偏值初始化为0

训练更深层次的网络时 他们使用的是A训练好的卷积层的参数 作为更深层次网络的卷积层全连接层的 初始化

其中没有经过训练的全连接层 是随机初始化 所有层的学习率都是一样的 允许在学习过程中变化

由于深层次网络不好收敛 所以这么处理

但是提交论文之后发现 其实可以不用这个方法

VGG论文学习心得

多尺度训练方式:用多种不同分辨率的图像来做训练(分辨率区间:256-512)目的是为了让模型能识别不同分辨率的图像

 测试的时候 由于神经元个数还有全连接层的结构固定 经过多层池化不同分辨率的图最后到全连接层的结果不一样 那么全连接层没有办法链接 所以用到了池化(平均池化或者求和池化)

平均池化:

例如到全连接层是7*7*512 那么相当于是求49个值的平均值 最后得到512个平均值
到全连接层是14*14*512 那么相当于是求14*14个值的平均值 最后得到512个平均值 只要特征值是一样的 最后结构可以固定下来 最后加全连接层就没有问题

三、训练结果

1、评估是固定的 多尺度训练

VGG论文学习心得

Top-1:给一个结果

Top-5:给五个结果 五个结果中有一个结果是对的就算正确 所以结果比top-1低

从结果上看 网络层数越多 错误率会越低

这里的384 256都是指固定尺度的训练  后面的384 256是测试的时候图像的尺度的大小

【256;512】是指多尺度训练 可以看到错误率会更低一些

图片分辨率越高 图片错误率也会越低

2、多尺度评估

训练时多尺度或单个 评估时也会变分辨率 结果求平均值

VGG论文学习心得

用多尺度评估之后 错误率更低

3、多个剪切窗口

大图片 随机裁剪其中的一个区域 再放到模型里去做预测

测一张图片的时候 会把它变成三个尺寸 每个尺寸裁剪出50个224*244的窗口  每个尺寸会得到50个结果 对结果做平均

VGG论文学习心得

dense:表示不裁剪 直接放进去

Multi-crop:裁剪 用了之后效果更好一些

最好的是两个一起用

4、模型的集成

VGG论文学习心得

最后一行的集成方法 用了multi-crop dense效果最好

5、如果只能使用一个网络 那么VGG19是冠军(第二行) 但是允许集成网络 所以googlenet集成七个网络的效果最好 获胜(第五行黑体)

VGG论文学习心得

四、结论

网络深度越多 层次越多 效果越好

上一篇:多路复用


下一篇:ramdisk配置、解压、创建rootfs、启动简单分析