李宏毅机器学习(2017full)-Lecture 2: Where does the error come from?

Where does the error come from? ML Lecture 2

参考 https://blog.csdn.net/abc8730866/article/details/70260188

Error的来源:Bias,Varience

  • f^ f ^ 是计算pokemon真正的函数,只有Niantic公司知道
  • 从训练集上,我们得出的一个估计 f f ∗
  • 故像射击一样,靶心为 f^ f ^ , f f ∗ 是我们射中的地方,会由于“bias”和“variance”导致射偏。
Bias and Variance of Estimator

估测均值 μ μ :直接用m(一次实验的平均值)来估计均值μ是biased的 ,多次实验,对得到的多个m计算期望,算是unbias

这里写图片描述

  • 用m的方差估算 σ2 σ 2 是unbiased

    N越多,越集中。N越少,越分散。取决于取样的数量
    这里写图片描述

  • 用采样结果得到的方差 s2 s 2 的期望来估计 σ2 σ 2 是biased的

    随着N的增加,估测 s2 s 2 σ2 σ 2 差距会变小。

这里写图片描述

ERROR的来源:

  • ERROR 1. bias:瞄准的是不是中心。瞄准点同靶心的距离就是Bias;
  • ERROR 2. variance:射出去和瞄准的之间距离 。实际射在靶心上的位置与你瞄准点的距离就是Variance。

这里写图片描述

如何找到多个 f f ∗ ?

Parallel Universes平行宇宙

在不同的训练集上,同一个model,也会得到不同的 f f ∗

下面三图是三个model在多个训练集上进行100次实验的结果:

这里写图片描述

模型越简单,越集中,variance比较小-简单的model不容易受到data影响。

模型很复杂,分散开,variance比较大

这里写图片描述

Bias

f f ∗ 和靶心多接近。1,3,5次图例。

  • 黑色线:真正的。 f^ f ^
  • 红色线:每次实验得到的model
  • 蓝色线:所有 f f ∗ 的平均 f¯ f ¯

下小图是解释:function比较复杂的时候,function space可能很大,就可能包含target。

这里写图片描述

总结

  • 简单model。小bias 。偏离靶心

  • 复杂model。大bias 。围绕靶心, f¯ f ¯ 越接近 f^ f ^

  • 原因:复杂模型fuanction set 范围较大,简单的范围较小。

Bias vs Variance
  • 随着模型变复杂,Bias(描的越来越准)导致的error下降;
  • 随着模型变复杂,Variance导致的error上升;
  • 随着模型变复杂,error由下降到上升。
  • 模型较简单时,大的Bias,小的Variance,Underfitting!
  • 模型过于复杂时,小的Bias,大的Variance,Overfitting!

这里写图片描述

what to do with bias & variance
  • model不能fit 训练数据,说明bias太大,跟争取model有差距。underfitting
  • model可以fit 训练数据,但是在test data上得到大的error,model的variance较大。overfitting

这里写图片描述

  • bias大:

    • 增加特征
    • 重新设计模型
  • variance大:

    • 增加data(有效控制variance的方法)

    自己create数据(手写数字,旋转图像;语音辨识,男生女生声音变化;录音室声音+公车上的声音……;)

    • Regularization正则化

    (loss基础上加的那个额外的式子 )希望找到的曲线越平滑越好

    下图下半部分。左→右,逐渐加regularization。但是可能会伤害bias。

    所以Regularization需要在bias和variance找到平衡

这里写图片描述

Model Selection
  • 在Bias和Variance中找到一个平衡去选择model,使得总误差最小

  • 但是注意!

    用三种model训练之后在测试集上计算err,选择err最小的是不对的。Testing set可能是自己手上的数据,却忽视了其他的,具有自己的bias(和前面提到的bias略有不同)。

这里写图片描述

做了作业之后。

以homework为例:

public testing set不可靠

应该这样做:

  • 将Training set分为两组:training set 和 validation set。
  • 训练三个model,通过validation set计算得到的err来选择model。
  • 用原始Training set(T+V)训练,在testing set 上测试。(虽然在testing set(public)err结果可能大于0.5),但是public err 可以真实反映private testing。
  • 在真正的测试集上得出error,这样的话效果好,才是真的好。

不推荐!

  • 在testing set上结果太差,想要把testing再考虑进去
  • 这样做了,只是在自己的测试集上变好了,真正的测试集上不一定会变好。

这里写图片描述

K-fold Cross Validation K折交叉验证

对训练集分组。

  • 将训练集分成三部分,取其中一份为验证集,有三种组合情况;
  • 用三种模型在这三种情况下进行训练,然后在验证集上得出error,取三种情况下error的均值,均值error最小的情况作为选定的最好的模型;
  • 将选出的模型,用原始的整个训练集训练,然后在测试集上得出error;
  • 在真正的测试集上得出error。

少根据Testing Set 上对自己的模型进行调整

这里写图片描述

**Reference:**Bishop: Chapter 3.2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值