模拟逻辑运算时,感知器的公式是这样的:
y
(
x
1
,
x
2
)
=
f
(
ω
1
∗
x
1
+
ω
2
∗
x
2
−
θ
)
y(x1,x2)=f(ω1∗x1+ω2∗x2−θ)
y(x1,x2)=f(ω1∗x1+ω2∗x2−θ)
其中x是输入的值只能取0或1
ω是对应的权值
θ是偏移量
y是输出,y>=0为真,小于0为假
也就是说,这个感知器通过学习ω1,ω2,θ的值来学习逻辑运算。
如果我们要这个感知器进行异或运算,就需要它在x1,x2相同时y小于0,不相同时大于等于0;
也就是符合以下方程组:
ω
1
+
ω
2
−
θ
<
0
ω1 + ω2 - θ < 0
ω1+ω2−θ<0
ω
1
+
0
−
θ
≥
0
ω1 + 0 - θ ≥ 0
ω1+0−θ≥0
0
+
0
−
θ
<
0
0 + 0 - θ < 0
0+0−θ<0
0
+
ω
2
−
θ
≥
0
0 + ω2 - θ ≥ 0
0+ω2−θ≥0
整理得到:
ω2 ≥ θ
0 < θ
ω1 ≥ θ
ω1+ω2<0
再整理:
0 > ω1+ω2 ≥ 2θ > 0
很明显这个式子不成立,ω1+ω2和θ都不能即大于0又小于0
所以这个函数是不能模拟异或运算的,那么采用这个函数的感知器自然也不能模拟异或运算。