概念
正则化是机器学习和统计建模中的一种方法,用于防止模型过拟合(overfitting)。过拟合发生在模型对训练数据的学习过于特定,以至于它不能很好地泛化到未见过的测试数据。正则化通过在模型的损失函数中加入一个惩罚项来工作,这个惩罚项通常是基于模型参数的复杂度来计算的。这样做的目的是减少模型复杂度,鼓励模型学习到更简单、更具有泛化能力的规律,而不是仅仅记住训练数据中的噪声或偶然特性。
欠拟合:还没有拟合到位,训练集和测试集的准确率都还没有达到最高,学的还不到位。
过拟合:拟合过度,训练集准确率升高的同时,测试集准确率反而降低。
拟合:过拟合前训练集和测试集准确度都达到最高时刻。真正工作时我们是奔着过拟合状态去调的。但最后模型没有过拟合。
正则化就是为了防止过拟合出现的,它可以增加模型的鲁棒性。鲁棒性调优就是让模型拥有更好的鲁棒性,让模型的泛化能力和推广能力更加强大。
本质
正则化的本质就是牺牲在训练集上的准确率来提高推广能力,W在数值上越小越好,这样能抵抗数值的扰动。同时为了保证模型的正确率W又不能极小。所以我们给损失函数加上一个惩罚项,这里面损失函数就是原来固有的损失函数,比如MSE,CE(Cross Entropy),加上一个惩罚项。
L1 和 L2 正则项
概念
在数学中,我们称L1,L2为范数,即空间中向量到原点的距离。
我们称其为曼哈顿距离
我们称其为欧式距离(平方)
L-P范数
其中,岭回归实际上就是MSE+L2正则,Lasso回归就是MSE+L1正则
对于任何算法的损失函数,我们都可以加入正则项来提升模型的泛化能力。
特性
L1正则具有稀疏性,它会使有点w趋于0,有的w会相对较大。
L2正则具有平滑性,它会使w整体变小。
如果损失函数加上正则项,那么导函数即等于多了正则项的导函数,即原来MSE的导函数和L1或L2的导函数。那么梯度就是这么两部分组成了。每次减小的幅度就是η*(MSE‘+L1’/L2‘)。这会使得参数调整时多出一部分更新,这部分更新会让w朝着原点0靠近。
当λ越大,泛化能力越强。
那么,造成L1与L2差异的原因是什么呢?
这不是等比例的缩放,而是等距缩放,这会导致最优解落到轴线上导致wi置零。这就是为什么L1产生的w矩阵较为稀疏。这个特性同样可以做特征选择,降低维度。
这说明当wi大时,调整幅度就大,wi小时,调整幅度就小。这样的调整有助于最优解渐进于原点。