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

在深入探讨神经网络以及如何有效地训练它们的主题时,我遇到了使用非常简单的激活函数(例如,整流线性单元(ReLU))而不是经典的平滑S型曲线的方法。 ReLU函数在原点是不可微的,因此,根据我的理解,反向传播算法(BPA)不适合用于使用ReLU训练神经网络,因为多变量演算的链规则仅指平滑函数。但是,我所阅读的有关使用ReLU的论文均未解决此问题。 ReLU似乎非常有效,似乎几乎在任何地方都可以使用,而不会引起任何意外行为。有人可以向我解释为什么可以通过反向传播算法完全训练ReLU吗?

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

要了解使用ReLU之类的函数甚至可能进行反向传播,您需要了解使反向传播算法如此有效的导数的最重要属性是什么。该属性是:

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

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

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

为了克服这个问题,您可以将0的ReLU导数值选择为10 。另一方面,大多数研究人员不会仅仅因为以下事实而将这个问题视为严重问题,因为在ReLU计算过程中接近于0相对很少。

从上面-当然-从纯粹的数学观点来看,将ReLU与反向传播算法一起使用是不合理的。另一方面-实际上,它在0.左右具有这种怪异的行为通常没有什么区别0.

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号