感知机是什么?
感知机接受多个输入信号,输出一个信号
感知机的信号只有“流/不流”两种取值,0对应“不传递信号”,1对应“传递信号”。
输入信号在被送往神经元时,会被分别乘以固定的权重。神经元会计算传送过来的信号的总和,只有当这个总和超过某个界限值时,才会输出1。这也称为“神经元被激活”。
上述内容用数学式来表示,就是:
y=0(w1x1+w2x2<=θ)
1 (w1x1+w2x2>θ)
简单逻辑电路
与门 and gate:与门是具有两个输出和一个输入的门电路。 与门仅在两个输入均为1时输出1,其他时候输出0
与非门 NAND gate
或门
感知机的实现
与门的实现
def AND(x1,x2):
w1,w2,theta = 0.5,0.5,0.7
tmp = w1*x1+w2*x2
if tmp <= theta:
return 0
elif tmp > theta:
return 1
导入权重和偏置
y=0(b+w1x1+w2x2<=0)
1(b+w1x1+w2x2>0)
偏置的值决定了神经元被激活的容易程度
感知机的局限性
异或门,仅当x1和x2中的一方为1时,才会输出1.
一条直线无法分开 真值表中的4个点
曲线分割的空间称为非线性空间,直线分割的空间称为线性空间。
多层感知机
异或门的实现
AND函数。NAND函数。OR函数。叠加
def XOR(x1, x2):
s1= NAND(x1,x2)
s2= OR(x1,x2)
y=AND(s1,s2)
return y