BP网络常用传递函数_精品文档Word文档格式.docx

上传人:b****2 文档编号:14435622 上传时间:2022-10-22 格式:DOCX 页数:5 大小:30.13KB
下载 相关 举报
BP网络常用传递函数_精品文档Word文档格式.docx_第1页
第1页 / 共5页
BP网络常用传递函数_精品文档Word文档格式.docx_第2页
第2页 / 共5页
BP网络常用传递函数_精品文档Word文档格式.docx_第3页
第3页 / 共5页
BP网络常用传递函数_精品文档Word文档格式.docx_第4页
第4页 / 共5页
BP网络常用传递函数_精品文档Word文档格式.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

BP网络常用传递函数_精品文档Word文档格式.docx

《BP网络常用传递函数_精品文档Word文档格式.docx》由会员分享,可在线阅读,更多相关《BP网络常用传递函数_精品文档Word文档格式.docx(5页珍藏版)》请在冰豆网上搜索。

BP网络常用传递函数_精品文档Word文档格式.docx

本论文中采用网络结构增长型方法,即先设置较少的节点数,对网络进行训练,并测试学习误差,然后逐渐增加节点数,直到学习误差不再有明显减少为止。

newff()

功能建立一个前向BP网络

格式net=newff(PR,[S1S2...SN1],{TF1TF2...TFN1},BTF,BLF,PF)

说明

net为创建的新BP神经网络;

PR为网络输入取向量取值范围的矩阵;

[S1S2…SNl]表示网络隐含层和输出层神经元的个数;

{TFlTF2…TFN1}表示网络隐含层和输出层的传输函数,默认为‘tansig’;

BTF表示网络的训练函数,默认为‘trainlm’;

BLF表示网络的权值学习函数,默认为‘learngdm’;

PF表示性能数,默认为‘mse’。

参数TFi可以采用任意的可微传递函数,比如transig,logsig和purelin等;

训练函数可以是任意的BP训练函数,如trainm,trainbfg,trainrp和traingd等。

BTF默认采用trainlm是因为函数的速度很快,但该函数的一个重要缺陷是运行过程会

消耗大量的内存资源。

如果计算机内存不够大,不建议用trainlm,而建议采用训练函数trainbfg或trainrp。

虽然这两个函数的运行速度比较慢,但它们的共同特点是内存占用量小,不至于出现训练过程死机的情况。

参数TFi可以采用任意的可微传递函数,比如transig,logsig和purelin等;

训练函数可以是任意的BP训练函数,如trainm,trainbfg,trainrp和traingd等。

BTF默认采用trainlm是因为函数的速度很快,但该函数的一个重要缺陷是运行过程会消耗大量的内存资源。

虽然这两个函数的运行速度比较慢,但它们的共同特点是内存占用量小,不至于出现训练过程死机的情况。

训练函数:

包括梯度下降bp算法训练函数traingd,动量反传递的梯度下降bp算法训练函数traingdm,动态自适应学习率的梯度下降bp算法训练函数traingda,动量反传和动态自适应学习率的梯度下降bp算法训练函数traingdx,levenberg_marquardt的bp算法训练函数trainlm。

BP网络一般都是用三层的,四层及以上的都比较少用;

传输函数的选择,这个怎么说,假设你想预测的结果是几个固定值,如1,0等,满足某个条件输出1,不满足则0的话,首先想到的是hardlim函数,阈值型的,当然也可以考虑其他的;

然后,假如网络是用来表达某种线性关系时,用purelin---线性传输函数;

若是非线性关系的话,用别的非线性传递函数,多层网络时,每层不一定要用相同的传递函数,可以是三种配合,可以使非线性和线性,阈值的传递函数等;

compet---竞争型传递函数;

hardlim---阈值型传递函数;

hardlims---对称阈值型传输函数;

logsig---S型传输函数;

poslin---正线性传输函数;

purelin---线性传输函数;

radbas---径向基传输函数;

satlin---饱和线性传输函数;

satlins---饱和对称线性传输函数;

softmax---柔性最大值传输函数;

tansig---双曲正切S型传输函数;

tribas---三角形径向基传输函数;

二、神经元上的传递函数

传递函数是BP网络的重要组成部分,必须是连续可微的,BP网络常采用S型的对数或正切函数和线性函数。

Logsig传递函数为S型的对数函数。

调用格式为:

A=logsig(N)

N:

Q个S维的输入列向量;

A:

函数返回值,位于区间(0,1)中

info=logsig(code)

依据code值的不同返回不同的信息,包括:

deriv——返回微分函数的名称;

name——返回函数全程;

output——返回输出值域;

active——返回有效的输入区间

例如:

n=-10:

0.1:

10;

a=logsig(n);

plot(n,a)

matlab按照来计算对数传递函数的值:

n=2/(1+exp(-2n))

函数logsig可将神经元的输入(范围为整个实数集)映射到区间(0,1)中。

三、BP网络学习函数

learngd

该函数为梯度下降权值/阈值学习函数,通过神经元的输入和误差,以及权值和阈值的学习速率,来计算权值或阈值的变化率。

调用格式;

[dW,ls]=learngd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)

以一个单隐层的BP网络设计为例,介绍利用神经网络工具箱进行BP网络设计及分析的过程

1.问题描述

通过对函数进行采样得到了网络的输入变量P和目标变量T:

P=-1:

1;

T=[-0.9602-0.577.-0.07290.37710.64050.66000.46090.1336-0.2013-0.4344-0.5000-0.3930-0.16470.09880.30720.39600.34490.1816-0.0312-0.2189-0.3201]

2.网络的设计

网络的输入层和输出层的神经元个数均为1,网络的隐含神经元个数应该在3~8之间。

网络设计及运行的代码:

s=3:

8;

res=1:

6;

fori=1:

net=newff(minmax(P),[s(i),1],['

tansig'

logsig],'

traingdx'

);

net.trainParam.epachs=2000;

net.trainParam.goal=0.001;

net=train(net,P,T)

y=sim('

net,P'

error=y-T;

res(i)=norm(error);

end

代码运行结果:

网络训练误差

%获取训练数据与预测数据

input_train=data(n(1:

9900),1:

3)'

;

output_train=data1(n(1:

9900),1)'

input_test=data(n(9901:

10000),1:

output_test=data1(n(9901:

10000),1)'

%数据归一化

[inputn,inputps]=mapminmax(input_train);

[outputn,outputps]=mapminmax(output_train);

%%bp训练

%初始化网络结构

net=newff(inputn,outputn,100);

net.trainParam.show=30;

net.trainParam.epochs=300;

net.trainParam.lr=0.01;

net.trainParam.goal=1e-6;

%网络训练

net=train(net,inputn,outputn);

%%bp预测

%预测数据归一化

inputn_test=mapminmax('

apply'

input_test,inputps);

%网络预测输出

an=sim(net,inputn_test);

%网络输出反归一化

BPoutput=mapminmax('

reverse'

an,outputps);

%%结果分析

figure

plot(BPoutput,'

:

og'

holdon

plot(output_test,'

-*'

legend('

预测输出'

'

期望输出'

fontsize'

12)

title('

BP网络预测输出'

xlabel('

样本'

ylabel('

输出'

%预测误差

error=BPoutput-output_test;

plot(error,'

神经网络预测误差'

errorsum=sum(abs(error))

savedata2netinputpsoutputps

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1