小杰深度学习(one)——感知向量机
感知机(又称神经元)由 Frank Rosenblatt 于 1957 年提出,虽历史悠久但仍是学习神经网络与深度学习的基础。其核心思想是现代多层神经网络的起源,掌握感知机构造有助于理解深度学习的底层逻辑。
1. 感知机是什么
感知机接收多个输入信号,输出 1(传递信号)或 0(不传递信号)的二元结果,信号流动特性类似电流,但其取值仅两种状态。
接收两个输入信号的感知机中,输入信号 x1、x2 经权重 w1、w2 加权后求和,若总和超过阈值 θ,神经元激活并输出 1,否则输出 0,其中权重反映信号重要性,θ 为激活界限值。如下图所示。

感知机中各输入信号的权重(w1,w2)控制其重要性,权重越大对应信号越重要。
2. 感知机的简单应用
2.1 逻辑与
"与门"是一种二输入单输出的门电路,其真值表为:当且仅当两个输入均为 1 时输出 1,否则输出 0,逻辑与的真值表如下图所示。

2.2逻辑或
“或门”是只要有一个输入信号是1,输出就为1,输入信号全 0 时输出 为0 的逻辑电路。逻辑或的真值表如下图所示。

2.3 逻辑与非
与非门就是颠倒了与门的输出,其真值表如下图所示。

3. 感知机的实现
3.1 简单实现
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
if __name__ == "__main__":
print(AND(0, 0)) #0
print(AND(1, 0)) #0
print(AND(0, 1)) #0
print(AND(1, 1)) #1
3.2 使用权重和偏置的实现
刚才与门的实现比较直接、容易理解,但是考虑到以后的事情,将其修改为另外一种实现形式。将theta换成b,得到如下表达式:

其中b称为偏置,w1和w2称为权重。感知机会计算输入信号和权重的乘积,然后加上偏置,如果这个值大于0则输出1,否则输出0。
AND代码
import numpy as np
def AND(x1,x2):
#输入特征
x=np.array([x1,x2])
w=np.array([0.5,0.5])
b=-0.7
tmp=np.sum(w*x)+b
if tmp<=0:
return 0
elif tmp>0:
return 1
if __name__=='__main__':
print(AND(0,0)) #0
print(AND(1,0)) #0
print(AND(0,1)) #0
print(AND(1, 1)) # 1
NAND代码
import numpy as np
def NAND(x1, x2):
x = np.array([x1, x2])
w = np.array([-0.5, -0.5])
b = 0.7
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
if __name__=='__main__':
print(NAND(0,0)) #1
print(NAND(1,0)) #1
print(NAND(0,1)) #1
print(NAND(1, 1)) # 0
OR门代码
import numpy as np
def OR(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.2
tmp = np.sum(w*x) + np.array(b)
if tmp <= 0:
return 0
else:
return 1
if __name__=='__main__':
print(OR(0,0)) #0
print(OR(1,0)) #1
print(OR(0,1)) #1
print(OR(1, 1)) # 1
小结:权重 w1、w2 控制输入信号重要性,偏置 b 调整神经元激活难易度(如 b=-0.1 时加权和超 0.1 激活,b=-20.0 时需超 20.0)。与门、与非门、或门的感知机构造相同,仅权重和偏置取值不同。
4. 感知机的局限
感知机的核心瓶颈在于线性模型的先天缺陷和单层网络的结构限制。其局限性推动了神经网络的发展。
5. 多层感知机
多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network)除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构,如下图:
输出层
输入层
隐层
一O1
O1
M
XN
1

从上图可以看到,多层感知机层与层之间是全连接的。多层感知机包括三层:
●输入层:接收原始特征(如图片像素、文本向量),节点数等于特征维度。
●隐藏层:位于输入层和输出层之间,可包含一层或多层神经元。隐藏层神经元通过权重矩阵与前一层连接,是特征变换的核心
●输出层:根据任务类型输出结果(如二分类输出 1 个节点,多分类输出 Softmax 层)
更多推荐



所有评论(0)