Nghiên cứu về mô hình thống kê học sâu và ứng dụng trong nhận dạng chữ viết tay hạn chế

70 512 0
Nghiên cứu về mô hình thống kê học sâu và ứng dụng trong nhận dạng chữ viết tay hạn chế

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

I HC THI NGUYấN TRNG I HC CễNG NGH THễNG TIN & TRUYN THễNG MAI VN THY NGHIÊN CứU Về MÔ HìNH THốNG KÊ HọC SÂU Và ứNG DụNG TRONG NHậN DạNG CHữ VIếT TAY HạN CHế LUN VN THC S KHOA HC MY TNH THáI NGUYÊN - 2015 I HC THI NGUYấN TRNG I HC CễNG NGH THễNG TIN & TRUYN THễNG MAI VN THY NGHIÊN CứU Về MÔ HìNH THốNG KÊ HọC SÂU Và ứNG DụNG TRONG NHậN DạNG CHữ VIếT TAY HạN CHế Chuyờn ngnh : Khoa Hc Mỏy Tớnh Mó s : 60 48 01 LUN VN THC S KHOA HC MY TNH NGI HNG DN KHOA HC TS V Tt Thng THáI NGUYÊN - 2015 iii LI CAM OAN Tụi cam oan õy l cụng trỡnh nghiờn cu ca riờng tụi Cỏc s liu, kt qu nờu lun l trung thc v cha tng c cụng b bt k cụng trỡnh no khỏc Qua õy tụi xin chõn thnh cm n ton th cỏc thy cụ khoa o to sau i hc Trng i hc Cụng ngh Thụng tin v Truyn thụng i hc Thỏi Nguyờn, nhng ngi ó trc tip ging dy, truyn t cho tụi kin thc chuyờn mụn v phng phỏp lm vic khoa hc c bit, tụi xin chõn thnh cm n TS V Tt Thng, ó tn tỡnh hng dn tụi cú th hon thnh lun ny Tụi cng xin gi li cm n ti gia ỡnh bn bố ó giỳp , ng viờn v to iu kin cho tụi quỏ trỡnh lm lun Tỏc gi lun Mai Vn Thy iv MC LC LI CAM OAN i MC LC iv DANH MC HèNH NH vi DANH MC BNG BIU vii LI M U Chng 1: GII THIU TI 1.1 Gii thiu v bi toỏn nhn dng 1.1.1 Cỏc giai on phỏt trin 1.1.2 Tỡnh hỡnh nghiờn cu nc 1.1.3 Tỡnh hỡnh nghiờn cu nc ngoi 1.2 Cỏc bc x lý cho bi toỏn nhn dng hon chnh 1.3 Kt lun chng Chng 2: Mễ HèNH SVM V Mễ HèNH THNG Kấ HC SU 2.1 Tng quan v mụ hỡnh SVM (Support Vector Machine) 2.1.1 C s lý thuyt 2.1.1.1 Gii thiu bi toỏn phõn lp nh phõn 2.1.1.2 Mỏy SVM tuyn tớnh 10 2.1.1.3 Mỏy SVM phi tuyn 17 2.1.2 Cỏc thut toỏn hun luyn SVM 19 2.1.2.1 Thut toỏn cht khỳc 19 2.1.2.2 Thut toỏn phõn ró 19 2.1.2.3 Thut toỏn cc tiu tun t 20 2.2 C s lý thuyt mụ hỡnh thng kờ hc sõu 23 2.2.1 Mt s lý thuyt v mng Neuron 23 2.2.1.1 Gii thiu v mng Neuron 23 2.2.1.2 Cu trỳc v hot ng ca mng Neuron 23 2.2.1.3 Quỏ trỡnh hun luyn mng v cỏc thut toỏn hc mng 28 v 2.2.2 Hopfield Network 31 2.2.2.1 Cu trỳc mng Hopfield 31 2.2.2.2 Mng Hopfield ri rc 33 2.2.2.3 Mng Hopfield liờn tc 34 2.2.3 Boltzmann Machines 36 2.2.4 Restricted Boltzmann Machines 39 2.2.3 Thut toỏn lan truyn ngc 40 2.3 Kt lun chng 42 Chng 3: KT QU THC NGHIM V NH GI 43 3.1 Mụi trng thc nghim 43 3.2 D liu thc nghim 43 3.3 Kt qu thc nghim vi mụ hỡnh SVM 44 3.4 Hun luyn mụ hỡnh v kt qu thc nghim vi mụ hỡnh thng kờ hc sõu 45 3.4.1 Hun luyn mụ hỡnh 45 3.4.1.1 Cu trỳc mụ hỡnh 45 3.4.1.2 Phng phỏp hun luyn v quy trỡnh nhn dng 47 3.4.2 Giao din chớnh ca chng trỡnh 48 3.4.3 Kt qu thc nghim 49 3.5 ỏnh giỏ kt qu thc nghim ca hai mụ hỡnh 50 3.6 Kt lun chng 51 KT LUN CHUNG 52 TI LIU THAM KHO 54 PH LC: HUN LUYN Mễ HèNH 56 vi DANH MC HèNH NH Hỡnh 1-1: Cỏc bc nhn dng ch vit tay Hỡnh 2-1: Cỏc siờu phng H1 , H phõn cỏch gia hai lp Hỡnh 2-2: Siờu phng tỏch tuyn tớnh 10 Hỡnh 2-3: Khụng th phõn hoch mu trờn bng mt siờu phng 13 Hỡnh 2-4: Mt mt phõn chia phi tuyn cú th tr thnh mt siờu phng khụng gian ln hn 17 Hỡnh 2-5: Cu trỳc ca mt neuron 24 Hỡnh 2-6: Cu trỳc chung ca mng neuron 26 Hỡnh 2-7: Cu trỳc ca mng Hopfield 31 Hỡnh 2-8: th hm satlins 32 Hỡnh 2-9: Mng Hopfield liờn tc s dng mch in t 35 Hỡnh 2-10: Mt Boltzmann Machine vi nỳt n 36 Hỡnh 2-11: Mt RBM n gin vi hidden units v visible units 39 Hỡnh 3-2: Giao din chớnh ca chng trỡnh nhn dng ch vit tay hn ch 48 Hỡnh 3-3: Chng trỡnh nhn dng nh bt k 48 Hỡnh 3-4: Nhn dng v thng kờ nhiu nh 49 vii DANH MC BNG BIU Bng 2-1: Cỏc hm truyn c bn 27 Bng 3-1: Kt qu thc nghim mụ hỡnh SVM trờn d liu MNIST v Tuyn Sinh 44 Bng 3-2: Kt qu thc nghim mụ hỡnh SVM trờn d liu MNIST 44 Bng 3-3: Kt qu thc nghim mụ hỡnh SVM trờn d liu Tuyn Sinh 45 Bng 3-4: Kt qu thc nghim trờn d liu MNIST v Tuyn Sinh 49 Bng 3-5: Kt qu thc nghim trờn d liu Tuyn sinh 50 Bng 3-6: Bng so sỏnh kt qu gia hai mụ hỡnh 50 LI M U Nhn dng ch vit tay l bi toỏn khú lp cỏc bi toỏn nhn dng ch, v luụn thu hỳt c nhiu s quan tõm nghiờn cu ca cỏc nh khoa hc c bit l vi thp niờn gn õy, s thỳc y ca quỏ trỡnh tin hc húa mi lnh vc, ng dng nhn dng ch cng cú nhiu ý ngha c s dng cho cỏc bi toỏn thc t Cng nh nhiu bi toỏn nhn dng ting núi, hỡnh nh khỏc, thỡ chớnh xỏc ca h thng tip tc cn phi ci thin nhm ti kh nng nhn dng ging nh ngi Tuy nhiờn, vi bi toỏn nhn dng ch vit tay thỡ tr nờn phc hn nhiu so vi bi toỏn nhn dng ch in thụng thng nhng sau õy [3]: Vi ch vit tay thỡ khụng th cú cỏc khỏi nim font ch, kớch c ch Cỏc kớ t mt bn ch vit tay thng cú kớch thc khỏc Thm chớ, cựng mt kớ t mt bn mt ngi vit nhiu cng cú rng, hp, cao, thp khỏc nhau, Vi nhng ngi vit khỏc ch vit cú nghiờng khỏc (ch nghiờng nhiu/ớt, ch nghiờng trỏi/phi ) Cỏc kớ t ca mt t trờn bn ch vit tay i vi hu ht ngi vit thng b dớnh vỡ vy rt khú xỏc nh c phõn cỏch gia chỳng Cỏc bn ch vit tay cũn cú th cú trng hp dớnh dũng (dũng di b dớnh hoc chng lờn dũng trờn) Trong nhng nm gn õy, mụ hỡnh mng Neuron theo hng hc sõu ó cho thy nhng kt qu tt nhiu bi toỏn khỏc nhau, ú cú nhn dng ch Xut phỏt t yờu cu thc t, ang rt cn cú nhng nghiờn cu v ny Chớnh vỡ vy hc viờn ó chn ti Nghiờn cu v mụ hỡnh thng kờ hc sõu v ng dng nhn dng ch vit tay hn ch lm lun tt nghip vi mong mun phn no ỏp dng vo bi toỏn thc t Bi toỏn ó t phi gii quyt c nhng yờu cu sau: Nhn dng c cỏc ký t t nh u vo Tin hnh nhn dng kớ t n l s dng mng Neuron nhõn to theo phng phỏp hc sõu Restricted Boltzmann machine (RBM) ỏnh giỏ kt qu v so sỏnh vi mụ hỡnh Support Vector Machine Vi nhng yờu cu ó t trờn, cu trỳc ca lun s bao gm nhng ni dung sau õy: Chng 1:Tng quan v ti Gii thiu v bi toỏn nhn dng ch vit tay, tỡnh hỡnh nghiờn cu v ngoi nc, quy trỡnh chung gii quyt bi toỏn v cỏc phng phỏp in hỡnh vic hun luyn nhn dng, phm vi ca ti Chng 2: Mụ hỡnh SVM v mụ hỡnh thng kờ hc sõu Trỡnh by v c s lý thuyt ca mụ hỡnh SVM (Support Vector Machine) v hun luyn bi toỏn nhn dng ch vit tay C s lý thuyt ca mụ hỡnh thng kờ hc sõu: Hopfield network, Boltzmann Machines, Restricted Boltzmann Machines v thut toỏn lan truyn ngc Chng 3: Kt qu thc nghim v ỏnh giỏ Trỡnh by cỏc kt qu thc nghim ca hai mụ hỡnh SVM v mụ hỡnh thng kờ hc sõu, a kt qu ỏnh giỏ nhn dng ch vit tay hn ch gia mụ hỡnh SVM v mụ hỡnh thng kờ hc sõu Chng GII THIU TI 1.1 Gii thiu v bi toỏn nhn dng Nhn dng ch in: ó c gii quyt gn nh trn (sn phm FineReader 11 ca hóng ABBYY cú th nhn dng ch in theo 192 ngụn ng khỏc nhau, phn mm nhn dng ch Vit in VnDOCR 4.0 ca Vin Cụng ngh Thụng tin Vin Hn lõm Khoa hc v Cụng ngh Vit Nam cú th nhn dng c cỏc ti liu cha hỡnh nh, bng v bn vi chớnh xỏc trờn 98%) Nhn dng ch vit tay cũn l thỏch thc ln i vi cỏc nh nghiờn cu Bi ton ny cha th gii quyt trn c vỡ nú hon ton ph thuc vo ngi vit v s bin i quỏ a dng cỏch vit v trng thỏi sc khe, tinh thn ca tng ngi vit 1.1.1 Cỏc giai on phỏt trin Giai on (1900 - 1980) - Nhn dng ch c bit n t nm 1900, nh khoa hc ngi Nga Alan Turing (1912-1954) phỏt trin mt phng tin tr giỳp cho nhng ngi mự - Cỏc sn phm nhn dng ch thng mi cú t nhng nm1950, mỏy tớnh ln u tiờn c gii thiu tớnh nng mi v nhp v lu tr d liu hai chiu bng cõy bỳt vit trờn mt tm bng cm ng.Cụng ngh mi ny cho phộp cỏc nh nghiờn cu lm vic trờn cỏc bi toỏn nhn dng ch vit tay online - Mụ hỡnh nhn dng ch vit c xut t nm 1951 phỏt minh ca M Sheppard c gi l GISMO, mt robot c-vit - Nm 1954, mỏy nhn dng ch u tiờn ó c phỏt trin bi J Rainbow dựng c ch in hoa nhng rt chm - Nm 1967, Cụng ty IBM ó thng mi húa h thng nhn dng ch Giai on (1980 - 1990) - Vi s phỏt trin ca cỏc thit b phn cng mỏy tớnh v cỏc thit b thu nhn d liu, cỏc phng phỏp lun nhn dng ó c phỏt trin giai on trc 49 Hỡnh 3-3: Nhn dng v thng kờ nhiu nh 3.4.3 Kt qu thc nghim Vi vic s dng mụi trng thc nghim v b d liu thc nghim hc viờn rỳt c mt s kt lun nh sau: Bng 3-4: Kt qu thc nghim trờn d liu MNIST v Tuyn Sinh Cỏc thụng s B d liu MNIST B d liu Tuyn Sinh 60.000 60.000 Cha xỏc nh 5433 < 24 gi < 24 gi Thi gian nhn dng Cha xỏc nh < phỳt T l nhn dng ỳng Cha xỏc nh 99.48 % S mu hc S mu nhn dng Thi gian hc 50 Bng 3-5: Kt qu thc nghim trờn d liu Tuyn sinh Ch s S mu S mu nhn dng ỳng chớnh xỏc (%) 1281 1279 99,8439 861 854 99,1870 338 335 99,1124 747 735 98,3936 337 337 100 287 286 99,6516 438 435 99,3135 661 661 100 238 238 100 295 295 100 3.5 ỏnh giỏ kt qu thc nghim ca hai mụ hỡnh Bng 3-6: Bng so sỏnh kt qu gia hai mụ hỡnh Cỏc thụng s S mu hc S mu nhn dng Thi gian hc Thi gian nhn dng T l nhn dng ỳng SVM Deep Learning MNIST Tuyn sinh MNIST Tuyn Sinh 60.000 60.000 60.000 60.000 10.000 10.000 >30 gi > 30 gi > phỳt > phỳt 95.21 % 94.88 % Cha xỏc nh < 24 gi Cha xỏc nh Cha xỏc nh 5433 < 24 gi < phỳt 99.48 % 51 T kt qu thu c ca hai mụ hỡnh SVM (Support Vector Machine) v mụ hỡnh thng kờ hc sõu (Deep Learning), chỳng ta thy rng mụ hỡnh Deep Learning l mt mụ hỡnh khỏ l mi m, c nc cng nh trờn th gii Qua quỏ trỡnh xõy dng chng trỡnh thc nghim chỳng ta thy rng, mụ hỡnh ny cho kt qu tt hn so vi mụ hỡnh Support Vector Machine 3.6 Kt lun chng Trong chng ny nờu kt qu thc nghim gia hai mụ hỡnh Suport Vector Machine (SVM) v mụ hỡnh thng kờ hc sõu (mụ hỡnh s dng mng neuron nhõn to theo phng phỏp hc sõu) Nhỡn chung, trờn kt qu thc nghim ta thy rng vic s dng mụ hỡnh thng kờ hc sõu cho mt kt qu khỏ tt so vi mt s phng phỏp trc õy, m c th l mụ hỡnh SVM 52 KT LUN CHUNG Cỏc kt qu ó t v cha t c Qua mt thi gian nghiờn cu v hin lun vn, hc viờn nhn thy ó t c nhng kt qu sau õy: - ti a c mt gii phỏp mi cho vic nhn dng ch vit tay hn ch, c th l s dng mụ hỡnh thng kờ hc sõu Ngoi ra, lun cũn trỡnh by mt phn v mụ hỡnh SVM (Support Vector Machine) cho vic nhn dng ch vit tay, s dng mt s th vin mó ngun m Hai mụ hỡnh trờn u s dng trờn cựng mt b d liu a kt qu so sỏnh v ỏnh giỏ - Vic ỏp dng mụ hỡnh thng kờ hc sõu cho mt kt qu tng i tt, vi mụ hỡnh ny kt qu thu c trờn b d liu ch vit tay Tuyn Sinh l 99,48%, tt hn xp x khong 5% so vi mụ hỡnh SVM (94,88%) - Bi toỏn gii quyt khỏ tt c mt lp bi toỏn nhn dng bi toỏn nhn dng tng th, õy l mt bc rt quan trng bi toỏn nhn dng hon chnh Ngoi nhng iu ni bt nờu trờn, lun cũn mt s im hn ch nht nh: - Bi toỏn ch mi dng li vic nhn dng nhng kớ t n l m cha th nhn dng c nhng kớ t lin nột vi - Vic x lý i vi nhng nh nhiu cha tht s tt, nhn dng cú th xy sai sút gp phi nhng nh cú cht lng kộm Hng nghiờn cu v phỏt trin - Trong thi gian ti, hc viờn s nghiờn cu sõu hn v mụ hỡnh thng kờ hc sõu nhm nõng cao thờm cht lng ca mụ hỡnh nhn dng, ng thi thu thp thờm d liu cho cỏc lp kớ t khỏc - M rng thờm cỏc lp kớ t, nhm gii quyt bi toỏn ln hn ú l nhn dng c nhng kớ t vit tay khỏc, khụng ch hn ch riờng cho cỏc kớ t t 53 - Ngoi ra, nõng cao thờm cho vic nhn dng, hc viờn s m rng thờm cỏc lp ch m khụng th phõn tỏch thnh cỏc ký t n l c - Nghiờn cu v xõy dng bi toỏn nhn dng hon chnh, b sung thờm cỏc phn phõn tớch cỳ phỏp v phõn tớch ng ngha cõu cú th la chn chớnh xỏc hn kt qu tr v ca mng 54 TI LIU THAM KHO Ting Vit [1] Thanh Ngh, Phm Nguyờn Khang (2013) Nhn dng kớ t s vit tay bng gii thut mỏy hc Tp khoa hc Trng i hc Cn Th [2] Lờ Minh Hong, mt phng phỏp nhn dng bn ting Vit Lun thc s, i hc Quc gia H Ni [3] Nguyn Th Thanh Tõn, Nhn dng ch vit tay hn ch da trờn mụ hỡnh mng neuron kt hp vi thng kờ ng cnh Lun thc s, i hc Quc gia H Ni [4] Phm ThHong Nhung, H Quang Thy (2007).Nghiờn cu, s dng mng neuron nhõn to d bỏo lu lng nc n h Ho Bỡnh trc 10 ngy Hi tho Quc gia Mt s chn lc v Cụng ngh thụng tin v Truyn thụng, ln th X, i Li, Vnh Phỳc, 9/2007 Ting Anh [5] Baret O and Simon J.C (1992) Cursiver Words Recognition From Pixels to Fuatures III Frontiers in Handwriting Recognition, tr.1-2 [6] Behnk S., Pfister M and Rojas R., (2000) Recognition of Handwitten ZIP Codes in a Real-World Non-Standard-Letter Sorting System Kluwer Academic Publishers, tr.95-115 [7] Fujasaki T., Beigi H.S.M, Tappert C.C, Ukelson M and Wolf C.G (1992) Online recognition of unconstrained handprinting: a stroke-based system and it evaluation From Pixels to Fuatures III Frontiers in Handwriting Recognition, tr.1-3 [8] Hoai Vu Pham (2013), Hopfield networks and Boltzmann Machines By http://phvu.net/ [9] Hoai Vu Pham (2013), Model definition and training of RBMs By http://phvu.net/ 55 [10] Hoai Vu Pham (2013), Contrastive Divergence By http://phvu.net/ [11] LISA lab Deep Learning 0.1 documentation By http://www.deeplearning.net/tutorial/contents.html [12] Michael Nielsen (2014).Using neural nets to recognize handwritten digits By http://neuralnetworksanddeeplearning.com/chap1.html [13] Ruslan Salakhutdinov and Geoff Hinton, Training a deep autoencoder or a classifier on MNIST digits 56 PH LC: HUN LUYN Mễ HèNH Restricted Boltzmann Machine (RBM) RBM.m epsilonw = 0.1; % Learning rate for weights epsilonvb = 0.1; % Learning rate for biases of visible units epsilonhb = 0.1; % Learning rate for biases of hidden units weightcost = 0.0002; initialmomentum = 0.5; finalmomentum = 0.9; [numcases numdims numbatches]=size (batchdata); if restart ==1, restart=0; epoch=1; % Initializing symmetric weights and biases vishid = 0.1*randn (numdims, numhid); hidbiases = zeros (1,numhid); visbiases = zeros (1,numdims); poshidprobs = zeros (numcases,numhid); neghidprobs = zeros (numcases,numhid); posprods = zeros (numdims,numhid); negprods = zeros (numdims,numhid); vishidinc = zeros (numdims,numhid); hidbiasinc = zeros (1,numhid); visbiasinc = zeros (1,numdims); batchposhidprobs=zeros (numcases,numhid,numbatches); end for epoch = epoch:maxepoch, fprintf (1,'epoch %d\r',epoch); errsum=0; for batch = 1:numbatches, fprintf (1,'epoch %d batch %d\r',epoch,batch); %%%%%%%%% START POSITIVE PHASE %%%%%%%%%%%%%%%%%%% data = batchdata (:,:,batch); poshidprobs = 1./ (1 + exp (-data*vishid - repmat (hidbiases,numcases,1))); batchposhidprobs (:,:,batch)=poshidprobs; posprods = data' * poshidprobs; poshidact = sum (poshidprobs); 57 posvisact = sum (data); %%%%%%%%% END OF POSITIVE PHASE %%%%%%%%%%%%%%%%%% poshidstates = poshidprobs > rand (numcases,numhid); %%%%%%%%% START NEGATIVE PHASE %%%%%%%%%%%%%%%%%%%%% negdata = 1./ (1 + exp (-poshidstates*vishid' - repmat (visbiases,numcases,1))); neghidprobs = 1./ (1 + exp (-negdata*vishid - repmat (hidbiases,numcases,1))); negprods = negdata'*neghidprobs; neghidact = sum (neghidprobs); negvisact = sum (negdata); %%%%%%%%% END OF NEGATIVE PHASE %%%%%%%%%%%%%%%%%% err= sum (sum ( (data-negdata).^2 )); errsum = err + errsum; if epoch>5, momentum=finalmomentum; else momentum=initialmomentum; end; %%%%%%%%% UPDATE WEIGHTS AND BIASES %%%%%%%%%%%%%%%%% vishidinc = momentum*vishidinc + epsilonw* ( (posprods-negprods)/numcases - weightcost*vishid); visbiasinc = momentum*visbiasinc + (epsilonvb/numcases)* (posvisact-negvisact); hidbiasinc = momentum*hidbiasinc + (epsilonhb/numcases)* (poshidact-neghidact); vishid = vishid + vishidinc; visbiases = visbiases + visbiasinc; hidbiases = hidbiases + hidbiasinc; %%%%%%%%%%%%%%%% END OF UPDATES %%%%%%%%%%%%%%%%% end fprintf (1, 'epoch %4i error %6.1f \n', epoch, errsum); end; 58 Thut toỏn lan truyn ngc Backpropclassify.m maxepoch=200; fprintf (1,'\nTraining discriminative model on MNIST by minimizing cross entropy error \n'); fprintf (1,'60 batches of 1000 cases each \n'); load mnistvhclassify load mnisthpclassify load mnisthp2classify makebatches; [numcases numdims numbatches]=size (batchdata); N=numcases; %%% PREINITIALIZE WEIGHTS OF THE DISCRIMINATIVE MODEL%%%%%%%% w1=[vishid; hidrecbiases]; w2=[hidpen; penrecbiases]; w3=[hidpen2; penrecbiases2]; w_class = 0.1*randn (size (w3,2)+1,10); %%%%%%%%% END OF PREINITIALIZATIO OF WEIGHTS %%%%%%%%%%%%% l1=size (w1,1)-1; l2=size (w2,1)-1; l3=size (w3,1)-1; l4=size (w_class,1)-1; l5=10; test_err=[]; train_err=[]; for epoch = 1:maxepoch %%%%%%%% COMPUTE TRAINING MISCLASSIFICATION ERROR %%%%%%%%% 59 err_cr=0; counter=0; [numcases numdims numbatches]=size (batchdata); N=numcases; for batch = 1:numbatches data = [batchdata (:,:,batch)]; target = [batchtargets (:,:,batch)]; data = [data ones (N,1)]; w1probs = 1./ (1 + exp (-data*w1)); w1probs = [w1probs ones (N,1)]; w2probs = 1./ (1 + exp (-w1probs*w2)); w2probs = [w2probs ones (N,1)]; w3probs = 1./ (1 + exp (-w2probs*w3)); w3probs = [w3probs ones (N,1)]; targetout = exp (w3probs*w_class); targetout = targetout./repmat (sum (targetout,2),1,10); [I J]=max (targetout,[],2); [I1 J1]=max (target,[],2); counter=counter+length (find (J==J1)); err_cr = err_cr- sum (sum ( target (:,1:end).*log (targetout))) ; end train_err (epoch)= (numcases*numbatches-counter); train_crerr (epoch)=err_cr/numbatches; %%%%%% END OF COMPUTING TRAINING MISCLASSIFICATION ERROR %%% %%%% COMPUTE TEST MISCLASSIFICATION ERROR %%%%%%%%%%% err=0; err_cr=0; counter=0; [testnumcases testnumdims testnumbatches]=size (testbatchdata); N=testnumcases; 60 for batch = 1:testnumbatches data = [testbatchdata (:,:,batch)]; target = [testbatchtargets (:,:,batch)]; data = [data ones (N,1)]; w1probs = 1./ (1 + exp (-data*w1)); w1probs = [w1probs ones (N,1)]; w2probs = 1./ (1 + exp (-w1probs*w2)); w2probs = [w2probs ones (N,1)]; w3probs = 1./ (1 + exp (-w2probs*w3)); w3probs = [w3probs ones (N,1)]; targetout = exp (w3probs*w_class); targetout = targetout./repmat (sum (targetout,2),1,10); [I J]=max (targetout,[],2); [I1 J1]=max (target,[],2); counter=counter+length (find (J==J1)); err_cr = err_cr- sum (sum ( target (:,1:end).*log (targetout))) ; end test_err (epoch)= (testnumcases*testnumbatches-counter); test_crerr (epoch)=err_cr/testnumbatches; fprintf (1,'Before epoch %d Train # misclassified: %d (from %d) Test # misclassified: %d (from %d) \t \t \n', epoch,train_err (epoch),numcases*numbatches,test_err (epoch),testnumcases*testnumbatches); %% END OF COMPUTING TEST MISCLASSIFICATION ERROR %%%%%% tt=0; for batch = 1:numbatches/10 fprintf (1,'epoch %d batch %d\r',epoch,batch); %%%% COMBINE 10 MINIBATCHES INTO LARGER MINIBATCH %%%%%%%% tt=tt+1; 61 data=[]; targets=[]; for kk=1:10 data=[data batchdata (:,:, (tt-1)*10+kk)]; targets=[targets batchtargets (:,:, (tt-1)*10+kk)]; end %%% PERFORM CONJUGATE GRADIENT WITH LINESEARCHES %%%%%% max_iter=3; if epoch

Ngày đăng: 15/04/2017, 20:48

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan