本次文章的内容是参考的李宏毅老师的机器学习课件,我认为课件中关于bias,variance,validation的部分讲的很好,很生动,于是想写一篇简单的blog来记录。
Bias and Variance
为了生动的说明什么是Bias,什么是Variance,我会举一个抓宝可梦的regression的例子。
假设你是一个宝可梦训练家,你需要使用糖果去升级你的宝可梦去打道馆,这个游戏里的程序员设置了一个升级函数 f ^ \hat{f} f^,输入你的宝可梦的特征(名字,HP,体重,身高,…)来输出升级后你的宝可梦的能力值CP
然后我们现在是宝可梦研究员,我们想通过抽取样本(抓宝可梦)来训练regression模型 f ∗ f^* f∗来预测宝可梦的CP成长曲线
由于抽取的样本太少,我们的regression模型 f ∗ f^* f∗肯定与真实的函数 f ^ \hat{f} f^存在误差,这里就引出来了Bias和Varience的问题。
假设我们一开始使用的是简单的线性模型
y = b + w ∗ x c p y=b+w*x_{cp} y=b+w∗xcp
假设我们每次抓N只宝可梦 { x 1 , x 2 , . . . , x N } \{x^1,x^2,...,x^N\} {
x1,x2,...,xN}
这个世界是存在平行宇宙的,假设每个平行宇宙都在抓宝可梦
由于每个平行宇宙抓的宝可梦数值不同,所以每个平行宇宙的宝可梦研究院训练出的模型也不一样
于是我们就得到了很多个由不同样本训练出来的模型 f ∗ f^* f∗
如下图所示,红色的靶心就是 f ^ \hat{f} f^,一坨蓝点就是各个 f ∗ f^* f∗,它们的代表,也就是它们的期望为 f ˉ \bar{f} fˉ,Bias和Variance的定义就如下图所示
我们可以把这些蓝点,也就是 f ∗ f^* f