问题标签 [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.
python - Python中大数的Sigmoid函数
Sigmoid
我正在做一个具有激活功能的神经网络任务。我的网络输入是图像(MNIST
数据集),因为每个图像的维度是28*28
,当我必须将它们转换为向量时,我将有N*784
矩阵。将这个大矩阵与权重矩阵相乘会产生大的权重正数和负数,我必须将它们传递给Sigmoid
函数。我expit()
用作 sigmoid 函数,我的问题是:
直到 30 的数字导致接近 1 in expit()
。例如expit(28)
结果0.99999999
和expit(29)
results1.0
和 upper29
也得到1
。但是我的新人是上级30
的,因此在第一个学习周期中,他们中的一些人得到了一些,而一些人得到1
了 0,实际上根本没有任何学习。
我必须做什么?Sigmoid's
上限是29
?我不能改变它吗?我必须改变我的图像尺寸来克服这个问题?
java - Java Sigmoid 方法返回不正确的结果
我在 java 中编写了一个 sigmoid 函数,它在处理单个数字时工作正常,但是当给定一个数组在第一个数据输入后失败时。这里有一些数据来说明我的问题(输出四舍五入为 3 位数)。
我的代码如下。
和
如果这只是我的一个愚蠢的明显疏忽,请告诉我,因为我已经尝试了几个小时无济于事,并感谢您的任何回复。
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 库的工作代码:
neural-network - 教授全连接前馈神经网络 XOR 函数
我正在尝试教我的多层神经网络 XOR 函数。我有一个架构 [2, 2, 1] 的网络。我将损失定义为平方误差之和(我知道这并不理想,但我需要这样)。如果我将所有层的激活函数设置为 sigmoid 函数,我总是会陷入局部最优(0.25 左右,所有输出都在 0.5 左右)。如果我将隐藏层的激活函数更改为 ReLU,我有时会卡在同一个最优值中,但有时我会解决它。这可能是因为我使用的是均方误差而不是交叉熵吗?以防万一,这是我的神经网络代码:
更新:我尝试了更复杂的架构([2,2,2,1]),但仍然没有成功。
python - 神经网络教程,softmax激活代替sigmoid
我正在学习 FNN 教程,之前在研究之后我了解到我需要使用 softmax 激活来解决我自己的 ML 问题,而不是如图所示的 sigmoid。
在浏览教程数小时后,我找不到 softmax 代码(模块之外)的基本示例,我可以学习以使用 sigmoid 的方式重新编写教程代码。如果我能弄清楚这一点,那么我可以将其分解并了解数学如何转换数据并通过 NN 馈送,然后我可以将其应用于其他基本的 ML 起点,例如 SVM 等。
我需要关于解开 sigmoid 数学/代码并对其进行修改以在 y 输出上使用 softmax 激活和一种热编码的指针,谢谢您的帮助。
r - R中神经网络包中的Sigmoid函数
我似乎找不到任何关于如何在神经网络包中应用 sigmoid 函数的文档,我试过:
然而这又回来了;
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,其中参数与数据集中的变量相互作用以产生形状略有不同的曲线?
neural-network - 反向传播中的 ReLU 导数
我要在使用 ReLU 的神经网络上进行反向传播。在我之前的一个项目中,我是在一个使用 Sigmoid 激活函数的网络上完成的,但现在我有点困惑,因为 ReLU 没有导数。
这是一张关于 weight5 如何影响总误差的图像。在此示例中,如果我使用 sigmoid 函数,则 out/net = a*(1 - a)。
我应该写什么而不是“a *(1 - a)”来使反向传播工作?
neural-network - 神经网络的架构
我正在阅读一篇论文,作者将他们的网络描述如下:
“为了训练相应的深度网络,使用了一个具有一个隐藏层的全连接网络。该网络有九个二进制输入节点。隐藏层包含一个 sigmoid 节点,输出层有一个内积函数。因此,网络有 10 个变量。”
该网络用于预测连续数 (y)。我的问题是,我不明白 sigmoid 节点之后的网络结构。输出层是做什么的?内积是做什么用的?
python - 计算 sigmoid 的最快方法是什么?
我正在尝试实现一个sigmoid
被选为激活函数的循环神经网络。
我的第一个原型是编写的python
,我发现sigmoid
不知何故是程序的瓶颈,约占总运行时间的 30%。
所以我尝试了另一种实现
并且令人惊讶地发现它比第一种方法快 50%。
我还尝试了第三种方法
,这比第一种方法稍慢。
后来我用 C++ 测试了所有 3 个实现。前两种方法几乎没有任何区别,并且tanh
速度稍快(~5%)。为什么会这样?我在想numpy
是用 C++ 编写的。