规范化预测变量是否有助于dnn回归?

时间:2018-04-23 07:34:25

标签: python tensorflow machine-learning deep-learning regression

我正在使用tensorflow的 DNNRegressor 。想知道规范化(应用对数或逆变换等)我的数值预测变量是否有助于提高模型性能,如果是,那么底层逻辑是什么? 附: MSE被用于训练损失。

2 个答案:

答案 0 :(得分:0)

有几种标准化方法,例如,您可以使用批量标准化图层,它使用高斯分布对图层的输出进行标准化。

就预测而言,没有任何区别。神经网络很容易对抗你的归一化,因为它只是缩放权重并改变偏差。最大的问题在于培训。通常,输入会进行标准化以保持较低的值并帮助解决称为exploding gradient的问题。这种情况发生的原因是传统的反向传播与乙状结肠激活功能,可以使乙状结肠衍生物饱和。

this post的答案很好地解释了为什么它很重要。

答案 1 :(得分:0)

确实如此。 DNNRegressor是一个神经网络,你使用梯度下降来优化这个(也许像Adam这样的高级东西,但最终它还是SGD)。并且您必须标准化您的功能以获得更好的渐变。更好的是,我的意思是或多或少相等,不是非常大,也不是非常小。通过规范化我的意思是:

  • 功能应该是0均值
  • 功能应具有相同的偏差(此处通常选择1)
  • 它应该是普通的分布式。均匀是好的,正常是好的,对数正常是有问题的,指数是危险的。这个想法是:异常值会损害你的表现。

关于如何让SGD更好地工作有很多很好的资源,但我建议你看看Hinton's lecturethis cool review of gradient descent algorithms