Проблемы с перцептроном Розенблатта в Python - PullRequest
0 голосов
/ 08 июля 2019

Мне нужно реализовать персептрон Розенблатта в 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

Теперь у меня ошибка с бесконечным циклом.

Помощь будет оценена по достоинству !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...