关于感知机:
1. 什么是感知机(perceptron)
双层神经网络,即只有输入层和输出层而没有隐层的神经网络。
线性分类器,其输入为实例的特征向量,输出为实例的类别,感知机属于判别模型,旨在求出将训练数据进行线性划分的分离超平面。
感知机最早是由Rosenblatt于1957年提出的,是支持向量机和神经网络的基础。感知机学习算法简单而易于实现,基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,损失函数选择误分类点到分离超平面的总距离。
线性分类器(linearclassifier):线性方程对应于特征空间的一个超平面,是超平面的法向量,是超平面的截距,这个将特征空间划分为两部分的超平面称为分离超平面。在感知机模型中,是偏置(bias),是权重、权值(weight),感知机只有这两种参数,求解模型其实就是求这两个参数。
数据集的线性可分性:如果存在一个超平面可以将两类数据点划分开,就是线性可分的数据集。数据集线性可分的充要条件是正实例点集构成的凸集与负实例点集构成的凸集互不相交。
任意一个点到超平面的距离为:
sign,所以与SVM诸多相似。感知机只是一个线性模型,可以解决与(AND)、或(OR)问题,但无法解决复杂的异或(XOR)问题。并且,只要数据集是线性可分的,感知机模型一定是收敛的,而且有无穷多个解。感知机学习算法有对偶形式,不再深究。
传统的感知机算法:
2. 多层感知机(multi-layerperceptron)(MLP)
MLP是一种非线性分类器,传统的感知机模型是两层的NN,是线性的,而MLP是三层及以上的NN,就可以实现非线性任务,比如三层的MLP可以实现异或(XOR)问题。
MLP是由BP算法来计算的,BP算法的推导及过程见其他章节。MLP的结构如下:
输入层(input layer):
每一个节点对应于X的每一维,节点本身并不完成任何处理,只是把每一维的信号发送到下一层的每个节点。
中间层(隐层,hidden layer):
隐层的节点是隐节点。
输出层(output layer):
输出层的每个节点对应Y的每一维,对于连续性变量、预测性数据Y,就是一维的。对于分类型的Y,一般是用一维来代表一类,有几类就有几个输出节点。
神经网络结构:
信号沿着从输入层到输出层的方向单向流动,是输入层到输出层的映射。
同层节点无连接,每个节点与上一层、下一层的所有节点都连接。
这种NN是前馈型神经网络(feedforwardNN),MLP就是这种的。