论文部分内容阅读
摘 要:图像分类是计算机视觉的核心,对其他视觉任务起到了先驱任务。本文采用了VGG-11网络完成对Fashion-mnist数据集分类。对于给定的感受野采用堆积的小卷积核是优于采用大的卷积核,多层非线性层增加网络深度来保证学习更复杂的模式,而且代价还比较小。
关键词:图像分类;VGG;Fashion-mnist
1.引言
物体分类与检测的研究,是整个计算机视觉研究的基石,是解决跟踪、分割、场景理解等其他复杂视觉问题的基础。欲对实际复杂场景进行自动分析与理解,首先就需要确定图像中存在什么物体(分类问题),或者是确定图像中什么位置存在什么物体(检测问题)。鉴于物体分类与检测在计算机视觉领域的重要地位,研究鲁棒、准确的物体分类与检测算法,无疑有着重要的理论意义和实际意义。随着深度学习的广泛应用,出现了很多著名的深度网络。LeNet是一个早期用来识别手写数字图像的卷积神经网络,卷积层块里的基本单位是卷积层后接最大池化层:卷积层用来识别图像里的空间模式,如線条和物体局部,之后的最大池化层则用来降低卷积层对位置的敏感性。卷积层块由两个这样的基本单位重复堆叠构成。在卷积层块中,每个卷积层都使用5×5的窗口,并在输出上使用sigmoid激活函数。AlexNet第一层中的卷积窗口形状是11×1111×11。因为ImageNet中绝大多数图像的高和宽均比MNIST图像的高和宽大10倍以上,ImageNet图像的物体占用更多的像素,所以需要更大的卷积窗口来捕获物体。第二层中的卷积窗口形状减小到5×5,之后全采用3×3。此外,第一、第二和第五个卷积层之后都使用了窗口形状为3×3、步幅为2的最大池化层。而且,AlexNet使用的卷积通道数也大于LeNet中的卷积通道数数十倍。AlexNet将sigmoid激活函数改成了更加简单的ReLU激活函数。一方面,ReLU激活函数的计算更简单,例如它并没有sigmoid激活函数中的求幂运算。另一方面,ReLU激活函数在不同的参数初始化方法下使模型更容易训练。本文使用的VGG网络[1]可以通过重复使用简单的基础块来构建深度模型,连续使用数个相同的填充为1、窗口形状为3×3的卷积层后接上一个步幅为2、窗口形状为2×2的最大池化层。卷积层保持输入的高和宽不变,而池化层则对其减半。
2.VGG网络
2.1 VGG原理
VGGNet全部使用3*3的卷积核和2*2的池化核,通过不断加深网络结构来提升性能。网络层数的增长并不会带来参数量上的爆炸,因为参数量主要集中在最后三个全连接层中。同时,两个3*3卷积层的串联相当于1个5*5的卷积层,3个3*3的卷积层串联相当于1个7*7的卷积层,即3个3*3卷积层的感受野大小相当于1个7*7的卷积层。但是3个3*3的卷积层参数量只有7*7的一半左右,同时前者可以有3个非线性操作,而后者只有1个非线性操作,这样使得前者对于特征的学习能力更强。
使用1*1的卷积层来增加线性变换,输出的通道数量上并没有发生改变。这里提一下1*1卷积层的其他用法,1*1的卷积层常被用来提炼特征,即多通道的特征组合在一起,凝练成较大通道或者较小通道的输出,而每张图片的大小不变。有时1*1的卷积神经网络还可以用来替代全连接层。
2.2Batch Normalization原理
批量归一化[2]的提出正是为了应对深度模型训练的挑战。在模型训练时,批量归一化利用小批量上的均值和标准差,不断调整神经网络中间输出,从而使整个神经网络在各层的中间输出的数值更稳定。通常批量归一化层置于全连接层中的仿射变换和激活函数之间。设全连接层的输入为μ,权重参数和偏差参数分别为w和b,激活函数为φ。设批量归一化的运算符为BN。那么,使用批量归一化的全连接层的输出为:
φ(BN(x)〕
其中批量归一化输入x由仿射变换:
x=Wu+b
得到。考虑一个由m个样本组成的小批量,仿射变换的输出为一个新的小批量β={x(1),…,x(m)}。它们正是批量归一化层的输入。对于小批量β中任意样本xi∈Ri,批量归一化层的输出同样是d维向量:
yi=BN(xi)
并由以下几步求得。首先,对小批量B求均值和方差:
其中的平方计算是按元素求平方。接下来,使用按元素开方和按元素除法对x(i〕标准化:
这里?>0是一个很小的常数,保证分母大于0。在上面标准化的基础上,批量归一化层引入了两个可以学习的模型参数,拉伸参数 γ 和偏移参数 β。这两个参数和x(i)形状相同,皆为d维向量。它们与x(i)分别做按元素乘法(符号⊙)和加法计算:
至此,我们得到了 的批量归一化的输出yi。
2.3网络结构
VGG11网络结构如图所示,其中基本结构是一个或两个3*3的卷积核后面跟一个池化层,紧接着跟上一个Batch Normalization层,本文之所以把BN层加在池化层之后,而不是加在卷积层之后池化层之前,是因为网络较浅,梯度消失或梯度爆炸现象不容易发生,加在池化层后计算量将会减少。
3.总结
VGG网络通过重复使用简单的基础块来构建深度模型,连续使用数个相同窗口形状为3×3的卷积层后接上一个窗口形状为2×2的最大池化层。卷积层保持输入的高和宽不变,而池化层则对其减半。在Fashion-mnist数据集上,把BN层加在池化层之后十分有效。
参考文献:
[1].Smirnov E, Timoshenko D, Andrianov S, et al. Comparison of Regularization Methods for ImageNet Classification with Deep Convolutional Neural Networks[J]. AASRI Procedia, 2014: 89-94.
[2].Ioffe S, Szegedy C. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift[J]. international conference on machine learning, 2015: 448-456.
作者简介:李星星;1991.4;男;江西九江;广州工商学院;无 ;模式识别与图像处理
关键词:图像分类;VGG;Fashion-mnist
1.引言
物体分类与检测的研究,是整个计算机视觉研究的基石,是解决跟踪、分割、场景理解等其他复杂视觉问题的基础。欲对实际复杂场景进行自动分析与理解,首先就需要确定图像中存在什么物体(分类问题),或者是确定图像中什么位置存在什么物体(检测问题)。鉴于物体分类与检测在计算机视觉领域的重要地位,研究鲁棒、准确的物体分类与检测算法,无疑有着重要的理论意义和实际意义。随着深度学习的广泛应用,出现了很多著名的深度网络。LeNet是一个早期用来识别手写数字图像的卷积神经网络,卷积层块里的基本单位是卷积层后接最大池化层:卷积层用来识别图像里的空间模式,如線条和物体局部,之后的最大池化层则用来降低卷积层对位置的敏感性。卷积层块由两个这样的基本单位重复堆叠构成。在卷积层块中,每个卷积层都使用5×5的窗口,并在输出上使用sigmoid激活函数。AlexNet第一层中的卷积窗口形状是11×1111×11。因为ImageNet中绝大多数图像的高和宽均比MNIST图像的高和宽大10倍以上,ImageNet图像的物体占用更多的像素,所以需要更大的卷积窗口来捕获物体。第二层中的卷积窗口形状减小到5×5,之后全采用3×3。此外,第一、第二和第五个卷积层之后都使用了窗口形状为3×3、步幅为2的最大池化层。而且,AlexNet使用的卷积通道数也大于LeNet中的卷积通道数数十倍。AlexNet将sigmoid激活函数改成了更加简单的ReLU激活函数。一方面,ReLU激活函数的计算更简单,例如它并没有sigmoid激活函数中的求幂运算。另一方面,ReLU激活函数在不同的参数初始化方法下使模型更容易训练。本文使用的VGG网络[1]可以通过重复使用简单的基础块来构建深度模型,连续使用数个相同的填充为1、窗口形状为3×3的卷积层后接上一个步幅为2、窗口形状为2×2的最大池化层。卷积层保持输入的高和宽不变,而池化层则对其减半。
2.VGG网络
2.1 VGG原理
VGGNet全部使用3*3的卷积核和2*2的池化核,通过不断加深网络结构来提升性能。网络层数的增长并不会带来参数量上的爆炸,因为参数量主要集中在最后三个全连接层中。同时,两个3*3卷积层的串联相当于1个5*5的卷积层,3个3*3的卷积层串联相当于1个7*7的卷积层,即3个3*3卷积层的感受野大小相当于1个7*7的卷积层。但是3个3*3的卷积层参数量只有7*7的一半左右,同时前者可以有3个非线性操作,而后者只有1个非线性操作,这样使得前者对于特征的学习能力更强。
使用1*1的卷积层来增加线性变换,输出的通道数量上并没有发生改变。这里提一下1*1卷积层的其他用法,1*1的卷积层常被用来提炼特征,即多通道的特征组合在一起,凝练成较大通道或者较小通道的输出,而每张图片的大小不变。有时1*1的卷积神经网络还可以用来替代全连接层。
2.2Batch Normalization原理
批量归一化[2]的提出正是为了应对深度模型训练的挑战。在模型训练时,批量归一化利用小批量上的均值和标准差,不断调整神经网络中间输出,从而使整个神经网络在各层的中间输出的数值更稳定。通常批量归一化层置于全连接层中的仿射变换和激活函数之间。设全连接层的输入为μ,权重参数和偏差参数分别为w和b,激活函数为φ。设批量归一化的运算符为BN。那么,使用批量归一化的全连接层的输出为:
φ(BN(x)〕
其中批量归一化输入x由仿射变换:
x=Wu+b
得到。考虑一个由m个样本组成的小批量,仿射变换的输出为一个新的小批量β={x(1),…,x(m)}。它们正是批量归一化层的输入。对于小批量β中任意样本xi∈Ri,批量归一化层的输出同样是d维向量:
yi=BN(xi)
并由以下几步求得。首先,对小批量B求均值和方差:
其中的平方计算是按元素求平方。接下来,使用按元素开方和按元素除法对x(i〕标准化:
这里?>0是一个很小的常数,保证分母大于0。在上面标准化的基础上,批量归一化层引入了两个可以学习的模型参数,拉伸参数 γ 和偏移参数 β。这两个参数和x(i)形状相同,皆为d维向量。它们与x(i)分别做按元素乘法(符号⊙)和加法计算:
至此,我们得到了 的批量归一化的输出yi。
2.3网络结构
VGG11网络结构如图所示,其中基本结构是一个或两个3*3的卷积核后面跟一个池化层,紧接着跟上一个Batch Normalization层,本文之所以把BN层加在池化层之后,而不是加在卷积层之后池化层之前,是因为网络较浅,梯度消失或梯度爆炸现象不容易发生,加在池化层后计算量将会减少。
3.总结
VGG网络通过重复使用简单的基础块来构建深度模型,连续使用数个相同窗口形状为3×3的卷积层后接上一个窗口形状为2×2的最大池化层。卷积层保持输入的高和宽不变,而池化层则对其减半。在Fashion-mnist数据集上,把BN层加在池化层之后十分有效。
参考文献:
[1].Smirnov E, Timoshenko D, Andrianov S, et al. Comparison of Regularization Methods for ImageNet Classification with Deep Convolutional Neural Networks[J]. AASRI Procedia, 2014: 89-94.
[2].Ioffe S, Szegedy C. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift[J]. international conference on machine learning, 2015: 448-456.
作者简介:李星星;1991.4;男;江西九江;广州工商学院;无 ;模式识别与图像处理