BP網(wǎng)絡(luò)工具怎么用,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、望謨ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的望謨網(wǎng)站制作公司
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無(wú)需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用梯度下降法,通過(guò)反向傳播來(lái)不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱層(hidden layer)和輸出層(output layer)。
神經(jīng)網(wǎng)絡(luò)可以用作分類、聚類、預(yù)測(cè)等。神經(jīng)網(wǎng)絡(luò)需要有一定量的歷史數(shù)據(jù),通過(guò)歷史數(shù)據(jù)的訓(xùn)練,網(wǎng)絡(luò)可以學(xué)習(xí)到數(shù)據(jù)中隱含的知識(shí)。
%% 清理
clear,clc
rng('default')
rng(2)
%% 讀入數(shù)據(jù)
xlsfile='student.xls';
[data,label]=getdata(xlsfile);
%% 劃分?jǐn)?shù)據(jù)
[traind,trainl,testd,testl]=divide(data,label);
%% 創(chuàng)建網(wǎng)絡(luò)
net=feedforwardnet(3);
net.trainFcn='trainbfg';
%% 訓(xùn)練網(wǎng)絡(luò)
net=train(net,traind',trainl);
%% 測(cè)試
test_out=sim(net,testd');
test_out(test_out>=0.5)=1;
test_out(test_out<0.5)=0;
rate=sum(test_out==testl)/length(testl);
% 正確率90%
上圖是訓(xùn)練樣本的分布情況,可以看出不同分類之間交錯(cuò)重合部分較多,而且比較密
這是通過(guò)隱藏層變換之后的樣本分布情況,變換后的樣本仍有交錯(cuò)重合的部分,但是距離已經(jīng)被拉大,可以找到一條直線近似將兩類樣本分隔開(kāi)
這是輸出層變換之后的樣本分布,可以看到不同類別的樣本比較明顯的分隔開(kāi),一條直線分隔開(kāi)的正確率達(dá)到90%
%% 顯示三次樣本分布
% 顯示訓(xùn)練樣本
train_m = traind(trainl==1,:);
train_m=train_m';
train_f = traind(trainl==0,:);
train_f=train_f';
figure(1)
plot(train_m(1,:),train_m(2,:),'bo');
hold on;
plot(train_f(1,:),train_f(2,:),'r*');
xlabel('身高')
ylabel('體重')
title('訓(xùn)練樣本分布')
legend('男生','女生')
%% 隱藏層變換樣本
hidden_tran = cell2mat(net.iw);
train_m=hidden_tran * train_m + net.b{1};
train_f=hidden_tran * train_f + net.b{1};
figure(2)
plot(train_m(1,:),train_m(2,:),'bo');
hold on;
plot(train_f(1,:),train_f(2,:),'r*');
xlabel('身高')
ylabel('體重')
title('隱藏層變換樣本分布')
legend('男生','女生')
%% 輸出層變換樣本
layout_tran = cell2mat(net.lw);
train_m=layout_tran * train_m + net.b{2};
train_f=layout_tran * train_f + net.b{2};
figure(3)
plot(train_m(1,:),'bo');
hold on;
plot(train_f(1,:),'r*');
xlabel('身高')
ylabel('體重')
title('輸出層變換樣本分布')
legend('男生','女生')
這里的網(wǎng)絡(luò)是簡(jiǎn)單的,如果設(shè)計(jì)出復(fù)雜的網(wǎng)絡(luò),就可以實(shí)現(xiàn)下面這樣的變換
變換前
變換后
變換前
變換后
幫你學(xué)MatLab
看完上述內(nèi)容,你們掌握BP網(wǎng)絡(luò)工具怎么用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!