【问题标题】:What do non-linear activation functions do at a fundamental level in neural networks?非线性激活函数在神经网络的基础层面上做了什么?
【发布时间】:2019-12-11 09:11:57
【问题描述】:

我一直试图找出非线性激活函数在神经网络中的具体作用。

我知道他们会修改神经元的输出,但如何以及出于什么目的?

我知道他们为线性神经网络添加了非线性,但目的是什么?

他们对每一层的输出究竟做了什么?是某种形式的分类吗?

我想知道它们在神经网络中的确切用途。

Wikipedia 说“节点的激活函数定义了给定输入或一组输入的该节点的输出。” This article 声明激活函数检查神经元是否“触发”。我还查看了有关 Stack Overflow 的更多文章和其他问题,但没有一个对正在发生的事情给出令人满意的答案。

【问题讨论】:

    标签: machine-learning neural-network activation-function


    【解决方案1】:

    使用非线性激活函数的主要原因是能够学习非线性目标函数,即学习输入和输出之间的非线性关系。如果一个网络仅由线性激活函数组成,它只能对输入和输出之间的线性关系进行建模,这在几乎所有应用中都没有用。

    我绝不是 ML 专家,所以也许这个视频可以更好地解释它:https://www.coursera.org/lecture/neural-networks-deep-learning/why-do-you-need-non-linear-activation-functions-OASKH

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      首先最好清楚地了解我们为什么使用激活函数。

      我们使用激活函数将一层节点的输出传播到 下一层。激活函数是标量到标量函数,我们使用神经网络中隐藏神经元的激活函数将非线性引入网络模型。因此,在更简单的层面上,激活函数用于将非线性引入网络。

      那么引入非线性有什么用?在此之前,非线性意味着不能从输入的线性组合中再现输出。因此,如果神经网络中没有非线性激活函数,即使它可能有数百个隐藏层,它仍然会像单层感知器一样工作。原因是无论你用哪种方式求和它们,都只会产生线性输出。

      无论如何,为了更深入地了解,我建议你看看这个 Medium 帖子以及 Andrew Ng 本人的这个 video

      从 Andrew Ng 的视频中,让我重新表述下面的一些重要部分。

      ...如果你没有激活函数,那么不管有多少 你的神经网络有层,它所做的只是计算一个 线性激活函数。所以你还不如没有任何隐藏 层。

      ...事实证明,如果你在这里有一个线性激活函数并且 这里是一个 sigmoid 函数,那么这个模型的表现力并不比 没有任何隐藏层的标准逻辑回归。

      ...所以除非 你在那里抛出一个非线性,那么你就不会计算更多 即使您在网络中走得更深,也会有有趣的功能。

      【讨论】:

        猜你喜欢
        • 2014-01-18
        • 2017-12-08
        • 2023-04-03
        • 2013-08-20
        • 2019-08-02
        • 1970-01-01
        • 2020-03-19
        • 2014-03-15
        相关资源
        最近更新 更多