对于特定的回归问题,我应该使用什么激活函数?

数据挖掘 机器学习 神经网络 深度学习 回归 激活函数
2021-10-04 02:18:25

哪个更适合回归问题创建具有 tanh/sigmoid 和 exp(like) 激活或 ReLU 和线性的神经网络?标准是使用 ReLU,但它是暴力解决方案,需要一定的网络大小,我想避免创建一个非常大的网络,也更喜欢 sigmoid,但在我的情况下,回归将输出范围 (0, 1e7) 的值。 .也许带线性头的sigmoid网也可以吗?我很好奇你对这个问题的看法。

2个回答

有两点需要考虑。

  1. 注意网络的输出。如果这是一个实数并且可以取任何值,则必须使用线性激活作为输出。
  2. 内部激活高度取决于您的任务和您使用的网络的大小。我要告诉你的是基于经验。如果你没有很深的网络,tanhReLU收敛时间可能差别不大。如果您使用的是非常深的网络,请不要使用tahn一点也不。ReLU在某些情况下也不推荐你可以雇佣PReLU在非常深的网络中。它不会添加太多参数来学习。你也可以使用leakyReLU 为了避免可能发生的死亡 ReLU 问题。

最后,关于您提到的其他非线性;尽量不要使用Sigmoid由于这个事实,它的期望值不等于零,而是一半。这有点统计的东西,但你可以认为网络很难学习转移的权重。

sigmoid和激活的问题tanh在于,它们的梯度对于它们的参数的极端值是饱和的。如果您不规范化输入,则可能会发生这种情况。如果单元的学习权重使得其激活的梯度接近于零,则任何更新都需要更长的时间才能反映在单元的权重中。没有非线性的最后一层将帮助您扩大隐藏层的输出。

最后,性能是特定于应用程序的。您应该在数据子集上尝试这两种激活,看看哪种效果更好。

信用:https://medium.com/@krishnakalyan3/introduction-to-exponential-linear-unit-d3e2904b366c