机器学习的一个核心问题就是如何使学习算法[learning algorithm],不仅能在训练样本上表现良好,并且在新数据或测试集上同样奏效,学习算法在新数据上的这样一种表现我们称之为模型的“泛化性”或“泛化能力”[generalization ability]。若某学习算法在训练集上表现优异,同时在测试集上依然工作良好,可以说该学习算法有较强泛化能力;若某算法在训练集表现优异,但测试集却非常糟糕,我们说这样的学习算法并没有泛化能力,这种现象也称为“过拟合”[overfitting]。
由于我们非常关心模型的预测能力,即模型在新数据上的表现,而不希望过拟合现象的发生,我们通常使用“正则化”[regularization]技术来防止过拟合现象的发生。正则化是机器学习中通过显示的控制模型复杂度来避免模型过拟合、确保泛化能力的一种有效方式。
许多浅层学习器,如支持向量机等,为了提高泛化性往往都要依赖模型正则化,深度学习更应如此。深度网络模型相比浅层学习器巨大的多的模型复杂度是把更锋利的双刃剑:保证模型更强大表示能力的同时也使模型蕴藏着更巨大的过拟合风险。 深度模型的正则化可以说是整个深度模型搭建的最后一步。本文将介绍五种实践中常用的卷积神经网络正则化方法。由于牵涉到比较多的公式,为了更加方便的呈现给大家,所以,依然采取截图的方式。
L2正则化
L1正则化
最大范数约束
最大范数约束(max norm constraints)是通过向参数量级的范数设置上限对网络进行正则化的手段,形如,
随机失活
验证集的使用
通常,在模型训练前可从训练集数据中随机划分出一个子集作为“验证集”,用以在训练阶段评测模型预测性能。一般在每轮或每次批处理训练后在该训练集和验证集上分别做网络前向运算,预测训练集和验证集样本标记,绘制学习曲线,以此检验模型泛化能力。
总结
1.网络正则化是深度网络模型搭建的关键一步,可以有效防止网络过拟合、提升其泛化能力;
2.L2正则化和L1正则化是卷积神经网络中较简单常用的正则化方法,一般而言,L2正则化效果优于L1正则化;L1正则化可求得稀疏解;另外,二者可联合使用,此时被称为“Elastic网络正则化”
3.最大范数约束是通过约束参数范数对网络施加正则化,它有一个非常吸引人的优势在于,优于最大范数约束对参数范数约定了上限,即使网络学习率设置过大也不至于导致“梯度爆炸”;
4.随机失活是目前针对全连接层操作有效的正则化方式,实际工程实现时多采用“倒置随机失活”;实际使用中随机失活可与L2等正则化方法配合使用;
5.在网络训练可通过验证集上的学习曲线评估模型训练效果,对网络训练“及时停止”也是一种有效的防止网络过拟合的方法;
6.增加训练数据、使用更多的数据扩充方式也是防止网络过拟合的有效方式;此外也可以在网络分类层加入随机噪声,从而隐式增加对模型的约束,提高模型泛化能力。
注:文章选自《解析深度学习—卷积神经网络原理与视觉实践》魏秀参著