神经网络在高输出值下学习得更好

时间:2018-04-01 12:08:28

标签: neural-network

我正在训练一个前馈神经网络 (随机梯度下降,3个小隐藏层,洗脱激活,输入在0和1之间缩放,根据TiRune初始化的权重) https://stats.stackexchange.com/questions/229885/whats-the-recommended-weight-initialization-strategy-when-using-the-elu-activat
在一个输出大约0到55.000的值的函数上。我对结果很满意,它学会了很好地近似函数 但是当我将输出缩放到介于0和1之间(仅输出除以55.000)时,它会很早就停止学习,它会表现得更糟。当然,我尝试了各种学习率。

当输出值介于0和55.000之间时,它是否有理由比0到1之间更好?或者它没有任何意义,我的问题在其他地方?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,网络之间的唯一区别是输出缩放(目标缩放)。如需完整答案,我将列出可能的原因并列出您提到的学习率:

如何缩放输出会影响我的学习效果?

  1. 您可能有错误。如果您缩放网络输出,请务必缩放在培训,验证和测试期间提供的predictionsreal outputs
  2. 您的输出激活功能无法在目标范围内输出。例如,sigmoids可以输出01之间的值。在010之间缩放输出值会降低性能,因为无法生成目标。
  3. 确保使用正确的数据类型。规范化可能很好,但如果规范化导致数据类型导致信息丢失,则应将规范化归一化到更大的范围。截断和舍入错误将导致信息丢失。
  4. 调整学习率 - 规范化会更改衍生工具值,从而更改传播的渐变到更新。
  5. 祝你好运!