27 降低方差的技巧(27 Techniques for reducing variance)

如果你的算法方差较高,可以尝试下面的技巧:

  • 增加训练数据:只要你可以获得大量数据和足够的算力去处理数据,这就是一种解决高方差问题最简单,最可靠的方式。
  • 正则化(L2, L1, dropout):这种技巧减少方差的同时,增加了偏差。
  • 提前停止(例如,根据开发集的错误率来提前停止梯度下降):这种技巧减少方差的同时增加的偏差。提前停止技巧很像正则化方法,一些论文作者也叫他正则化技巧。
  • 特征选择来减少输入特征的数量或类型:这种技巧可能会处理好方差问题,但是同时会增大偏差。稍微减少特征数量(比如从1000个特征减少到900个特征)不太可能对偏差产生大的影响。大量减少特征数量(比如从1000减少到100-减少10倍)可能产生较大偏差,因为去掉了很多有用的特征。(注:可能会欠拟合)。在现代的深度学习中,数据量很大,人们对待特征选择的态度出现了转变,现在我们更加倾向于使用全部的特征,让算法自己选择合适的特征。但是当训练集比较小时,特征选择非常有用。
  • 缩小模型(例如减少网络层数和神经元数量):谨慎使用。这种技巧可以减少方差,同时也可能增加偏差。然而,我并不推荐使用这种技巧来解决方差问题。添加正则化通常会获得更好的分类性能。缩小模型的优点在于减少计算成本,以更快的速度来训练模型。如果模型的训练速度非常重要,那么就想尽一切方法来缩小模型。但是如果目标是减少方差,不是那么在意计算成本,可以考虑添加正则化。

下面是2种和前一节重复的解决偏差问题的策略:

  • 基于误差分析带来的灵感来修改输入特征:比方说你通过误差分析决定添加额外的特征以解决一类特定的错误。新的特征可以对方差的偏差都有好处。理论上,添加特征可能增加方差,如果确实增加了方差,那么可以使用正则化来消除增加的方差。
  • 修改模型(比如神经网络):修改模型使其更加适合要解决的问题。这种方式会同时影响到偏差和方差。

猜你喜欢

转载自blog.csdn.net/weixin_35576881/article/details/80313911
27