以下来自西瓜书的经典论述:假设我们有很多个数据集DDD,数据集之间相互独立, 都可以作为模型FFF的输入, 每个数据集都有对应的标记yDy_DyD, 标记可能包含着噪声ϵ\epsilonϵ, 也即yDy_DyD与真实值yyy之间的差异。据此, 偏差varvarvar被定义为模型FFF预测输出的期望E(FD)E(F_D)E(FD)(可以理解为模型在所有数据集上预测值的均值)与真实标记之间的差异, 方差被定义为模型FFF在各个数据集上的预测输出与期望E(FD)E(F_D)E(FD)之间的差异的期望。
进一步讲, 如果独立数据集的数量是无限的,那么期望E(FD)E(F_D)E(FD)就近似描绘了算法模型的预测期望或者表达能力,我们说一个算法趋向于具有高偏差,意味着这个算法表示能力较弱,拟合能力较差,但是这一算法往往在各个数据集上的表现都相差不大,具有较低的方差。另一方面,如果模型在一些数据集上工作的很好(例如训练集), 但在另一些数据集(例如测试集)表现不佳, 这就会导致高方差,能够表现好这说明算法表达能力很强,或者说灵活性较强, 而表现不稳定就说明泛化能力较差。
总结起来,依据偏差-方差分解(不用知道是什么)可知,泛化误差是噪声加方差再加上偏差。随着训练程度的增长,模型的表达能力逐渐提高,那么偏差就会逐渐减小,同时模型的不稳定性逐渐提高,那么方差就会逐渐增大,此时泛化误差曲线可能呈碗状曲线,也即从开始很高逐渐降低直到最低点接着又开始上升。因此在模型表达能力足够强时,我们需要在合适的时机停止训练(dropout),使其在具备较好的表达能力的同时泛化能力也不差。