null人工神经网络
(Artifical Neural Network)*人工神经网络
(Artifical Neural Network)张 凯 副教授武汉科技大学 计算机学院第四章 线性神经网络模型*第四章 线性神经网络模型1. 研究背景2. 学习
3. ADALINE网络结构4. Widrow-Hoff学习规则第四章 线性神经网络模型第四章 线性神经网络模型 自适应线性神经元ADALINE(Adaptive
Linear Neuron)是在1960 年由斯坦福大学教授伯纳德和玛西娅提出的,它是线性神经网络最早的典型代表,其学习算法称之为 LMS (least mean squares最小均方差)算法或Widrow-Hoff学习规则。
ADALINE网络*ADALINE网络Ted HoffBernard WidrowADALINE网络他们提出的这个网络和算法很重要,原因有两个:
第一:它被广泛应用于现在的信号处理过程中。
第二:它是多层网络中BP算法的先驱。ADALINE网络ADALINE网络ADALINE网络 ADALINE 网络与感知器网络非常相似,只是神经元的传输函数不同而已。
前者是线性传输函数,后者是对称硬极限传输函数。
单层ADALINE网络和感知器网络一样,只能解决线性可分的问题,但其LMS学习规则却比感知器学习规则的性能强得多。
ADALINE网络 感知器学习规则训练的网络,其分类的判决边界往往离各分类模式靠得很近,这使得网络对噪声十分敏感;
而LMS学习规则使均方误差最小,从而使判决边界尽可能远离分类模式,增强了网络的抗噪能力。ADALINE网络ADALINE网络 但LMS算法只适于单层网络的训练,当需要进行多层网络的
时,需要寻找新的学习算法,如BP算法。ADALINE网络ADALINE网络ADALINE网络 线性神经元模型,它与感知器的主要不同之处在于其神经元有一个线性激活函数,这允许输出可以是任意值,而不仅仅只是像感知器中那样只能取0或1。传输函数传输函数感知机传输函数是hardlim线性神经元激活函数线性神经元激活函数线性神经网络的结构线性神经网络的结构两输入单层ADALINE网络两输入单层ADALINE网络线性神经元网络模型线性神经元网络模型性能学习性能学习学习规则的几种类型:
性能学习,联想学习,竞争学习。
性能学习目的在于调整网络参数以优化网络性能
性能学习的优化分两步骤进行:
(1)找一个衡量网络性能的定量
, 即性能指数:F(x)。性能指数在网络性能良好时很小,反之则很大。
(2)搜索减小性能指数的参数空间(调整网络权值和偏置值)。研究性能曲面的特性,建立确保极小点(即所寻求的最优点)存在的条件。
ADALINE网络ADALINE网络LMS学习算法Widrow-Hoff学习规则
又称最小均方误差学习算法,即LMS学习算法 LMS(Least Mean Square Error)
属于有导师学习算法
LMS学习规则定义如下:
目标通过调节权值,使mse从误差空间的某点开始,沿着mse的斜面向下滑行,最终使mse达到最小值。
LMS学习算法其它评价函数其它评价函数SSE(和方差、误差平方和): The sum of squares due to error
MSE(均方差、方差): Mean squared error
RMSE(均方根、标准差): Root mean squared error
R-square(确定系数): Coefficient of determination
Adjusted R-square: Degree-of-freedom adjusted coefficient of determination其它评价函数其它评价函数SSE(和方差)
该统计参数计算的是拟合数据和原始数据对应点的误差的平方和,计算公式如下
SSE越接近于0,说明模型选择和拟合更好,数据预测也越成功。接下来的MSE和RMSE因为和SSE是同出一宗,所以效果一样其它评价函数其它评价函数MSE(均方差)
该统计参数是预测数据和原始数据对应点误差的平方和的均值,也就是SSE/n,和SSE没有太大的区别,计算公式如下其它评价函数其它评价函数RMSE(均方根)
该统计参数,也叫回归系统的拟合标准差,是MSE的平方根,就算公式如下其它评价函数其它评价函数R-square(确定系数)
在讲确定系数之前,我们需要介绍另外两个参数SSR和SST,因为确定系数就是由它们两个决定的
(1)SSR:Sum of squares of the regression,即预测数据与原始数据均值之差的平方和,公式如下
(2)SST:Total sum of squares,即原始数据和均值之差的平方和,公式如下其它评价函数其它评价函数R-square(确定系数)
“确定系数”是定义为SSR和SST的比值,故
其实“确定系数”是通过数据的变化来表征一个拟合的好坏。由上面的表达式可以知道“确定系数”的正常取值范围为[0 1],越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好ADALINE网络ADALINE网络线性神经网络的结构 LMS学习算法LMS学习算法 中,前R个元素是关于网络权值的导数值,第R+1个元素则是偏置值的导数令LMS学习算法LMS学习算法LMS学习算法LMS学习算法 可以用于最速下降法,学习速度为ɑ的最速下降法为:LMS学习算法LMS学习算法 推广到权值和偏置量矩阵线性神经网络的学习算法线性神经网络的学习算法算法实现步骤
第一步:初始化,给各个连接赋一个较小的随机值
第二步:输入一个
,计算连接权值的调整量
线性神经网络的学习算法线性神经网络的学习算法 其中 表示第 次循环中的第个输入向量。则:
第三步:调整连接权值
根据负梯度下降的原则,网络权值和阈值修正公式如下
式中 为学习率,当其取较大值时,可以加快网络的训练速度,但是如果其值太大,会导致网络稳定性的降低和训练误差的增加。所以,为了保证网络进行稳定的训练,学习率的值必须选择一个合适的值。线性神经网络的学习算法线性神经网络的学习算法第四步:计算均方误差
第五步:判断误差是否为零或者是否达到预先设定的要求。如果是,则结束算法,否则输入下一个样本,返回第二步进入下一轮求解过程。
LMS的学习算法例子p1=2.5p2=1w1,1=1.2w1,2=1.5b=1t=4.5ɑ=0.1Ɛ=0.05LMS的学习算法例子LMS的学习算法例子t=0,w(0)={1.2, 1.5},b=1a=2.5×1.2+1×1.5+1×1=5.5e=t—a=4.5—5.5= -1|e|>Ɛ=0.05w(1)= w(0)+ɑep = {1.2, 1.5}+0.1×-1×{2.5,1}={0.95,1.4}b(1)= b(0)+ɑep = {1}+0.1×-1×{1}={0.9}w1,1=0.95w1,2=1.4b=0.9LMS的学习算法例子LMS的学习算法例子t=1,w(1) ={0.95,1.4} ,b=0.9a=2.5×0.95+1×1.4+1×0.9=4.675e=t—a=4.5—4.675= -0.175|e|>Ɛ=0.05w(2)= w(1)+ɑep = {0.95,1.4}+0.1×-0.175×{2.5,1}={0.90625,1.3825}b(2)= b(1)+ɑep = {0.9}+0.1 ×-0.175 ×{1}={0.8825}w1,1=0.90625w1,2=1.3825b=0.8825LMS的学习算法例子LMS的学习算法例子t=2,w(2) ={0.90625,1.3825} ,b= 0.8825a=2.5×0. 90625+1×1.3825+1×0.8825 =4.530625e=t—a= -0.030625|e|<Ɛ=0.05w1,1=0.90625w1,2=1.3825b=0.8825LMS的学习算法例子感知机的局限性感知机的局限性异或(XOR) 逻辑运算为例解决不了线性不可分问题 LMS的学习算法例子LMS的学习算法例子线性神经网络的MATLAB实现 线性神经网络的MATLAB实现 MATLAB中线性神经网络相关的常用函数和基本功能 线性神经网络的MATLAB实现线性神经网络的MATLAB实现MATLAB中线性神经网络相关的常用函数和基本功能
newlin()
功能 新建一个线性神经网络函数。
格式 (1) net = newlin
(2) net = newlin(PR,S,ID,LR)
说明 式(1)返回一个没有定义结构的空对象,并显示图形用户界面函数nntool的帮助文字;式(2)中net为生成的线性神经网络;PR为网络输入向量中的最大值和最小值组成的矩阵[Pmin,Pmax];S为输出向量的个数;ID为输入延时向量(可省略);LR为学习速率(可省略),默认值为0.01。
learnwh( )
功能 线性神经网络学习函数
格式 (1) [dW,LS] = learnwh(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
(2) [db,LS] = learnwh(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)
线性神经网络的MATLAB实现线性神经网络的MATLAB实现MATLAB中线性神经网络相关的常用函数和基本功能
Purelin()
功能 纯线性传输函数
格式 A = purelin(N)
说明 函数purelin(N)为返回网络输入向量N的输出矩阵a;神经元最简单的传输函数是简单地从神经元输入到输出的线性传输函数,输出仅仅被神经元所附加的偏差所修正,newlin和newlind函数建立的网络都可以用该函数做为传递函数。
mse()
功能 均方误差性能函数
格式 perf=mae(E,w,pp)
说明 perf表示均方误差,E为误差矩阵或向量(网络的目标向量与输出向量之差),w为所有权值和偏值向量(可忽略), pp为性能参数(可忽略)。 线性神经网络的MATLAB实现线性神经网络的MATLAB实现例2-2 要求设计一个线性神经网络,寻找给定数据之间的线性关系。
P=[1.1 -1.3];
T=[0.6 1];
%创建一个只有一个输出,输入延时为0,学习速率为0.01的线性神经网络,minmax(P)表示样
%本数据的取值范围
net=newlin(minmax(P),1,0,0.01);
%对创建的线性神经网络进行初始化,设置权值和阈值的初始值
net=init(net);
net.trainParam.epochs=500;
%设置网络训练后的目标误差为0.0001
net.trainParam.goal=0.0001;
net=train(net,P,T);
y=sim(net,P)
%求解网络的均方误差值
E=mse(y-T) 线性神经网络的MATLAB实现线性神经网络的MATLAB实现例2-2的输出结果
%使用TRAINB作为训练函数,最大训练次数为500,开始训练时的均方误差值为0.68,
%目标误差为0.0001
>> TRAINB, Epoch 0/500, MSE 0.68/0.0001.
......
TRAINB, Epoch 200/500, MSE 0.000193748/0.0001.
TRAINB, Epoch 217/500, MSE 9.87777e-005/0.0001.
%训练到217次时,达到目标误差要求,结束训练
TRAINB, Performance goal met.
y =
0.5883 0.9922
E =
9.8778e-005 null*