天天看点

GoogLeNet入门学习

GoogLeNet(从Inception v1到v4演进)

Inception v1收获:

  1. 提升网络性能最直接的办法:提高网络的深度和宽度(深度指网络层次数量、宽度指神经元数量),但是会有几个问题:

    1)参数太多,如果训练数据集有限,很容易产生过拟合

    2)网络越大、参数越多,计算复杂度越大,难以应用

    3)网络越深,容易出现梯度弥散问题(梯度越往后穿越容易消失),难以优化模型

  2. 1*1的卷积核 的主要目的是减少维度
  3. 卷积层是能提取到图像特征
  4. ReLU,增加网络的非线性
  5. max pooling,通道数不变
  6. Inception是一个模块化结构,一层分为4个分支,通过设置卷积核大小,使得最后4个分支输出的大小一样(通道数不一样),然后对4个结果进行连接,对这4部分输出结果的第三维(通道)并联(直接将通道数相加)
  7. Inception的输入和输出大小一样,只有通道数不一样

Inception v2收获:

  1. 大尺寸的卷积核,会产生更多的参数,

    5*5

    的卷积核的参数有25个,

    3*3

    的卷积核参数9个。因此,用2个连续的

    3*3

    卷积层组成的小网络代替单个

    5*5

    的卷积层,即在保持感受野范围的同时也减少了参数量
  2. 任意nxn的卷积都可以通过1xn卷积后接nx1卷积来替代。在网络的前期使用这种分解效果并不好,在中度大小的特征图(feature map)上使用效果才会更好(特征图大小建议在12到20之间)

Inception v3收获:

  1. 分解(Factorization),将7x7分解成两个一维的卷积(1x7,7x1),3x3也是一样(1x3,3x1),这样的好处,既可以加速计算,又可以将1个卷积拆成2个卷积,使得网络深度进一步增加,增加了网络的非线性(每增加一层都要进行ReLU)

Inception v4收获:

  1. 研究了Inception模块与残差连接(Residual Connection)的结合

卷积层输出维度公式

收获:

  1. 输出图片大小=(输入图片大小-卷积核大小+2×padding)/stride+1
  2. 重要的是理解为什么

继续阅读