首先我们通过三种途径来认识bias and variance ,三种途径是:直观上的、图形上的、数学定义上的。
直观上的定义:
Error due to Bias:真实值与预测值之间的差异。
Error due to Variance : 在给定模型数据上预测的变化性,你可以重复整个模型构建过程很多次,variance 就是衡量每一次构建模型预测相同数据的变化性。
图形上的理解:
如图所示,图形中心是模型完美正确预测数据值,当我们远离中心预测越来越差,我们可以重复整个模型构建过程多次,通过每一次命中图形来表示bias and variance
数学上定义:
通过covariate X 预测 Y ,我们假设存在如下关系:
Y = f(X) + ? 满足正态分布均值为0 方差σ?
模型预测错误定义为:
bias and variance 的折衷在机器学习中很重要,如果我们模型太简单 则有大的 bias 但是比较小的variance 这时处于模型under-fitting 的状态。
如果模型过于复杂,则bias 较小,但是variance 较大 ,这时模型处于over-fitting 的状态。
解决模型over-fitting 方法有: cross-validation 、最常用的方法是正则化(regularization)
参考资料:http://scott.fortmann-roe.com/docs/BiasVariance.html
参考了NG的课程增加了对这部分理解,资料中有一页PPT非常好
通过判断Jcv是cross validation的损失函数,Jtest是测试集损失函数,通过两者值判断系统所在的状态。
通过算法的learning curve 我们可以很好判断系统处于何总状态!依据状态确定学习系统的改进方向以及如何提高!!!下面就描述了两种状态分别是high bias 、high variance。
直观理解上我们在解决问题时,当效果不好,我们直观上的理解就是增加数据量提升算法效果,但是这个方法不一定是有用的,看下面图片的状态:
在high bias状态下,我们发现右边上下两个图示意,第二图增加数据,其实对算法性能没有任何提高!!!这是需要特别关注一点问题。
在 highvariance 状态下如图:
在预测房价问题和神经网络中把上述描述问题就行总结,通过判断方差与偏差关系去解决系统学习算法问题:
这里列举了六种情况,仔细考虑为什么那么操作!
太简单神经网络容易欠拟合,复杂容易过拟合,通过正则化解决。