感知器通俗剖析
请关注公众号AI Engine
在说多层感知器之前我们先来谈谈单纯的感知器,其实单纯的感知器就是一个由两层神经元构成的网络结构,即输入层与输出层。输入层接受外界的数据,通过激活函数和阈值的计算变换,最后将结构传送至输出层。感知器后来成为许多神经网络的结构基础,而它的理论基础也是建立在皮茨等人的“M-P神经元模型”。首先这里强调,感知器是有监督学习,因此是一种分类算法(但是,但是,但是他不能解决异或问题。。。)
我们还是先来举个简单的实例来看看感知器是如何学习并如何分类的吧。感知器的数学表达可以用: y=w1x1+w2x2+w3x3+…+wnxn-θ 来实现,假设我们想要区别香蕉和西瓜,并且将特征x1和x2选定为颜色和形状。我们首先将两个权值w1,w2都设定为1(凭啥设定为1,因为是随机的),阈值θ设为0。为了方便我们将西瓜和香蕉的类别分别标为1,0,算法模型和特征表达示意图如下:
从之前的公式 y= w1x1+w2x2 - θ 我们可以计算出,西瓜计算后的结果是2,香蕉的结果是-2。可是我们预设算法的模型只可以输出1和0啊!别紧张,我们有激活函数~最简单的激活函数就是阶跃函数了,它的规则非常简单,当x>0的时候输出1,当x<0的时候输出0,这就可以让我们的模型:纵享丝滑!
或许这个时候大家就有疑惑了,阈值和权重都是我事先设计好的,如果不是0,1,1的话结果可能就不对了。没错!感知器就是不断的试错,不断的学习,最后算法获得最佳的阈值、权重,输出最终的模型。所以归根结底,所谓的神将网络的学习规则,就是调整神经元之间的连接权值和神经元内部的阈值。在每次训练的过程中,都会将模型的实际输出与期望输出做对比,而二者之间的落差即为残差,这个残差我们通常用损失函数来表达。那么,我为什么说单纯的感知器不能解决异或问题呢?因为感知器是一种线性分类,我们不妨画个草图证明一下。事实证明确实在异或的分类问题方面不是线性可分的,这就衍生的多层感知器的许多概念,我们下回再说。
最后我们分析一下感知器的几何意义。感知器的内部函数可以表示为 f(x)=w1x1+w2x2+w3x3+…+wnxn-θ,这里“x向量 * w向量”即可表示感知器的模型。 于是感知器即可看为一个由超平面划分空间位置的识别器了:
本次对感知器做一个简单的剖析,下次我们会对多层感知器进行分析,所以有感兴趣的同学可以继续关注。