[机器学习]谈谈正则化

根据奥卡姆剃刀定律,或许我们可以通过降低复杂模型的复杂度来防止过拟合,这种原则称为正则化

1.过拟合

直接拿网上的图来说明过拟合

[机器学习]谈谈正则化

图一欠拟合,图二是符合预期,图三过拟合
机器学习的模型是希望有良好的泛化效果,图三的训练结果太贴合训练集,就会导致后面基于新数据的预测会不准确。

2.解决过拟合问题

我们怎么解决这个过拟合的情况,根据奥卡姆剃刀定律(机器学习模型越简单,良好的实证结果就越有可能不仅仅基于样本的特性),所以我们希望模型需要更简单。
也就是说,模型训练并非只是以最小化损失(经验风险最小化)为目标,而是以最小(损失+模型复杂)为目标,这也称为结构风险最小化:
minimize(Loss(Data|Model)+complexity(Model))
好了,这里专家们出现了,定义:Loss(Data|Model)为损失项,complexity(Model)为正则化项,衡量模型复杂度。
上图的数据公式为:
f(x)=w0x0+w1x1+w2x2+...+wnxn
减少模型复杂度,减少特征(x)数量就可以。这里就需要介绍0、1、2范数了。

3. 0、1、2范数

0范数,向量中非零元素的个数。
1范数,为绝对值之和。
2范数,就是通常意义上的模。
这里看0范数很符合我们的要求,非零元素的个数少,模型就简单。
但是0范数比较恶心,是个NP-hard问题。同时1范数是0范数的最优凸近似
minimize(Loss(Data|Model)+lambda|W|1 )

L2范数就是指向量各元素的平方和然后求平方根。我们让L2范数的正则项||W||2最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0。

总结

a、1范数和0范数可以实现稀疏,可以来筛选特征。
b、2范式主要在不减少特征的情况解决过拟合。

相关推荐