登录
首页大数据时代正则化---提高深度学习模型的泛化能力
正则化---提高深度学习模型的泛化能力
2020-07-23
收藏

前面文章小编简单给大家介绍了泛化能力的一些基础知识,今天给大家带来的是提高模型泛化能力的方法--正则化。

一、首先来回顾一下什么是泛化能力

泛化能力(generalization ability),百科给出的定义是:机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据对背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。简单来概括一下,泛化能力就是一个机器学习算法能够识别没有见过的样本的能力,通俗点说就是学以致用,举一反三的能力。机器学习方法训练出一个模型,我们会希望这个模型不但是对于已知的数据(训练集)性能表现良好,而且对于未知的数据(测试集)也能够表现良好,这就表明这个模型具有良好的泛化能力。在实际应用子中,模型的过拟合(overfitting)与欠拟合(underfitting)能够最直观的体现出泛化能力的好坏。

根据泛化能力强弱,可以分为:

欠拟合:模型不能在训练集上获得足够低的误差;

拟合:测试误差与训练误差差距较小;

过拟合:训练误差和测试误差之间的差距太大;

不收敛:模型不是根据训练集训练得到的。

二、简单介绍正则化

正则化regularization的目标为:模型的经验风险和模型复杂度之和达到最小,即结构风险达到最小。也就是正则化的目的是为了防止过拟合, 从而增强泛化能力

我们通常将正则化定义为:对学习算法的修改,目的是减少泛化误差而不是训练误差

在训练次数足够多,以及表达形式足够复杂的情况下,训练误差能够无限小,可是这并不代表着泛化误差的减小。相反的,一般情况下,这样会导致泛化误差的增大。最常见的例子是:真实数据的分布符合二次函数,但是欠拟合一般会将模型拟合成一次函数,而过拟合通常将模型拟合成高次函数。根据奥卡姆剃须原则:在尽可能符合数据原始分布的基础上,更加平滑、简单的模型,往往更加符合数据的真实特征。所以,我们必须采用采用某种约束,这也就引出了的正则化。

三、正则化---提高模型的泛化能力

按策略正则化可以分为以下三类:

(一) 经验正则化:利用工程上的技巧,实现更低的泛化误差,例如:提前终止法、模型集成、Dropout等;

1.提前终止(earlystop)

一种最简单的正则化方法,在泛化误差指标不再提升后,提前结束训练

2.模型集成(ensemable))

通过训练多个模型来完成该任务,这些模型可以是不同的网络结构,不同的初始化方法,不同的数据集训练出来的,也可以是采用不同的测试图片处理方法。总结来说就是,利用多个模型进行投票的策略

3.Dropout移除一部分神经元

Dropout采用的是"综合起来取平均”的策略,来防止过拟合问题。不同的网络会产生不同的过拟合问题,取平均会让一些“相反的”拟合有互相抵消的可能,整个Dropout过程就相当于 对很多个不同的神经网络取平均。而且因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现,这样会减少神经元之间复杂的共适应关系

(二)参数正则化:直接提供正则化约束,例如:L1/L2正则化法等;

L1/L2正则化方法,就是最常用的正则化方法,它直接来自于传统的机器学习

L1正则化:

L2正则化:

(三)隐式正则化:不直接提供约束,例如:数据有关的操作,包括归一化、数据增强、扰乱标签等。

数据分析咨询请扫描二维码

客服在线
立即咨询