1、2.22.2感知器神经网络模型感知器神经网络模型与学习算法与学习算法2024/4/24 周三2.2.12.2.1单层感知器单层感知器p概述概述由美国学者Rosenblatt在1957年首次提出学习算法是Rosenblatt在1958年提出的 包含一个突触权值可调的神经元 属于前向神经网络类型 只能区分线性可分的模式 IEEE设立以其名字命名的奖项 2024/4/24 周三2.2.12.2.1单层感知器单层感知器p单层感知器模型单层感知器模型2024/4/24 周三2.2.12.2.1单层感知器单层感知器p单层感知器工作原理单层感知器工作原理 单层感知器可将外部输入分为两类和。当单层感知器可将外
2、部输入分为两类和。当感知器的输出为感知器的输出为+1+1时,输入属于时,输入属于 类,当感知类,当感知器的输出为器的输出为-1-1时,输入属于时,输入属于 类,从而实现两类,从而实现两类目标的识别。在维空间,单层感知器进行模类目标的识别。在维空间,单层感知器进行模式识别的判决超平面由下式决定:式识别的判决超平面由下式决定:2024/4/24 周三2.2.12.2.1单层感知器单层感知器p单层感知器工作原理单层感知器工作原理 对于只有两个输入的判别边界是直线(如下式所示),选择合适的学习算法可训练出满意的 和 ,当它用于两类模式的分类时,相当于在高维样本空间中,用一个超平面将两类样本分开。202
3、4/4/24 周三2.2.22.2.2单层感知器的学习算法单层感知器的学习算法p单层感知器学习算法思想单层感知器学习算法思想基于迭代的思想,通常是采用误差校正学习规则的学习算法。可以将偏差作为神经元突触权值向量的第一个分量加到权值向量中 输入向量和权值向量可分别写成如下的形式:令上式等于零,可得到m维空间的单层感知器的判别超平面。2024/4/24 周三2.2.22.2.2单层感知器的学习算法单层感知器的学习算法p单层感知器学习算法单层感知器学习算法第一步,设置变量和参量。为激活函数为激活函数,为网络实际输出,为网络实际输出,为期望输出,为期望输出,为学习速为学习速率,率,为迭代次数,为迭代次
4、数,为实际输出与期望输出的误差。为实际输出与期望输出的误差。第二步,初始化 给权值向量给权值向量 的各个分量赋一个较小的随机非零值,置的各个分量赋一个较小的随机非零值,置 第三步,输入一组样本 ,并给出 它的期望输出 。第四步,计算实际输出:第五步,求出期望输出和实际输出求出差根据误差判断目前输出是否满足条件,一般为对所有样本误差为零或者均根据误差判断目前输出是否满足条件,一般为对所有样本误差为零或者均小于预设的值,则算法结束,否则将值增加小于预设的值,则算法结束,否则将值增加1 1,并用下式调整权值:,并用下式调整权值:然后转到第三步,进入下一轮计算过程然后转到第三步,进入下一轮计算过程 2
5、024/4/24 周三2.2.3 2.2.3 单层感知器的单层感知器的MATLABMATLAB实现实现P=-0.4-0.5 0.6;0.9 0 0.1;P=-0.4-0.5 0.6;0.9 0 0.1;%给定训练样本数据给定训练样本数据T=1 1 0;T=1 1 0;%给定样本数据所对应的类别,用给定样本数据所对应的类别,用1 1和和0 0来表示两种类别来表示两种类别%创建一个有两个输入、样本数据的取值范围都在创建一个有两个输入、样本数据的取值范围都在-1-1,11之间,并且之间,并且%网络只有一个神经元的感知器神经网络网络只有一个神经元的感知器神经网络net=newp(-1 1;-1 1,1
6、);net=newp(-1 1;-1 1,1);net.trainParam.epochs=20;net.trainParam.epochs=20;%设置网络的最大训练次数为设置网络的最大训练次数为2020次次net=train(net,P,T);net=train(net,P,T);%使用训练函数对创建的网络进行训练使用训练函数对创建的网络进行训练Y=sim(net,P)Y=sim(net,P)%对训练后的网络进行仿真对训练后的网络进行仿真E1=mae(Y-T)E1=mae(Y-T)%计算网络的平均绝对误差,表示网络错误分类计算网络的平均绝对误差,表示网络错误分类Q=0.6 0.9-0.1;
7、-0.1-0.5 0.5;Q=0.6 0.9-0.1;-0.1-0.5 0.5;%检测训练好的神经网络的性能检测训练好的神经网络的性能Y1=sim(net,Q)Y1=sim(net,Q)%对网络进行仿真,仿真输出即为分类的结果对网络进行仿真,仿真输出即为分类的结果figure;figure;%创建一个新的绘图窗口创建一个新的绘图窗口plotpv(Q,Y1);plotpv(Q,Y1);%在坐标图中绘制测试数据在坐标图中绘制测试数据plotpc(net.iw1,net.b1)plotpc(net.iw1,net.b1)%在坐标图中绘制分类线在坐标图中绘制分类线2024/4/24 周三2.2.3 2
8、.2.3 单层感知器的单层感知器的MATLABMATLAB实现实现p例例2-12-1运行后在命令行窗口中得到的结果如下:运行后在命令行窗口中得到的结果如下:TRAINC,Epoch 0/20 TRAINC,Epoch 0/20%使用使用TRAINCTRAINC作为神经网络的训练函数,第作为神经网络的训练函数,第0 0次训练,最次训练,最%大训练次数为大训练次数为2020TRAINC,Epoch 3/20TRAINC,Epoch 3/20%达到目标误差要求,结束训练达到目标误差要求,结束训练TRAINC,Performance goal met.TRAINC,Performance goal m
9、et.Y=Y=1 1 0 1 1 0E1=E1=0 0Y1=Y1=0 0 1 0 0 1 2024/4/24 周三2.2.3 2.2.3 单层感知器的单层感知器的MATLABMATLAB实现实现p例例2-12-1训练误差曲线训练误差曲线 2024/4/24 周三2.2.3 2.2.3 单层感知器的单层感知器的MATLABMATLAB实现实现p例例2-12-1训练后的分类线训练后的分类线 2024/4/24 周三2.2.4 2.2.4 多层感知机多层感知机 p单层感知器的缺点是只能解决线性可分的分类单层感知器的缺点是只能解决线性可分的分类模式问题模式问题p采用多层网络结构可以增强网络的分类能力,
10、采用多层网络结构可以增强网络的分类能力,即在输入层与输出层之间增加一个隐含层,从即在输入层与输出层之间增加一个隐含层,从而构成多层感知器而构成多层感知器(Multilayer Perceprons(Multilayer Perceprons,MLP)MLP)。p由输入层、隐含层由输入层、隐含层(可以是一层或者多层可以是一层或者多层)和输和输出层构成的神经网络称为多层前向神经网络。出层构成的神经网络称为多层前向神经网络。2024/4/24 周三2.2.4 2.2.4 多层感知机多层感知机 p多层感知器的拓扑结构多层感知器的拓扑结构 2024/4/24 周三2.2.4 2.2.4 多层感知机多层感知机p多层感知器的特点多层感知器的特点含有一层或多层隐单元,从输入模式中获得了更多有用的信息,使网络可以完成更复杂的任务。每个神经元的激活函数采用可微的函数sigmoidsigmoid函数函数多个突触使得网络更具连通性 具有独特的学习算法 BPBP算法算法 2024/4/24 周三 谢谢 谢!谢!