gpt4 book ai didi

machine-learning - 反向传播算法如何处理不可微的激活函数?

转载 作者:行者123 更新时间:2023-11-30 08:21:23 24 4
gpt4 key购买 nike

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

最佳答案

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

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

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

由于计算成本函数对于成本计算至关重要 - 您将需要成本函数来满足上述属性。很容易检查 ReLU 在除了 0 的一个小邻域之外的所有地方都满足这个属性。这是 ReLU 的唯一问题 - 当我们接近 0 时我们无法使用此属性。

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

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

关于machine-learning - 反向传播算法如何处理不可微的激活函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30236856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com