码迷,mamicode.com
首页 > 其他好文 > 详细

【李宏毅机器学习】2. 误差从哪来?

时间:2020-10-13 17:51:44      阅读:38      评论:0      收藏:0      [点我收藏+]

标签:mode   err   偏差   实现   val   cti   sigma   简单   bar   

  • 误差来源
    • bias
    • variance
  • 比喻:打靶
    • 真实的Function\(\widehat{f}\)
    • 通过训练集得到的最优解\(f^*\)
    • \(f^*\)\(\widehat{f}\)的一个估计
    • \(\widehat{f}\)就是靶心,我们打靶的目标
    • \(f^*\)是打靶的结果,与靶心的距离即为误差
  • 假设要估计变量\(x\)的均值\(\mu\)和方差\(\sigma^2\)
    • 均值\(\mu\)
      • 选取\(N\)个样本,其均值\(m\neq \mu\),但是\(m\)的期望\(E[m]=\mu\)
      • 取足够多的样本,分别计算均值\(m\)和期望\(E[m]\),估计的结果是无偏差的 unbiased
      • \(m\)的方差\(Var[m]=\frac{\sigma^2}{N}\),样本越多、\(N\)越大,\(Var[m]\)就越小,\(m\)就越集中
    • 方差\(\sigma^2\)
      • 同样选取\(N\)个样本,其方差\(s^2=\frac{1}{N}\Sigma_n(x^n-m)^2\),但是期望\(E[s^2]=\frac{N-1}{N}\sigma^2\neq\sigma^2\)
      • 期望\(E[s^2]\)小于\(\sigma^2\),样本数\(N\)越大,二者的差距越小,估计的结果是有偏差的 biased
  • 如果把最优解\(f^*\)的期望记为\(\bar{f}\)
    • bias就是\(\bar{f}\)与靶心\(\widehat{f}\)的距离
    • variance就是若干最优解\(f^*\)\(\bar{f}\)的分散程度
  • 对于不同的训练集,使用同一个模型,往往会得到不同的最优解\(f^*\)
    • 模型越复杂,这些不同最优解的差别就越大(受训练集数据影响越大),拥有较大的variance
    • 简单的模型更不容易被样本数据影响,拥有较小的variance
    • 取这些\(f^*\)的期望\(E[f^*]=\bar{f}\)\(\bar{f}\)\(\widehat{f}\)还是比较接近的,对于复杂的模型更是如此
    • 直观解释:
      • 简单模型的Function Space比较小,可能不包含\(\widehat{f}\)甚至离\(\widehat{f}\)较远,所以得到的bias较大
      • 复杂模型的Function Space较大,更有可能包含真正的Function\(\widehat{f}\),所以解出来的bias更小
  • 模型从简单到复杂
    • error from bias减小
    • error from variance增大
    • 总的error增大
    • Underfitting->Best Function->Overfitting
    • Large Bias->Small Bias
    • Small Variance->Large Variance
  • Large Bias
    • 模型甚至不能很好地预测训练集 Underfitting
    • 重新设计Model
      • 可能忽略了hidden factors,添加更多feature到模型中
      • 选择更复杂的模型
  • Large Variance
    • 模型在训练集上表现好,但在测试集上表现差 Overfitting
    • 收集更多数据
      • 非常有效
      • 有时候难以实现
    • 正则化 Regularization
      • 可能引入额外的“bias”(倾向于选择平滑的函数)
  • 选择模型
    • 往往需要权衡bias和variance,使得total error最小
    • 在一个测试集上表现良好的模型,可能在另一个测试集上表现差
    • 但是不应该根据测试集来调整模型,否则可能引入额外的“bias”(这个测试集的某些偏差)
  • 交叉验证 Cross Validation
    • 将原来的训练集分为训练集Training Set和验证集 Validation Set
    • 用训练集训练模型,用验证集验证表现
    • 选择表现最好的模型,再用原来的全部训练集来训练
  • N折交叉验证 N-fold Cross Validation
    • 将原来的训练集分为N份,一份用来验证,剩下N-1份用来训练
    • 有N种分法,计算模型在这N种数据上的平均误差
    • 选择表现最好的模型,再用原来的全部训练集来训练

【李宏毅机器学习】2. 误差从哪来?

标签:mode   err   偏差   实现   val   cti   sigma   简单   bar   

原文地址:https://www.cnblogs.com/huzheyu/p/lihongyi-ml-2.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!