import numpy as np
x1 = np.array([0, 0, 1, 1])
x2 = np.array([0, 1, 0, 1])
# and运算
y = np.array([0, 0, 0, 1])
# or运算
y1 = np.array([0, 1, 1, 1])
# 设初始值
w0 = -0.8
w1 = 0.5
w2 = 0.5
alpha = 0.001
# 阶跃函数
def fx(x1, x2):
return w1*x1+w2*x2+w0
# 激活函数
def hy(xx1, xx2):
if(fx(xx1,xx2)>0.5):
return 1
else:
return 0
# and运算循环5000次
for i in range(5000):
w0 = w0 - (fx(x1[i % 4], x2[i % 4]) - y[i % 4]) * alpha
w1 = w1 - (fx(x1[i % 4], x2[i % 4]) - y[i % 4]) * x1[i % 4] * alpha
w2 = w2 - (fx(x1[i % 4], x2[i % 4]) - y[i % 4]) * x2[i % 4] * alpha
# 如果偏导小于0.001,输出此时权重及偏导
if (abs(fx(x1[i % 4], x2[i % 4]) - y[i % 4]) < 0.001 and abs(
(fx(x1[i % 4], x2[i % 4]) - y[i % 4]) * x1[i % 4]) < 0.001 and abs(
(fx
python实现感知器
于 2022-09-29 21:37:27 首次发布
该博客通过Python实现了一个简单的神经网络,用于模拟逻辑运算中的AND和OR操作。通过迭代更新权重,最终得到能正确执行这两种逻辑运算的权重值。在AND运算中,网络成功学习到了权重[-0.59448, 0.59488, 0.59482],而在OR运算中,权重为[-0.00083, 0.70753, 0.70791]。这些权重可以用于预测输入的逻辑结果。
摘要由CSDN通过智能技术生成