单层感知机和多层感知机(MLP)是最基础的神经网络结构。将卷积操作创新的加入到神经网络结构形成了卷积神经网络,卷积神经网络给现代人工智能注入了活力。感知机网络和卷积网络(CNN)都属于前馈型网络(FeedForward Network)。
单层感知机是二分类的线性分类模型,输入是被感知数据集的特征向量,输出时数据集的类别{+1,-1}。单层感知机的函数近似非常有限,其决策边界必须是一个超平面,严格要求数据是线性可分的。支持向量机,用核函数修正了感知器的不足,将特征向量有效的映射到更高维的空间使得样本成为线性可分的数据集。
本节尝试揭开单层感知机的神秘面纱,尝试用数据给出模型和解释。
1 单层感知机的模型
单层感知机目标是将被感知数据集划分为两类的分离超平面,并计算出该超平面。
单层感知机是二分类的线性分类模型,输入是被感知数据集的特征向量,输出时数据集的类别{+1,-1}。感知器的模型可以简单表示为:
该函数称为单层感知机,其中w是网络的N维权重向量,b是网络的N维偏置向量, w.x是w和x的内积,w和b的N维向量取值要求在实数域。
sign函数是感知机的早期激活函数,后面又演化出一系列的激活函数。激活函数一般采用非线性激活函数,以增强网络的表达能力。常见的激活函数有:sign, sigmoid,tanh,ReLU等。
为单层感知机与逻辑回归的差别就是感知机激活函数是sign,逻辑回归的激活函数是sigmoid。sign(x)将大于0的分为1,小于0的分为-1;sigmoid将大于0.5的分为1,小于0.5的分为0。因此sign又被称为单位阶跃函数,逻辑回归也被看作是一种概率估计。
2 单层感知机的训练
如果数据集可以被一个超平面完全划分,则称该数据集是线性可分的数据集,否则称为线性不可分的数据集。对于线性可分的数据集,单层感知机基本任务是寻找一个线性可分的超平面S :
该超平面能够将所有的正类和负类完全划分到超平面的两侧。对于线性不可分的数据集,*单层感知机_由于模型无法稳定收敛,而无法处理。
3 单层感知机的使用
外部系统将输入数据变换成单层感知机接受的值域;外部系统将合法的输入数据输入到单层感知机;单层感知机利用已有模型计算结果;单层感知机输出数据;外部系统接收输出数据并使用。
4 单层感知机的缺陷:XOR 问题
1969 年马文·明斯基将感知机兴奋推到最高顶峰。他提出了著名的 XOR 问题和感知器数据线性不可分的情形。此后,神经网络的研究将处于休眠状态,直到上世纪80年代。
5 多层感知器与反向传播
不过就算在低谷期,1974年哈佛大学的Paul Werbos仍然证明增加一个网络层,利用反向传播算法可以搞定XOR问题。到了后来Rummelhart,McClelland以及Hinton在1986年正式在多层感知器(MLP)中使用BP算法,采用Sigmoid进行非线性映射,有效解决了非线性分类和学习的问题。
多层感知机(Multi-Layer Perceptron)是由单层感知机推广而来,最主要的特点是有多个神经元层。一般将MLP的第一层称为输入层,中间的层为隐藏层,最后一层为输出层。MLP并没有规定隐藏层的数量,因此可以根据实际处理需求选择合适的隐藏层层数,且对于隐藏层和输出层中每层神经元的个数也没有限制。
多层感知机的关键问题在于如何训练其中各层间的连接权值,方法有一些大家最熟知的就是反向传播BP算法。
反向传播算法的具体推导涉及大量的公式,实在不适合在公众里写,因此我们就不写了,大家随便找一本书都能找到资料,勤快的可以自己推导一遍。反向传播算法让多层感知器,或者说传统的全连接神经网络有了训练的手段,引发了神经网络的第二次热潮,虽然为期不长,毕竟当时算力和数据都很有限,但是全连接神经网络总算是正式起来了。