抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

blaire

👩🏻‍💻ブレア🥣

L1 L2 Regularization
L1 L2 Regularization

Supervised Learning: “minimizeyour error while regularizing your parameters”

w=argminwiL(yi,f(xi;w))+λΩ(w)w^*=argmin_w\sum_iL(y_i,f(x_i;w))+\lambda\Omega(w)

我们不仅要保证训练误差最小,我们更希望我们的模型测试误差小.

第二项 λΩ(w)\lambda\Omega(w),也就是对参数ww的规则化函数 Ω(w)Ω(w) 去约束我们的模型尽量的简单.

  1. 第一项对应模型的训练损失函数 (Square Loss、Hinge loss、Exp loss、Log loss)
  2. 第二项对应模型的正则化项 (模型参数向量的范数)

经验风险最小化 empirical risk minimization, 结构风险最小化 structural risk minimization

李沐曾经说过:

model是用离散特征还是连续特征,其实是“海量离散特征+简单模型” 同 “少量连续特征+复杂模型”的权衡。

既可以离散化用线性模型,也可以用连续特征加深度学习。就看是喜欢折腾 feature 还是折腾 model 了。通常来说,前者容易,而且可以n个人一起并行做,有成功经验;后者目前看很赞,能走多远还须拭目以待。

结构风险最小化: 规则化项是结构风险最小化策略的实现,即在经验风险上加一个正则化项或惩罚项

最小化误差是为了让我们的模型拟合我们的训练数据,regularized parameters是防止我们的模型过分拟合我们的训练数据。 因为参数太多,会导致我们的模型复杂度上升,容易过拟合,也就是我们的训练误差会很小。但训练误差小并不是我们的最终目标,我们的目标是希望模型的测试误差小,也就是能准确的预测新的样本。

我们需要保证模型“简单”的基础上最小化训练误差这样得到的参数才具有好的泛化性能(也就是测试误差也小).

而模型**“简单”就是通过规则函数来实现的**。regularized item的使用还可以约束我们的模型的特性。这样就可以将人对这个模型的先验知识融入到模型的学习当中,强行地让学习到的模型具有人想要的特性,例如 稀疏、低秩、平滑 等等。

人的先验是非常重要的。前人的经验会让你少走很多弯路,这就是为什么我们平时学习最好找个大牛带带的原因。一句点拨可以为我们拨开眼前乌云,还我们一片晴空万里,醍醐灌顶。对机器学习也是一样,如果被我们人稍微点拨一下,它肯定能更快的学习相应的任务。只是由于人和机器的交流目前还没有那么直接的方法,目前只能由规则项来担当了.

1. Supervised Learning Obj

第一项对应模型的训练损失函数:

  • Square Loss –> 最小二乘
  • Hinge Loss –> SVM
  • Exp Loss –> AdaBoost
  • Log Loss –> LR

第二项对应模型的正则化项: (一般是模型复杂度的单调递增函数)

  • 模型参数向量的范数,不同的选择对参数的约束不同,取得的效果也不同

论文中常都聚集在:零范数、一范数、二范数、核范数等等。这么多范数,到底它们表达啥意思?具有啥能力?

2. Norm

在机器学习中,我们经常使用称为范数(norm)的函数来衡量向量大小.

LpL^p 范数定义如下:

x_p=(_ix_ip)1p\|x\|\_{p}=\left(\sum\_{i}\left|x\_{i}\right|^{p}\right)^{\frac{1}{p}}

  • L0L^0 范数:x_0\|x\|\_{0}xx 向量各个非零元素的个数。

  • L1L^1 范数:x_1\|x\|\_{1}xx 向量各个元素绝对值之和,也叫“稀疏规则算子”(Lasso Regularization)。

  • L2L^2 范数:x_2\|x\|\_{2}xx 向量各个元素平方和的 1/21/2 次方,L2L^2 范数又称 Euclidean、 Frobenius 范数。

3. L1 Regularization

L1 可以实现稀疏,为什么要稀疏?

x_1=_ix_i\|\boldsymbol{x}\|\_{1}=\sum\_{i}\left|x\_{i}\right|

让我们的参数稀疏有什么好处呢?这里扯两点:

特征选择(Feature Selection):

大家对稀疏规则化趋之若鹜的一个关键原因在于它能实现特征的自动选择。x_ix\_i 的大部分元素(也就是特征)都是和最终的输出 y_iy\_i 没有关系或者不提供任何信息的,在最小化目标函数的时候考虑x_ix\_i这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确y_iy\_i的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。

可解释性(Interpretability):

模型更容易解释。例如患某种病的概率是yy,我们收集到的数据xx是 1000 维的,也就是我们需要寻找这 1000种 因素到底是怎么影响患上这种病的概率的。

假设我们这个是个回归模型:y=w_1x_1+w_2x_2+w_1000x_1000+by=w\_1 x\_1 + w\_2 x\_2 + w\_{1000} x\_{1000} + b(当然了,为了让 yy 限定在[0,1]的范围,一般还得加个Logistic函数)。

通过学习,如果最后学习到的 w\* 就只有很少的非零元素,例如只有5个非零的 w_iw\_i,那么我们就有理由相信,这些对应的特征在患病分析上面提供的信息是巨大的,决策性的。

患不患这种病只和这5个因素有关,那医生就好分析多了。但如果1000个 w_iw\_i 都非0,医生面对这1000种因素,累觉不爱.

4. L2 Regularization

4.1 L2 能防止过拟合?

通过 L2范数 的规则项最小来使参数值都较小、甚至趋于0(但不会为0),模型参数值越小则对应的特征对于模型的影响就比较小,这样相当于对这部分无关特征做了一个惩罚,即使他们的值波动比较大,受限于参数值很小,也不会对模型的输出结果造成太大影响,也就使得模型不会习得这部分特征而发生过拟合

4.2 L2 范数的好处

  • 学习理论的角度:可以防止过拟合,提升模型的泛化能力
  • 优化、数值计算的角度:L2范数能够让我们的优化求解变得稳定和快速.

Reference

Comments