神经网络同一层中的不同激活函数

数据挖掘 机器学习 神经网络 深度学习 激活函数 数学
2022-02-15 00:55:57

我的问题是,如果我在神经网络的同一层中安排不同的激活函数并为其他隐藏层继续相同的趋势会发生什么。

假设我relu在开始时有 3 个单元,tanh之后有 3 个单元,其他激活函数是相同的隐藏层,对于其他隐藏层,我以相同的比例(减少/增加)以及激活的排列和顺序缩放所有节点功能不变。

1个回答

在更高的层次上,在 NN 中使用多个激活函数可能不起作用,因为这些激活函数对相同输入的操作方式不同。对于 -1.56 的输入,ReLU 为 0,sigmoid 为 0.174,Tanh 为 -0.91。这些差异将不允许梯度在反向传播期间均匀流动。

您可以尝试在同一层中使用两种不同的激活函数。我能想到一些可能出现的问题,

  • 谈及 Tanh 和 ReLU 函数的结合,我们可以面对梯度爆炸的问题。如果 ReLU 函数为零或正数,则它们提供与输出相同的输入。另一方面,Tanh 函数提供 [ -1, 1 ] 范围内的输出。大的正值将不变地通过 ReLU 函数,但在通过 Tanh 函数时,您将始终获得完全饱和的触发,即输出始终为 1。

  • 因此,在分类问题中使用 ReLU 时,我们使用 softmax 代替 sigmoid 函数。如果使用 sigmoid 函数,您可能只会得到一个的输出。

您可能想要使用 Sigmoid-Tanh 组合,而不是 ReLU-Tanh 组合。

  • 在这里,如果给定负值,sigmoid 可能会给出 0(或接近零的数字)的输出。这些负值可能由前面层中的 Tanh 函数提供。您可能会在这里面临过度拟合。