深度学习算法机器学习与数据挖掘

深度学习tips-降低模型的方差

2017-09-12  本文已影响30人  加勒比海鲜王

请双击666,没点关注的老铁们请点波关注。没有简书账号的老铁们也可以关注CSDN同名博客。

bias和variance在深度学习中是两个不同的概念,一个是偏差,一个是方差,这两个中文名字反而更让人混淆一点。

综上所述,我们需要一个偏差小一些,方差也不是太大的“适中”的模型。

如果训练好一个模型之后偏差大,我们可能是选择的算法不好或者是模型不对,需要修改模型。而方差大呢?(过拟合了)

以下是一些降低方差的方法并附上简单解释:

  1. 增加数据集
    最显而易见的办法,模型过拟合了,增加数据集,然而很多时候并不会有我们希望的那么多数据集,所以重点是以下的方法。
    再说一些吴恩达介绍的trick:如果是图像处理,可以把图像反转,或者是在留下重要内容的前提下的变换角度重新剪裁。这样可以成倍增加数据集。

  2. 正则化 regularization
    就是在loss function后边加一个罚项λ||w||22,用来代表模型的复杂度。这个罚项的具体含义是w的L2范式,也就是所有w的平方和。如果λ很大,也就是这个罚项占的比重很大,模型倾向于变得简单,λ小的话,模型倾向于变得相对复杂一点。
    这种方式的复杂之处在于要多次的训练才能找到一个较为合适的λ。

  3. dropout
    一种丢弃部分神经元来使模型得到简化的方法。与L2正则化功能类似。每次在训练过程中,数据到达的每一层都会根据设置好的比例随机放弃一些神经元,因此模型不会再过度的“倚重”某些神经元,给它们过大的权重,因为每次有效的神经元都是不同的,从而所有神经元都会获得一定的权重。达到防止过拟合的效果。

  4. early stopping



    图中黄线是训练集算是函数,红线是验证集损失函数,可以看出,虽然训练集一直在降低,但是到了验证集的效果就不是那么理想,所以提前结束训练是一种方式。
    这种方式只需要一次训练即可,不需要重复多次来寻找合适的参数。

上一篇下一篇

猜你喜欢

热点阅读