python代码:
import numpy as np
x1 = np.array([0, 0, 1, 1])
x2 = np.array([0, 1, 0, 1])
t = np.array([0, 0, 0, 1])
t1 = np.array([0, 1, 1, 1])
w0 = 0
w1 = 0
w2 = 0
a = 0.001
def mysum(x1, x2):
return w0 +w1 * x1 + w2 * x2
for i in range(1000):
w0 = w0 - a * (mysum(x1[i % 4], x2[i % 4]) - t[i % 4])
w1 = w1 - a * (mysum(x1[i % 4], x2[i % 4]) - t[i % 4]) * x1[i % 4]
w2 = w2 - a * (mysum(x1[i % 4], x2[i % 4]) - t[i % 4]) * x2[i % 4]
del0 = (mysum(x1[i % 4], x2[i % 4]) - t[i % 4])
del1 = (mysum(x1[i % 4], x2[i % 4]) - t[i % 4]) * x1[i % 4]
del2 = (mysum(x1[i % 4], x2[i % 4]) - t[i % 4]) * x2[i % 4]
while (abs(del0) < 0.001 and abs(del1) < 0.001 and abs(del2) < 0.001):
print(w0, w1, w2)
break
结果: