开发者社区> 问答> 正文

深度学习做回归问题,需要对数据做标准化吗?输出层是否需要激活函数?

1、一些 Paper 会将数据做 min-max normalization 或者 z-score normalization,然后在输出层可能会用 tanh(对应缩放到 [-1, 1])或者 sigmoid(缩放到 [0, 1])。然而有人认为做 Regression 问题,输出层不需要任何激活函数。到底哪种做法更合理呢?

2、我在复现某篇 Paper 的模型时,就发现一个问题,该模型将数据缩放到 [-1, 1],输出层用的是 tanh。然而在我的数据上,由于大部分原始数据值接近于最小值,缩放后接近于 -1,恰好是 tanh 没有梯度的区域,因此 tanh 的训练效率特别慢。如果去除输出层的激活函数,有一个奇怪的现象:
a)如果使用原始数据(不进行任何数据标准化),收敛正常;
b)如果缩放到 [-1, 1] 或者 [0, 1],很难收敛,Loss 一直在震荡;
然而我的理解,它们之间只有数量级的差异(好比最小值为 0 的原始数据统一除以最大值,就缩放成了 [0, 1]),为什么会导致这种反差现象呢?

3、如果在模型中用到 BatchNorm、LayerNorm 等,是否就必须对输入输出的数据做标准化了?

展开
收起
游客lap4oyjrfbxm4 2019-07-19 22:45:37 8926 0
2 条回答
写回答
取消 提交回答
  • 需要考虑浮点数精度。

    2020-03-19 22:56:15
    赞同 展开评论 打赏
  • BN是在当前层最后进行处理的,原始数据还是要经过至少一层的网络,在这一层网络中不同的数据规模和范围肯定会有影响,BN在后面会有所矫正,但是问题避免不了,所以还需要做标准化。 onvolution layer需要激活函数 pooling layer需要激活函数 normalization layer不需要激活函数 fully-connected layer需要激活函数 cost layer不需要激活函数

    答案来源于网络

    2019-09-24 20:10:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
深度学习的最新进展 立即下载
搜狗深度学习技术在广告推荐领域的应用 立即下载
深度学习在电商搜索和聊天机器人中的应用 立即下载