Я пытаюсь реализовать действительно простой нейрон И-гейт, используя обучение на адалине, но даже после реализации алгоритмов на протяжении многих эпох, я не могу понять, почему я не получаю ответ там, где он ближе к реальным.
x1 =[1,0,1,0];
x2 = [1,1,0,0];
o = [1,-1,-1,-1];
w0=0.2;
w1=0.2;
w2=0.2;
learningRate=0.2;
for j in range(0,200):
for i in range(0,4):
y=x1[i]*w1+x2[i]*w2+w0;
w1+=learningRate*(o[i]-y)*x1[i];
w2+=learningRate*(o[i]-y)*x2[i];
w0+=learningRate*(o[i]-y);
print(w1)
print(w2);
a =int(input('give input A'));
b = int(input('give input B'));
print(w1*a+w2*b+w0);
После обучения я ожидал, что выход будет действительно близок к 1, когда входы были 1, а выход действительно близок к 0 на других входах