【问题标题】:How does the back-propagation algorithm deal with non-differentiable activation functions?反向传播算法如何处理不可微的激活函数?
【发布时间】:2015-07-26 00:59:33
【问题描述】:

在深入研究神经网络以及如何有效训练它们的主题时,我发现了使用非常简单的激活函数的方法,例如 rectified linear unit (ReLU),而不是经典的平滑 sigmoids。 ReLU 函数在原点是不可微的,因此根据我的理解,反向传播算法 (BPA) 不适合用 ReLU 训练神经网络,因为多元微积分的链式法则仅指平滑函数。 然而,我读过的关于使用 ReLU 的论文都没有解决这个问题。 ReLU 似乎非常有效,几乎可以在任何地方使用,同时不会导致任何意外行为。有人可以向我解释为什么 ReLU 可以通过反向传播算法进行训练吗?

【问题讨论】:

    标签: machine-learning neural-network deep-learning backpropagation


    【解决方案1】:

    要了解如何使用 ReLU 之类的函数实现反向传播,您需要了解导数最重要的属性是什么,它使反向传播算法如此有效。这个属性是:

    f(x) ~ f(x0) + f'(x0)(x - x0)
    

    如果您现在将x0 视为参数的实际值 - 您可以告诉(知道成本函数的值及其导数)当您稍微更改参数时成本函数将如何表现。这是反向传播中最关键的事情。

    因为计算成本函数对于成本计算至关重要 - 您需要成本函数来满足上述属性。除了0 的小邻域之外,很容易检查 ReLU 是否在任何地方都满足这个属性。这是 ReLU 的唯一问题——当我们接近 0 时,我们不能使用这个属性。

    为了克服这个问题,您可以将0 中的 ReLU 导数的值选择为10。另一方面,大多数研究人员并不认为这个问题很严重,因为在 ReLU 计算期间接近0 是相对罕见的。

    从以上内容 - 当然 - 从纯数学的角度来看,将 ReLU 与反向传播算法一起使用是不合理的。另一方面 - 在实践中,它在 0. 周围有这种奇怪的行为通常没有任何区别。

    【讨论】:

    • 这个衍生属性怎么称呼?
    • 这是一个一阶逼近定理
    猜你喜欢
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 2012-04-04
    • 2012-03-14
    • 2014-06-22
    相关资源
    最近更新 更多