nghiên cứu mạng nơron và ứng dụng mạng nơron trong nhận dạng chữ viết tay tiếng việt

128 429 2
nghiên cứu mạng nơron và ứng dụng mạng nơron trong nhận dạng chữ viết tay tiếng việt

Đ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

B GIO DC V O TO TRNG I HC BCH KHOA H NI - Hong Th Hng H NGHIấN CU MNG NRON V NG DNG MNG NRON TRONG NHN DNG CH VIT TAY TING VIT Chuyờn ngnh: in t Vin thụng LUN VN THC S KHOA HC IN T VIN THễNG NGI HNG DN KHOA HC : TS PHM NGC NAM H Ni 2010 Nghiên cứu mạng nơron ứng dụng nhận dạng chữ viết tay tiếng Việt LI CAM OAN Tụi xin cam oan rng ton b ni dung lun ca tụi di õy khụng c chộp y nguyờn t mt bi lun ca mt tỏc gi khỏc Tụi cng xin cam oan rng mi s tham kho, trớch dn bi lun ca tụi u ó c ghi rừ ngun mc ti liu tham kho ca lun Nu hi ng phỏt hin cú nhng im khụng ỳng vi nhng gỡ tụi ó cam oan trờn thỡ tụi xin chu hon ton trỏch nhim H Ni, 10 thỏng 10 nm 2010 Hoàng Thị Hồng Hà Học viên: Hoàng Thị Hồng Hà -I- Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng nhận dạng chữ viết tay tiếng Việt MC LC LI CAM OAN DANH MC CC BNG DANH MC CC HèNH V M U CHNG - TNG QUAN V MNG NRON NHN TO 1.1 Lch s phỏt trin mng nron 1.2 So sỏnh mng nron vi mỏy tớnh truyn thng 1.3 Khỏi nim mng nron 1.3.1 Nron sinh hc 1.3.2 Nron nhõn to 13 1.3.3 Mng nron nhõn to 17 1.4 c trng ca mng nron 18 1.4.1 Tớnh phi tuyn 18 1.4.2 Tớnh cht tng ng u vo u 18 1.4.3 Tớnh cht thớch nghi 19 1.4.4 Tớnh cht a li gii cú bng chng 19 1.4.5 Tớnh cht chp nhn sai sút 19 1.4.6 Kh nng ci t VLSI (Very-large-scale-intergrated) 19 1.4.7 Tớnh cht ng dng phõn tớch v thit k 20 1.5 Phõn loi mng nron nhõn to 20 1.5.1 Phõn loi theo kiu liờn kt nron 20 1.5.2 Mt s loi mng nron 21 1.5.2.1 Mng dn tin 21 Học viên: Hoàng Thị Hồng Hà - II - Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng nhận dạng chữ viết tay tiếng Việt 1.5.2.2 Mng quy hi (recurrent network) 24 1.6 Xõy dng mng nron 25 1.7 Hun luyn mng nron 26 1.7.1 Phng phỏp hc 26 1.7.1.1 Hc cú giỏm sỏt 27 1.7.1.2 Hc khụng giỏm sỏt 27 1.7.1.3 Hc tng cng 27 1.7.2 Hc cú giỏm sỏt mng nron 28 1.7.2.1 Thut toỏn hc ca mng nron mt lp 29 1.7.2.2 Thut toỏn hc ca mng nron nhiu lp 30 1.8 Mt s ca mng nron 36 1.9 ng dng ca mng nron 37 1.10 Kt lun 37 CHNG - MNG NRON KOHONEN 39 2.1 Gii thiu v mng nron Kohonen 39 2.2 Cu trỳc ca mng nron Kohonen 40 2.3 Thc hin mng nron Kohonen 41 2.3.1 Chun húa u vo 41 2.3.2 Tớnh toỏn u cho mi nron 41 2.3.3 Chn nron chin thng 42 2.3.4 Quỏ trỡnh hc ca mng nron Kohonen 42 2.3.4.1 Tc hc 44 2.3.4.2 Hiu chnh trng s 44 2.3.5 Kt lun 46 Học viên: Hoàng Thị Hồng Hà - III - Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng nhận dạng chữ viết tay tiếng Việt CHNG - NG DNG MNG NRON KOHONEN TRONG BI TON NHN DNG CH VIT TAY TING VIT 47 3.1 Gii thiu s lc v nhn dng 47 3.2 Gii thiu v nhn dng ch vit tay ting Vit 49 3.3 Phng phỏp nhn dng ch vit tay bng mng nron 53 3.4 Phỏt biu bi toỏn 54 3.5 Cỏc bc gii quyt bi toỏn s dng mng nron nhn dng ký t: 55 3.5.1 Xõy dng giao din v 55 3.5.2 Xõy dng mng nron Kohonen 56 3.5.3 X lý d liu (phõn tớch nh) 56 3.5.4 Hun luyn mng nron Kohonen 57 3.5.5 Nhn dng mng nron Kohonen 59 3.5.6 Kt lun 59 CHNG - Mễ PHNG NHN DNG Kí T VIT TAY TING VIT RI RC TRC TUYN BNG MNG NRON KOHONEN 60 4.1 Gii thiu 60 4.2 Thc hin chng trỡnh nhn dng ký t 61 4.2.1 Xỏc nh cỏc tham s cho mng 62 4.2.2 V hỡnh nh 62 4.2.3 Ly mu xung hỡnh nh 63 4.2.3.1 Lu hỡnh nh c ly mu xung 63 4.2.3.2 Kớch thc v v trớ 64 4.2.3.3 Thc hin ly mu xung 64 4.2.4 Cỏc hun luyn 65 4.2.5 Lp mng c bn 65 Học viên: Hoàng Thị Hồng Hà - IV - Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng nhận dạng chữ viết tay tiếng Việt 4.2.6 Lp mng nron Kohonen 66 4.2.6.1 Tớnh toỏn u ca mng Kohonen 67 4.2.6.2 Hun luyn mng nron Kohonen 68 4.3 Chng trỡnh mụ phng 70 4.3.1 Cỏc chc nng ca chng trỡnh 70 4.3.2 Kt qu nhn dng 71 4.3.3 Kt lun 74 CHNG - KT LUN 76 5.1 Cỏc kt qu ó t c 76 5.1.1 V mt lý thuyt 76 5.1.2 V mt thc tin 77 5.2 Hng phỏt trin tip theo 77 5.3 Mt vi suy ngh sau nghiờn cu 77 TI LIU THAM KHO 79 PH LC Học viên: Hoàng Thị Hồng Hà -V- Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng nhận dạng chữ viết tay tiếng Việt DANH MC CC BNG Bng 1.1 So sỏnh kh nng lm vic ca b nóo v mỏy tớnh 10 Bng 1.2 Mt s hm kớch hot c bn mng nron 16 DANH MC CC HèNH Hỡnh 1.1 Mng nron sinh hc Hỡnh 1.2 S nron sinh hc 12 Hỡnh 1.3 Mụ hỡnh mt nron nhõn to 13 Hỡnh 1.4 S tng ng gia nron sinh hc v nron nhõn to 13 Hỡnh 1.5 Mụ hỡnh phi tuyn th hai ca mt mng nron 16 Hỡnh 1.6 S n gin v mt mng nron nhõn to 17 Hỡnh 1.7 Mng truyn thng 21 Hỡnh 1.8 Mng phn hi 21 Hỡnh 1.9 Mng tin vi mt mc nron 22 Hỡnh 1.10 Mng tin kt ni y vi mt mc n v mt mc u 24 Hỡnh 1.11 Mng hi quy khụng cú nron n v khụng cú vũng lp t phn hi 24 Hỡnh 1.12 Mng hi quy cú cỏc nron n 25 Hỡnh 1.13 S th cú hng n gin 25 Hỡnh 1.14 Bi toỏn XOR 30 Hỡnh 2.1 Cu trỳc ca mng Kohonen 40 Hỡnh 2.2 Quỏ trỡnh hun luyn mng nron Kohonen 43 Hỡnh 3.1 Mụ hỡnh chung nhn dng ký t vit 53 Hỡnh 3.2 Quỏ trỡnh tỡm gii hn ký t 55 Học viên: Hoàng Thị Hồng Hà - VI - Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng nhận dạng chữ viết tay tiếng Việt Hỡnh 3.3 Quỏ trỡnh ly mu xung 56 Hỡnh 3.4 Quỏ trỡnh ỏnh x t ma trn im sang ma trn giỏ tr 57 Hỡnh 3.5 Quỏ trỡnh hun luyn mng 58 Hỡnh 4.1 Giao din chng trỡnh mụ phng 70 Hỡnh 4.2 Nhn dng ký t 72 Hỡnh 4.3 Nhn dng ký t 72 Hỡnh 4.4 Nhn dng ký t 73 Hỡnh 4.5 Nhn dng ký t 73 Hỡnh 4.6 Nhn dng ký t 74 Học viên: Hoàng Thị Hồng Hà - VII - Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng nhận dạng chữ viết tay tiếng Việt M U Mng nron nhõn to ANN (Artificial Neural Networks) l mt mụ phng x lý thụng tin, c nghiờn cu t h thng thn kinh ca sinh vt, ging nh b nóo x lý thụng tin Nú bao gm s lng ln cỏc mi gn kt cp cao x lý cỏc yu t lm vic mi liờn h gii quyt rừ rng ANN ging nh ngi, c hc bi kinh nghim, lu nhng kinh nghim hiu bit v s dng nhng tỡnh phự hp v quan trng hn ht, ngi cú kh nng sỏng to u tiờn ANN c gii thiu nm 1943 bi nh thn kinh hc Warren McCulloch v nh logic hc Walter Pits Nhng vi nhng k thut thi gian ny cha cho phộp h nghiờn cu c nhiu Nhng nm gn õy mụ phng ANN xut hin v phỏt trin Cỏc nghiờn cu ng dng ó c thc hin cỏc ngnh: in, in t, k thut ch to, y hc, quõn s, kinh t Mt nhng ng dng kinh in ca mng nron l bi toỏn nhn dng mu, ú mi mt mu l mt hp (hay mt vector) cỏc tham s biu th cỏc thuc tớnh ca quỏ trỡnh vt lý no ú Ngoi sc mnh cú, mng nron cũn th hin u im ca mỡnh vic nhn dng thụng qua kh nng mm do, d thớch nghi vi mụi trng Chớnh vỡ vy, cú th coi mng nron trc tiờn l mt cụng c nhn dng Cỏc bi toỏn nhn dng c nghiờn cu nhiu nht hin bao gm nhn dng cỏc mu hỡnh hc (võn tay, mt ngi, hỡnh khi,), nhn dng ting núi v nhn dng ký t vit Nhn dng ký t vit bao gm hai kiu chớnh l nhn dng ký t in v nhn dng ký t vit tay Cho n bi toỏn nhn dng ký t in ó c gii quyt khỏ trn vi s i ca nhiu h thng nhn dng t ti chớnh xỏc gn nh tuyt i Nhn dng ký t vit tay ang l thỏch thc ln i vi cỏc nh nghiờn cu, bi ton ny cha th gii quyt trn c vỡ nú ph thuc quỏ nhiu vo ngi vit v s bin i quỏ a dng cỏch vit v trng thỏi tinh thn ca tng ngi vit c bit i vi vic nhn dng ký t vit tay Học viên: Hoàng Thị Hồng Hà -1- Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng nhận dạng chữ viết tay tiếng Việt ting Vit li cng gp nhiu khú khn hn b ký t ting Vit cú nhiu ký t cú hỡnh dỏng rt ging nhau, ch khỏc chỳt ớt v phn du Chớnh vỡ cỏc lý nờu trờn cựng vi s gi ý ca thy giỏo tụi nhn thy nghiờn cu v mng nron l mt hng nghiờn cu quan trng, mi m v cú nhiu trin vng ng thi ỏp dng mng nron gii quyt bi toỏn nhn dng ch vit tay ting Vit l mt hng tip cn khoa hc cú hiu qu, gúp phn gii quyt bi toỏn nhn dng ch vit tay ting Vit hin cũn cha c gii quyt trn Do ú tụi chn ti: Nghiờn cu mng nron v ng dng mng nron nhn dng ch vit tay ting Vit Tuy nhiờn hn ch v mt thi gian cng nh phc ca bi toỏn Trong lun ny tụi ch i sõu nghiờn cu v mụ phng nhn dng ký t vit tay ting Vit ri rc trc tuyn Ni dung lun gm: Chng 1: Tng quan v mng nron nhõn to Trỡnh by nhng lý thuyt c bn v mụ hỡnh mng nron nh: lch s i v phỏt trin ca mng nron, khỏi nim mng nron, cỏc loi mụ hỡnh mng nron, cỏc c trng ca mng, cỏc phng phỏp hun luyn mng nron, phng phỏp hc cú giỏm sỏt Cỏc v ng dng ca mng nron Chng 2: Mng nron Kohonen Trỡnh by lý thuyt c bn v mang nron Kohonen nh: gii thiu v mng, cu trỳc mng, cỏc bc thc hin mng: chun húa u vo, tớnh toỏn u ra, tỡm nron chin thng, quỏ trỡnh hun luyn mng Chng 3: ng dng mng nron Kohonen bi toỏn nhn dng ch vit tay ting Vit Gii thiu v cỏc bi toỏn nhn dng, nhn dng ch vit tay ting Vit Phng phỏp nhn dng ch vit tay bng mng nron, phỏt biu bi toỏn, cỏc bc gii quyt bi toỏn s dng mng nron Kohonen nhn dng ký t vit tay ri rc: Học viên: Hoàng Thị Hồng Hà -2- Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng mạng nơron nhận dạng chữ viết tay tiếng Việt myWorkBook.write(out); myWorkBook.setActiveSheet(0); out.close(); } catch (Exception e) { e.printStackTrace(); } } // phng thc nn hun luyn public void run() { try { int inputNeuron = MainEntry.DOWNSAMPLE_HEIGHT * MainEntry.DOWNSAMPLE_WIDTH; int outputNeuron = letterListModel.size(); TrainingSet set = new TrainingSet(inputNeuron, outputNeuron); set.setTrainingSetCount(letterListModel.size()); for (int t = 0; t < letterListModel.size(); t++) { int idx = 0; SampleData ds = (SampleData) letterListModel.getElementAt(t); for (int y = 0; y < ds.getHeight(); y++) { for (int x = 0; x < ds.getWidth(); x++) { set.setInput(t, idx++, ds.getData(x, y) ? : -.5); } } } net = new KohonenNetwork(inputNeuron, outputNeuron, this); net.setTrainingSet(set); net.learn(); } catch (Exception e) { JOptionPane.showMessageDialog(this, "Error: " + e, "Training", JOptionPane.ERROR_MESSAGE); } } // c gi cp nht trng thỏi t mng Học viên: Hoàng Thị Hồng Hà - 26 - Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng mạng nơron nhận dạng chữ viết tay tiếng Việt public void update(int retry, double totalError, double bestError) { if ((((retry % 100) != 0) || (retry == 10)) && !net.halt) return; if (net.halt) { trainThread = null; train.setText("Hc"); JOptionPane.showMessageDialog(this, "Tin trỡnh hc xong.", "Hc", JOptionPane.PLAIN_MESSAGE); } UpdateStats stats = new UpdateStats(); stats._tries = retry; stats._lastError = totalError; stats._bestError = bestError; try { SwingUtilities.invokeAndWait(stats); } catch (Exception e) { JOptionPane.showMessageDialog(this, "Error: " + e, "Training", JOptionPane.ERROR_MESSAGE); } } /** c gi nỳt nhn nỳt hc * @param event s kin */ void train_actionPerformed(java.awt.event.ActionEvent event) { if (trainThread == null) { train.setText("Hc xong"); train.repaint(); trainThread = new Thread(this); trainThread.start(); } else { net.halt = true; } } /** c gi nhn nỳt nhn dng * @param event s kin */ Học viên: Hoàng Thị Hồng Hà - 27 - Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng mạng nơron nhận dạng chữ viết tay tiếng Việt void recognize_actionPerformed(java.awt.event.ActionEvent event) { if (net == null) { JOptionPane.showMessageDialog(this, "Cn cho chng trỡnh hc trc!", "Li", JOptionPane.ERROR_MESSAGE); return; } entry.downSample(); double input[] = new double[10 * 10]; int idx = 0; SampleData ds = sample.getData(); for (int y = 0; y < ds.getHeight(); y++) { for (int x = 0; x < ds.getWidth(); x++) { input[idx++] = ds.getData(x, y) ? : -.5; } } double normfac[] = new double[1]; double synth[] = new double[1]; int best = net.winner(input, normfac, synth); char map[] = mapNeurons(); JOptionPane.showMessageDialog(this, "Ký t nhn dng c: " + map[best], "Ký t nhn dng", JOptionPane.PLAIN_MESSAGE); clear_actionPerformed(null); } /** c s dng ỏnh x nron u vi ký t thc t * @return mt mng ỏnh x ký t vi nron */ char[] mapNeurons() { char map[] = new char[letterListModel.size()]; double normfac[] = new double[1]; double synth[] = new double[1]; for (int i = 0; i < map.length; i++) map[i] = '?'; for (int i = 0; i < letterListModel.size(); i++) { double input[] = new double[10 * 10]; int idx = 0; SampleData ds = (SampleData) letterListModel.getElementAt(i); Học viên: Hoàng Thị Hồng Hà - 28 - Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng mạng nơron nhận dạng chữ viết tay tiếng Việt for (int y = 0; y < ds.getHeight(); y++) { for (int x = 0; x < ds.getWidth(); x++) { input[idx++] = ds.getData(x, y) ? : -.5; } } int best = net.winner(input, normfac, synth); map[best] = ds.getLetter(); } return map; } public class UpdateStats implements Runnable { long _tries; double _lastError; double _bestError; public void run() { tries.setText("" + _tries); lastError.setText("" + _lastError); bestError.setText("" + _bestError); } } } Lp Network package net; import java.util.*; abstract public class Network { public final static double NEURON_ON=0.9; public final static double NEURON_OFF=0.1; protected double output[]; protected double totalError; // li bỡnh phng trung bỡnh ca mng protected int inputNeuronCount; // s nron u vo protected int outputNeuronCount; // s nron u protected Random random = new Random(System.currentTimeMillis()); // b to s ngu nhiờn /** c gi hc hun luyn * @exception java.lang.RuntimeException */ abstract public void learn () throws RuntimeException; Học viên: Hoàng Thị Hồng Hà - 29 - Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng mạng nơron nhận dạng chữ viết tay tiếng Việt abstract void trial(double []input); // phng thc a u vo mng n nron u double []getOutput() { return output; } /** tớnh chiu di vector * @param v vector * @return Vector length */ static double vectorLength( double v[] ) { double rtn = 0.0 ; for ( int i=0;i0 ) { rtn += vec1[v] * vec2[v];// tng cỏc tớch hai phn t tng ng ca hai vector v++; } return rtn; } /** to ngu nhiờn ma trn trng s * @param weight A weight matrix Học viên: Hoàng Thị Hồng Hà - 30 - Lớp: CHĐTVT1-2008/2010 Nghiên cứu mạng nơron ứng dụng mạng nơron nhận dạng chữ viết tay tiếng Việt */ void randomizeWeights( double weight[][] ) { double r ; int temp = (int)(3.464101615 / (2 * Math.random() )) ; // SQRT(12)=3.464 for ( int y=0;y

Ngày đăng: 19/07/2017, 00:07

Từ khóa liên quan

Mục lục

  • TRANG BÌA

  • LỜI CAM ĐOAN

  • MỤC LỤC

  • DANH MỤC CÁC BẢNG

  • DANH MỤC CÁC HÌNH

  • MỞ ĐẦU

  • CHƯƠNG 1

  • CHƯƠNG 2

  • CHƯƠNG 3

  • CHƯƠNG 4

  • CHƯƠNG 5

  • TÀI LIỆU THAM KHẢO

  • PHỤ LỤC

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

Tài liệu liên quan