感知机(Perceptron)
组成
感知机(Perceptron)由两层神经元组成
输入层:接收外界的输入信号,传递给输出层,
输出层:输出层时M-P神经元(阈值逻辑神经元)
图解:
感知机和与或非运算
前提
输入向量:
x=(x1;x2)=(x1x2)
权值向量:
w=(w1;w2)=(w1w2)
输出结果:
y=f(xTw−θ)=f(∑iwixi−θ)
f=sgn(x)={1,x≥0;0,x<0;
- 与运算:(x1∧x2):令w1=w2=1,θ=2,则y=f(1⋅x1+1⋅x2−2),则:x1=x2=1时,y=1;
- 或运算:x1∨x2:令w1=w2=1,θ=0.5,则y=f(1⋅x1+1⋅x2−0.5),则:x1=1或者x2=1时,y=1;
- 非运算:¬x1:令w1=−0.6,w2=0,θ=−0.5,则y=f(−0.6⋅x1+0⋅x2−0.5),则:x1=1,y=0;x1=0,y=1;(其实这里w1可以取其他值)
权值调整
权重和阈值可以通过学习得到,如果将θ作为固定输入为-1.0的”哑结点”其对应的权重为wn+1,这样权重和阈值的学习可以统一为权重学习。
输入向量:
x^=(x1;⋯;xn;−1)=⎛⎝⎜⎜⎜⎜x1⋮xn−1⎞⎠⎟⎟⎟⎟
权值向量:
w^=(w1;⋯;wn;θ)=⎛⎝⎜⎜⎜⎜w1⋮wnθ⎞⎠⎟⎟⎟⎟
输出结果:
y=f(x^Tw^)
调整方法
wi←wi+Δwi,Δwi=η(y−y^)xi
其中η称为学习率
缺点
不能处理异或问题,
异或问题
两层感知机: