【深度学习】GoogLeNet系列解读 —— Inception v4


目录

GoogLeNet系列解读

Inception v1

Inception v2

Inception v3

Inception v4


简介

在介绍Inception v4之前,首先说明一下Inception v4没有使用残差学习的思想。大部分小伙伴对Inception v4存在一个误解,认为它是Inception module与残差学习的结合,其实并不是这样,Inception v4基本延续了Inception v2/v3的结构,而出自同一篇论文的Inception-Resnet-v1和Inception-Resnet-v2才是Inception module与残差学习的结合产物。

2015年何凯明大神提出残差连接的思想,证明了残差连接对于构建深层网络的重要性,并且在识别精度和训练速度上都有了很大的提升。那么是不是可以将残差连接的思想和Inception module结合呢?Inception-Resnet-v1和Inception-Resnet-v2就是在这个背景下被提出来。Inception-ResNet和Inception v4网络结构都是基于Inception v3的改进。

论文链接:Inception-v4, inception-resnet and the impact of residual connections on learning


网络结构

下面为Inception v4中的三个基本模块:

【深度学习】GoogLeNet系列解读 —— Inception v4_第1张图片

对上图进行说明:

1. 左图是基本的Inception v2/v3模块,使用两个3x3卷积代替5x5卷积,并且使用average pooling,该模块主要处理尺寸为35x35的feature map;

2. 中图模块使用1xn和nx1卷积代替nxn卷积,同样使用average pooling,该模块主要处理尺寸为17x17的feature map;

3. 右图在原始的8x8处理模块上将3x3卷积用1x3卷积和3x1卷积。 

总的来说,Inception v4中基本的Inception module还是沿袭了Inception v2/v3的结构,只是结构看起来更加简洁统一,并且使用更多的Inception module,实验效果也更好。

下图左图为Inception v4的网络结构,右图为Inception v4的Stem模块:

【深度学习】GoogLeNet系列解读 —— Inception v4_第2张图片


Inception-ResNet

本节将介绍和Inception v4同一篇文章的两个Inception-ResNet结构:Inception-Resnet-v1和Inception-Resnet-v2。

残差连接是指浅层特征通过另外一条分支加到高层特征中,达到特征复用的目的,同时也避免深层网路的梯度弥散问题。下图为一个基本的残差结构:

【深度学习】GoogLeNet系列解读 —— Inception v4_第3张图片

Inception-Resnet-v1

Inception-Resnet-v1基本模块:

【深度学习】GoogLeNet系列解读 —— Inception v4_第4张图片

对上图进行说明:

1. Inception module都是简化版,没有使用那么多的分支,因为identity部分(直接相连的线)本身包含丰富的特征信息;

2. Inception module每个分支都没有使用pooling;

3. 每个Inception module最后都使用了一个1x1的卷积(linear activation),作用是保证identity部分和Inception部分输出特征维度相同,这样才能保证两部分特征能够相加。

Inception-Resnet-v1网络结构(左),右图为Inception-Resnet-v1的Stem模块:

【深度学习】GoogLeNet系列解读 —— Inception v4_第5张图片

Inception-Resnet-v2

Inception-Resnet-v2基本模块:

【深度学习】GoogLeNet系列解读 —— Inception v4_第6张图片

Inception-Resnet-v2网络结构 :

Inception-Resnet-v2网络结构同Inception-Resnet-v1,Stem模块同Inception v4

你可能感兴趣的:(keras,深度学习,深度学习)