Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Numpy 神经网络坏结果_Numpy_Machine Learning_Neural Network_Backpropagation - Fatal编程技术网

Numpy 神经网络坏结果

Numpy 神经网络坏结果,numpy,machine-learning,neural-network,backpropagation,Numpy,Machine Learning,Neural Network,Backpropagation,我正在研究神经网络。我正在探索使用更大的数据集进行培训的效果。目前我得到的结果很糟糕。有什么建议吗?我不想使用numpy以外的任何库,请保持简单。我是一名普通中等教育证书的学生,所以我对微积分也不太了解。 为了改善我的人际网络,我添加了: 第二个隐藏层, 更多的时代, 不同的激活功能(reLU而不是sigmoid), 每层有更多隐藏节点 …但我的成绩仍然很糟糕 import numpy as np x = np.array([ [0000], [0001], [0010

我正在研究神经网络。我正在探索使用更大的数据集进行培训的效果。目前我得到的结果很糟糕。有什么建议吗?我不想使用numpy以外的任何库,请保持简单。我是一名普通中等教育证书的学生,所以我对微积分也不太了解。 为了改善我的人际网络,我添加了: 第二个隐藏层, 更多的时代, 不同的激活功能(reLU而不是sigmoid), 每层有更多隐藏节点 …但我的成绩仍然很糟糕

import numpy as np

x = np.array([
    [0000],
    [0001],
    [0010],
    [0100],
    [1000],
    [0011],
    [0110],
    [1100],
    [1001],
    [1001],
    [1110],
    [1101],
    [1011],
    [1111],
    [1111],
    [1111],
    [1111]
    ])

y = np.array([
    [0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1]
    ]).T

w = np.random.random((1, 1))
w2 = np.random.random((1, 1))
w3 = np.random.random((1, 1))

for j in xrange(500000):
    a2 = 1/(1 + np.exp(-(np.dot(x, w))))
    a3 = 1/(1 + np.exp(-(np.dot(a2, w2))))
    a4 = 1/(1 + np.exp(-(np.dot(a3, w3))))
    a4delta = (y - a4) * (a4 * (1 - a4))
    a3delta = a4delta.dot(w3.T) * (a3 * (1 - a3))
    a2delta = a3delta.dot(w2.T) * (a2 * (1 - a2))
    w3 += a3.T.dot(a4delta)
    w2 += a2.T.dot(a3delta)
    w += x.T.dot(a2delta)
print(a4)

我认为主要的问题在于输入-在你的例子中,x是一个具有一个特征的向量;我认为模特儿不能从中学习。你为什么不画一个有4个特征的向量呢

x = np.array([
[0,0,0,0],
[0,0,0,1],
[0,0,1,0],
[0,1,0,0],
[1,0,0,0],
[0,0,1,1],
[0,1,1,0],
[1,1,0,0],
[1,0,0,1],
[1,0,0,1],
[1,1,1,0],
[1,1,0,1],
[1,0,1,1],
[1,1,1,1],
[1,1,1,1],
[1,1,1,1],
[1,1,1,1]
])
还可以更改权重形状:

w = np.random.random((4, 4))
w2 = np.random.random((4, 4))
w3 = np.random.random((4, 1))

通过这些更改,网络会产生很好的结果。

您是否试图确定二进制序列是否以1结尾?另外,我对python有点熟悉,但我无法运行您的代码,因为它认为
0001
是无效的标记,可能是因为您有前导0。有什么我遗漏的吗?是的,我本打算提出同样的建议,但我无法让代码运行。。。很高兴它成功了!非常感谢你们两位,我会试试这个你们得到了什么结果?我得到了指数数字,比如3.55891306e-03。。。。不是我所希望的……我举了一个例子,就是:@AndreyLukyanenko你得到了什么结果?我有指数