机器学习训练秘籍:第27章

27 减少方差的技术

如果你的学习算法存在着高方差,则可以尝试下面的技术:

添加更多的训练数据:这是最简单也是最可靠的一种方式来处理方差,只要你能访问大量的数据并有足够的计算能力来处理它们。

加入正则化(L2 正则化,L1 正则化,dropout):这项技术可以降低方差,但却增大了偏差。

加入提前终止(比如根据开发集误差提前终止梯度下降):这项技术可以降低方差但却增大了偏差。提前终止(Early stopping)有点像正则化理论,一些学者认为它是正则化技术之一。

通过特征选择减少输入特征的数量和种类:这种技术可能有助于解决方差问题,但也可能增加偏差。稍微减少特征的数量(比如从 1000 个特征减少到 900 个)不太可能会对偏差产生很大的影响,但显著地减少它们(比如从 1000 个特征减少到 100 个,10 倍地降低)则很有可能产生很大的影响,你可能排除了太多有用的特征。在现代深度学习中,当数据充足时,特征选择的比重就有所改变,现在我们更有可能将拥有的所有特征提供给算法,并让算法根据数据来确定哪些特征可以使用。但当你的训练集很小的时候,特征选择是非常有用的。

减小模型规模(比如神经元/层的数量):谨慎使用。这种技术可以减少方差,同时可能增加偏差。然而我不推荐这种处理方差的方法,添加正则化通常会提供更好的分类性能。 减少模型规模的好处是降低了计算成本,从而加快了你对模型进行训练的速度。如果加速模型训练是有用的,那么无论如何都要考虑减少模型的规模。但如果你的目标是减少方差,并且不关心计算成本,那么考虑添加正则化会更好。

下面是两种额外的策略,和解决偏差问题章节所提到的方法重复:

根据误差分析结果修改输入特征:假设误差分析的结果鼓励你创建额外的特征,从而帮助算法消除某个特定类别的误差。这些新的特征对处理偏差和方差都有所帮助。理论上,添加更多的特征将增大方差;然而当你发现这种情况时,加入正则化,这可以消除方差的增加。

修改模型架构(比如神经网络架构)使之更适用于你的问题:这项技术将同时影响偏差和方差。

敬请期待第28章

诊断偏差与方差:学习曲线

机器学习训练秘籍已发布章节

英文版最新章节请在这里注册

为了让大家尽快接触到机器学习训练秘籍中文版,我们在最短的时间内组织了翻译工作。若有任何错误,还请包涵。翻译内容仍在持续改进中,如果大家有任何意见和建议,欢迎给我们留言。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180530G08WJL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券