在Python中执行Rosenblatt感知器的问题

时间:2019-07-08 14:38:25

标签: python python-3.x machine-learning neural-network

我需要在Python3中实现Rosenblatt的感知器。

算法是这样的:

https://imgur.com/a/HaNGqNz

我想要一个实现该算法的功能,输入应为要解决的问题的X和Y矩阵,输出应为w向量。

在这种情况下,w向量由偏差和权重组成。

在这里,矩阵X和Y

X_and = np.array([[1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 1]])
Y_and = np.array([[0], [0], [0], [1]])
X_or = X_and.copy()  
Y_or = np.array([[0], [1], [1], [1]])
print(X_and)
print(Y_and)
print(X_or)
print(Y_or)

[[1 0 0]
 [1 0 1]
 [1 1 0]
 [1 1 1]]
[[0]
 [0]
 [0]
 [1]]
[[1 0 0]
 [1 0 1]
 [1 1 0]
 [1 1 1]]
[[0]
 [1]
 [1]
 [1]]

在这里,我做的代码

def perceptron_learn(x, y):
    w=np.zeros(3)
    error=True
    while error==True:
        i=0
        error= False
        while i < len(y):
            o = x[i]*(w)
            if np.any(o != y[i]):
                w = w + (y[i]-o)*(x[i])
                error = True
            i=i+1
    return w, i

现在,我遇到无限循环错误。

我们将不胜感激!

0 个答案:

没有答案