神经网络学习入门笔记

一、感知机

 1.感知机的作用

感知机接收多个输入信号,输出一个信号 。

输出信号只有1或0两种取值,对应神经元休眠和激活两个状态。

输入信号被送往神经元时,会被分别乘以固定的权重。

神经元会计算传送过来的信号的总和,总和超过了某个界限值时,才会输出1,称为“神经元被激活”。

感知机的多个输入信号都有各自固有的权重,这些权重发挥着控制各个信号的重要性的作用。 权重越大,对应该权重的信号的重要性就越高。

2.二输入感知机

假设有两个输入信号x1和x2,各自对应的权重系数为ω1 和ω2,一个输出信号y ,界限值为θ , 则二输入感知机可表示为:               

θ又被称为阈值,当神经元传递过来的信号总和ω1 x1+ω2 x2大于θ时,才会输出1,这也被称为激活神经元。

 3.逻辑电路

重点是记住逻辑电路的固定规则。同样假设有两个输入信号x 1 和x 2 ,一个输出信号y ,不同逻辑电路的规则及对应真值表如下:

与门(AND gate)

 与非门(NAND gate)

 或门(OR gate)


代码实现

#与门
def AND(x1, x2):
	w1, w2, theta = 0.5, 0.5, 0.7
	tmp = x1*w1 + x2*w2
	if tmp <= theta:
		return 0
	elif tmp > theta:
		return 1


#与非门
def NAND(x1, x2):
	x = np.array([x1, x2])
	w = np.array([-0.5, -0.5]) # 仅权重和偏置与AND不同!
	b = 0.7
	tmp = np.sum(w*x) + b
	if tmp <= 0:
		return 0
	else:
		return 1


#或门
def OR(x1, x2):
	x = np.array([x1, x2])
	w = np.array([0.5, 0.5]) # 仅权重和偏置与AND不同!
	b = -0.2
	tmp = np.sum(w*x) + b
	if tmp <= 0:
		return 0
	else:
		return 1

4.多层感知机实现异或门

运用已有的感知机进行组合:

代码实现: 

def XOR(x1,x2):
    S1 = NAND(x1,x2)									
    S2 = OR(x1,x2)
    y = AND(s1,s2)
    Return y

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值