?? neuralnetwork_bp_regression.m
字號:
% BP 神經(jīng)網(wǎng)絡(luò)用于函數(shù)擬合
% 使用平臺 - Matlab6.5
% 作者:陸振波,海軍工程大學(xué)
% 歡迎同行來信交流與合作,更多文章與程序下載請訪問我的個人主頁
% 電子郵件:luzhenbo@yahoo.com.cn
% 個人主頁:http://luzhenbo.88uu.com.cn
clc
clear
close all
%---------------------------------------------------
% 產(chǎn)生訓(xùn)練樣本與測試樣本
n1 = 1:2:200;
x1 = sin(n1*0.1);
n2 = 2:2:200;
x2 = sin(n2*0.1);
xn_train = n1; % 訓(xùn)練樣本,每一列為一個樣本
dn_train = x1; % 訓(xùn)練目標(biāo),行向量
xn_test = n2; % 測試樣本,每一列為一個樣本
dn_test = x2; % 測試目標(biāo),行向量
%---------------------------------------------------
% 函數(shù)接口賦值
NodeNum = 20; % 隱層節(jié)點數(shù)
TypeNum = 1; % 輸出維數(shù)
p1 = xn_train; % 訓(xùn)練輸入
t1 = dn_train; % 訓(xùn)練輸出
Epochs = 1000; % 訓(xùn)練次數(shù)
P = xn_test; % 測試輸入
T = dn_test; % 測試輸出(真實值)
%---------------------------------------------------
% 設(shè)置網(wǎng)絡(luò)參數(shù)
%TF1 = 'tansig';TF2 = 'purelin'; % 缺省值
%TF1 = 'tansig';TF2 = 'logsig';
TF1 = 'logsig';TF2 = 'purelin';
%TF1 = 'tansig';TF2 = 'tansig';
%TF1 = 'logsig';TF2 = 'logsig';
%TF1 = 'purelin';TF2 = 'purelin';
net = newff(minmax(p1),[NodeNum TypeNum],{TF1 TF2},'trainlm');
% 指定訓(xùn)練參數(shù)
%net.trainFcn = 'trainlm'; % 內(nèi)存使用最多(快)
%net.trainFcn = 'trainbfg';
%net.trainFcn = 'trainrp'; % 內(nèi)存使用最少(慢)
%net.trainFcn = 'traingda'; % 變學(xué)習(xí)率
%net.trainFcn = 'traingdx';
net.trainParam.epochs = Epochs; % 最大訓(xùn)練次數(shù)
net.trainParam.goal = 1e-8; % 最小均方誤差
net.trainParam.min_grad = 1e-20; % 最小梯度
net.trainParam.show = 200; % 訓(xùn)練顯示間隔
net.trainParam.time = inf; % 最大訓(xùn)練時間
%---------------------------------------------------
% 訓(xùn)練與測試
net = train(net,p1,t1); % 訓(xùn)練
X = sim(net,P); % 測試 - 輸出為預(yù)測值
%---------------------------------------------------
% 結(jié)果作圖
plot(1:length(n2),x2,'r+:',1:length(n2),X,'bo:')
title('+為真實值,o為預(yù)測值')
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -