DL学习笔记-GoogLeNet论文阅读

这次阅读我把全部论文读完了,才来写这个笔记,试试这个方式的效果怎么样。
前面的部分作者介绍了他们那时期最近两年的神经网络发展。

1、卷积神经网络通常具有标准的结构:堆叠卷积层(可以选择加上对比归一化和最大池化),然后接上一个或者多个全连接层。最近的趋势是增加层数和层的大小,使用dropout来防止过拟合。虽然最大池化会导致精确的空间信息的丢失,但是可以提取到重要的特征,试验表明这个操作很有效。

2、NIN(network in network)通过添加1x1的卷积层来增加深度,增强了神经网络的表现力。所以作者借鉴他们的做法,不过在GoogLeNet中,1x1的卷积层有两个作用:1、它们主要用作降低模块的维度来消除瓶颈,否则的话会限制网络的规模。这样我们不仅能增加网络深度,而且提高网络的宽度也没有显著的性能损失。

3、最新的目标检测网络是R-CNN,它们将整个检测问题分为两步:1、利用底层提示(如颜色和纹理等)来获得对象的位置。2、用CNN分类器识别这些位置的对象的类别。(这样就能避免无用的计算,可以专注的判断待识别物体),所以作者在测试的时候也使用了这种方法,但是增强了探索的能力:使用了multi-box交叉验证的方法和使用更好的方法对边框内容进行分数预测的方法的组合。

4、提高深度神经网络性能的最直接的方法就是增加深度网络的大小: 包括增加深度(网络层数、宽度),每层的神经元数量。但是这样做有两个缺点: a、会产生更多的参数,会出现过拟合,尤其是当我们的样本数目小的时候。b、参数越多,耗费的计算资源也就更大。单纯的增加网络深度会造成更多的无用信息(比如大多数权值最终为0),所以我们要更有效的利用计算资源。
解决这两个问题的基本方法是引入稀疏性,并且用稀疏元素来代替全连接层。

稀疏结构是非常适合神经网络的一种结构,尤其是对大型、非常深的神经网络,可以减轻过拟合并降低计算量。例如卷积神经网络就是稀疏的连接。 Inception Net的主要目的就是找到最优的稀疏结构单元(即 Inception Module),论文中提到了稀疏结构基于Hebbian原理,这里简单解释一下Hebbian原理:神经反射活动的持续和重复会导致神经元连接稳定性的持久提升,当两个神经元细胞A和B距离很近,并且A参与了对B重复、持续的兴奋,那么某些代谢变化会导致A将作为能使B兴奋的细胞。总结一下就是学习过程中的刺激会使神经元之间的突触强度增加。受Hebbian原理启发,另一篇文章provable bounds for learning some deep representations提出,如果数据集的概率分布可以被一个很大很稀疏的神经网络表示,那么构筑这个网络的方法就是逐层构筑网络: 将上一层 高度相关的节点聚类, 并将聚类出来的每一个小簇连接到一起。

所以一个好的稀疏结构,相关性高的一簇神经元节点是连接在一起的。在普通的数据集中,这可能需要对神经元节点聚类(这不就意味着使用这种方法,可以用来处理非图片类的问题),但是在图片数据中,天然的就是临近区域的数据相关性高,因此相邻的像素点被卷积操作连接在一起。

我们使用卷积层提取较早层数的图像,得到的每个通道对应着图像的一些区域,然后这些区域被再次卷积操作,在网络较深以后,在同一位置空间但是不同通道的卷积核的输出结果相关性非常高。我们用一个1x1的卷积就可以很自然地把这些相关性很高的、在同一空间位置但是不同通道的特征连接在一起。1x1卷积所连接的节点的相关性最高,而稍微大一点尺寸的卷积,比如3*3、5*5的卷积所连接的节点相关性也很高,因此可以适当的使用一些大尺寸的卷积,来增加多样性。Inception Module通过四个分支中不同尺寸的1x1、 3x3、 5x5的卷积将相关性很高的节点连接在一起,构建出符合Hebbian原理的稀疏结构。

因为1x1的卷积是一个非常优秀的结构,它可以跨通道组织信息,提高网络的表达能力,同时可以对输出通道升维和降维。所以在网络中大量的使用了,在Inception module中,在5*5,3*3之前使用1x1,在pool层之后使用1x1,都能很好的整合信息。为了捕捉到更高阶的抽象特征,空间集中度应该逐渐降低,这样可以捕获更大面积的特征。所以越靠后,3*3,5*5这两个大面积的卷积核的占比(输出通道数)应该更多。
使用全局平均池化层(即将图片尺寸变为1x1)来取代全连接层。全连接层占据了大量的参数,而且会引起过拟合,去除全连接层后模型训练更快并且减轻了过拟合。

因为网络较深,所以使用辅助分类器,预测较低网络深度的分类情况,再与最后的输出加权,来防止过拟合,不过后来证明作用不大。

在训练方面,作者使用了几个trick,首先把图片按照最短边缩放到四个比例【256, 288, 320, 352】,然后取左边,中间,右边(在人物图像中是上边,中间和下边)的正方形区间(256*256, 288*288...),然后对取到的图像进行剪切四个角和中心取图,缩放到224*224取图, 还有他们的镜像版本(共4 * 3 * (4+1+1)* 2=144),
在检测时,使用使用了选择性搜索和multi-box的方法,超像素大小扩大了2倍。

总结:
在GoogLeNet V1中主要提出了一个思想:稀疏结构。他们证明了通过像堆积木一样的简单的堆叠卷积层来近似获得最优的稀疏结构,是改进神经网络结构的可行方法,与较浅或较深的网络相比,inception 在计算适度增加的情况下,效果获得了显著的提升。

猜你喜欢

转载自blog.csdn.net/qq_36387683/article/details/80697430
今日推荐