深度学习入门-感知机

斋藤康毅的书终于到了!《深度学习入门-基于Python的理论与实现》
刚读了一章就觉得深入浅出,好书啊!一直搞不懂的与、或、非与、异或都弄明白了。在这里记录一下算法实现吧~~

【感知机】
英文:perceptron
定义:又称人工神经元/朴素神经元,可以接收多个输入信号,输出一个信号。其运行原理简单表示为:
在这里插入图片描述
其中θ是阈值,当把θ移到左边,称作偏置,偏置b=-θ,如下所示:
在这里插入图片描述

使用感知机来思考逻辑电路的问题,包括与门、与非门和或门。
1、与门

#x1和x2均为1时,y才输出1
def AND(x1,x2):
	x=np.array([x1,x2])
	w=np.array([0.5,0.5])
	b=-0.7   
	tmp=np.sum(x*w)+b
    if tmp>0:return 1
    elif tmp<=0:return 0

2、或门

#x1和x2均为0时,y才输出0
def OR(x1,x2):
	x=np.array([x1,x2])
	w=np.array([0.5,0.5])
	b=-0.2  
	tmp=np.sum(x*w)+b
    if tmp>0:return 1
    elif tmp<=0:return 0

3、与非门

#x1和x2均为1时,y才输出0
def NAND(x1,x2):
	x=np.array([x1,x2])
	w=np.array([-0.5,-0.5])
	b=0.7
	tmp=np.sum(x*w)+b
    if tmp>0:return 1
    elif tmp<=0:return 0

-------分界线---------
4、异或门
当问题来到异或门时,就变得不一样了。
上面的三个门都是可以一层感知机直接实现,因为其实现过程是对线性空间的分割。而异或门里,x1x2均为0、x1x2均为1都会输出0,只有x1x2一个为0一个为1时才会输出1。属于对非线性空间的划分,单层感知机不再适用,故引入多层感知机的概念。

如果x1,x2先实现或门,则x1x2只有均为0时才输出0,其他情况输出1,满足了异或门的一个条件;
如果x1,x2先实现非与门,则x1x2只有均为1时才输出0,其他情况输出1,满足了异或门的另一个条件;
以上二者的其他情况和异或门的其他输出1的情况是一致的!

也就是说,第一层感知机,可以并行计算x1x2或门的结果s1,以及x1x2非与门的结果s2;第二层感知机,利用s1和s2计算与门的结果y,y即是x1x2异或门的结果!

异或门可以利用之前定义好的三个函数,简单定义为:

#x1和x2均为1时,或者x1和x2均为0时,y输出0
def XOR(x1,x2):
	s1=OR(x1,x2)
	s2=NAND(x1,x2)
	y=AND(s1,s2)
	return y

从理论上来说,多层感知机可以表示计算机!
介绍了一本书,有空看^_*
《计算机系统要素:从零开始构建现代计算机》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值