机器学习笔记:inceptionV1 inceptionV2
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习笔记:inceptionV1 inceptionV2相关的知识,希望对你有一定的参考价值。
1 inception V1
2015 CVPR
Going deeper with convolutions
1.1 naive version
用多个尺度的卷积核组合来获得不同大小的感受野,最后拼接成不同尺度的融合,来近似局部最优的结构;
- 卷积核大小为1,3,5。设定卷积步长为1之后,只要设定填充为0,1,2,那么三个卷积得到的输出就是相同的维度,那么就可以直接来求和
1.2 使用1*1卷积降维后的版本
- 使用1*1卷积来减少参数量
- 举个例子,原先输入维度为100*100*128,我们如果直接使用256个5*5的卷积(步长1,填充2),那么此时需要的参数量为128*5*5*256=819200
- 如果我们先接32个1*1的卷积层,在经过256个5*5的卷积层,那么得到的输出维度还是100*100*256,但此时的参数量为128x1x1x32+32x5x5x256=208896,比819200小很多
1.2.1 网络分析
- 第一个卷积层输入数据为 224x224x3,卷积核为 7x7,步长为 2,填充为 3
- 输出维度:112x112×64
- 经过 3x3 Max pooling, 步长为 2,填充为 1,
- 输出维度56x56×64
- 第二、第三个卷积先通过1*1卷积降维,再通过3*3卷积,步长为1,填充为1
- 1*1卷积后输出 56×56×64
- 输出维度56×56×192
- 经过3x3Max pooling, 步长为 2,填充为 1
- 输出维度为28×28×192
- 第一个inception模块
- 第一条支线(1*1卷积层)
- 输出维度28×28×64
- 第二条直线(3*3卷积层)
- 不用1*1 卷积降维
- 步长1,填充1
- 输出维度28×28×128
- 使用1*1卷积降维
- 1*1卷积后:28×28×96
- 3*3卷积后:输出维度28×28×128
- 不用1*1 卷积降维
- 第三条支线(5*5卷积层)
- 不用1*1卷积降维
- 步长1填充2
- 输出维度28*28*32
- 使用1*1卷积
- 1*1卷积后 28*28*16
- 5*5卷积后:输出维度28*28*32
- 使用3*3池化
- 输出维度28*28*32
- 不用1*1卷积降维
- 总的inception模块输出为 28*28*256(四条支线拼接)
- 第一条支线(1*1卷积层)
- 之后的类似
2 Inception V1+
Batch Normalization: Accelerating Deep Network Training b y Reducing Internal Covariate Shift
2015ICML
inception V1+batch normalization
机器学习笔记:神经网络层的各种normalization_UQI-LIUWJ的博客-CSDN博客
3 inception V2
2016cvpr
Rethinking the Inception Architecture for Computer Vision
3.1 用两个3*3卷积代替5*5卷积
- 两次3*3:
- 一次5*5
原来的inception V1
替换之后的inception V2:
3.2 将n*n卷积替换成n*1卷积和1*n卷积
进一步将3.1的改进替换
论文中说,一开始使用这个效果并不好,但当grid的大小m在12~20之间时,使用这种形式是比较好的
3.3 第三种模块
用在grid更小的时候(差不多是8的时候),其中无论是
3.4 整体inception V2
- 没写padded的conv不需要padding,写了padded的conv的padding=1
- 根据是否需要改变shape的大小,决定inception里面各个模块的padding大小
以上是关于机器学习笔记:inceptionV1 inceptionV2的主要内容,如果未能解决你的问题,请参考以下文章
机器学习笔记:inceptionV1 inceptionV2
InceptionV1----naive Inception Module