Chapter2_感知机
感知机
感知机接收多个输入信号,输出一个信号。感知机的信号只有“1/0”两种取值。
神经元计算传送过来的信号的总和,当总和超过 阈值时,“神经元被激活”。阈值用\(\theta\)表示
\[y=\begin{cases} 0,& \text { $(\omega_1x_1+\omega_2x_2\leq \theta)$ }\\ 1,& \text { $(\omega_1x_1+\omega_2x_2>\theta)$} \end{cases}
\]
感知机的实现
#实现一个AND门
def AND(x1,x2):
w1,w2,theta = 0.5,0.5,0.7
tmp = w1*x1+w2*x2
if tmp<=theta:
return 0
elif tmp>theta:
return 1
导入权重和偏置
\[y=\begin{cases}
0,& \text{$b+\omega_1x_1+\omega_2x_2 \leq 0$}\\
1,& \text{$b+\omega_1x_1+\omega_2x_2>0$}
\end{cases}
\]
\(b=-\theta\) 称为偏置,\(\omega_1\)和\(\omega_2\)称为权重
import numpy as np
x = np.array([0,1]) #输入
w = np.array([0.5,0.5]) #权重
b = -0.7 #偏置
w*x
np.sum(w*x)
np.sum(w*x)+b
使用权重和偏置的实现
def AND(x1,x2):
x = np.array([x1,x2])
w = np.array([0.5,0.5])
b = -0.7
tmp = np.sum(2*x)+b
if tmp<=0:
return 0
else:
return 1
注:\(\omega_1,\omega_2\)是控制输入信号重要性的参数,偏置\(b\)为调整神经元被激活的容易程度(输出信号为1的程度)的参数
感知机的局限性
- 单层感知机无法分离非线性空间
#异或门的实现
def XOR(x1,x2):
s1 = NAND(x1,x2)
s2 = OR(x1,x2)
y = AND(s1,s2)
return y
多层感知机
- 叠加了多层的感知机
- 可以表示非线性空间

浙公网安备 33010602011771号