【神经网络】神经元模型和感知器

1.神经元模型

在生物神经网络中,每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位。如果某神经元的电位超过了一个“阈值”,那么它就会被**,即“兴奋”起来。

1943年,心理学家McCulloch和数学家Pitts提出了第一个抽象的神经元模型,称为MP模型。MP模型是人工神经网络的基本单元,如下图所示:

【神经网络】神经元模型和感知器

其中,向量【神经网络】神经元模型和感知器是神经元模型的输入,为第i个神经元到第n个神经元的输出。【神经网络】神经元模型和感知器是与输入相对应权值。在输入和神经元之间通常还有一个偏置(图上未画),这里记为b,神经元的输出为y。

整个过程为:神经元接收来自 n个其他神经元传递过来的输入信号x,将输入 x 和所对应的权值W 相乘后再求和,得到神经元接收到的总输入值【神经网络】神经元模型和感知器,然后通过**函数f处理产生神经元最终的输出y,如下式所示:

                                                                                                    【神经网络】神经元模型和感知器

**函数f用于模拟人脑部神经元对输入的信息进行处理并判断是否产生对应的响应,即是否“兴奋”。常见的**函数有:

  • 阶跃函数

【神经网络】神经元模型和感知器

 其中z表示阈值,即当输入x超过阈值z时(一般情况下z=0),**函数的输出为1,表示神经元被**,否则被抑制。但是可以看出,其函数输出是不连续的,为此更多地采用sigmoid函数。

  • Sigmoid函数

【神经网络】神经元模型和感知器

Sigmoid函数是在定义域内连续递增的函数,把输入映射到0到1之间,其中 被映射到1, 被映射到0。同样会设置一个阈值,当sigmoid函数的输出大于这个阈值时,神经元模型被**。 

它们的图像如下:

【神经网络】神经元模型和感知器

MP模型虽然简单,却建立了神经网络大厦的地基。但是MP模型中,权重的值都是预先设置的,因此不能学习 

2.感知器

2.1 基本结构

感知器模型(Perceptron)是在1958年由计算科学家Rosenblatt首先提出的。感知器由两层神经元组成,分别为输入层和输出层构成。输入层接收外界输入信号后传递给输出层,输出层是 M-P 神经元,也就是说只有输出层神经元进行**函数处理。如下图所示:

【神经网络】神经元模型和感知器

 

感知器的计算公式如下所示:

                                                                                          【神经网络】神经元模型和感知器

所采用的**函数f为sign函数:

                                                                                        【神经网络】神经元模型和感知器

可以把感知机看作是n维实例空间中的超平面决策面,对于超平面一侧的实例,感知器输出1,即正例;对于另一侧的实例输出 -1,即负例。这个决策超平面方程就是【神经网络】神经元模型和感知器(n=2的话,即二维实例空间,此时感知机退化成一条直线)。那些可以被某一个超平面分割的正反样例集合称为线性可分样例集合,换句话说,感知机是一种线性的分类模型不能完成非线性的分类

从计算表达式上来看,感知器模型与神经元模型并没有明显区别,但是实际上主要的区别有三点:
(1)感知器的输入变成了一层神经元,而神经元模型的输入为其他神经元的输出信号;
(2)感知器的**函数为sign函数,而神经元模型的**函数可以是sign函数,也可以是sigmoid函数等;
(3)感知器可以采用有监督的方式学习到参数值,而神经元模型的参数是不能被学习的

2.2 损失函数 

感知器最大的亮点就是在于可以利用梯度下降算法来自主更新参数,为此必须要建立起损失函数。定义感知机的损失函数之前需要明确以下几点:

(1)当【神经网络】神经元模型和感知器【神经网络】神经元模型和感知器,即数据被预测为正例;当【神经网络】神经元模型和感知器【神经网络】神经元模型和感知器,数据被预测为负例,因此对于正确分类的数据都满足【神经网络】神经元模型和感知器,分类错误的数据【神经网络】神经元模型和感知器

(2)点到平面的距离计算公式为:【神经网络】神经元模型和感知器

所以定义感知机的损失函数可以让误分类的数据到直线的距离和最小,此时误分类点到超平面的距离是:

                                                                                      【神经网络】神经元模型和感知器

这样,假设超平面S的误分类点集合为M,那么所有误分类点到超平面的总距离为:
                                                                                     【神经网络】神经元模型和感知器

不考虑【神经网络】神经元模型和感知器,就得到了感知机学习的损失函数

                                                                                         【神经网络】神经元模型和感知器

显然,损失函数是非负的。如果没有误分类点,损失函数的值为0。而且误分类点越少,误分类点离超平面越近,损失函数的值就越小。

为什么损失函数可以不考虑1/||????||?

  • 1/||????||不影响????????(????⋅????????+????)正负的判断,即不影响学习算法的中间过程。因为感知机学习算法是误分类驱动的,这里需要注意的是所谓的“误分类驱动”指的是我们只需要判断−????????(????⋅????????+????)的正负来判断分类的正确与否,而1/||????||并不影响正负值的判断。所以1||????||对感知机学习算法的中间过程可以不考虑。
  • 1||????||不影响感知机学习算法的最终结果。因为感知机学习算法最终的终止条件是所有的输入都被正确分类,即不存在误分类的点。则此时损失函数为0. 对应于−1/||????||∑????∈????????????(????⋅????????+????),即分子为0.则可以看出1/||????||对最终结果也无影响。

综上所述,即使忽略1/||????||,也不会对感知机学习算法的执行过程产生任何影响。反而还能简化运算,提高算法执行效率。

2.3 梯度下降更新

梯度下降首先要求得损失函数对于参数的梯度,即导数。通过连式法则,很容易求出损失函数对参数W和b的导数:

                                                                                     【神经网络】神经元模型和感知器

                                                                                       【神经网络】神经元模型和感知器

梯度下降进行更新:

                                                                                    【神经网络】神经元模型和感知器

                                                                                       【神经网络】神经元模型和感知器

2.4 感知机和SVM的异同。

(1)相同点:

  • 都可以求取一个超平面来完成线性的二分类问题
  • 均属于监督学习的分类器

(2)不同点

  • SVM可以通过改变核函数来解决非线性问题,而感知机不行
  • 感知机的损失函数为所有误分类点的几何距离,使其最小,SVM的损失函数是参数的L2范数,也就是结构风险最小化的。或者说感知机的损失函数是函数距离的和,而支持向量机是几何距离的和,感知机是去掉距离限制的SVM
  • 感知机追求最大程度正确划分,最小化所有错误点到超平面的距离,很容易造成过拟合。而支持向量机最求两种数据最大程度的分开,即最大化支持向量点之间的间隔,一定程度上避免了过拟合,