智能图像识别初探系列(四)
作者头像
  • 玲玲成敏
  • 2022-06-08 19:50:06 7

提升模型性能

在之前的文章中,我们探讨了AlexNet的优缺点,特别是提到过拟合问题。过拟合是神经网络常见的问题之一,而AlexNet通过数据扩充和Dropout技术来缓解这个问题。

数据扩充

数据扩充是一种简单的防止过拟合的方法。通过对原始数据进行适当的变换,可以获得更多的多样化数据,从而避免模型过拟合。

Dropout

Dropout通过在全连接层中随机丢弃一些神经元,从而达到防止过拟合的效果。从图中可以看到,在AlexNet的第六层和第七层中均采用了Dropout技术。

VGGNet结构

VGGNet提出了更深层的网络结构,并通过实验发现,在一定范围内,网络越深性能越好。VGGNet有两种主要结构,分别是16层和19层。

VGGNet中的所有卷积层均使用3x3的小卷积核,步长为1。此外,VGGNet不仅使用卷积层,还通过“卷积组”进行组合,每个卷积组包含2-4个3x3卷积层。有时也会加入1x1卷积层,这使得网络更深,从而学习到更复杂的非线性关系,进一步提高模型效果。

在池化层方面,VGGNet使用2x2的最大池化层。在全图像测试时,VGGNet将全连接层转换为全卷积层,以重用训练时的参数,使测试时可以接受任意尺寸的输入。

VGGNet的一个显著特点是其特征图的空间分辨率逐渐减小,通道数逐渐增加。这种结构有助于将原始图像(HxWx3)转换为最终输出(1x1xC)。VGGNet中最常用的版本是VGG-16和VGG-19。

GoogleNet结构

接下来介绍的是GoogLeNet,这是由谷歌公司提出的一种深度网络结构。之所以命名为“GoogLeNet”,据说是为向“LeNet”致敬。

2014年,GoogLeNet和VGGNet在ImageNet挑战赛中表现出色,GoogLeNet获得冠军,VGGNet获得亚军。这两款模型的共同特点是网络深度更大。VGGNet继承了LeNet和AlexNet的结构,而GoogLeNet则进行了更为大胆的设计,尽管它的深度只有22层,但其参数量远小于AlexNet和VGGNet。具体来说,GoogLeNet的参数量约为500万个,而AlexNet的参数量是GoogLeNet的12倍,VGGNet的参数量则是AlexNet的3倍。因此,在计算资源有限的情况下,GoogLeNet是一个不错的选择。

增加模型深度或宽度虽然有助于提升模型质量,但也可能带来参数过多、计算复杂度大、梯度消失等问题。解决这些问题的关键在于将全连接层甚至卷积层转化为稀疏连接。

GoogLeNet团队提出的Inception结构旨在构建一种既稀疏又高效计算的网络结构。Inception结构的核心思想是将不同尺度的特征进行聚类,以减少计算量。例如,将256个均匀分布在3x3尺度的特征转换为多个不同尺度的聚类,如96个1x1、96个3x3和64个5x5,这可以提高计算效率和收敛速度。为了避免计算量过大,在3x3和5x5卷积前以及最大池化后,分别加入了1x1卷积核,以减少特征图的厚度。

1x1卷积核的主要作用是减少维度和修正线性激活。例如,假设输入为100x100x128,经过256个通道的5x5卷积层后,输出数据为100x100x256,其中卷积层参数量为128x5x5x256=819200。如果先经过32个通道的1x1卷积层,再经过256个通道的5x5卷积层,输出数据仍为100x100x256,但参数量减少到128x1x1x32 + 32x5x5x256=204800,大约减少了4倍。

除了Inception结构,GoogLeNet的另一个特点是主干网络部分全部使用卷积层,仅在最终分类部分使用全连接层。

    本文来源:图灵汇
责任编辑: : 玲玲成敏
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
初探识别图像智能系列
    下一篇