深度学习入门(基于python的理论与实现)-05感知机(perceptron)
·
感知机:
接收多个信号,输出一个信号。
感知机信号取值:流/不流(0/1)
w1、w2是权重,权重越大,对应的信号的重要性越高,通过的信号就越大。图中⚪称为神经元或者节点,输入信号被送往神经元时,会分别乘以固定的权重(w1x1,w2x2),神经元会计算传来的信号的总和,只有当这个总和超过某个界限值时,才会输出1.这也称为“神经元被激活”。这个界限值称为阈值,用符号θ表示

数学表示:
简单逻辑电路(利用感知机实现逻辑电路)
与门(AND gate):只有两个输入都为1时,才可以输出1,其余都是0
eg:(w1,w2,θ)=(0.5,0.5,0.7)时,且x1和x2同时为1,信号加权总和才会超过给定的阈值。
所以实现与门就需要将感知机设定特定的参数后,仅x1和x2同时为1时,信号加权才会超过给定阈值。
与非门(NAND gate):颠倒了与门的输出,仅当x1和x2同时为1时,输出0,其他时候输出1。
要表示与非门,实际上就是将与门的参数值取反:(w1,w2,θ)=(-0.5,-0.5,-0.7),就可以实现与非门。
或门:只要有一个输入信号是1,输出就是1。
eg:(w1,w2,θ)=(0.5,0.5,-0.4),实现或门,就需要所有权重均大于阈值
感知机的实现
与门的实现
def AND(x1,x2):
w1,w2,theta=0.5,0.5,0.7
tmp=w1*x1+w2*x2
if tmp>theta:
return 1
else:
return 0
print(AND(0,0))
print(AND(0,1))
print(AND(1,0))
print(AND(1,1))
与门实现比较直接,在实现与非门和或门时,首先把的 θ换成−b,于是就可以用下式来表示感知机的行为。
b为偏置,用来调节神经元被激活的容易程度(输出信号为1)。

def NAND(x1,x2):
w1,w2,b=-0.5,-0.5,0.7
tmp=w1*x1+w2*x2+b
if tmp>0:
return 1
else:
return 0
print(NAND(0,0))
print(NAND(0,1))
print(NAND(1,0))
print(NAND(1,1))
def OR(x1,x2):
w1,w2,b=0.5,0.5,-0.4
tmp=w1*x1+w2*x2+b
if tmp>0:
return 1
else:
return 0
print(OR(0,0))
print(OR(0,1))
print(OR(1,0))
print(OR(1,1))
更多推荐



所有评论(0)