GoogLeNet由Christian Szegedy等开发并在2014年ImageNet ILSVRC挑战赛冠军,论文:Going Deeper With Convolutions(点击下载),为了致敬卷积神经网络的鼻祖LeNet-5,GoogLeNet将L字母大写。
GoogLeNet相比于以往的卷积神经网络其深度更深,同时在网络中添加了inception的结构,这使得GoogLeNet更加有效地使用参数,GoogLeNet参数量比AlexNet少10倍左右。
Inception结构
下图所示为Inception结构:
如上图所示为Inception结构,其中:
- 3x3+1(S)表示该层使用3x3的卷积核,步长为1,使用same填充(padding)
- 输入被拷贝四份,然后分别进行不同的卷积或池化操作
- 上图中所有的卷积层都使用ReLU激活函数
- 使用不同大小的卷积核就是为了能够在不同尺寸上捕获特征模式
- 由于所有卷积层和池化层都使用了same填充和步长为1的操作,因此输出尺寸与输入尺寸相等
- 最终将四个结果在深度方向上进行拼接
- 使用1x1大小卷积核是为了增加更多的非线性
GoogLeNet架构
- 如上图所示,卷积核前面的数字是卷积核或池化核的个数,也就是输出特征图的个数。
- GoogLeNet总共包括9个Inception结构(黄色矩形),黄色矩形中的6个数字分别代表Inception结构中卷积层的输出特征图个数。
- 所有卷积层都使用ReLU激活函数。
- 全局平均池化层输出每个特征图的平均值,
之后由Google的研究者发布了Inception-v3,Inception-v4等版本,获得了更好的效果。