資源簡介
神經網絡matlab程序神經網絡matlab程序神經網絡matlab程序
代碼片段和文件信息
clear?all
clc
close?all;??????????????????%關閉當前所有figure圖像
TrainNum=20;
inputNum=1;
hideNum=10;
outputNum=1;
rng(‘default‘)???%依據系統時鐘種子產生隨機數
rng(0)
x_train=8*rand(1TrainNum)-4
y_vec=1.1*(1-x_train+2*x_train.^2).*exp(-x_train.^2/2);
NoiseVar=0.01;????????????????????%噪聲強度為0.1(添加噪聲的目的是為了防止網絡過度擬合)
Noise=NoiseVar*randn(1TrainNum);???%生成噪聲
y_train=y_vec?+?Noise;???????????????????%將噪聲添加到輸出樣本上
[x_trainxtrain]=mapminmax(x_train);
[y_trainytrain]=mapminmax(y_train);
precision=0.5;?%預設精度
lr=0.01;
SSE=1;
mc=0.1;
W1=0.2*rand(hideNuminputNum)-0.1;???%初始化輸入層與隱含層之間的權值
B1=0.2*rand(hideNum1)-0.1;???????%初始化輸入層與隱含層之間的閾值
W2=0.2*rand(outputNumhideNum)-0.1;?%初始化輸出層與隱含層之間的權值??????????????
B2=0.2*rand(outputNum1)-0.1;????????????????%初始化輸出層與隱含層之間的閾值
W1_1=W1;W1_2=W1_1;
W2_1=W2;W2_2=W2_1;
B1_1=B1;B1_2=B1_1;
B2_1=B2;B2_2=B2_1;
ErrHistory=[];??????????????????????????????%給中間變量預先占據內存
count=1;
counthistory=[1];
%?tic
while(SSE>precision)
????HiddenIn=x_train;
????HiddenNet=W1*HiddenIn+repmat(B11TrainNum);?%?隱含層網絡輸出10*100
????HiddenOut=sin(HiddenNet);??%sin(HiddenNet)1./(1+exp(-HiddenNet)),
????finalNet=W2*HiddenOut+repmat(B21TrainNum);????%?輸出層網絡輸出1*100
????finalOut=finalNet;????%sin(finalNet)1./(1+e
評論
共有 條評論