tensorflow技巧(2):改进bias和variance

一、问题表述

如果你想要训练一个错误率为5%的网络,但此时training set上的错误率是15%,dev set上的错误率是16%,该怎么做?

显然这时候增加training data并没有什么帮助,我们应该把注意力放在其他的改进上。首要的是改进算法在training set上的表现。

假设:

  • training error = 15%
  • dev error = 16%

也就是:

  • bias = 15%
  • variance = 1%

这就是high bias, low variance,这种情况称之为underfitting。

另一种情况:

  • training error = 1%
  • dev error = 11%

即:

  • bias = 1%
  • variance = 10%
这就是low bias, high variance,这种情况称之为overfitting。

还有一种极端情况:

  • training error = 15%
  • dev error = 30%

即:

  • bias = 15%
  • variance = 15%

这就是high bias, high variance,这种情况算法在training set和dev set下的表现都很差。

而我们想要的是:

  • training error = 0.5%
  • dev error = 1%

即:

  • bias = 0.5%
  • variance = 0.5%

二、问题解决

high bias, low variance

  • 增加模型的网络深度。
  • 增加输入特征。
  • 使用 regularization。
  • dropout。
  • 修改模型结构。
low bias, high variance
  • 增加training set的数据量。
  • 使用regularization。
  • early stopping。
  • 减少输入特征。
  • 缩减模型规模。

猜你喜欢

转载自blog.csdn.net/heiheiya/article/details/80734358
今日推荐