【问题标题】:Why does the SELU activation function preserve mean 0?为什么 SELU 激活函数保持均值为 0?
【发布时间】:2020-07-17 08:40:32
【问题描述】:

来自 Aurelien Geron 的书“使用 Scikit-Learn、Keras 和 Tensorflow 进行机器学习的动手实践”,p。 337:

“作者表明,如果您构建一个仅由密集层堆栈组成的神经网络,并且如果所有隐藏层都使用 SELU 激活函数,那么该网络将自我归一化:在训练过程中,每一层的输出将倾向于保持平均值为 0 和标准差为 1,从而解决了梯度消失/爆炸问题。

我的问题是:为什么它保持 0 的平均值?负值比正值更接近 0,那么为什么输出均值不超过输入均值?

【问题讨论】:

    标签: neural-network artificial-intelligence activation-function


    【解决方案1】:

    请注意,它本身并不会保留均值 0,而是仅在以方差 1 开始时才保留,因此负值大多很小且 不是

    比正值更接近 0

    The paper 说归一化方差是主要影响,归一化均值由此而来:

    直观地说,SELU 的主要属性是它们抑制了负净输入的方差并增加了正净输入的方差。如果净输入远离零,则方差阻尼更强,而如果净输入接近零,则方差增加更强。因此,对于较低层中激活的较大方差,阻尼效应占主导地位,而较高层中的方差减小。反之亦然,对于小的方差,方差增加占主导地位,而较高层的方差增加...

    因此 SELU 网络控制激活的方差并将其推入一个区间,然后均值和方差向固定点移动。因此,SELU 网络正在稳定地对方差进行归一化,随后也对均值进行归一化。

    也许这个链接也会有所帮助:https://medium.com/@damoncivin/self-normalising-neural-networks-snn-2a972c1d421

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 2018-02-18
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      相关资源
      最近更新 更多