Мне нужно реализовать персептрон Розенблатта в Python3.
Алгоритм такой:
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
Теперь у меня ошибка с бесконечным циклом.
Помощь будет оценена по достоинству !!