一.感知机是什么
简单的输入和输出,感觉(输入),知道(输出,作出反应)
二.简单逻辑电路
2.1与门
import numpy as np
#AND
def AND(X1,X2):w1,w2,thera=0.5,0.5,0.7tmp=X1*w1+X2*w2if tmp>thera:return 1else :return 0#AND(通过权重和偏置实现)
def AND1(x1,x2):x=np.array([x1,x2])w=np.array([0.5,0.5])b=-0.7# tmp=x*w+b#这会产生一个数组,应该改成tmp=np.sum(w*x+b)if tmp>0:return 1else:return 0
2.2与非门
#NAND(与非门)
def NAND(x1,x2):x=np.array([x1,x2])w=np.array([0.5,0.5])b=-0.7tmp=np.sum(w*x+b)if tmp<0:return 1else :return 0
#为什么不直接改掉AND的判断条件颠倒输出,而是要改权重和偏置?
# 调整权重和偏执可以不依赖于AND(判断条件的时候),并且与非门只有1,1才会输出0,对应加权后的两数和大于偏执(小于0)def NAND2(x1,x2):x=np.array([x1,x2])w=np.array([-0.5,-0.5])b=0.7tmp=np.sum(w*x+b)if tmp>0:return 1else :return 0
2.3 或门
#或门
def OR(x1,x2):x=np.array([x1,x2])w=np.array([0.5,0.5])b=-0.2tmp=np.sum(w*x+b)if tmp>0:return 1else :return 0
2.4 异或门(异或是“拒绝”的意思,就是拒绝相同的情况发生)
def XOR(x1,x2):s1=OR(x1,x2)s2=NAND(x1,x2)s3=AND(s1,s2)