问题标签 [relu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
199 浏览

python - 使用正确的 ReLU 导数会阻止学习

我正在尝试使用 ReLU 作为激活函数来实现反向传播。如果我没记错的话,该函数的导数对于 x > 0 是 1,对于 x < 0 是 0。使用这个导数,网络根本不会学习。搜索其他示例,我发现大多数人忽略了 1 for X > 0 部分,只是将其保留在 x 处,这会产生更好的结果。我想知道为什么会这样。

为了确保我没有其他错误,这里是训练 1 输入,1 输出没有隐藏神经元网络的代码。我使用均方误差作为误差函数

请注意,这不太可能与网络的大小有关,我还在一个具有 1000 个输入神经元、1 个隐藏层、100 个神经元和 10 个输出神经元的网络上进行了测试。我使用了 64 和 500 个 epoch 的批量大小。它有同样的问题。

0 投票
1 回答
489 浏览

relu - 为什么在神经网络的最后一层使用 ReLu?

建议我们在学习回归时在神经网络的最后一层使用 ReLu。这对我来说很有意义,因为 ReLu 的输出并不局限于 0 和 1 之间。

但是,当 x < 0(即 ReLu 输出为零时)时,它的表现如何。y(回归的结果)还能小于 0 吗?

我相信,我在这里缺少一个基本的数学概念。任何帮助表示赞赏。

0 投票
0 回答
69 浏览

python - 无法在 TensorFlow 1.10 的 IndyLSTMCell 中使用 relu 激活

我在 TensorFlow 1.10 中尝试了 IndyLSTMCell。它适用于默认激活 (tanh),但不适用于 nn_ops.relu。当我将激活设置为 relu 时,损失变成了 NAN。IndyGRUCell 也有同样的问题。

relu 激活确实适用于 IndRNNCell,但是,当我将其堆叠到 4 或 6 层时,我没有看到模型容量有任何改进。

该单元被放置在 tf.contrib.rnn.MultiRNNCell 中以获得多个层,然后是 tf.nn.dynamic_rnn。我也尝试了基于新细胞类型的 seq2seq 模型(Google 的 NMT 模型)。

实验是在 Python 3.6 的新 TensorFlow (1.10.0) 的 GPU 版本和 CPU 版本上进行的。

任何修复/解决此问题的建议将不胜感激。谢谢。

0 投票
1 回答
2620 浏览

machine-learning - 为什么 ReLU 是非线性激活函数?

据我了解,在深度神经网络中,我们在应用权重 (w) 和偏差(b) 后使用激活函数 (g) (z := w * X + b | a := g(z))。所以有一个复合函数(g o z)和激活函数使得我们的模型可以学习线性函数以外的函数。我看到 Sigmoid 和 Tanh 激活函数使我们的模型非线性,但我看到 ReLu(从 0 和 z 中取出最大值)可以使模型非线性......

假设如果每个 Z 始终为正,那么就好像没有激活函数......

所以我的问题是,为什么 ReLu 在神经网络中使模型成为非线性模型?

0 投票
0 回答
18 浏览

gradient - 为什么Vgg16在每个卷积层之后都使用relu?

在 CS231N 课程中,它说我们希望以零为中心的数据来防止局部梯度总是与上游梯度下降的符号相同,从而导致梯度更新效率低下。但是在每一层使用relu都会输出所有正数,如何解决梯度更新效率低的问题?

0 投票
3 回答
1749 浏览

keras - Core ML coremltools AttributeError:模块“keras.applications.mobilenet”没有属性“relu6”

我们正在尝试将 .h5 Keras 模型转换为 .mlmodel 模型,我的代码如下:

我们查找了 6 天前提出的类似问题,我们也导入了 MobileNet,但仍然显示此错误:

我的 Tensorflow 版本是 1.10.0,Keras 版本是 2.2.2

如果有人能就为什么它一直显示这个错误给我们建议,我们将非常感激,非常感谢。

0 投票
1 回答
4134 浏览

python - RELU 反向传播

在使用 relu 激活功能时,我无法实现反向传播。我的模型有两个隐藏层,两个隐藏层都有 10 个节点,输出层有一个节点(因此有 3 个权重,3 个偏差)。我的模型适用于这个损坏的backward_prop 函数。但是,该函数使用 sigmoid 激活函数(作为注释包含在函数中)与反向传播一起使用。因此,我相信我搞砸了 relu 推导。

谁能把我推向正确的方向?

0 投票
1 回答
257 浏览

neural-network - 使用神经网络的线性回归

我正在使用以下示例训练数据解决回归问题。

在此处输入图像描述

如图所示,我只有 4 个参数的输入,其中只有一个在变化,即 Z,因此其余参数没有实际值,而 124 个参数的输出表示从 O1 到 O124 注意 O1 以 20 [1000 然后1020 然后 1040 ...] 虽然 O2 以不同的速率变化,即 30 但仍然是恒定的,并且同样适用于所有 124 个输出,所有这些都以恒定的方式线性变化。

我相信这是一个微不足道的问题,一个非常简单的神经网络模型将在测试数据上达到 100% 的准确度,但结果却恰恰相反。

  • 我使用线性回归器达到了 100% 的测试准确度,使用 KNN 回归器达到了 99.99997% 的测试准确度
  • 我在使用 relu 激活的 10 层神经网络中达到了 41% 的测试数据准确率,而所有其余的激活函数都失败了,浅层 relu 也失败了
  • 使用具有线性激活函数且没有隐藏层的简单神经网络,我在测试数据上达到了 92%

我的问题是如何让神经网络获得 100% 的测试数据,如线性回归器?假设使用具有线性激活的浅层网络与线性回归器等效,但结果不同,我是否遗漏了什么?

0 投票
0 回答
218 浏览

python - ReLU 可以代替神经网络中的 Sigmoid 激活函数吗

我是新手,我正在尝试用 ReLU 替换以下简单 NN 中的 sigmoid 激活函数。我可以这样做吗?我试过替换 sigmoid 函数,但它不起作用。输出应该是与门(如果输入(0,0)-> 输出 0)。

0 投票
1 回答
45 浏览

python - 神经网络 ReLU 输出全 0

这是我的项目的链接:https ://github.com/aaronnoyes/neural-network/blob/master/nn.py

我已经在 python 中实现了一个基本的神经网络。默认情况下,它使用 sigmoid 激活函数,效果很好。我试图比较激活函数之间学习率的变化,所以我尝试实现一个使用 ReLU 的选项。但是,当它运行时,权重会立即下降到 0。

当我尝试应用梯度下降时,我几乎可以肯定问题出在程序的第 54-56 行(如上所示)。我该如何解决这个问题,以便程序实际上会适当地更新权重?我的relu实现如下: