感知机是1957年提出的算法,也是作为神经网络和深度学习的起源算法。
下面是csdn大佬总结的感知机模型以及简单的应用:机器学习——感知机机器学习感知机欲游山河十万里的博客-CSDN博客
感知机是什么
感知机接收多个输入信号,输出一个信号输入信号在送往神经元的时候,分别乘以权重,神经元会计算信号总和,只有当这个总和超过某个界限时,才会输出1;
感知机应用与实现
a.与门
def AND(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.7
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
(0, 0) -> 0 #0+0-0.7
(1, 0) -> 0 #0.5+0-0.7
(0, 1) -> 0 #0+0.5-0.7
(1, 1) -> 1 #0.5+0.5-0.7
b.或门
def OR(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.2
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
c.与非门
def NAND(x1, x2):
x = np.array([x1, x2])
w = np.array([-0.5, -0.5])
b = 0.7
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
多层感知机
从上面应用可以看出单层感知机无法实现异或门,深究其原因,知感知机的原理是用直线在平面上分隔出两个空间,其中一个空间输出0,另一个空间输出1;异或门无法用一条直线分隔成0和1 两个空间;此外,直线分隔成的空间叫做线性空间,非直线分隔成的空间叫做非线性空间;所以,单层感知机只能解决线性空间问题。故引入多层感知机。
d.异或门实现
参考计算机组成异或门的实现,我们知道可以利用与非门,或门和与门组合实现;
def XOR(x1, x2):
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
y = AND(s1, s2)
return y
end