1.感知机
感知机(Perceptron)是在1957年时由Rosenblatt提出的,可以解决线性分类问题,是神经网络和支持向量机的基础。
原理:
对于直线方程,假设任一点的坐标为
则该点到直线的距离为:
如果是高维情况,分类面为超平面,则有:
其中
模型:
感知机从输入到输出的模型为:
其中sign为符号函数:
对于样本注意到,如果样本分类正确,则有:
因此,可定义如下损失函数:
需要找到超平面参数,满足:
程序流程:
输入:训练数据集 (监督学习)
输出:
1.赋初值,数据序号i=1,迭代次数k=0;
2.选择数据点;
3.判断该数据点是否为当前模型的误分类点,即判断若则更新权值:
4.转到2,直到数据集中没有误分类点。
2.多层感知机
XOR问题:Minsky于1969年提出XOR问题,无法进行线性分类。
解决方法:使用多层感知机
在输入和输出层间加一或多层隐单元,构成多层感知器(多层前馈神经网络);
加一层隐节点(单元)为三层网络,可解决异或(XOR)问题,由输入得到两个隐节点、一个输出层节点的输出:
可得到:
三层感知机可识别任一凸多边形或无界的凸区域,更多层感知器网络可以识别更为复杂的图形,多层感知器网络,有如下定理:
定理1:若隐层节点(单元)可任意设置,用三层阈值节点的网络,可以实现任意的二值逻辑函数;
定理2:若隐层节点(单元)可任意设置,用三层S型非线性特性节点的网络,可以一致逼近紧集上的连续函数或按范数逼近紧集上的平方可积函数。
3.多层前馈网络
多层感知机是一种多层前馈网络,由多层神经网络构成,每层网络将输出传递给下一层网络。神经元间的权值连接仅出现在相邻层之间,不出现在其他位置。如果每一个神经元都连接到上一层的所有神经元(除输入层外),则为全连接网络,本文下面讨论的都是此类网络。
BP算法
多层前馈网络的反向传播(BP)学习算法,简称BP算法,是有导师的学习,是梯度下降法在多层前馈网络中的应用。
网络结构:u、y分别是网络的输入、输出向量,神经元用节点表示,网络由输入层、隐层和输出层节点组成,隐层可为一层也可为多层(上图为单隐层),前层至后层节点通过权连接,也称BP神经网络。
BP学习算法由正向传播和反向传播组成:
① 正向传播是输入信号从输入层经隐层,传向输出层,若输出层得到了期望的输出,则算法结束;否则,反向传播;
② 反向传播是将误差(样本输出与网络输出之差)按原连接通路反向计算,由梯度下降法调整各层节点的权值和阈值,使误差减小。
BP算法基本思想
假设网络共有L层,输入为第0层,输出为第L层,层用上标[l]表示,则有:
网络输入:;
网络输出:单输出:(输出层可省略上标);
多输出:。
网络中第l层输出: ,其中
为该层线性输出,选取作用函数为Sigmoid函数,则可记为:
第l层第i个节点线性输出:
其中: ,权值连接,表示连接第l层(本层)第i个节点和第l-1层(上层)第j个节点的权值;
,网络中第l层线性输出,W为权值矩阵,列数为上层神经元数目,行数为本层神经元数目。
设算法的输入输出的N个样本(导师信号)为:
网络训练的目的,是使对每一个输入样本,调整网络权值参数w,使输出均方误差最小化。
选取指标函数:
其中。采取迭代算法求解上述最小化问题,设初始权值为
,k时刻权值为
,使用泰勒级数展开,有:
其中, ,这样可以保证J最终收敛到最小,即梯度下降算法,也是BP算法的基本思想。
计算过程:
① 设置初始权系数为较小的随机非零值;
② 给定输入/输出样本,计算网络输出,完成前向传播;
③ 计算目标函数J,若,训练成功,退出;否则转④;
④ 反向传播计算,由输出层按梯度下降法将误差反向传播,逐层调整权值。