BPNN | 基于MATLAB的手寫數(shù)字識(shí)別
本推送分享基于matlab的反向傳播神經(jīng)網(wǎng)絡(luò)(BPNN)案例:
手寫數(shù)字識(shí)別
(數(shù)據(jù)來(lái)自MINIST集)。BPNN的原理不再介紹,僅介紹算法實(shí)現(xiàn)的過(guò)程。

注:本案例中所有內(nèi)容從底層寫起,不借助工具箱。
數(shù)據(jù)集
訓(xùn)練集已經(jīng)整理成MATLAB標(biāo)準(zhǔn)數(shù)據(jù)格式,每一列代表一個(gè)訓(xùn)練樣本(數(shù)字)。測(cè)試集具有同樣的格式。

通過(guò)下方代碼即可將數(shù)字圖像顯示出來(lái):
clear?all;
load?num_train.mat
figure
axes('Position',[0.1?0.1?0.8?0.8]);
for?i??=?1:size(x_train,2)????
????imshow(reshape(x_train(:,i:i+2),[28?84]));
????%imshow(reshape(x_train(:,i),[28?28]));
????pause(0.1)
end

含GUI

從BP.m
直接啟動(dòng),并點(diǎn)擊開始。

?如果不勾選左上角的是否重新訓(xùn)練數(shù)據(jù)
,GUI界面上會(huì)利用圖圖已經(jīng)訓(xùn)練好的模型進(jìn)行測(cè)試,并繪制出測(cè)試結(jié)果。
預(yù)訓(xùn)練的模型參數(shù)在
WEIGHT.mat
中。
?如果勾選左上角的是否重新訓(xùn)練數(shù)據(jù)
后點(diǎn)開始,會(huì)提示用戶輸入訓(xùn)練參數(shù):

不含GUI
直接從noGUI_BP.m
啟動(dòng)運(yùn)行,會(huì)提示用戶輸入訓(xùn)練參數(shù),并給出訓(xùn)練結(jié)果。此時(shí)可視化過(guò)程需要自行完成。
部分代碼
激活函數(shù)
反向傳播算法
?關(guān)注微信公眾號(hào)“圖通道”回復(fù)數(shù)字識(shí)別
下載完整代碼與數(shù)據(jù)集;
?打包圖圖的所有作品: https://mbd.pub/o/bread/mbd-YZaYm55t ;
?交流群:549621236;