感知机
感知机接收多个输入信号,输出一个信号。感知机的信号只有“1/0”两种取值。
神经元计算传送过来的信号的总和,当总和超过 阈值时,“神经元被激活”。阈值用表示
感知机的实现
#实现一个AND门
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
导入权重和偏置
称为偏置,
和
称为权重
import numpy as np
x = np.array([0,1]) #输入
w = np.array([0.5,0.5]) #权重
b = -0.7 #偏置
w*x
np.sum(w*x)
np.sum(w*x)+b
使用权重和偏置的实现
def AND(x1,x2):
x = np.array([x1,x2])
w = np.array([0.5,0.5])
b = -0.7
tmp = np.sum(2*x)+b
if tmp<=0:
return 0
else:
return
注:是控制输入信号重要性的参数,偏置
为调整神经元被激活的容易程度(输出信号为1的程度)的参数
感知机的局限性
- 单层感知机无法分离非线性空间
#异或门的实现
def XOR(x1,x2):
s1 = NAND(x1,x2)
s2 = OR(x1,x2)
y = AND(s1,s2)
return y
多层感知机
- 叠加了多层的感知机
- 可以表示非线性空间