曲线拟合问题与L2正则
前言
我们在[1]中曾经谈到了在贝叶斯理论下指导的曲线拟合问题以及基于此的L2正则化解释,其实,对于L2正则化还可以从模型复杂度的角度进行解释,现在,我们针对非贝叶斯观点的曲线拟合问题和L2正则进行讨论。如有谬误,请联系指正。转载请注明出处。
∇ \nabla ∇ 联系方式:
e-mail: FesianXu@gmail.com
QQ: 973926198
github: https://github.com/FesianXu
知乎专栏: 计算机视觉/计算机图形理论与应用
微信公众号:
曲线拟合
回想[1]我们谈到的多项式曲线拟合问题,我们这里重新描述一遍:
假设我们有一个训练集,其中有N个观察值,其自变量x写作 x ≡ ( x 1 , ⋯ , x N ) T \mathbf{x} \equiv (x_1,\cdots,x_N)^T x≡(x1,⋯,xN)T,同时,对应的观察因变量值y写作 t ≡ ( t 1 , ⋯ , t N ) T \mathbf{t} \equiv (t_1,\cdots,t_N)^T t≡(t1,⋯,tN)T。如下图是一组生成的数据,绿线为通过函数 f ( x ) f(x) f(x)生成的,真实的生成曲线,蓝点是从绿线上取值后添加上噪声数据得到的。(这里的噪声可能来自于随机过程中的噪声,也可能是因为存在一些相关的变量没有被观察到)
我们的目标,就是利用训练集来训练一个模型,对于一个新的 x ^ \hat{x} x^输入,可以预测出其 t ^ \hat{t} t^。这个过程中,将会隐式地学习到用来生成这个绿色曲线的 f ( x ) f(x) f(x)。如果我们不考虑我们预测的不确定性,那么我们直接就可以采用最小化误差函数的方法进行模型参数值估计。我们假设模型为多项式模型,如下所示:
y ( x , w ) = w 0 + w 1 x + w 2 x 2 + ⋯ + w M x M = ∑ j = 0 M w j x j (1.1) y(x,\mathbf{w})=w_0+w_1x+w_2x^2+\cdots+w_Mx^M =\sum_{j=0}^M w_jx^j \tag{1.1} y(x,w)=w0+w1x+w2x2+⋯+wMxM=j=0∑Mwjxj(1.1)
注意到,这个模型是关于 w \mathbf{w} w的线性模型,但是并不是关于 x x x的线性模型,像这种多项式,关于未知参数呈现线性的模型统称为线性模型(Linear Model)。
为了让我们的模型尽可能的接近训练集的数据,我们引入一个所谓的误差函数(error function)去度量预测值和真实值之间的距离,一般我们可以采用平方和函数作为误差函数,从[1]中,我们将会发现,当数据噪声满足0均值高斯分布时,可以推出平方和损失函数。
E ( w ) = 1 2 ∑ n = 1 N { y ( x n , w ) − t n } 2 (1.2) E(\mathbf{w}) = \frac{1}{2}\sum_{n=1}^N \{y(x_n,\mathbf{w})-t_n\}^2 \tag{1.2} E(w)=21n=1∑N{y(xn,w)−tn}2(1.2)
下图展示了计算预测值和真实值之间的距离示意图,绿色距离之和即为所求。
因为式子(1.2)是一个关于 w \mathbf{w} w的二次函数,关于这些系数的导数将会是一个关于 w \mathbf{w} w线性的,通过令其梯度的每一个分量的导数为0,我们可以知道其有一个唯一解 w ∗ \mathbf{w}^* w∗,这个可以完全通过闭式解得到。当然也可以通过基于梯度下降的方法得到近似解[3]。
模型复杂度
接下来的问题就在于如何选取超参数 M M M。如下图所示,M太大,将会导致模型复杂度太大,使得模型容易过拟合[4];然而,如果M太小,则模型的复杂度太低,拟合能力差,导致欠拟合。
但是,我们需要注意的是,导致模型过拟合和欠拟合的,不仅仅和超参数的设置有关,而且很重要的一点是:和你训练集的好坏,规模也有重要的关系。如下图所示,左图是 N = 15 N=15 N=15个样本点,而右图是 N = 100 N=100 N=100个样本点,同样地采用了 M = 9 M=9 M=9的超参数设置,我们可以明显地看到,样本数量更多的一个,越符合真实的数据生成函数。不失一般地说,模型容量越大,模型复杂度越高,就需要更多的数据进行训练,以排除噪声的影响。
我们再次回到 M = 0 , 1 , 6 , 9 M=0,1,6,9 M=0,1,6,9的四种情况,我们分别观察它的 w ∗ \mathbf{w}^* w∗系数,我们有:
不难发现,M越大,其参数 w i ∗ w_i^* wi∗的幅度也越大,并且是正负交错的,这使得拟合曲线有着极大的震荡,能够在训练集上精确地拟合每一个训练数值,导致其泛化性能极差。在[1]中我们将会对 w \mathbf{w} w进行一个先验假设,通过贝叶斯理论的方法减缓这种情况的发生。
然而,现在我们可以同样完成这一件事情,通过添加一个惩罚项(penalty)即可,我们称之为正则项(regularization)。形式如:
E ~ ( w ) = 1 2 ∑ n = 1 N { y ( x n , w ) − t n } 2 + λ 2 w T w \tilde{E}(\mathbf{w}) = \frac{1}{2}\sum_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2+\frac{\lambda}{2}\mathbf{w}^T\mathbf{w} E~(w)=21n=1∑N{y(xn,w)−tn}2+2λwTw
其中的惩罚项(正则项) w T w = ∣ ∣ w ∣ ∣ 2 = w 0 2 + ⋯ + w M 2 \mathbf{w}^T\mathbf{w}=||\mathbf{w}||^2=w_0^2+\cdots+w_M^2 wTw=∣∣w∣∣2=w02+⋯+wM2,然后 λ \lambda λ调节其和平方和损失之间的重要性比例。这种正则称之为L2正则化,因为求模操作也被称之为L2范式的原因。通过引入这种正则操作,使得参数能够尽可能的小,而不会导致上面谈到的问题。这种二次正则子称为岭回归(ridge regression),在神经网络相关文献中,也称之为权值衰减(weight decay)(注意和学习率指数衰减分开)。
参考我们在[4]中曾经讨论过的,我们一般有两种方式限制模型容量,通过设置超参数进而控制模型的假设空间太困难了,比如这里的 M M M的选取就是一个困难的事。因此我们往往采取第二种做法,添加正则项对模型进行偏好排除,我们设置一个足够大的 M M M,当然也不能太大,但是起码不用担心其不够容量对数据进行拟合即可,然后添加合适的正则项进行模型的偏好排除就可以较为容易地控制模型容量。这个方法也是在深度学习中经常使用的。
最后我们定量地观察下正则项前系数 λ \lambda λ对参数 w i ∗ w_i^* wi∗的影响,如下图所示,当 λ → 1 \lambda \rightarrow 1 λ→1的时候,可以观察到参数的确都缩小到了合适的范围。
Reference
[1] 《贝叶斯曲线拟合以及对L2正则化的贝叶斯解释》
[2] Bishop C M. Pattern recognition and machine learning (information science and statistics) springer-verlag new york[J]. Inc. Secaucus, NJ, USA, 2006.
[3] 随机梯度下降法,批量梯度下降法和小批量梯度下降法以及代码实现
[4] 机器学习模型的容量,过拟合与欠拟合
曲线拟合问题与L2正则相关推荐
- L2正则没有想象那么好?可能是“权重尺度偏移”惹的祸
©PaperWeekly 原创 · 作者|苏剑林 单位|追一科技 研究方向|NLP.神经网络 L2 正则是机器学习常用的一种防止过拟合的方法(应该也是一道经常遇到的面试题).简单来说,它就是希望权重的 ...
- L1、L2正则VS L1、L2 loss
1.L1.L2正则--参数空间 L1范数表达式为:, L2范数表达式: L1正则(上图左),使得某些特征量变为0,因此具有稀疏性,可用于特征选择: L2正则(上图右),整体压缩特征向量,使用较广. 2 ...
- 机器学习入门(浅谈L1和L2正则)
L1和L2正则 1.正则化的作用 2. L1正则和L2正则 定义: L1正则(特征选择,稀疏矩阵) 推导: L1范数约束 L2正则与过拟合 推导 L2范数约束 总结 1.正则化的作用 在机器学习中,训 ...
- l2高斯分布_L1正则先验是Laplace分布,L2正则先验分布是高斯分布
Laplace分布 Laplace概率密度函数分布为: 一般μ的取值为0,所以形式如下: 分布的图像如下所示 可以看到Laplace分布集中在μ附近,而且b越小,数据的分布就越集中 L2正则先验分布是 ...
- 大白话5分钟带你走进人工智能-第十四节过拟合解决手段L1和L2正则
第十四节过拟合解决手段L1和L2正则 第十三节中,我们讲解了过拟合的情 ...
- python中l2 什么意思_L1和L2正则知多少?
正则化也是校招中常考的题目之一,在去年的校招中,被问到了多次: 1.过拟合的解决方式有哪些,l1和l2正则化都有哪些不同,各自有什么优缺点(爱奇艺)2.L1和L2正则化来避免过拟合是大家都知道的事情, ...
- L1正则和L2正则的比较分析
参考文献 1.L1正则和L2正则的比较分析详解 2.比较全面的L1和L2正则化的解释 3.正则化项L1和L2的区别 4.L1 相比于 L2 为什么容易获得稀疏解? 5.正则化L1和L2的区别 6.LR ...
- 王权富贵:L1和L2正则
L1正则,和L2正则是一种对优化函数参数进行约束的一种手段.如果优化的目标函数产生过拟合的时候,有高次项参数大,低此项参数低的特点.加入正则项可以迫使他们趋于平均,让低此项的部分也尽力去参与拟合. - ...
- LibLinear使用总结(L1,L2正则)
liblinear实践初步 在相关推荐项目的改版中,对liblinear/fm/xgboost等主流成熟算法模型的训练效果进行了尝试和对比,并在一期改造中选择了liblinear实际上线使用.本文主要 ...
最新文章
- hadoop生态下hive安装过程
- 【 Notes 】MOBILE LOCALIZATON METHOD BASED ON MULTIDIMENSIONAL SIMILARITY ANALYSIS
- 【Windows 逆向】使用 Cheat Engine 工具进行指针扫描挖掘关键数据内存真实地址 ( 指针扫描 )
- mapreduce的shuffle机制(来自学习笔记)
- [Miller-Rabin Pollard-rho]【学习笔记】
- Hive更换TEZ引擎
- springboot细节挖掘(日志系统)
- Docker安装Nacos教程
- Java使用IntelliJ IDEA创建控制台程序并通过JDBC连接到数据库
- 唯一分解定理 详解(C++)
- 获取2个集合ListT的共同元素
- 单片机控制IIC协议EEPROM芯片24C512之模块化编程(持续更新中)
- C语言程序——math库的函数应用
- mac取消开机启动项
- 美团java面试题_美团java面试题分享,一面
- LINUX设备usb无法连接,linux下无法使用usb接口设备
- 罗丹明标记鬼笔环肽|TRITC Phalloidin,915013-10-4
- 微火的腾讯共享wifi项目是什么?这个项目有前景吗?
- 中华万年历CTO杭建:Java后端技术概览
- 创建一个含有初始化数据库的mysql docker镜像