购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3.2 感知机是神经网络吗

感知机(Perceptron)是Frank Rosenblatt在1957年提出的概念,其结构与MP模型类似,一般被视为最简单的人工神经网络,也被作为二元线性分类器广泛使用。

在通常情况下,感知机是指单层的人工神经网络,以区别于多层感知机(Multilayer Perceptron)。尽管感知机结构简单,但其能够学习并解决较复杂问题。其结构如图1.15所示。

假设有一个 n 维输入的单层感知机, x 1 x n n 维输入向量的各个分量, w 1 w n 为各个输入分量连接到感知机的权量(或称权值), θ 为阈值, f 为激活函数(又称激励函数或传递函数), y 为标量输出。理想的激活函数 f · )通常为阶跃函数或Sigmoid函数。

图1.15 感知机结构

感知机的输出是输入向量 X 与权重向量 W 求内积后经激活函数 f 所得到的标量。

权重向量 W 的初始值一般是随机设置的,往往达不到较好的拟合结果。那如何更改权重数值使标量输出 y 逼近实际值呢?这时需要简单了解感知机的学习过程。

首先按照式(1.1)得到输出值,然后将实际输出值和理论输出值做差,由此来调整每个输出端的权值。学习规则是用来计算新的权重向量 W 及新的偏差 B 的算法。

下面举一个实际的例子来说明。

中国常用的长度单位为厘米(cm),美国常用的长度单位为英寸(in),两者之间有一个固定的转化公式。现在假设我们并不知道该公式,在单层感知机(目前考虑为单输入)的输入端输入以英寸为单位的数值,希望输出端输出相应的以厘米为单位的数值。

首先我们先设定输入值为10英寸,并随机设定隐藏神经元的数值,假设 w 为1。此时单层感知机的输出为

10×1=10(厘米)

但我们知道正确的输出应该为25.4厘米,这时可以计算输出值与真实值之间的差:

误差值=真实值-输出值

=25.4-10

=15.4

下一步用这个误差值对权重 w 进行调整。

如将 w 由1调整至2,可以得到新的结果:10×2=20(厘米)。这个结果明显优于上一个,误差值为5.4。

再次重复上述过程,将 w 调整至3,结果为:10×3=30(厘米),明显超过了真实值,误差为-4.6,与当 w =2时符号相反。

如果误差达到可以接受的范围,就可以停止训练;如果不能接受,可以继续在[2,3]微调 w

在上述例子中,感知机接收一个输入,并做出对应的预测,称为预测器。

下面给出一个单层感知机应用于分类问题的Python应用实例。

1.输入数据集与其对应标签

外界输入是4个值,后两个值确定平面上的某个点的位置,前两个值相当于偏置值,与阈值的意义相同, Y 存储每组值对应的正负标签,这里输入了5组数值。现在需要做的是找到一条直线,将正负值区域分开。

2.权重的初始化

随机生成范围为(-1,1)的权重,权重的个数与输入向量维度相同。

3.更新权重函数

若随机生成的权重 W 不能合理区分正负值区域,就要根据当前输出标签和原有标签差值的大小进行权重调整,将二者的差乘以输入 X ,再与学习率lr相乘得到权重改变值,然后与原有权重相加后得到新权重。

完整的代码如下。

感知机分类结果示意如图1.16所示。

单层感知机类似一个逻辑回归模型,可以做线性分类任务,其结构简单,权重更新计算快速,能够实现逻辑计算中的NOT、OR、AND等简单计算。

1969年,美国数学家及人工智能先驱Minsky在其著作中证明了感知机本质上是一种线性模型,只能处理线性分类问题,连最简单的XOR(异或)问题都无法正确解决。这等于直接宣判了感知机的死刑,神经网络的研究也陷入了近20年的停滞。

图1.16 感知机分类结果示意 sZFkICc+mmH7coD3sWZn/EH0j38Pe4gxOE9wqQhOmCodTEMGtM8RF/bs8Q/u5kVZ

点击中间区域
呼出菜单
上一章
目录
下一章
×