我需要获取从单位平方统一生成的二维输入数据,然后基于两个假设函数h1(x) = w1^T*x
和h2(x) = w2^T*x
的XOR将数据标记为1或-1,其中{ {1}}和w1 = [0, 1, -1]
。从那里,我应该使用theta的sign函数通过三层多层感知器运行数据。由于某种原因,无论什么情况,我的MLP都会为所有点输出-1。我的错误在哪里?这是我的代码:
w2 = [0, 1, 1]
答案 0 :(得分:0)
我知道了。对于节点22和23,计算必须在符号函数内,因此j for循环应如下所示:
for j in range(np.size(x,0)):
node22[j] = np.sign(np.matmul(w1,x[j,:]))
node23[j] = np.sign(np.matmul(w2,x[j,:]))
node32[j] = np.sign(-1.5 + node22[j] - node23[j])
node33[j] = np.sign(-1.5 - node22[j] + node23[j])
out[j] = np.sign(1.5 + node32[j] + node33[j])
'''