bias是偏差
variance是方差
我们可能听过对于简单的model,其bias会大但是variance会小;复杂的model,其bias会小,但是variance会大。
具体为什么会发生这样的情况,这边我讲一下自己的理解。
所谓偏差就是你训练出一堆model,这些model的数学期望(均值)与最准确model的差距。
所谓方差就是你训练的每一个model离你这些model的数学期望的差距——即数学上定义的离散度
首先来说一下为什么简单的model,其bias会大
因为你越简单的model就表明你的拟合能力,即能产生出来的函数数量是有限的
举个例子:你设定你的model是y = wx,但是真实的model y = w1x + w2x^2
简单的model能产生的model函数范围小,完全有可能不包含真正的model所以bias会大
因为你设定的model是一次的,你无论怎么改变w的值都不可能让函数多出二次项来
其次来说一下为什么复杂的model,其bias会小
我们知道越复杂的model,拟合能力越强
举个例子:y = w1x + w2x^2 + w3x^3 + w4x^5
其函数空间是包含5次即以下的函数的,意味着我拿五次函数可以模拟一次函数二次函数的模型等
因为model足够复杂所以真正的model函数是包含在内的所以bias会小。
然后再聊一下方差的问题
方差是表示数据离散程度的量,那为什么模型的复杂程度会和数据的离散程度挂钩?
我的理解是:
模型越复杂每个点之间的关系就越复杂,就距离上来说一次函数描绘两个点之间的连线一般都是直线,但是当变成二次函数两个点之间的连线就变弯曲了也就是路径变长了。
模型越复杂表明其不确定性增加,不确定性增加说明信息熵变大,也就是数据之间的关系变的复杂了,复杂导致多样性增加,也就是更离散了。
举个例子:
由此:
简单的model,其bias会大但是variance会小——这就是欠拟合;
复杂的model,其bias会小,但是variance会大——这就是过拟合
有兴趣的同学可以看看这个科普一下:)