论文大赛 怎么翻译 liumaolincycle的博客(3)
我们的神经网络结构有6000万个参数。虽然ILSVRC的1000个类别使得每个训练样本强加10比特约束到从图像到标签的映射上,这显示出要学习如此多的参数而不带相当大的过拟合,这些类别是不够的。下面,我们描述减少过拟合的两种主要方法。
减少图像数据过拟合最简单最常用的方法,是使用标签-保留转换,人为地扩大数据集(例如,[25,4,5])。我们使用数据增强的两种不同形式,这两种形式都允许转换图像用很少的计算量从原始图像中产生,所以转换图像不需要存储在磁盘上。在我们的实现中,转换图像是由CPU上的Python代码生成的,而GPU是在之前那一批图像上训练的。所以这些数据增强方案实际上是计算自由。
数据增强的第一种形式由生成图像转化和水平反射组成。为此,我们从256×256的图像中提取随机的224×224的碎片(还有它们的水平反射),并在这些提取的碎片上训练我们的网络(这就是图2中输入图像是224×224×3维的原因)。这使得我们的训练集规模扩大了2048倍,但是由此产生的训练样例一定高度地相互依赖。如果没有这个方案,我们的网络会有大量的过拟合,这将迫使我们使用小得多的网络。在测试时,该网络通过提取五个224×224的碎片(四个边角碎片和中心碎片)连同它们的水平反射(因此总共是十个碎片)做出了预测,并在这十个碎片上来平均该网络的softmax层做出的预测。
数据增强的第二种形式包含改变训练图像中RGB通道的强度。具体来说,我们在遍及整个ImageNet训练集的RGB像素值集合中执行PCA。对于每个训练图像,我们成倍增加已有主成分,比例大小为对应特征值乘以一个从均值为0,标准差为0.1的高斯分布中提取的随机变量。这样一来,对于每个RGB图像像素,我们增加下面这项:
其中与分别是RGB像素值的3×3协方差矩阵的第i个特征向量与特征值,是前面提到的随机变量。每个对于特定训练图像的全部像素只提取一次,直到那个图像再次被用于训练,在那时它被重新提取。这个方案大致抓住了自然图像的一个重要属性,即,光照强度与颜色是变化的,而对象识别是不变的。该方案将top-1误差率减少了1%以上。
结合许多不同模型的预测是一种非常成功的减少测试误差的方式[1,3],但它先前训练花了好几天时间,似乎对于大型神经网络来说太过昂贵。然而,有一个非常有效的模型组合版本,它在训练中只花费两倍于单模型的时间。最近推出的叫做“dropout”的技术[10],它做的就是以0.5的概率将每个隐层神经元的输出设置为零。以这种方式“dropped out”的神经元既不利于前向传播,也不参与反向传播。所以每次提出一个输入,该神经网络就尝试一个不同的结构,但是所有这些结构之间共享权重。因为神经元不能依赖于其他特定神经元而存在,所以这种技术降低了神经元复杂的互适应关系。正因如此,要被迫学习更为鲁棒的特征,这些特征在结合其他神经元的一些不同随机子集时有用。在测试时,我们将所有神经元的输出都仅仅只乘以0.5,对于获取指数级dropout网络产生的预测分布的几何平均值,这是一个合理的近似方法。
我们在图2中前两个全连接层使用dropout。如果没有dropout,我们的网络会表现出大量的过拟合。dropout使收敛所需的迭代次数大致增加了一倍。
我们使用随机梯度下降法和一批大小为128、动力为0.9、权重衰减为0.0005的样例来训练我们的网络。我们发现,这少量的权重衰减对于模型学习是重要的。换句话说,这里的权重衰减不仅仅是一个正则化矩阵:它减少了模型的训练误差。对于权重w的更新规则为
其中i是迭代指数,v是动力变量,ε是学习率,是目标关于w、对求值的导数在第i批样例上的平均值。
我们用一个均值为0、标准差为0.01的高斯分布初始化了每一层的权重。我们用常数1初始化了第二、第四和第五个卷积层以及全连接隐层的神经元偏差。该初始化通过提供带正输入的ReLU来加速学习的初级阶段。我们在其余层用常数0初始化神经元偏差。
我们对于所有层都使用了相等的学习率,这是在整个训练过程中手动调整的。我们遵循的启发式是,当验证误差率在当前学习率下不再提高时,就将学习率除以10。学习率初始化为0.01,在终止前降低三次。我们训练该网络时大致将这120万张图像的训练集循环了90次,在两个NVIDIA GTX 580 3GB GPU上花了五到六天。
我们在ILSVRC-2010测试集上的结果总结于表1中。我们的网络实现了top-1测试集误差率37.5%,top-5测试集误差率17.0% (若没有如4.1节所述的在十个碎片上平均预测,误差率是39.0%与18.3%)。ILSVRC-2010大赛中取得的最好表现是47.1%与28.2%,它的方法是用不同特征训练六个sparse-coding模型,对这些模型产生的预测求平均值[2],自那以后公布的最好结果是45.7%与25.7%,它的方法是从两类密集采样的特征中计算出费舍尔向量(FV),用费舍尔向量训练两个分类器,再对这两个分类器的预测求平均值[24]。
表1:ILSVRC-2010测试集上的结果比较。斜体字是他人取得的最好结果。
我们也在ILSVRC-2012大赛中输入了我们的模型,并在表2中报告结果。由于ILSVRC-2012测试集标签是不公开的,我们不能对试过的所有模型都报告测试误差率。在本段的其余部分,我们将验证误差率与测试误差率互换,因为根据我们的经验,它们之间相差不超过0.1%(见表2)。本文所描述的CNN实现了18.2%的top-5误差率。对五个相似CNN的预测求平均值得出了16.4%的误差率。训练一个在最末pooling层之后还有一个额外的第六个卷积层的CNN,用以对整个ImageNet 2011年秋季发布的图像(15M张图像,22K种类别)进行分类,然后在ILSVRC-2012上“微调”它,这种方法得出了16.6%的误差率。用在整个2011年秋季发布的图像上预训练的两个CNN,结合先前提到的五个CNN,再对这七个CNN作出的预测求平均值,这种方法得出了15.3%的误差率。比赛中的第二名实现了26.2%的误差率,用的方法是从不同类密集采样的特征中计算FV,用FV训练几个分类器,再对这几个分类器的预测求平均值[7]。
本文编号:1269976
本文链接:https://www.wllwen.com/wenshubaike/yywskj/1269976_3.html