机器学习中的方差和偏差

最近补充看了一些偏差-方差的资料。前面也做了两篇相关的笔记(翻译)了。感兴趣的,可以先看看

概念&意义

       为什么需要理解方差和偏差?
        偏差和方差是机器学习非常重要的概念。

       首先,在机器学习中,我们建模的目的就是要找到一个函数。一个理想的、完美的函数是应该能够完美的拟合学习任务的,也就是能够建立一个完美的从输入变量(X)到输出变量(Y)的映射的。但现实世界是不可能完美的,当我们获取实际的数据来训练我们的模型的时候,由于数据存在噪声,我们没法得到这个完美的函数。

用数学定义如下:
       假如提供的训练数据是y, 完美函数是 f(x)y=f(x)+ϵ f ( x ) 。 则 y = f ( x ) + ϵ 。其中ϵ是由于噪声等引起的、不可避免的随机误差。机器学习的目的就是要从这些含有噪声的数据中找出(或者说尽可能的靠近)这个 f(x).yf^(x)f(x) f ( x ) . 也 就 是 要 基 于 训 练 数 据 y , 构 建 一 个 f ^ ( x ) 来 近 似 f ( x ) 。
f^(x) f ^ ( x ) 就是我们平常机器学习中学习(构建)的模型。从上面我们知道,这个模型肯定是存在误差的。这个误差显然包括由于噪声等引起的不可避免的误差(也就是,不管你怎么选择算法,怎么调参优化,都会有。这个误差是你的模型误差的下界)。那除了这个不可避免的误差外,还存在其他误差吗? 回答是肯定的。除了这个不可避免的误差,还存在偏差和方差。而这两项误差,才是我们能控制的。也就是在建模中,我们要优化我们的模型,降低模型的误差,只能从这两项着手。有时候模型误差高,是因为偏差高,有时候又是因为方差高。所以要正确的优化模型,理解方差和偏差是关键。
       那么,在优化模型的时候,是否可以同时降低偏差和方差呢?答案是:偏差和方差之间存在均衡关系。下面简单讲下偏差-方差均衡。会涉及到模型的复杂度,以及欠拟合和过拟合。

偏差-方差均衡

承上,为什么会存在偏差-方差均衡?为什么就不能同时降低呢?这主要涉及到模型的复杂度的问题。当模型很简单的时候,它可能无法拟合训练数据,得到的训练误差、测试误差都偏高。这种情况说明模型本身的拟合能力差,也就是偏差高。这种情况也称之为欠拟合。而当你增加模型的复杂度的时候,你的模型有可能太复杂了,以至于拟合了数据中的噪声。导致模型的泛化能力差。表现为训练误差低,测试误差高。这种情况就是方差高,偏差低,也就是过拟合。我们的目的是使模型整体的预测误差最小,所以需要在偏差和方差间取的均衡,综合两者考虑后的预测误差最小才才是最好的结果。用图可以形象的表示如下:
来源:<a href=https://ml.berkeley.edu/blog/2017/07/13/tutorial-4/” title=”” />

那么,常见的算法中哪些本质上倾向偏差高,哪些算法方差高呢?
这里还是从别处找了个图,供大家参考:
这里写图片描述

关于什么是Parametric algos(参数方法)和Non-parametric algos(非参数方法),大家可以去找点资料了解下。这也是一对非常有意思的概念。

那么,怎么解决方差高,怎么解决偏差高呢? 在此基础上,我们应该怎么优化我们的算法(模型)呢?

方差-偏差高的解决方法

高偏差的处理:(从模型复杂的角度考虑,无法就是模型太复杂了。那怎么增加模型复杂度呢?)
  1) 训练更长的时间;像神经网络等,涉及到迭代优化的问题。可以增加训练时长,这样就能减少训练误差;
  2)训练一个更复杂的模型。比如,神经网络,可以增加更多的层数;SVM,可以使用非线性SVM;决策树等,可以采用集成学习boosting方法(减少偏差,同时也能一定程度上减少方差)
  3)增加更多的特征;
  4)减少正则化权重
相对应地,高方差的处理:
   1)获得更多的训练数据;
   2)减少特征;
   3)增加正则化。

涉及到优化模型。从偏差和方差的角度。下面这个流程,可以说总结的非常经典:
来源:<a href=https://liam0205.me/2017/03/25/bias-variance-tradeoff/” title=”” />

至此,简单对方差和偏差做了一个整理。目的是帮助大家在优化模型的时候,有更清晰的方向。比如,不会再盲目的加特征,盲目的加l1、l2正则项,盲目的增加神经网络的层数等。同时,对偏差和方差的深入了解,能够帮助大家更好的认识和掌握绝大多数机器学习算法。
参考文献:
1.https://ml.berkeley.edu/blog/2017/07/13/tutorial-4/
3. https://www.learnopencv.com/bias-variance-tradeoff-in-machine-learning/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值