问题标签 [activation-function]

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 回答
630 浏览

python - Tensorflow:制作自定义激活函数时形状不兼容?

我正在尝试使用自定义激活函数构建神经网络。我遵循了此处给出的解决方案,它在输入和输出向量具有相同大小时有效,但在使用不同大小时(例如在池化函数中)无效。到目前为止,这是我的问题:

我试图将其推广到输入和输出具有不同大小的情况。在我的代码中,输入“ x ”的大小为 (2,4),输出“ y ”的大小为 (1,2),激活函数MEX (.) 执行映射y = MEX ( x )。我将MEX () 的梯度计算为d_MEX (),其中d_MEX ( x ) 的大小与“ x ”相同,即 (2,4)。不过,我收到此错误

InvalidArgumentError(参见上文的追溯):不兼容的形状:[1,2] 与 [2,4]

MEX ( x )的梯度不应该与x大小相同吗?这是我的完整代码:

在控制台中,我检查了变量是否具有“正确”的形状:

0 投票
0 回答
340 浏览

java - 使用 ReLU 传递函数,总网络错误卡在 XOR 门中

我尝试在 XOR 问题上使用 ReLU 激活函数来查看它的性能,因为我看到很多帖子和页面都说它比 sigmoid 和其他更好。我使用了这段代码:

我通过以下方式将 RELU 添加到 TransferFunctionType 中:

我正在使用neuroph 2.92,当我运行时,它被卡在Total Network Error = 0.25。我也使用了 TANH,它卡在 1.25 而 SIGMOID 容易达到总误差 < 0.01 他们怎么了?或者我在某个地方犯了错误。谢谢

0 投票
2 回答
53 浏览

machine-learning - 神经元的不同权重函数

我一直在玩TensorFlow并制作了一个通用的全连接模型。

在我应用的每一层

众所周知,效果很好。

然后我开始弄乱在每一层应用的函数,发现函数如

优化后也能正常工作。

改变这个内部功能有什么作用?是否有一个函数式应用程序可以改变内部函数来改进模型的学习,或者任何结合输入和一些权重的函数无论正在学习什么数据都具有相同的学习能力?

我知道神经网络的许多其他模型(例如卷积网络、循环网络、残差网络等),所以我不是在寻找不同类型网络的解释(当然,除非是某种类型的网络直接应用我正在谈论的内容)。主要对简单的全连接场景感兴趣。

0 投票
1 回答
845 浏览

neural-network - 为什么隐藏层不使用softmax

我已阅读此处给出的答案。我的确切问题与公认的答案有关:

  1. 变量独立性:大量的正则化和努力使你的变量保持独立、不相关和相当稀疏。如果您使用 softmax 层作为隐藏层 - 那么您将保持所有节点(隐藏变量)线性相关,这可能会导致许多问题和较差的泛化性。

放弃隐藏层中的变量独立性会出现什么并发症?请提供至少一个例子。我知道隐藏变量独立性在编码反向传播方面有很大帮助,但反向传播也可以为 softmax 编码(请验证我在这个声明中是否正确。我似乎已经根据我的说法得到了正确的方程。因此声明) .

  1. 训练问题:试着想象一下,为了让你的网络更好地工作,你必须让隐藏层的一部分激活值低一点。然后 - 你会自动让其余的人在更高的水平上进行平均激活,这实际上可能会增加错误并损害你的训练阶段。

我不明白即使在 sigmoid 隐藏神经元中你如何实现这种灵活性,你可以微调特定给定神经元的激活,这正是梯度下降的工作。那么我们为什么还要担心这个问题。如果您可以实现反向传播,其余部分将由梯度下降处理。微调权重以使激活正确不是您想要做的事情,即使您可以做,但您做不到。(如果我的理解有误,请纠正我)

  1. 数学问题:通过对模型的激活创建约束,您会在没有任何逻辑解释的情况下降低模型的表达能力。在我看来,努力使所有激活都相同是不值得的。

请解释这里所说的

  1. 批量标准化:我明白了,这里没有问题
0 投票
1 回答
328 浏览

java - 如何在java中的神经元类中实现可修改的激活函数?

我正在学习神经网络的概念。我决定尝试自己制作神经元类。在我的代码中实现不同激活功能的最佳方法是什么?现在它只使用二元阶跃函数。这是我第一次尝试编码神经网络,所以如果您对我的代码有任何建议,或者它完全是愚蠢的,请告诉我。

这是我的代码:

}

0 投票
2 回答
1087 浏览

python - 为什么在 Tensorflow 简单神经网络示例中再添加一层会破坏它?

这是一个基本的 Tensorflow 网络示例(基于 MNIST),完整的代码,准确率大约为 0.92:

问题:为什么添加一个额外的层(如下面的代码)会使它变得更糟,以至于它下降到大约 0.11 精度?

0 投票
0 回答
265 浏览

matlab - 使用自定义阈值的MATLAB传递函数?

是否有任何 MATLAB 传递(激活)函数可以将其阈值设置为所需值?(这意味着我们可以例如将其阈值设置为avalue,因此如果加权输入的总和大于a,则神经元将触发,在其他情况下则不触发)。

hardlim(N,FP)我已经搜索并找到了类似的东西:satlin(N,FP)但是阈值不是自定义的。使用偏差也没有多大用处,因为每一层中的每个神经元都有不同的阈值。

谢谢。

0 投票
1 回答
748 浏览

python-3.x - Python Keras LSTM输入输出形状问题

我在 tensorflow 上运行 keras,试图实现一个多维 LSTM 网络来预测线性连续目标变量,每个示例的单个值(return_sequences = False)。我的序列长度为 10,特征数(暗淡)为 11。这就是我运行的:

并得到错误 ValueError: Error when checks target: expected activation_1 to have 2 dimensions, but got array with shape (1, 1, 1) Not sure what should the activation layer should get (shape wise) 感谢任何帮助

0 投票
1 回答
173 浏览

neural-network - 有没有比 ReLu 使用 sigmoid 激活更好的情况

我正在训练一个复杂的神经网络架构,然后我使用 RNN 来编码我的输入,一个带有 softmax 输出层的深度神经网络。

我现在正在优化我的架构深度神经网络部分(单元数和隐藏层数)。

我目前正在对所有层使用 sigmoid 激活。这对于少数隐藏层似乎没问题,但随着层数的增加,sigmoid 似乎不是最佳选择。

你认为我应该先对 sigmoid 进行超参数优化,然后是 ReLu,还是直接使用 ReLu 更好?

另外,考虑到我有一个 softmax 输出,你认为在第一个隐藏层中使用 Relu 并在最后一个隐藏层中使用 sigmoid 是否有意义。

0 投票
3 回答
202 浏览

neural-network - 激活函数 - 神经网络

我在空闲时间使用神经网络。我已经用神经网络开发了一个简单的异或运算。但我不知道什么时候应该使用正确的激活函数。

有什么诀窍还是只是数学逻辑?