gpt4 book ai didi

neural-network - 使用 RELU 的神经网络反向传播

转载 作者:行者123 更新时间:2023-12-03 07:29:44 24 4
gpt4 key购买 nike

我正在尝试用 RELU 实现神经网络。

输入层 -> 1 个隐藏层 -> relu -> 输出层 -> softmax 层

以上是我的神经网络的架构。
我对这个 relu 的反向传播感到困惑。
对于 RELU 的导数,如果 x <= 0,则输出为 0。
如果 x > 0,则输出为 1。
所以当你计算梯度时,这是否意味着如果 x<=0,我会杀死梯度?

有人可以“一步一步”解释我的神经网络架构的反向传播吗?

最佳答案

if x <= 0, output is 0. if x > 0, output is 1



ReLU 函数定义为: 对于 x > 0,输出为 x,即 f(x) = max(0,x)

所以对于导数 f '(x) 它实际上是:

如果 x < 0,输出为 0。如果 x > 0,输出为 1。

未定义导数 f'(0)。所以它通常设置为 0 或者您将激活函数修改为 f(x) = max(e,x) 以获取较小的 e。

通常:ReLU 是使用整流器激活函数的单元。这意味着它的工作原理与任何其他隐藏层完全一样,但除了 tanh(x)、sigmoid(x) 或您使用的任何激活之外,您将改为使用 f(x) = max(0,x)。

如果您为具有 sigmoid 激活功能的工作多层网络编写了代码,那么它实际上是 1 行更改。前向或反向传播在算法上没有任何变化。如果您还没有使用更简单的模型,请返回并首先开始。否则,您的问题实际上不是关于 ReLU,而是关于整体实现 NN。

关于neural-network - 使用 RELU 的神经网络反向传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32546020/

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