L1与L2正则化

写在最前:

这篇不是原创!想写一点发现也不比他的好,知乎专栏,@莫烦PYTHON
这位大神还发布了视频来帮助解释。html

尊重原创,我没有改动一个字。。。算法


过拟合

过拟合示意图
过拟合示意图

咱们知道, 过拟合就是所谓的模型对可见的数据过分自信, 很是完美的拟合上了这些数据, 若是具有过拟合的能力, 那么这个方程就多是一个比较复杂的非线性方程 , 正是由于这里的 x^3 和 x^2 使得这条虚线可以被弯来弯去, 因此整个模型就会特别努力地去学习做用在 x^3 和 x^2 上的 c d 参数. 可是咱们指望模型要学到的倒是 这条蓝色的曲线. 由于它能更有效地归纳数据.并且只须要一个 y=a+bx 就能表达出数据的规律. 或者是说, 蓝色的线最开始时, 和红色线一样也有 c d 两个参数, 但是最终学出来时, c 和 d 都学成了0, 虽然蓝色方程的偏差要比红色大, 可是归纳起数据来仍是蓝色好. 那咱们如何保证能学出来这样的参数呢? 这就是 l1 l2 正则化出现的缘由啦.机器学习

L1 L2 Regularization

L1 L2正则项示意图
L1 L2正则项示意图

对于刚刚的线条, 咱们通常用这个方程来求得模型 y(x) 和 真实数据 y 的偏差, 而 L1 L2 就只是在这个偏差公式后面多加了一个东西, 让偏差不只仅取决于拟合数据拟合的好坏, 并且取决于像刚刚 c d 那些参数的值的大小. 若是是每一个参数的平方, 那么咱们称它为 L2正则化, 若是是每一个参数的绝对值, 咱们称为 L1 正则化. 那么它们是怎么样工做的呢?学习

核心思想

L1 L2正则化的核心
L1 L2正则化的核心

咱们拿 L2正则化来探讨一下, 机器学习的过程是一个 经过修改参数 theta 来减少偏差的过程, 但是在减少偏差的时候非线性越强的参数, 好比在 x^3 旁边的 theta 4 就会被修改得越多, 由于若是使用非线性强的参数就能使方程更加曲折, 也就能更好的拟合上那些分布的数据点. Theta 4 说, 瞧我本事多大, 就让我来改变模型, 来拟合全部的数据吧, 但是它这种态度招到了偏差方程的强烈反击, 偏差方程就说: no no no no, 咱们是一个团队, 虽然你厉害, 但也不能仅仅靠你一我的, 万一你错了, 咱们整个团队的效率就忽然下降了, 我得 hold 住那些在 team 里独出风头的人. 这就是整套正规化算法的核心思想. 那 L1, L2 正则化又有什么不一样呢?cdn

图像化

L1 L2 的图像化
L1 L2 的图像化

想象如今只有两个参数 theta1 theta2 要学, 蓝色的圆心是偏差最小的地方, 而每条蓝线上的偏差都是同样的. 正则化的方程是在黄线上产生的额外偏差(也能理解为惩罚度), 在黄圈上的额外偏差也是同样. 因此在蓝线和黄线 交点上的点能让两个偏差的合最小. 这就是 theta1 和 theta2 正则化后的解. 要提到另一点是, 使用 L1 的方法, 咱们极可能获得的结果是只有 theta1 的特征被保留, 因此不少人也用 l1 正则化来挑选对结果贡献最大的重要特征. 可是 l1 的结并非稳定的. 好比用批数据训练, 每次批数据都会有稍稍不一样的偏差曲线,以下所示:
视频

不一样数据的偏差曲线
不一样数据的偏差曲线

L2 针对于这种变更, 白点的移动不会太大, 而 L1的白点则可能跳到许多不一样的地方 , 由于这些地方的总偏差都是差很少的. 侧面说明了 L1 解的不稳定性htm

统一表达形式

最后,为了控制这种正规化的强度, 咱们会加上一个参数 lambda, 而且经过 交叉验证 cross validation 来选择比较好的 lambda. 这时, 为了统一化这类型的正则化方法, 咱们还会使用 p 来表明对参数的正则化程度. 这就是这一系列正则化方法的最终的表达形式啦.
blog

L1 L2正则化最终表达形式
L1 L2正则化最终表达形式
相关文章
相关标签/搜索