【问题标题】:Why do sigmoid functions work in Neural Nets?为什么 sigmoid 函数在神经网络中起作用?
【发布时间】:2012-07-25 12:34:59
【问题描述】:

我刚刚开始为神经网络编程。我目前正在研究反向传播 (BP) 神经网络的工作原理。虽然在 BP 网络中训练的算法非常简单,但我找不到任何关于该算法为何有效的文本。更具体地说,我正在寻找一些数学推理来证明在神经网络中使用 sigmoid 函数是合理的,以及是什么让它们模仿了几乎所有扔给它们的数据分布。

谢谢!

【问题讨论】:

    标签: neural-network backpropagation


    【解决方案1】:

    sigmoid 函数在网络中引入了非线性。如果没有非线性激活函数,网络只能学习作为其输入线性组合的函数。结果被称为universal approximation theoremCybenko theorem,以这位先生在 1989 年证明它的名字命名。Wikipedia 是一个很好的起点,它有一个指向原始论文的链接(虽然证明有点涉及)。使用 sigmoid 而不是其他东西的原因是它是连续且可微的,它的导数计算速度非常快(与具有相似属性的 tanh 的导数相反)并且范围有限(从 0到 1,独占)

    【讨论】:

    • 不错的答案,但假设“连续(因此可微)”不成立。示例:abs(x) 在零处连续但不可微分。
    • 维基百科的文章是这么说的:"Kurt Hornik 在 1991 年表明,不是激活函数的具体选择,而是多层前馈架构本身赋予了神经网络潜力作为通用逼近器。输出单元总是被假定为线性的。” 事实上,它似乎并没有说明需要非线性激活函数。但是该定理的正式陈述确实说“非常量、有界和单调递增的连续函数”——也许 有界 和单调部分意味着非线性?
    • @Desty,线性激活函数将整个网络变成线性分类器(线性函数的线性组合仍然是线性的),这使得隐藏单元无用。
    • 有趣的是,深度学习领域已经转向了整流器单元,它本质上是一个线性函数。
    • “没有它,网络只能学习作为其输入线性组合的函数。” “它”是什么意思? 'sigmoid 函数','非线性'还是只是'激活函数'?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 2017-06-20
    • 2017-07-28
    • 2018-01-28
    • 1970-01-01
    • 2014-03-26
    • 2017-07-11
    相关资源
    最近更新 更多