我正在使用tensorflow的 DNNRegressor 。想知道规范化(应用对数或逆变换等)我的数值预测变量是否有助于提高模型性能,如果是,那么底层逻辑是什么? 附: MSE被用于训练损失。
答案 0 :(得分:0)
有几种标准化方法,例如,您可以使用批量标准化图层,它使用高斯分布对图层的输出进行标准化。
就预测而言,没有任何区别。神经网络很容易对抗你的归一化,因为它只是缩放权重并改变偏差。最大的问题在于培训。通常,输入会进行标准化以保持较低的值并帮助解决称为exploding gradient的问题。这种情况发生的原因是传统的反向传播与乙状结肠激活功能,可以使乙状结肠衍生物饱和。
this post的答案很好地解释了为什么它很重要。
答案 1 :(得分:0)
确实如此。 DNNRegressor是一个神经网络,你使用梯度下降来优化这个(也许像Adam这样的高级东西,但最终它还是SGD)。并且您必须标准化您的功能以获得更好的渐变。更好的是,我的意思是或多或少相等,不是非常大,也不是非常小。通过规范化我的意思是:
关于如何让SGD更好地工作有很多很好的资源,但我建议你看看Hinton's lecture和this cool review of gradient descent algorithms。