1. 什么是偏差
偏差表示模型的期望输出与真实值之间的误差,以回归任务为例,偏差可以表示为:
其中,$f_D$表示由数据集$D$学习到的模型,每次采样得到一个数据集$D$,都可以训练得到一个模型$f_D$,对这些模型求期望,可以得到该模型的期望输出$E_D[f_D(x)]$,这个期望输出与真实值之间的差异就是模型的偏差。
2. 什么是方差
方差表示模型在不同数据集扰动下的表现,方差小说明模型在不同数据集下训练,对同一个数据的输出并没有产生太大的差别,方差大说明模型在不同数据集下训练,对同一个数据的输出差距大。方差可以表示为:
模型在不同数据集训练下的输出与模型期望输出之间的差异就是模型的方差。
3. 偏差,方差和噪声的关系
现在有一个数据集$D$,从该数据集下学习得到模型$f_D$,假设这是一个回归任务,则泛化损失误差期望为:
可以看到损失函数可以转化为方差,偏差和噪声的和。一般噪声是不可约的,所以要提高模型主要从方差和偏差入手,即偏差和方差越小,模型性能越小。但是往往,偏差与方差是存在一些矛盾的,即方差越小偏差反而越大或者偏差越小方差反而越大的情况,称为偏差-方差窘境。训练误差大称为欠拟合,训练误差小但泛化误差大称为过拟合,过拟合是偏差小方差大的一种表现。针对过拟合有以下几种方法:
- 增大数据集规模
- 增加正则项,降低模型复杂度
- 交叉验证(K折交叉验证和留一法)
- Holdout和early stop
- 使用dropout
- 使用集成模型
- 给模型加噪声,增强模型的鲁棒性