模型的variance&bias
Bias:Bias are the simplifying assumptions made by a model to make the target function easier to learn.
Bias refers to assumptions in the learning algorithm that narrow the scope of what can be learned. This is useful as it can accelerate learning and lead to stable results, at the cost of the assumption differing from reality.
通俗点来讲,Bias就是模型本身的假设限制,带来的偏差。
- 比如线性模型,假设input与output有线性的关系。那么这个假设本身也比较强,在现实中如果并非线性相关,可能就会带来较高的bias。
- 而对于深度模型,其表达能力很强,本身也没有过多的假设(在没有正则化,没有其他强假设结构的情况下),所以一般训练出来也会有很低的bias。
- 优化手段上,通过增加非线性,残差迭代(boosting),增加模型复杂度等,都是减小bias的手段。
Variance:Variance is the amount that the estimate of the target function will change if different training data was used.
Variance refers to the sensitivity of the learning algorithm to the specifics of the training data, e.g. the noise and specific observations. This is good as the model will be specialized to the data at the cost of learning random noise and varying each time it is trained on different data.
Variance就是当我们更换不同的训练集时,模型(target function中参数)的变化。*直觉上理解就是,模型能够挖掘选取出数据背后的“真理”,那么在数据变化后,其“真理”仍然在,所以切换数据后,不会有很大的差异。variance小则模型Less sensitive(模型稳定性强)
- 与Bias相反,一般参数和可变量众多的模型,表达能力更强,能在训练中获得更小的Bias,但是潜在的Variance一般也很高(反之亦反)
- 优化手段上,比如增加regularization(增加auxiliary loss的节点其实也是增加constraint,变相的正则化),使用bagging,dropout等,都是为了降低variance。
- 以及增加更多的数据也能降低variance。(当我们bias高时,增加数据是无意的)
我们的目标当然是缩小泛化误差,路径就是缩小bias的同时缩小variance。但是由上述分析可知,减小variance则会增大bias(简单模型,复杂模型)(反之亦反),所以这里才有了bias and variance的trade-off。当然,在模型训练中,我们有很多手段可以调节这个trade-off的度
如何降低模型的variance:https://machinelearningmastery.com/how-to-reduce-model-variance/
注:
- 1、方差是多个模型间的比较,而非对一个模型而言的;偏差可以是单个数据集中的(比如测试集的误差),也可以是多个数据集中的。