线性神经网络
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数名 newlin() learnwh() purelin() mse() 新建一个线性层 Widrow-Hoff的学习函数 的学习函数 线性传输函数 最小均方误差性能函数 功 能
2.3.3 线性神经网络的MATLAB实现
MATLAB中线性神经网络相关的常用函数和基本功能 MATLAB中线性神经网络相关的常用函数和基本功能 newlin()
第五步: 第五步:判断误差是否为零或者是否 达到预先设定的要求.如果是, 达到预先设定的要求.如果是,则结束 算法,否则输入下一个样本, 算法,否则输入下一个样本,返回第二 步进入下一轮求解过程
2.3.3 线性神经网络的MATLAB实现
MATLAB中线性神经网络相关的常用函数 MATLAB中线性神经网络相关的常用函数 和基本功能
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)
2.3.3 线性神经网络的MATLAB实现
第三步: 第三步:调整连接权值
根据负梯度下降的原则,网络权值和阈值修正公式如下 根据负梯度下降的原则,
为学习率,当其取较大值时, 式中 η 为学习率,当其取较大值时,可以加快网络的训练速 但是如果其值太大, 度,但是如果其值太大,会导致网络稳定性的降低和训练误 差的增加.所以,为了保证网络进行稳定的训练, 差的增加.所以,为了保证网络进行稳定的训练,学习率的 值必须选择一个合适的值. 值必须选择一个合适的值.
新建一个线性神经网络函数. 功能 新建一个线性神经网络函数. 格式 (1) net = newlin newlin(PR, ID, (2) net = newlin(PR,S,ID,LR) 说明 式(1)返回一个没有定义结构的空对象,并显示图形用户界 (1)返回一个没有定义结构的空对象, 返回一个没有定义结构的空对象 面函数nntool的帮助文字; (2)中net为生成的线性神经网络 nntool的帮助文字 为生成的线性神经网络; 面函数nntool的帮助文字;式(2)中net为生成的线性神经网络; PR为网络输入向量中的最大值和最小值组成的矩阵[Pmin,Pmax]; 为网络输入向量中的最大值和最小值组成的矩阵[Pmin PR为网络输入向量中的最大值和最小值组成的矩阵[Pmin,Pmax]; 为输出向量的个数;ID为输入延时向量 可省略);LR为学习速 为输入延时向量( );LR S为输出向量的个数;ID为输入延时向量(可省略);LR为学习速 可省略),默认值为0.01 ),默认值为0.01. 率(可省略),默认值为0.01.
Widrow
是通过调节权值, mse从误差空间的某点开始, 是通过调节权值,使mse从误差空间的某点开始,沿着 从误差空间的某点开始 mse的斜面向下滑行 最终使mse达到最小值. 的斜面向下滑行, mse达到最小值 mse的斜面向下滑行,最终使mse达到最小值.
2.3.2 线性神经网络的学习算法
MATLAB中线性神经网络相关的常用函数和基本功能 MATLAB中线性神经网络相关的常用函数和基本功能 Purelin()
功能 纯线性传输函数 格式 A = purelin(N) 函数purelin(N)为返回网络输入向量N的输出矩阵a purelin(N)为返回网络输入向量 说明 函数purelin(N)为返回网络输入向量N的输出矩阵a; 神经元最简单的传输函数是简单地从神经元输入到输出的线 性传输函数,输出仅仅被神经元所附加的偏差所修正, 性传输函数,输出仅仅被神经元所附加的偏差所修正, newlin和newlind函数建立的网络都可以用该函数做为传递 newlin和newlind函数建立的网络都可以用该函数做为传递 函数. 函数.
net=newlin(minmax(P),1,0,0.01);
%对创建的线性神经网络进行初始化,设置权值和阈值的初始值 对创建的线性神经网络进行初始化,
Baidu Nhomakorabea
net=init(net); net.trainParam.epochs=500;
%设置网络训练后的目标误差为0.0001 设置网络训练后的目标误差为0.0001
线性神经元网络分类图示 双输入 输出如下式所示
y = w11 p1 + w21 p2 + b
2.3.1 线性神经元网络模型
线性神经网络的结构
2.3.2 线性神经网络的学习算法
Widrow-Hoff学习规则 Widrow-Hoff学习规则 又称为最小均方误差LMS (Least Mean Square Error) 学习算法, 由Widrow-Hoff提出, 属于有导师学习算法 Bernard LMS学习规则定义如下: 1 m 2 1 m 2 mse = ∑ e (k ) = ∑ ( d (k ) y (k ) ) m k =1 m k =1 目标
w(k + 1) = w( k ) + 2η e( k ) p T ( k ) b( k + 1) = b( k ) + 2η e( k )
2.3.2 线性神经网络的学习算法
第四步: 第四步:计算均方误差
1 m 2 1 m 2 mse = ∑ e (k ) = ∑ ( d (k ) y (k ) ) m k =1 m k =1
mse()
功能 均方误差性能函数 perf=mae(E, 格式 perf=mae(E,w,pp) perf表示均方误差,E为误差矩阵或向量 表示均方误差,E为误差矩阵或向量( 说明 perf表示均方误差,E为误差矩阵或向量(网络的目标 向量与输出向量之差),w为所有权值和偏值向量(可忽略) ),w为所有权值和偏值向量 向量与输出向量之差),w为所有权值和偏值向量(可忽略), pp为性能参数 可忽略) 为性能参数( pp为性能参数(可忽略).
R d ( k ) ∑ wij pi ( k ) + b i =1
j = 1, 2, , S
2.3.2 线性神经网络的学习算法
次循环中的第个输入向量.则有: 其中 pi (k ) 表示第 k 次循环中的第个输入向量.则有:
e ( k ) = pi ( k ) wij
e ( k ) = 1 b
算法实现步骤 第一步: 第一步:初始化
给各个连接赋一个较小的随机值
第二步:输入一个样本,计算连接权值 第二步:输入一个样本, 的调整量 e2 ( k ) e ( k ) e 2 ( k ) e ( k ) = 2e ( k ) = 2e ( k ) w w
ij ij
b
b
e ( k ) e = wij wij
>> 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次时,达到目标误差要求,结束训练 训练到217次时,达到目标误差要求, 217次时
TRAINB, Performance goal met. y = 0.5883 0.9922 E = 9.8778e-005
2.3.3 线性神经网络的MATLAB实现
例2-2的训练误差曲线
2.3.3 线性神经网络的MATLAB实现
原数据关系与线性神经网络逼近关系对比
注:两者仍存在误差,可以通过修改训练步数或精度来减少两者 两者仍存在误差, 的误差
小结
线性神经网络模型 线性神经网络激活函数 神经网络学习算法 线性神经网络的MATLAB MATLAB实现 线性神经网络的MATLAB实现 线性神经网络的局限性
�
net.trainParam.goal=0.0001; net=train(net,P,T); y=sim(net,P)
%求解网络的均方误差值
E=mse(y-T)
2.3.3 线性神经网络的MATLAB实现
例2-2的输出结果
%使用TRAINB作为训练函数,最大训练次数为500,开始训练时的均 使用TRAINB作为训练函数,最大训练次数为500, TRAINB作为训练函数 500 方误差值为0.68 0.68, 方误差值为0.68, 目标误差为0.0001 %目标误差为0.0001
2.3.3 线性神经网络的MATLAB实现
要求设计一个线性神经网络, 例2-2 要求设计一个线性神经网络,寻找给定数据之间的线性关 系. P=[1.1 -1.3]; T=[0.6 1];
0.01的线性神经网络 %创建一个只有一个输出,输入延时为0,学习速率为0.01的线性神经网络, 创建一个只有一个输出,输入延时为0 学习速率为0.01的线性神经网络, minmax(P)表示样 minmax(P)表示样 %本数据的取值范围
2.3 线性神经网络
智能中国网提供学习支持 www.5iai.com
2.3.1 线性神经元网络模型
线性神经元模型
它与感知器的主要不同之处在于其神经元有一个线 性激活函数,这允许输出可以是任意值,而不仅仅 只是像感知器中那样只能取0或1.
2.3.1 线性神经元网络模型
线性神经元激活函数
2.3.1 线性神经元网络模型
2.3.3 线性神经网络的MATLAB实现
MATLAB中线性神经网络相关的常用函数和基本功能 MATLAB中线性神经网络相关的常用函数和基本功能 newlin()
第五步: 第五步:判断误差是否为零或者是否 达到预先设定的要求.如果是, 达到预先设定的要求.如果是,则结束 算法,否则输入下一个样本, 算法,否则输入下一个样本,返回第二 步进入下一轮求解过程
2.3.3 线性神经网络的MATLAB实现
MATLAB中线性神经网络相关的常用函数 MATLAB中线性神经网络相关的常用函数 和基本功能
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)
2.3.3 线性神经网络的MATLAB实现
第三步: 第三步:调整连接权值
根据负梯度下降的原则,网络权值和阈值修正公式如下 根据负梯度下降的原则,
为学习率,当其取较大值时, 式中 η 为学习率,当其取较大值时,可以加快网络的训练速 但是如果其值太大, 度,但是如果其值太大,会导致网络稳定性的降低和训练误 差的增加.所以,为了保证网络进行稳定的训练, 差的增加.所以,为了保证网络进行稳定的训练,学习率的 值必须选择一个合适的值. 值必须选择一个合适的值.
新建一个线性神经网络函数. 功能 新建一个线性神经网络函数. 格式 (1) net = newlin newlin(PR, ID, (2) net = newlin(PR,S,ID,LR) 说明 式(1)返回一个没有定义结构的空对象,并显示图形用户界 (1)返回一个没有定义结构的空对象, 返回一个没有定义结构的空对象 面函数nntool的帮助文字; (2)中net为生成的线性神经网络 nntool的帮助文字 为生成的线性神经网络; 面函数nntool的帮助文字;式(2)中net为生成的线性神经网络; PR为网络输入向量中的最大值和最小值组成的矩阵[Pmin,Pmax]; 为网络输入向量中的最大值和最小值组成的矩阵[Pmin PR为网络输入向量中的最大值和最小值组成的矩阵[Pmin,Pmax]; 为输出向量的个数;ID为输入延时向量 可省略);LR为学习速 为输入延时向量( );LR S为输出向量的个数;ID为输入延时向量(可省略);LR为学习速 可省略),默认值为0.01 ),默认值为0.01. 率(可省略),默认值为0.01.
Widrow
是通过调节权值, mse从误差空间的某点开始, 是通过调节权值,使mse从误差空间的某点开始,沿着 从误差空间的某点开始 mse的斜面向下滑行 最终使mse达到最小值. 的斜面向下滑行, mse达到最小值 mse的斜面向下滑行,最终使mse达到最小值.
2.3.2 线性神经网络的学习算法
MATLAB中线性神经网络相关的常用函数和基本功能 MATLAB中线性神经网络相关的常用函数和基本功能 Purelin()
功能 纯线性传输函数 格式 A = purelin(N) 函数purelin(N)为返回网络输入向量N的输出矩阵a purelin(N)为返回网络输入向量 说明 函数purelin(N)为返回网络输入向量N的输出矩阵a; 神经元最简单的传输函数是简单地从神经元输入到输出的线 性传输函数,输出仅仅被神经元所附加的偏差所修正, 性传输函数,输出仅仅被神经元所附加的偏差所修正, newlin和newlind函数建立的网络都可以用该函数做为传递 newlin和newlind函数建立的网络都可以用该函数做为传递 函数. 函数.
net=newlin(minmax(P),1,0,0.01);
%对创建的线性神经网络进行初始化,设置权值和阈值的初始值 对创建的线性神经网络进行初始化,
Baidu Nhomakorabea
net=init(net); net.trainParam.epochs=500;
%设置网络训练后的目标误差为0.0001 设置网络训练后的目标误差为0.0001
线性神经元网络分类图示 双输入 输出如下式所示
y = w11 p1 + w21 p2 + b
2.3.1 线性神经元网络模型
线性神经网络的结构
2.3.2 线性神经网络的学习算法
Widrow-Hoff学习规则 Widrow-Hoff学习规则 又称为最小均方误差LMS (Least Mean Square Error) 学习算法, 由Widrow-Hoff提出, 属于有导师学习算法 Bernard LMS学习规则定义如下: 1 m 2 1 m 2 mse = ∑ e (k ) = ∑ ( d (k ) y (k ) ) m k =1 m k =1 目标
w(k + 1) = w( k ) + 2η e( k ) p T ( k ) b( k + 1) = b( k ) + 2η e( k )
2.3.2 线性神经网络的学习算法
第四步: 第四步:计算均方误差
1 m 2 1 m 2 mse = ∑ e (k ) = ∑ ( d (k ) y (k ) ) m k =1 m k =1
mse()
功能 均方误差性能函数 perf=mae(E, 格式 perf=mae(E,w,pp) perf表示均方误差,E为误差矩阵或向量 表示均方误差,E为误差矩阵或向量( 说明 perf表示均方误差,E为误差矩阵或向量(网络的目标 向量与输出向量之差),w为所有权值和偏值向量(可忽略) ),w为所有权值和偏值向量 向量与输出向量之差),w为所有权值和偏值向量(可忽略), pp为性能参数 可忽略) 为性能参数( pp为性能参数(可忽略).
R d ( k ) ∑ wij pi ( k ) + b i =1
j = 1, 2, , S
2.3.2 线性神经网络的学习算法
次循环中的第个输入向量.则有: 其中 pi (k ) 表示第 k 次循环中的第个输入向量.则有:
e ( k ) = pi ( k ) wij
e ( k ) = 1 b
算法实现步骤 第一步: 第一步:初始化
给各个连接赋一个较小的随机值
第二步:输入一个样本,计算连接权值 第二步:输入一个样本, 的调整量 e2 ( k ) e ( k ) e 2 ( k ) e ( k ) = 2e ( k ) = 2e ( k ) w w
ij ij
b
b
e ( k ) e = wij wij
>> 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次时,达到目标误差要求,结束训练 训练到217次时,达到目标误差要求, 217次时
TRAINB, Performance goal met. y = 0.5883 0.9922 E = 9.8778e-005
2.3.3 线性神经网络的MATLAB实现
例2-2的训练误差曲线
2.3.3 线性神经网络的MATLAB实现
原数据关系与线性神经网络逼近关系对比
注:两者仍存在误差,可以通过修改训练步数或精度来减少两者 两者仍存在误差, 的误差
小结
线性神经网络模型 线性神经网络激活函数 神经网络学习算法 线性神经网络的MATLAB MATLAB实现 线性神经网络的MATLAB实现 线性神经网络的局限性
�
net.trainParam.goal=0.0001; net=train(net,P,T); y=sim(net,P)
%求解网络的均方误差值
E=mse(y-T)
2.3.3 线性神经网络的MATLAB实现
例2-2的输出结果
%使用TRAINB作为训练函数,最大训练次数为500,开始训练时的均 使用TRAINB作为训练函数,最大训练次数为500, TRAINB作为训练函数 500 方误差值为0.68 0.68, 方误差值为0.68, 目标误差为0.0001 %目标误差为0.0001
2.3.3 线性神经网络的MATLAB实现
要求设计一个线性神经网络, 例2-2 要求设计一个线性神经网络,寻找给定数据之间的线性关 系. P=[1.1 -1.3]; T=[0.6 1];
0.01的线性神经网络 %创建一个只有一个输出,输入延时为0,学习速率为0.01的线性神经网络, 创建一个只有一个输出,输入延时为0 学习速率为0.01的线性神经网络, minmax(P)表示样 minmax(P)表示样 %本数据的取值范围
2.3 线性神经网络
智能中国网提供学习支持 www.5iai.com
2.3.1 线性神经元网络模型
线性神经元模型
它与感知器的主要不同之处在于其神经元有一个线 性激活函数,这允许输出可以是任意值,而不仅仅 只是像感知器中那样只能取0或1.
2.3.1 线性神经元网络模型
线性神经元激活函数
2.3.1 线性神经元网络模型