问题标签 [sigmoid]

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

python - Python中大数的Sigmoid函数

Sigmoid我正在做一个具有激活功能的神经网络任务。我的网络输入是图像(MNIST数据集),因为每个图像的维度是28*28,当我必须将它们转换为向量时,我将有N*784矩阵。将这个大矩阵与权重矩阵相乘会产生大的权重正数和负数,我必须将它们传递给Sigmoid函数。我expit()用作 sigmoid 函数,我的问题是:

直到 30 的数字导致接近 1 in expit()。例如expit(28)结果0.99999999expit(29)results1.0和 upper29也得到1。但是我的新人是上级30的,因此在第一个学习周期中,他们中的一些人得到了一些,而一些人得到1了 0,实际上根本没有任何学习。

我必须做什么?Sigmoid's上限是29?我不能改变它吗?我必须改变我的图像尺寸来克服这个问题?

0 投票
1 回答
368 浏览

java - Java Sigmoid 方法返回不正确的结果

我在 java 中编写了一个 sigmoid 函数,它在处理单个数字时工作正常,但是当给定一个数组在第一个数据输入后失败时。这里有一些数据来说明我的问题(输出四舍五入为 3 位数)。

我的代码如下。

如果这只是我的一个愚蠢的明显疏忽,请告诉我,因为我已经尝试了几个小时无济于事,并感谢您的任何回复。

0 投票
1 回答
233 浏览

java - 反向传播不起作用:神经网络 Java

根据这个 python 示例,我创建了一个简单的 3 层神经网络:链接(PS:您必须向下滚动,直到到达第 2 部分)

这是我对代码的 Java 实现:

我自己创建的点、求和、减法和转置函数,我很确定它们能完美地完成工作。

第一批输入给我一个大约 0.4 的误差,这没关系,因为权重是随机值。在第二次运行时,误差范围更小,但只有很小的量(0.001)

在 500,000 个批次(总共 2,000,000 次测试)之后,网络仍然没有给出任何正确的值!所以我尝试使用更多的批次。使用 1,000,000 个批次(总共 4,000,000 次测试),网络生成了高达 16,900 个正确结果。

谁能告诉我发生了什么?

这些是使用的重量:

第一层:

  • 2.038829298171684 2.816232761170282 1.6740269469812146 1.634422766238497
  • 1.5890997594993828 1.7909325329112222 2.101840236824494 1.063579126586681
  • 3.761238407071311 3.757148454039234 3.7557450538398176 3.6715972104291605

第二层:

  • -0.019603811941904248
  • 218.38253323323553
  • 53.70133275445734
  • -272.83589796861514

    编辑:感谢 lsnare 向我指出使用库会更容易!

对于那些感兴趣的是使用 math.nist.gov/javanumerics 库的工作代码:

0 投票
1 回答
441 浏览

neural-network - 教授全连接前馈神经网络 XOR 函数

我正在尝试教我的多层神经网络 XOR 函数。我有一个架构 [2, 2, 1] 的网络。我将损失定义为平方误差之和(我知道这并不理想,但我需要这样)。如果我将所有层的激活函数设置为 sigmoid 函数,我总是会陷入局部最优(0.25 左右,所有输出都在 0.5 左右)。如果我将隐藏层的激活函数更改为 ReLU,我有时会卡在同一个最优值中,但有时我会解决它。这可能是因为我使用的是均方误差而不是交叉熵吗?以防万一,这是我的神经网络代码:

更新:我尝试了更复杂的架构([2,2,2,1]),但仍然没有成功。

0 投票
0 回答
190 浏览

python - 神经网络教程,softmax激活代替sigmoid

我正在学习 FNN 教程,之前在研究之后我了解到我需要使用 softmax 激活来解决我自己的 ML 问题,而不是如图所示的 sigmoid。

在浏览教程数小时后,我找不到 softmax 代码(模块之外)的基本示例,我可以学习以使用 sigmoid 的方式重新编写教程代码。如果我能弄清楚这一点,那么我可以将其分解并了解数学如何转换数据并通过 NN 馈送,然后我可以将其应用于其他基本的 ML 起点,例如 SVM 等。

我需要关于解开 sigmoid 数学/代码并对其进行修改以在 y 输出上使用 softmax 激活和一种热编码的指针,谢谢您的帮助。

0 投票
1 回答
4482 浏览

r - R中神经网络包中的Sigmoid函数

我似乎找不到任何关于如何在神经网络包中应用 sigmoid 函数的文档,我试过:

然而这又回来了;

0 投票
1 回答
2301 浏览

r - 拟合和比较 R 中的多个 sigmoid 曲线

我想一次拟合多条曲线,并根据它们的 3 个估计参数——渐近线、斜率和 x0 对它们进行统计比较。这是要建模的数据的理想化图像: 在此处输入图像描述

大多数可搜索页面都会找到适合条曲线的方法,如下所示:http: //kyrcha.info/2012/07/08/tutorials-fitting-a-sigmoid-function-in-r/ 和这里 http:// rstudio-pubs-static.s3.amazonaws.com/7812_5327615eb0044cf29420b955ddaa6173.html

就我而言,我想(统计地)测试更改变量级别对 sigmoid 的三个参数的影响。也就是说,当我拟合这个模型时:

我想添加两个因素(例如,“factorA”和“factorB”)与每个 asym、slope 和 x0 项的交互,我们可以使用lm()or的方式glm(),如下所示:

这样,我可以查看这三个参数在不同级别的因子 A 中是否存在统计差异(以及可能的多个其他因素,如您从图像中看到的那样)。例如,我们可以看到“条件”对曲线的渐近线有影响。

我之前已经通过虚拟编码每个交互变量的每个级别来完成此操作,但这不是直接测试这些变量的方法,并且随着模型的发展而变得相当冗长。它看起来像这样:

正如您可能猜到的那样,这种方法在整洁和缺乏可解释性方面存在明显的缺点。

有谁知道如何拟合一组 sigmoid,其中参数与数据集中的变量相互作用以产生形状略有不同的曲线?

0 投票
3 回答
36307 浏览

neural-network - 反向传播中的 ReLU 导数

我要在使用 ReLU 的神经网络上进行反向传播。在我之前的一个项目中,我是在一个使用 Sigmoid 激活函数的网络上完成的,但现在我有点困惑,因为 ReLU 没有导数。

这是一张关于 weight5 如何影响总误差的图像。在此示例中,如果我使用 sigmoid 函数,则 out/net = a*(1 - a)。

我应该写什么而不是“a *(1 - a)”来使反向传播工作?

0 投票
1 回答
90 浏览

neural-network - 神经网络的架构

我正在阅读一篇论文,作者将他们的网络描述如下:

“为了训练相应的深度网络,使用了一个具有一个隐藏层的全连接网络。该网络有九个二进制输入节点。隐藏层包含一个 sigmoid 节点,输出层有一个内积函数。因此,网络有 10 个变量。”

该网络用于预测连续数 (y)。我的问题是,我不明白 sigmoid 节点之后的网络结构。输出层是做什么的?内积是做什么用的?

0 投票
1 回答
2266 浏览

python - 计算 sigmoid 的最快方法是什么?

我正在尝试实现一个sigmoid被选为激活函数的循环神经网络。

我的第一个原型是编写的python,我发现sigmoid不知何故是程序的瓶颈,约占总运行时间的 30%。

所以我尝试了另一种实现

并且令人惊讶地发现它比第一种方法快 50%。

我还尝试了第三种方法

,这比第一种方法稍慢。

后来我用 C++ 测试了所有 3 个实现。前两种方法几乎没有任何区别,并且tanh速度稍快(~5%)。为什么会这样?我在想numpy是用 C++ 编写的。