机器学习正则化、偏差和误差理解总结

2018-05-28更新:考虑用ensemble方法降低模型bias 和  variance

偏差:即模型在训练时候,衡量模型拟合程度的变量,训练期间拟合的越好,偏差越小,模型也会变得越复杂。但是,并不是偏差越小越好,因为过小的偏差往往就是过拟合情况;过拟合会造成什么影响,为什么大家都担心自己的模型会陷入过拟合情况?

解释如下:模型发生过拟合之后,将会失去泛化能力,又有小伙伴会好奇,什么是泛化能力?在实际工程中,我们训练一个模型,目的不是在训练集上表现的完美,而是希望它在测试集(现实数据中)表现的好,模型的泛化能力是指:模型对其他分布数据依然有较强的预测能力,也就是模型的预测平滑性。如果模型泛化能力低,那么现实数据中或者测试集上将会产生一个较大的方差,模型也就会失去预测的能力;并且,根据吴恩达教授的推导的方差估计理论:方差与偏差是相互关联量,网上有相关推导(PAC),模型误差=偏差+方差,这也是一个常用的误差变形并且,在这两个变量中存在同一反置影响因素,也就是模型复杂度参数,所以会造成上述现象,我们一直在寻找的就是权衡两个之间的那个模型复杂度参数

方差:正如前文所述,是衡量模型在测试集上的表现,通常情况下,我们需要的是低的方差(数据样本失衡情况需要考虑召回率、准确度等指标);

正则化:机器学习模型,可以理解为在已知数据和模型的情况下,求模型参数的过程,即:Af = g  其中g是数据,A是模型,f参数;然而实际生活中,这个求解过程是一个不适定问题,存在多个解,或者说无法求解。因此,我们就需要将模型参数求解过程进行转换,正则项是转化过程中常用的一种手段(或者有人理解是正则项是用来克服过拟合问题的);但是我们回到最初的求解过程,为什么正则项能够克服过拟合问题呢?

解释:常见的L1、L2正则,就是在数学表达式上对模型进行一定的惩罚,取整个模型复杂度和其范数的极小化值,能够防止模型过度复杂,导致过拟合。L1与L2的区别在于:L1正则会惩罚若干项系数为0,降低模型方程阶次,使得其更加趋于线性化;而L2惩罚是将若干项系数赋予一个极小数,降低模型的复杂程度,使得模型曲线化、平滑化。

在Ensemble 中,常见的两个方法就是bagging和boost,前者能够降低模型的方差,后者能够降低模型的偏差;

原理:Bagging采样方法,能够生成若干子模型,虽然是有放回采样,但是模型之间的相关性是存在的,通过集成若干模型,能够降低方差,可以看如下误差公式:                                      

                                            

通过增加m,可以减少后者,以达到降低方差的目的;对于Boost方法而言,在拟合的过程中,通过下一个模型的生成,或者样本的加权, 以减小模型训练时产生的bias。PS:随机森林方法,很好的结合了两者优势。

猜你喜欢

转载自blog.csdn.net/zehui6202/article/details/79820525