【神经网络学习笔记】非线性函数拟合
2014-07-16 16:21
363 查看
matlab中自带神经网络工具箱,我们可以很方便的建立神经网络,主要用到3个函数
1.newff构建函数
newff函数的格式为:
net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函数newff建立一个可训练的前馈网络。输入参数说明:
PR:Rx2的矩阵以定义R个输入向量的最小值和最大值;
Si:第i层神经元个数;
TFi:第i层的传递函数,默认函数为tansig函数;
BTF:训练函数,默认函数为trainlm函数;
BLF:权值/阀值学习函数,默认函数为learngdm函数;
PF:性能函数,默认函数为mse函数
2.train训练函数
[net,tr] = train(net,P,T,Pi,Ai)
输入:net---神经网络
P-----神经网络输入
T-----神经网络目标(可以选择,有或无)
Pi----初始输入延迟条件(默认为0)
Ai----初始层延迟条件(默认0)
返回值:net--新的训练过的网络
tr---训练记录
3.sim测试函数
1.newff构建函数
newff函数的格式为:
net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函数newff建立一个可训练的前馈网络。输入参数说明:
PR:Rx2的矩阵以定义R个输入向量的最小值和最大值;
Si:第i层神经元个数;
TFi:第i层的传递函数,默认函数为tansig函数;
BTF:训练函数,默认函数为trainlm函数;
BLF:权值/阀值学习函数,默认函数为learngdm函数;
PF:性能函数,默认函数为mse函数
2.train训练函数
[net,tr] = train(net,P,T,Pi,Ai)
输入:net---神经网络
P-----神经网络输入
T-----神经网络目标(可以选择,有或无)
Pi----初始输入延迟条件(默认为0)
Ai----初始层延迟条件(默认0)
返回值:net--新的训练过的网络
tr---训练记录
3.sim测试函数
sim(model,timespan,options,ut); [t,x,y] = sim(model,timespan,options,ut); [t,x,y1, y2, ..., yn] = sim(model,timespan,options,ut);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 清空环境变量 clc clear %% 训练数据预测数据提取及归一化 %下载输入输出数据 load data input output %从1到2000间随机排序 k=rand(1,2000); [m,n]=sort(k); %找出训练数据和预测数据 input_train=input(n(1:1900),:)'; output_train=output(n(1:1900)); input_test=input(n(1901:2000),:)'; output_test=output(n(1901:2000)); %选连样本输入输出数据归一化 [inputn,inputps]=mapminmax(input_train); [outputn,outputps]=mapminmax(output_train); %% BP网络训练 % %初始化网络结构 net=newff(inputn,outputn,5); net.trainParam.epochs=100; net.trainParam.lr=0.1; net.trainParam.goal=0.00004; %网络训练 net=train(net,inputn,outputn); %% BP网络预测 %预测数据归一化 inputn_test=mapminmax('apply',input_test,inputps); %网络预测输出 an=sim(net,inputn_test); %网络输出反归一化 BPoutput=mapminmax('reverse',an,outputps); %% 结果分析 figure(1) plot(BPoutput,':og') hold on plot(output_test,'-*'); legend('预测输出','期望输出') title('BP网络预测输出','fontsize',12) ylabel('函数输出','fontsize',12) xlabel('样本','fontsize',12) %预测误差 error=BPoutput-output_test; figure(2) plot(error,'-*') title('BP网络预测误差','fontsize',12) ylabel('误差','fontsize',12) xlabel('样本','fontsize',12) figure(3) plot((output_test-BPoutput)./BPoutput,'-*'); title('神经网络预测误差百分比') errorsum=sum(abs(error));
相关文章推荐
- 【神经网络学习笔记】遗传算法优化BP神经网络-非线性函数拟合
- [DeeplearningAI笔记]改善深层神经网络1.1_1.3深度学习实用层面_偏差/方差/欠拟合/过拟合/训练集/验证集/测试集
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
- [DeeplearningAI笔记]改善深层神经网络1.4_1.8深度学习实用层面_正则化Regularization与改善过拟合
- 【神经网络学习笔记】语音识别-matlab语音信号预处理
- 神经网络学习笔记_1(BP网络分类双螺旋线)
- 【神经网络学习笔记】遗传算法初探
- Deep Learning 学习笔记(6):神经网络( Neural Network )
- Coursera公开课笔记: 斯坦福大学机器学习第九课“神经网络的学习(Neural Networks: Learning)”
- 机器学习--学习笔记(三)--神经网络
- 神经网络学习笔记 - lecture3:The backpropagation learning proccedure
- 斯坦福机器学习-week4 学习笔记——初识神经网络
- Coursera公开课笔记: 斯坦福大学机器学习第九课“神经网络的学习(Neural Networks: Learning)”
- 【神经网络学习笔记】粒子群算法和遗传算法比较
- 【神经网络学习笔记】LIBSVM参数讲解
- 【神经网络学习笔记】BP神经网络-语音特征信号分类
- UFLDL 教程学习笔记(一)神经网络
- 神经网络学习笔记_1(BP网络分类双螺旋线) 作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet
- 人工神经网络学习笔记_各个参数的确定
- 人工神经网络学习笔记_Hamming网络_竞争网络