2.2 感知机
我们先来看一个概念,什么叫感知机?首先,感知机是最简单的神经网络,它具备神经网络的必备因素,当然,单看一个神经元是无法理解“网络”的概念的。
网络接收若干个输入,并通过输入函数、传输函数给出一个网络的输出。这个网络已经可以解决苹果和香蕉的分类问题。本节将具体介绍其内部原理。
现在我们不叫它神经元了,我们叫它感知机,它是最简单的神经网络。
我们用感知机解决一个经典分类问题——如何分辨香蕉和苹果。
若你的年龄不低于2岁,那么我想你能分辨出香蕉和苹果,而计算机是如何做到的呢?
为了将问题简单化,我们假设香蕉和苹果都只有两个特征——颜色和形状,其他特征我们不考虑,比如气味、触感等。这两个特征都是基于视觉刺激得到的,用树突p1代表输入颜色刺激状态,树突p2代表形状刺激状态,权重w1默认都设置为1,即假设之前受到的颜色和形状的刺激一样多。再简化点,我们将内部强度b设为0。我们定义1就是苹果,0就是香蕉。
我们为苹果和香蕉的两个特征设定一个值,便于机器计算,如表2-2所示。
表2-2 设定特征值
颜色和形状对神经元来说都是外界的一个刺激,我们说:
p1(颜色)= 1或-1
p2(形状)= 1或-1
预设:
w1=w2= 1
b = 0
代入之前s的那个公式看看得到什么结果?
对苹果的鉴别如下:
s=1×1+1×1+0=2
对香蕉的鉴别如下:
s=-1×1+(-1)×1+0=-2
我们通过输入苹果和香蕉的两类特征值得到不同的输出结果,也就是s,苹果的输出结果是2,香蕉的输出结果是-2。
几乎已经完成识别了。
我们定义的是1为苹果,0为香蕉,如何将-2或2变为1或0的分类表达呢?这就需要传递函数处理了,我们选用step函数作为数据格式处理函数,step的输出就是0和1,将数据代入,则step(2)=1,step(-2)=0,和我们预期的一样。
我们利用简单感知机实现了一个识别苹果和香蕉的例子。
聪明的读者会发现,所有的结果都是基于设定好的相关参数w1、w2和b这些神经元关键权重参数。
我们为什么要取值为1、1和0呢?如果取其他值有什么问题吗?会对结果有什么影响吗?