使用权重和偏置实现与门、与非门、或门
权重和偏置
表示感知机的行为:
y = { 0 b+w1x1+w2x2 ≤0 1 b+w1x1+w2x2 >0 y= \begin{cases} 0& \text{b+w1x1+w2x2 ≤0}\\ 1& \text{b+w1x1+w2x2 >0} \end{cases} y={
01b+w1x1+w2x2 ≤0b+w1x1+w2x2 >0
其中,b称为偏置,也就是把前面的θ移到式子左边使式子右边为0,相对于偏置b就为-θ。偏置b决定了神经元被激活的难易程度。感知机会计算输入信号和权重的乘积,然后再加上偏置,若是这个值大于0则输出1,若是小于等于0则输出0。
使用权重和偏置实现与门
步骤:
(1)首先需要定义一个接收参数x1与x2的AND函数
(2)然后把信号x与权重w定义为两个元素个数相同的数组,这样方便相乘,给权重和偏置取值。这里参数w我们取[0.5, 0.5],偏置b取-0.9
(3)求出信号与权重的乘积再加上偏置的总和
(4)判断加权总和s大于还是小于0
(5)输出
# 权重和偏置实现与门
import numpy as np # 导入numpy库
def AND(x1, x2): # 定义函数
x = np.array([x1, x2]) # 定义数组x表示信号变量
w = np.array([0.5, 0.5]) # 定义数组w表示权重
b = -0.9 # 给偏置赋值
s = np.sum(w*x) + b # 权重与信号的乘积加上偏置的总和
if s <=0: # 条件判断总和是否小于等于0
return 0 # 小于0则输出0
else:
return 1 # 大于0则输出1
a =