问题标签 [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.
java - 我的神经网络有更好的激活函数吗?
我正在编写一个程序来识别手写字母。我有 500px*500px 图像作为 BufferedImages 导入,我将每个像素的 getRBG() 值作为神经网络的输入,因此有 250,000 个输入。getRGB() 的值范围从 -16777216(表示写入)到 -1(表示白色背景)。从输入到第一个隐藏节点的权重从 0 到 1 随机化。我一直使用 sigmoid 函数1/(1+e^(-x))
作为激活函数来获取 0 到 1 之间的所有值。不过,我的问题是,因为有许多输入,当我将它们与权重相乘时,我得到一个巨大的数字(例如,1.3E8
或-1.3E8
)。然后,当我将该数字放入 sigmoid 函数时,结果总是全 1 或全 0,因此它基本上没有将有价值的信息传递给第二个隐藏节点。此外,由于图像主要是白色,因此大多数输入为 -1。
我调整了代码,使其在点积之后打印值,然后在它们通过 sigmoid 函数后打印它。
为了编辑 getRGB() 值,我使用了该函数,newRGBValue = (getRGB() + 2) * (-1)
因此所有值的范围从 -1 到 16777214。但是,当我将所有这些值传递给 sigmoid 函数时,它只返回 1,因为具有这些值的新点积是巨大的正数(如下面的输出所示)。
我应该为这个程序使用更好的激活功能吗?或者有没有办法可以操纵输入以使 sigmoid 函数适合?很抱歉这篇冗长的帖子,并提前感谢您的任何见解。
python - 在python中实现sigmoid函数
我正在尝试为 XOR 函数实现一个简单的神经网络。我使用的激活函数是 Sigmoid 函数。sigmoid函数的代码是:
我的问题是这个函数总是返回一个介于 0.7 和 0.8 之间的值。这个问题在输出过程中显示出主要影响。
任何建议都会被采纳。
python - x 的 Sigmoid 为 1
我刚刚读了“制作你自己的神经网络”一书。现在我正在尝试在 Python 中创建 NeuralNetwork 类。我使用 sigmoid 激活函数。我编写了基本代码并尝试对其进行测试。但是我的实现根本无法正常工作。经过长时间的调试和与书中代码的比较后,我发现非常大的 sigmoid 是 1,因为 Python 将它四舍五入。我numpy.random.rand()
用来生成权重,这个函数只返回从 0 到 1 的值。在对权重和输入的所有乘积求和后,我得到非常大的数字。numpy.random.normal()
我使用从范围生成随机数的函数解决了这个问题,例如 (-1, 1)。但我有一些问题。
- sigmoid 是好的激活函数吗?
- 如果 node 的输出仍然很大并且 Python 将结果四舍五入为 1,这对于 sigmoid 是不可能的怎么办?
- 如何防止 Python 舍入非常接近整数的浮点数
- 对我作为神经网络初学者的任何建议(书籍、技术等)。
machine-learning - 在 Caffe 中,TanHLayer Backward 是否计算 sigmoid 输入的误差梯度?
我是 Caffe 的新手。
TanHLayer 的 Doxygen 文档说,
Backward_cpu() 计算 sigmoid 输入的误差梯度。
http://caffe.berkeleyvision.org/doxygen/classcaffe_1_1TanHLayer.html
为什么它需要 sigmoid 输入,而不是 TanH?这让我很困惑。请给我一些提示。
我在 Caffe 用户组上询问过,但没有得到答案。 https://groups.google.com/forum/#!topic/caffe-users/oxRDDOy_xN8
谢谢。
octave - 为什么某些东西可以作为函数的一部分而不是直接命令?
我的 sigmoid 实现在一个函数中单独工作,但是直接在命令窗口中插入代码会出错。
我的 sigmoid 函数:
在我的命令提示符下,我调用了:
这给出了正确的结果。
但是如果我直接进入程序,就会显示错误:
为什么会这样?
neural-network - 神经网络误差推导 Sigmoid
在我关于 AI 的书中写道,误差函数是 (target-output)^2
d=增量
W=重量
O=输出
T=目标
dE/Wa = dE/dOk * dOk/dWa
dE/dWa = -2*(Tk-Ok)*dOk/dWa。//这个减号是从哪里来的?
所以推导必须是 2*(target-Output)。我不明白减号是从哪里来的。
python-3.x - 即使在实施深度神经网络后精度也很差
我的神经网络试图预测一个人是否患有糖尿病,这是我的数据集
kaggle.com/uciml/pima-indians-diabetes-database。我使用的是 3 层神经网络,我的准确率为 65%。
任何提高准确性的帮助将不胜感激。
这是我的代码---------------------------------- ------------
tensorflow - 张量流 sigmoid 函数不起作用
我是张量流和神经网络的新手。
在下面的代码中,一切正常。但是,一旦我通过取消注释来实现 tf.sigmoid 函数 #X21 = tf.sigmoid(X21); 我得到了奇怪的结果,我的所有预测都等于 1。为什么会发生这种情况?
请注意,我正在预测以千为单位的房价。
python - 为python中的列表定义数值稳定的sigmoid函数的最佳方法
对于标量变量x
,我们知道如何在 python 中写出数值稳定的 sigmoid 函数:
对于一个标量列表,z = [x_1, x_2, x_3, ...]
假设我们事先不知道每个标量的符号x_i
,我们可以推广上述定义并尝试:
这似乎有效。但是,我觉得这可能不是最 Pythonic 的方式。我应该如何改进“清洁度”的定义?说,有没有办法使用理解来缩短函数定义?
如果有人问过这个问题,我很抱歉,因为我在 SO 上找不到类似的问题。非常感谢您的时间和帮助!
python - 如何为 Keras 中的每个输出应用 sigmoid 函数?
这是我的代码的一部分。
使用此代码,它将一次将 softmax 应用于所有输出。所以输出表示所有概率。但是,我正在研究非排他性分类火,这意味着我希望输出具有独立的概率。对不起,我的英语不好......但我想做的是对每个输出应用 sigmoid 函数,以便它们具有独立的概率。