美文网首页tensorflow相关GoogleNet
GoogLeNet的心路历程(四)

GoogLeNet的心路历程(四)

作者: Traphix | 来源:发表于2016-07-28 17:09 被阅读3637次

本文主要介绍GoogLeNet续作二,inception v3。说实话,Szegedy这哥们真的很厉害,同一个网络他改一改就改出了4篇论文,这是其中第3篇,还有个inception v4。

随着Szegedy研究GoogLeNet的深入,网络的复杂度也逐渐提高,到了inception v3,它的复杂度已经到了普通玩家望而却步的境界,内部结构实在是太乱了,不得不佩服作者。

论文做出的贡献主要有4个:

  • 1、分解大filters,使其小型化、多层化,其中有个“非对称卷积”很新颖
  • 2、优化inception v1的auxiliary classifiers
  • 3、提出一种缩小特征图大小的方法,说白了就是一种新的、更复杂的pooling层
  • 4、Label smooth,“标签平滑”,很难用中文说清楚的一种方法

Szegedy还把一段时间内的科研心得总结了一下,在论文里写了4项网络设计基本原则:

  • 1、尽量避免representational bottlenecks,这种情况一般发生在pooling层,字面意思是,pooling后特征图变小了,但有用信息不能丢,不能因为网络的漏斗形结构而产生表达瓶颈,解决办法是上面提到的贡献3
  • 2、采用更高维的表示方法能够更容易的处理网络的局部信息,我承认前面那句话是我硬翻译的,principle 2我确实不太明白
  • 3、把大的filters拆成几个小filters叠加,不会降低网络的识别能力,对应上面的贡献1
  • 4、把握好网络深度和宽度的平衡,这个原则说了等于没说

下面分析一下论文的4个贡献:

一、Filter分解


其实大filters拆解成若干小filters叠加的方法已经在VGG里提过了,inception v3更进了一步,提出了“非对称卷积”,我在非对称卷积—Asymmetric Convolutions一文中分析过一些,在这里就不展开介绍了,概念很简单,一看就懂那种类型。

二、优化auxiliary classifiers


GoogLeNet首次提出了auxiliary classifiers,效果还行,我之前在这里介绍过。Szegedy同志在过了一年多后,又看了看这个tech,他发现有点问题:auxiliary classifiers在训练初期的时候并不能加速收敛,只有当训练快结束的时候它才会略微提高网络精度。

Auxiliary Classifiers

然后Szegedy就把第一个auxiliary classifiers去掉了!还说,auxiliary classifiers能够起到regularizer的作用,完全不知所云,以后有机会再看。原文如下:

Instead, we argue that the auxiliary classifiers act as regularizer. This is supported by the fact that the main classifier of the network performs better if the side branch is batch-normalized or has a dropout layer. This also gives a weak supporting evidence for the conjecture that batch normalization acts as a regularizer.

三、新的pooling层


按照传统的做法,在pooling之前,为了防止信息丢失,应当加入了expand层,如下图右半部分。

Unefficient grid size reduction

这么做有个问题,会增加运算量,于是Szegedy就想出了下面这种pooling层。

Efficient grid size reduction

是不是很复杂?想不到pooling也能玩儿出这么多花样。

上图可以这么理解,Szegedy利用了两个并行的结构完成grid size reduction,分别是conv和pool,就是上图的右半部分。左半部分是右半部分的内部结构。

为什么这么做?我是说这种结构是怎么设计出来的?Szegedy只字不提,或许这就是深度学习的魅力所在吧。

四、Label smooth


Szegedy用了将近一页的篇幅叙述label smooth,可见这个方法有多么难理解。

深度学习用的labels一般都是one hot向量,用来指示classifier的唯一结果,这样的labels有点类似信号与系统里的脉冲函数,或者叫“Dirac delta”,即只在某一位置取1,其它位置都是0。

Labels的脉冲性质会引发两个不良后果:一是over-fitting,另外一个是降低了网络的适应性。这段话我实在没看懂,附上原文:

First, it may result in over-fitting: if the model learns to assign full probability to the groundtruth label for each training example, it is not guaranteed to generalize. Second, it encourages the differences between the largest logit and all others to become large, and this, combined with the bounded gradient, reduces the ability of the model to adapt.

Szegedy在阐述完上面两个缺点后,补充了一句话,说不良后果的产生就是因为网络对它预测的东西太自信了。完全没搞懂。

Intuitively, this happens because the model becomes too confident about its predictions.

我想起来一个美国签证官曾经跟我说过的话:“他看学术论文的时候,每个单词都认识,但所有单词拼到一起的时候,就蒙圈了。”

好了,先不管这么多,这个label smooth具体是怎么实现的?就是下式:

label smooth

为了方便理解,转换成python代码,就是这样的:

new_labels = (1.0 - label_smoothing) * one_hot_labels + label_smoothing / num_classes

Szegedy在网络实现的时候,令 label_smoothing = 0.1,num_classes = 1000。Label smooth提高了网络精度0.2%。

我对Label smooth理解是这样的,它把原来很突兀的one_hot_labels稍微的平滑了一点,枪打了出头鸟,削了立于鸡群那只鹤的脑袋,分了点身高给鸡们,避免了网络过度学习labels而产生的弊端。

相关文章

网友评论

  • 3b6bbda73426:最近在看inception-v1-4论文,很多大神在Label smooth上都说理解不是很明白。
    渣渣学渣分享下曾经神经网络(sigmoid激活层,两层,可拟合任意函数)源码建模分类:
    当时发现,如果未加正则,onehot模型,不管如何初始化权重,只要经过一定量(有限次)迭代,target=1,预测值很接近1(如,0.999);target=0,预测值基本小于1e-3;
    又因为多层神经网络可拟合任意函数,所以在有限次迭代后,训练集总能“完美”拟合(overfitting),过渡自信了;
    之前也看了word2vec源码,在负采样方法,会随机丢target词周围的高频词,提高robust;
    同时sigmoid函数,大于6或小于-6,基本就等于1或0。因此在多次迭代的时候,神经网络会更关注分割面附近的点,无限去拟合(类似svm在C取值很大时候,可做线性回归),因为远离分割超平面的,结果只要w*x为inf或-inf,即可sigmoid(softmax类似)分类出1或0。所以需l2正则;
    Label smooth,我想也是类似这样吧。在网络很深后,即使有pooling、dropout等提高的模型的robust,还是很容易overfitting,因为网络太深了;
    所以,onehot分类:target=0,如果最后一层隐藏权重与该层的输入层内积的结果为-inf(ReLU后为0)或接近0,在经过最后输出层内积后,很容易为0;target=1,经过最后一层隐藏层值很大,再经过输出,最后再softmax后,自然与目标分类很接近;
    如果onehot不是0,1类型,ReLU就不会作用于0分类,增强robust。(感觉勉强的解析[捂脸])
  • 9c0ecdf615c9:关于principle 2,我有独特的理解方式:夕阳度西岭...
    啊不,是这样的。
    比如一个卷积层,它里面只有三个卷积核,也就是维度是3,让他们去描述这个局部特征,啊累死啦!臣妾做不到啊!
    但是如果卷积层里有128个卷积核(维度是128),第一个描述特征1,第二个描述特征2...轻松愉快!
    所以说维度更高,局部特征描述更好!

本文标题:GoogLeNet的心路历程(四)

本文链接:https://www.haomeiwen.com/subject/farajttx.html