训练误差与泛化误差

通常我们把分类错误的样本数占样本总数的比例称为“错误率”(errorrate),即如果在m个样本中有α个样本分类错误,则错误率E=a/mE=a/mE=a/m;相应的,1−a/m1- a/m1−a/m称为“精度”(accuracy),即“精度=1-错误率”.更一般地,我们把学习器的实际预测输出与样本的真实输出之间的差异称为“误差”(error),学习器在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error),在新样本上的误差称为“泛化误差”(generalizationerror).显然,我们希望得到泛化误差小的学习器.然而,我们事先并不知道新样本是什么样,实际能做的是努力使经验误差最小化.在很多情况下,我们可以学得一个经验误差很小、在训练集上表现很好的学习器,例如甚至对所有训练样本都分类正确,即分类错误率为零,分类精度为100%,遗憾的是,这样的学习器在多数情况下都不好.

过拟合(方差)与(欠拟合)

我们实际希望的,是在新样本上能表现得很好的学习器.为了达到这个目的,应该从训练样本中尽可能学出适用于所有潜在样本的“普遍规律”,这样才能在遇到新样本时做出正确的判别.然而,当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降.这种现象在机器学习中称为“过拟合”(overfitting).与“过拟合”相对的是“欠拟合”(underfitting),这是指对训练样本的一般性质尚未学好.

回归问题中的欠拟合与过拟合

下图是一个回归问题的例子:

第一个模型是一个线性模型,欠拟合,不能很好地适应我们的训练集;第三个模型是一个四次方的模型,过于强调拟合原始数据,而丢失了算法的本质:预测新数据。可以看出,若给出一个新的值使之预测,它将表现的很差,是过拟合,虽然能非常好地适应我们的训练集但在新输入变量进行预测时可能会效果不好;而中间的模型似乎最合适。

分类问题中的欠拟合与过拟合

分类问题中也存在这样的问题:
就以多项式理解, xxx的次数越高,拟合的越好,但相应的预测的能力就可能变差。

偏差与方差

从偏差与方差的角度来分析模型常常会有四种情况:
偏差很低,方差很高: 意味着训练误差很低,测试误差很高,此时发生了过拟合现象。
偏差很高,方差很低: 意味着训练误差,测试误差都很高,此时发生了欠拟合现在。
偏差,方差都很高: 意味着此时同时发生了欠拟合和过拟合现象。
偏差很低,方差很低: 意味着训练误差很低,测试误差也很低,表示我们的模型训练的结果很好。

一般来说,偏差与方差是有冲突的,这称为偏差-方差窘境(bias-variance dilemma)。下图给出了一个示意图。给定学习任务,假定我们能控制学习算法的训练程度,则在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率;随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学到,方差逐渐主导了泛化错误率;在训练程度充足后,学习器的拟合能力已非常强,训练数据发生的轻微扰动都会导致学习器发生显著变化,若训练数据自身的、非全局的特性被学习器学到了,则将发生过拟合。

解决方法

1.欠拟合通常是由于学习能力低下造成的,欠拟合比较容易克服,例如在决策树学习中扩展分支、在神经网络中增加训练轮数。
2.而过拟合则很麻烦,过拟合是无法彻底避免的,我们所能做的只是“缓解”,或者说减小其风险。常用的方法:

丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如PCA)
正则化。 保留所有的特征,但是减少参数的大小。

正则化

正则化项即惩罚函数,该项对模型向量进行“惩罚“,从而避免单纯最小二乘问题的过拟合问题。或者说正则化参数等价于对参数引入先验分布,使得模型复杂度变小(缩小解空间),对于噪声以及异常值的鲁棒性增强(泛化能力)。
正则化项本质上是一种先验信息,整个最优化问题从贝叶斯观点来看是一种贝叶斯最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计的形式,如果你将这个贝叶斯最大后验估计的形式取对数,即进行极大似然估计,你就会发现问题立马变成了损失函数+正则化项的最优化问题形式。
其主要作用就是:

  1. 保留所有的特征,减小特征的权重θj{\theta_j}θj​ 的值。确保所有的特征对预测值都要少量的贡献。
  2. 当每个特征xix_ixi​ 对预测值yyy都有少量贡献时,这样的模型可以良好地工作,这就是正则化的目的,可以用它解决特征过多时地过拟合问题。

正则化线性回归

正则化线性回归的代价函数为:
J(θ)=12m∑i=1m[(f(x(i))−y(i))2+λ∑j=1nθj2]J({\theta}) = \frac{1}{{2m}}\sum\limits_{i = 1}^m [{{{(f({x^{_(i)}}) - {y^{_(i)}})}^2}}+\lambda \sum\limits_{j = 1}^n {\theta _j^2} ]J(θ)=2m1​i=1∑m​[(f(x(​i))−y(​i))2+λj=1∑n​θj2​]公式前半部分是线性回归模型的损失函数,后半部分为加入的正则化项。其中λ\lambdaλ有两个目的,既要维持对训练样本的拟合,又要避免对训练样本的过拟合。如果λ\lambdaλ值太大,则能确保不出现过拟合,但可能会导致欠拟合。
从数学角度来看,损失函数增加了一个正则项后,损失函数不再唯一地由预测值与真实值的误差所决定了,还和参数θ\thetaθ的大小有关。有了这个限制之后,要实现损失函数最小的目的,θ\thetaθ就不能随便取值了。比如某个比较大的θ\thetaθ值可能会让预测值与真实值的误差(f(x(i))−y(i))2{(f({x^{(i)}}) - {y^{(i)}})^2}(f(x(i))−y(i))2值很小,但会导致θj2\theta_j^2θj2​ 很大,最终结果就是损失函数太大。这样,通过调节参数λ\lambdaλ,就可以控制正则项的权重,从而避免线性回归算法过拟合。
我们要使用梯度下降法令这个代价函数最小化:Repeatuntilconvergence{θ0:=θ0−α1m∑i=1m(f(x(i))−y(i))x0(i)θj:=θj(1−αλm)−α1m∑i=1m(f(x(i))−y(i))xj(i)forj=1,2,3⋯,n}\begin{aligned} &Repeat \,until\,convergence \{\\ &{\theta _0} := {\theta _0} - \alpha \frac{1}{m}\sum\limits_{i = 1}^m {(f({x^{(i)}}) - {y^{(i)}})x_0^{(i)}} \\ &{\theta _j}: = {\theta _j}(1 - \alpha \frac{\lambda }{m}) - \alpha \frac{1}{m}\sum\limits_{i = 1}^m {(f({x^{(i)}}) - {y^{(i)}})x_j^{(i)}} \\ &for \,j=1,2,3\cdots ,n \\ \} \\ \end{aligned}}​Repeatuntilconvergence{θ0​:=θ0​−αm1​i=1∑m​(f(x(i))−y(i))x0(i)​θj​:=θj​(1−αmλ​)−αm1​i=1∑m​(f(x(i))−y(i))xj(i)​forj=1,2,3⋯,n​可以发现每次都在原有算法更新规则的基础上令θ\thetaθ值减少了一个额外的值。

正则化逻辑回归

正则化逻辑回归的代价函数为:
J(θ)=1m∑i=1m[−y(i)log⁡(f(x(i)))−(1−y(i))log⁡(1−f(x(i)))]+λ2m∑j=1nθj2J(\theta ) = \frac{1}{m}\sum\limits_{i = 1}^m {[ - {y^{(i)}}\log (f({x^{(i)}})) - (1 - {y^{(i)}})\log (1 - f({x^{(i)}}))]} + \frac{\lambda }{{2m}}\sum\limits_{j = 1}^n {\theta _j^2} J(θ)=m1​i=1∑m​[−y(i)log(f(x(i)))−(1−y(i))log(1−f(x(i)))]+2mλ​j=1∑n​θj2​要最小化该代价函数,通过求导,得出梯度下降算法为:Repeatuntilconvergence{θ0:=θ0−α1m∑i=1m(f(x(i))−y(i))x0(i)θj:=θj(1−αλm)−α1m∑i=1m(f(x(i))−y(i))xj(i)forj=1,2,3⋯,n}\begin{aligned} &Repeat \,until\,convergence \{\\ &{\theta _0} := {\theta _0} - \alpha \frac{1}{m}\sum\limits_{i = 1}^m {(f({x^{(i)}}) - {y^{(i)}})x_0^{(i)}} \\ &{\theta _j}: = {\theta _j}(1 - \alpha \frac{\lambda }{m}) - \alpha \frac{1}{m}\sum\limits_{i = 1}^m {(f({x^{(i)}}) - {y^{(i)}})x_j^{(i)}} \\ &for \,j=1,2,3\cdots ,n \\ \} \\ \end{aligned}}​Repeatuntilconvergence{θ0​:=θ0​−αm1​i=1∑m​(f(x(i))−y(i))x0(i)​θj​:=θj​(1−αmλ​)−αm1​i=1∑m​(f(x(i))−y(i))xj(i)​forj=1,2,3⋯,n​
:看上去同线性回归一样,但是知道f(x)=g(θTX)=11+e−θTXf(x) = g({\theta ^T}X)=\frac{1}{{1 + {e^{ - {\theta ^T}X}}}}f(x)=g(θTX)=1+e−θTX1​,所以与线性回归不同。

参考文献

周志华《机器学习》
吴恩达 机器学习
正则化
逻辑回归算法梳理(从理论到示例)

机器学习笔记(四)——正则化相关推荐

  1. 机器学习笔记之正则化(一)拉格朗日乘数法角度

    机器学习笔记之正则化--拉格朗日乘数法角度 引言 回顾:基于正则化的最小二乘法 正则化描述 正则化的优化对象 常见的正则化方法 正则化角度处理神经网络的过拟合问题 场景构建 最优模型参数的不确定性 最 ...

  2. 吴恩达机器学习笔记四之正则化

    本节目录 过拟合 代价函数 正则化线性回归 正则化逻辑回归 1 过拟合问题 正则化技术可以改善过拟合问题. 第一个模型是一个线性模型,欠拟合,不能很好地适应我们的训练集:第三个模型是一 个四次方的模型 ...

  3. 吴恩达机器学习笔记 —— 8 正则化

    http://www.cnblogs.com/xing901022/p/9338467.html 本章讲述了机器学习中如何解决过拟合问题--正则化.讲述了正则化的作用以及在线性回归和逻辑回归是怎么参与 ...

  4. 斯坦福2014机器学习笔记五----正则化

    版权声明:本文为博主原创文章,转载请指明转载地址 一.纲要 欠拟合和过拟合 代价函数正则化 正则化线性回归 正则化逻辑回归 二.内容详述 1.欠拟合和过拟合 欠拟合,也叫高偏差,就是没有很好的拟合数据 ...

  5. 【机器学习笔记四】分类算法 - 逻辑回归

    参考资料 [1]    Spark MLlib 机器学习实践 [2]    统计学习方法 1.Logistic分布 设X是连续随机变量,X服从Logistic分布是指X具有下列分布函数和密度函数 ,. ...

  6. 机器学习实践四--正则化线性回归 和 偏差vs方差

    这次实践的前半部分是,用水库水位的变化,来预测大坝的出水量. 给数据集拟合一条直线,可能得到一个逻辑回归拟合,但它并不能很好地拟合数据,这是高偏差(high bias)的情况,也称为"欠拟合 ...

  7. 机器学习笔记(四)决策树

    4.决策树 4.1基本流程 决策树(decisiontree)基于树结构进行决策,符合人的思维机制,是一类常见的机器学习方法.一般的,一棵决策树包含一个根结点.若干个内部结点和若干个叶结点.叶结点就对 ...

  8. 机器学习笔记七:损失函数与风险函数

    一.损失函数 回顾之前讲过的线性回归模型,我们为了要学习参数使得得到的直线更好的拟合数据,我们使用了一个函数 这个函数就是比较模型得到的结果和"真实值"之间的"差距&qu ...

  9. 机器学习笔记三—卷积神经网络与循环神经网络

    系列文章目录 机器学习笔记一-机器学习基本知识 机器学习笔记二-梯度下降和反向传播 机器学习笔记三-卷积神经网络与循环神经网络 机器学习笔记四-机器学习可解释性 机器学习笔记五-机器学习攻击与防御 机 ...

  10. 机器学习笔记:岭回归(L2正则化)

    1 岭回归(ridge regression)介绍 L2正则化的目的就是要让权重衰减到更小的值,在一定程度上减少过拟合的问题. L2正则化可以使参数趋近于0,函数更加平滑  2 L2正则化的求解过程 ...

最新文章

  1. Java8的Optional是不是鸡肋?
  2. 最远的你是我最近的爱
  3. Python 数据分析三剑客之 Matplotlib(四):线性图的绘制
  4. Magento getModel getSingleton等常用函数说明
  5. JavaScript多种跨域方式
  6. 中年程序员真的只能坐等被裁吗?
  7. javascript option 菜单图标_善用 CSS,不用 JavaScript 也能写出这些元素
  8. 拓端tecdat|R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率
  9. PHP - Smarty模板引擎 - Download下载 - 2 6 22
  10. AVFoundation照片/视频捕捉功能 小视频/直播
  11. openbsd mysql_使用OpenBSD一年的总结
  12. JS中国标准时间格式转换字符串
  13. win7计算机属性资源管理器停止工作,win7系统windows资源管理器已停止工作的解决方法...
  14. 原生JS写一个首字母排序的通讯录效果
  15. 如何开始创业(催生全美最大孵化器YC的文章)
  16. Leedcode 875. 爱吃香蕉的珂珂
  17. python电子章_python二级电子教案 第2章 Python语言基本语法元素
  18. 天融信虚拟企业防火墙学习
  19. 电脑开机就黑屏的几种原因以及解决方案
  20. java求长方体体积用什么类_Java题求解: 设计一个求长方体的体积和表面积的类Cube,包括以下属性和方法。 l1:长方体...

热门文章

  1. 8.9.2 疯狂填词
  2. 当了两天向导,带他进行了上海都市游885
  3. 漏洞利用六:Linux系统漏洞利用
  4. 【完结】JQ-从0到1-总结
  5. FineReport_数据集关联
  6. 北京大学陈斌教授 python_好老师陈斌,这样在北大走红
  7. 2021年完美解决Gradle下载慢的问题(Android Studio)
  8. 矿难猫盘救砖刷回OneSpace系统的记录
  9. 【Hadoop的初级理解】
  10. iOS 逆向编程(十九)Mach-O 入门了解(如何通过 Mach-O 逆向 APP 思路)