VGG论文学习心得
作者:互联网
一、网络结构
基本概念
如果输入的是一个RGB图像,那么就会有3个通道。“channel”通常被用来描述“layer”的结构。相似的,“kernel”是被用来描述“filter”的结构。
来自 <深度学习中的各种卷积_滤波器>
输入是一个5x5x3的矩阵,有三个通道。filter是一个3x3x3的矩阵。首先,filter中的每个卷积核分别应用于输入层中的三个通道。执行三次卷积,产生3个3x3的通道。
然后,这三个通道相加(矩阵加法),得到一个3x3x1的单通道。这个通道就是在输入层(5x5x3矩阵)应用filter(3x3x3矩阵)的结果。
卷积神经网络大小固定在224*224RGB大小,并对其进行预处理:average(图像像素数据-RGB值),将图片放在卷积神经网络(3*3)里面进行计算,池化是2*2 步长为2,卷积的步长为1
加了两个全连接层 都有4096个神经元 第三个全连接层 输出层有1000个神经元(因为有1000个分类) 最后一个层是soft-max层:把输出转化为概率
每一层用的激活函数是reLU激活函数
LRN:局部响应归一化 此论文认为LRN对模型的优化不会有什么提升 只会增加内存和计算时间,所以没有用到LRN技术
16 weight layers:表示有16层
VGG D\E网络用的比较多 VGG16 VGG19
这些网络用到的全连接层都是一样的 最后soft max输出
中间加了五个最大池化(maxpool)
网络层次比较多 那么他用到的卷积层比较多
Cov3-256:3表示卷积是3*3的窗口 cov1:1表示卷积是1*1的窗口
以D为例 输入都是224*224 用到了两个卷积层cov3-64(64表示生成64个特征图)
做了两个卷积 再做个池化(长宽都变成了原来的二分之一) 在做两个卷积(特征图变成128)
在做一次池化 在做三次卷积…… 特征图的数量越来越多 最后一次池化之后 再加三个全连接层 就有最后的输出结果了
包含权值的层才算层:卷积层和全连接层
这里总共十六个有权值的层 所以是16
最后一个×的是特征图的数量 图里表示的为厚度 越厚代表特征图数量越多
下面那个表为权值图
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训练好的卷积层的参数 作为更深层次网络的卷积层全连接层的 初始化
其中没有经过训练的全连接层 是随机初始化 所有层的学习率都是一样的 允许在学习过程中变化
由于深层次网络不好收敛 所以这么处理
但是提交论文之后发现 其实可以不用这个方法
多尺度训练方式:用多种不同分辨率的图像来做训练(分辨率区间:256-512)目的是为了让模型能识别不同分辨率的图像
测试的时候 由于神经元个数还有全连接层的结构固定 经过多层池化不同分辨率的图最后到全连接层的结果不一样 那么全连接层没有办法链接 所以用到了池化(平均池化或者求和池化)
平均池化:
例如到全连接层是7*7*512 那么相当于是求49个值的平均值 最后得到512个平均值
到全连接层是14*14*512 那么相当于是求14*14个值的平均值 最后得到512个平均值 只要特征值是一样的 最后结构可以固定下来 最后加全连接层就没有问题
三、训练结果
1、评估是固定的 多尺度训练
Top-1:给一个结果 | Top-5:给五个结果 五个结果中有一个结果是对的就算正确 所以结果比top-1低 |
从结果上看 网络层数越多 错误率会越低
这里的384 256都是指固定尺度的训练 后面的384 256是测试的时候图像的尺度的大小
【256;512】是指多尺度训练 可以看到错误率会更低一些
图片分辨率越高 图片错误率也会越低
2、多尺度评估
训练时多尺度或单个 评估时也会变分辨率 结果求平均值
用多尺度评估之后 错误率更低
3、多个剪切窗口
大图片 随机裁剪其中的一个区域 再放到模型里去做预测
测一张图片的时候 会把它变成三个尺寸 每个尺寸裁剪出50个224*244的窗口 每个尺寸会得到50个结果 对结果做平均
dense:表示不裁剪 直接放进去
Multi-crop:裁剪 用了之后效果更好一些
最好的是两个一起用
4、模型的集成
最后一行的集成方法 用了multi-crop dense效果最好
5、如果只能使用一个网络 那么VGG19是冠军(第二行) 但是允许集成网络 所以googlenet集成七个网络的效果最好 获胜(第五行黑体)
四、结论
网络深度越多 层次越多 效果越好
标签:VGG,训练,卷积,论文,学习心得,池化,512,256,连接 来源: https://blog.csdn.net/qq_39421203/article/details/122702142