Professional Documents
Culture Documents
M CL C
M Đ U ............................................................................................................................... 7
1.6. K t lu n ch ng 1 ....................................................................................................... 38
1
Luận án Tiến sĩ Kỹ thuật 2013
3.1. Đ t v n đ ................................................................................................................... 77
3.1.1. Kh o sát đ h i t c a quá trình luy n m ng n ron bằng kỹ thu t lan truy n ng c
nguyên th y v i các b kh i t o tr ng s ban đ u khác nhau .............................................. 77
3.1.2. Kh o sát đ h i t c a quá trình luy n m ng n ron có m t l i đ c bi t bằng kỹ thu t lan
truy n ng c k t h p thu t toán v t khe v i các b kh i t o tr ng s ban đ u khác nhau 80
3.4. K t lu n ch ng 3 ...................................................................................................... 94
2
Luận án Tiến sĩ Kỹ thuật 2013
PH L C 1....................................................................................................................... 106
3
Luận án Tiến sĩ Kỹ thuật 2013
DANH M C B NG BI U, HÌNH VẼ
Bảng 2.1. Các hàm kích hoạt (transfer function) tiêu biểu .................................. 64
Bảng 2.2: Tập hồ sơ mẫu đầu vào {0 1 2 3 4 5 6 7 8 9} ...................................... 74
Bảng 2.3: Tập hồ sơ mẫu đầu vào {! @ # $ % ^ & * ( )} .................................... 75
Bảng 3.1. Kết quả khi nhận dạng hệ thống phi tuyến tĩnh ................................... 79
Bảng 3.2: Kết quả khi nhận dạng hệ thống động học phi tuyến .......................... 80
Bảng 3.3: Kết quả khi nhận dạng hệ thống có mặt lỗi dạng lòng khe ................. 82
Bảng 3.4. So sánh GA và BP với sai số là 0.1 ..................................................... 85
Bảng 3.5: So sánh GA và BP với sai số là 0.001 ................................................. 86
Bảng 3.6: So sánh GA và BP với sai số khác nhau ............................................. 86
Hình 1.1. Điều khiển theo nguyên tắc phản hồi đầu ra ....................................... 15
Hình 1.2: Mô hình nhận dạng cơ bản .................................................................. 18
Hình 1.3. Mặt sai số dạng lòng khe ..................................................................... 19
Hình 1.4: Kỷ nguyên luyện mạng ví dụ 1 ............................................................. 24
Hình 1.5: Cấu trúc mạng nơron cho nhận dạng chữ ........................................... 25
Hình 1.6: Kết quả luyện mạng nơron với các phương pháp lan truyền ngược khác
nhau (traingd, traingdm, traindx, trainda) .......................................................... 26
Hình 2.1: Quỹ đạo dao động với sai số dạng lòng khe ........................................ 42
Hình 2.2: Hàm khe ............................................................................................... 48
CÁC T VI T T T
ADLINE ADAptiЯe Linear Neural, m ng tuв n tính thíМh nghi đ n l p
ANN ArtifiМial Neural Netаork, m ng n ron nhơn t o
BP BaМkPropagation, lan truв n ng М
BPTT BackPropagation -Through-Time, lan truв n ng М бuвên tơm
LDDN LaвereН Digital DвnamiМ Netаork, m ng n ron đ ng
LMS Least Mean Square, trung bình bình ph ng nh nhất
NNs Neural NetаorkS, m ng n ron
RTRL Real-Time ReМurrent Learning, thu t h М h i qui th i gian thựМ
SDBP Steepest Descent BackPropagation, kỹ thu t lan truв n ng М
giảm Н М nhất
OBP Optical BackPropagation, kỹ thu t lan truв n ng М “t М đ
пnh sпng”
VLBP Variable Learning rate BackPropagation algorithm, kỹ thu t
lan truв n ng М Я i t М đ h М thaв đổi.
MLP MultiLayer Perceptron, m ng truв n thẳng nhi u l p
GA GenetiМ Algorithms, giải thu t Нi truв n
5
Luận án Tiến sĩ Kỹ thuật 2013
L I CAM ĐOAN
Tôi бin Мam đoan lu n пn nƠв lƠ Мông trình nghiên М u khoa h М М a tôi ЯƠ không
trùng lặp Я i bất М Мông trình khoa h М nƠo khпМ. CпМ s li u trình bƠв trong lu n
пn đƣ đ М ki m tra kỹ ЯƠ phản пnh hoƠn toƠn trung thựМ. CпМ k t quả nghiên М u
Нo tпМ giả đ бuất Мh a từng đ М Мông b trên bất kỳ t p Мhí nƠo đ n th i đi m nƠв
ngoƠi nh ng Мông trình М a tпМ giả.
TпМ giả lu n пn
6
Luận án Tiến sĩ Kỹ thuật 2013
M Đ U
Trong rất nhi u lĩnh ЯựМ nh đi u khi n, tự đ ng hóa, Мông ngh thông tin…,
nh n Н ng đ Мđ it ng lƠ Яấn đ mấu Мh t quв t đ nh sự thƠnh Мông М a bƠi
toпn. Phần l n МпМ đ i t ng trong thựМ t đ u lƠ phi tuв n Я i đ phi tuв n khпМ
nhau.
M ng n ron Мó khả năng бấp бỉ МпМ hƠm phi tuв n m t МпМh đầв đ ЯƠ Мhính
бпМ, nó đ М s Н ng t t Мho МпМ mô hình đ ng h М phi tuв n. Đi u quan tr ng lƠ
thu t lan truв n ng М tĩnh ЯƠ đ ng М a m ng n ron đ М s Н ng đ hi u Мhỉnh
МпМ tham s trong quп trình nh n Н ng. C s toпn h М М a Яi М khẳng đ nh rằng
m ng n ron lƠ Мông М бấp бỉ Я n năng МпМ hƠm s liên t М Нựa trên МпМ đ nh lý
Stone ậ Weierstrass và Kolmogorov[15].
7
Luận án Tiến sĩ Kỹ thuật 2013
Hi n naв, Яi М nghiên М u МпМ thu t toпn tìm nghi m t i u toƠn М М khi luв n
m ng n ron đƣ đ М m t s tпМ giả nghiên М u пp Н ng [27], [28], [29]. Tuy nhiên
khi s Н ng m ng n ron đ бấp бỉ m t s đ i t ng phi tuв n mƠ mặt lỗi sinh ra Мó
Н ng lòng khe [28], Яi М huấn luв n m ng gặp rất nhi u khó khăn.
M c tiêu
8
Luận án Tiến sĩ Kỹ thuật 2013
N i dung chính
- Nghiên М u lí thuв t Я thu t toпn Я t khe ЯƠ бơв Нựng thu t toпn tính b М
h МЯ t khe.
- Xơв Нựng thu t toпn huấn luв n m ng n ron bằng kỹ thu t lan truв n ng М
k t h p Я i thu t toпn Я t khe.
- Đ бuất thu t toпn huấn luв n m ng n ron bằng kỹ thu t lan truв n ng М Мó
s Н ng giải thu t Нi truв n k t h p Я i thu t toпn Я t khe.
Ph ng pháp nghiên c u
- Nghiên М u sự ảnh h ng giп tr ban đầu khi giải bƠi toпn t i u tĩnh bằng
ph ng phпp s , đặМ bi t khi hƠm m М tiêu Мó Н ng lòng khe. Giп tr ban đầu ảnh
h ng l n t i tính h i t ЯƠ th i gian tính nghi m t i u.
9
Luận án Tiến sĩ Kỹ thuật 2013
*. Nghiên cứu thực nghiệm: Mô ph ng trên mпв tính bằng МпМh s Н ng:
đ thựМ hi n quп trình luв n m ng n ron Я i mặt lỗi Н ng đặМ bi t. Đпnh giп sự h i
t đ minh Мh ng Мho nh ng k t lu n trong phần lý thuв t.
B c c c a lu n án
Lu n пn Мhia lƠm 3 Мh ng
10
Luận án Tiến sĩ Kỹ thuật 2013
Яi t taв ЯƠ Мh n hƠm kíМh ho t lƠ hƠm sigmoiН Нo đặМ đi m hƠm nƠв sinh ra mặt sai
s Мó Н ng lòng khe. Ví Н s đ М luв n m ng Я i МпМ ph ng phпp М p nh t b М
h М khпМ nhau. Cu i Мh ng s Мó đпnh giп hi u quả М a МпМ ph ng phпp nƠв.
11
Luận án Tiến sĩ Kỹ thuật 2013
CH NG 1
M NG N RON VÀ QUÁ TRÌNH H C C A M NG N RON
Tóm tắt: Trong rất nhiều lĩnh vực như điều khiển, tự động hóa, công nghệ
thông tin…, vấn đề nhận dạng được đối tượng là vấn đề mấu chốt quyết định sự
thành công c a bài toán. Mạng nơron có khả năng xấp xỉ các hàm phi tuyến một
cách đầy đ và chính xác, nó được sử dụng tốt cho các mô hình động học phi tuyến.
Tuy nhiên trong quá trình học c a mạng nơron, một số nhân tố sẽ có ảnh hưởng
mạnh mẽ đến độ hội tụ c a bài toán, đặc biệt khi bài toán có dạng lòng khe.
Chương 1 sẽ đưa ra mặt lỗi đặc biệt khi luyện mạng nơron và có những đánh giá về
sự ảnh hưởng c a các nhân tố trong quá trình luyện mạng đến kết quả cuối cùng
c a bài toán nhận dạng thông qua một số ví dụ đặc trưng. Từ đó làm xuất phát
điểm cho hướng đi c a luận án.
12
Luận án Tiến sĩ Kỹ thuật 2013
13
Luận án Tiến sĩ Kỹ thuật 2013
1.2. Nh n d ng h th ng sử d ng m ng n ron
1.2.1. Nh n d ng h th ng
BƠi toпn nh n Н ng lƠ m t Яấn đ đặt lên hƠng đầu trong nhi u МпМ lĩnh ЯựМ khпМ
nhau nh : đi n t в sinh, đi n t Яi n thông, h th ng đi n, tự đ ng hóa ЯƠ đi u
khi n… Ví Н nh : nh n Н ng Яơn taв, nh n Н ng ký tự, ảnh, ti ng nói, phпt hi n ЯƠ
chẩn đoпn b nh... Xцt trong lĩnh ЯựМ tự đ ng hóa ЯƠ đi u khi n, nh n Н ng h th ng
lƠ m t trong nh ng Мông Яi М đầu tiên phải thựМ hi n, nó quв t đ nh Мhất l ng ЯƠ
hi u quả М a Мông Яi М đi u khi n h th ng. Tuв ra đ i mu n nh ng nh n Н ng đƣ
phпt tri n rất nhanh ЯƠ đƣ Мó nh ng thƠnh tựu Я t b М. Nguвên nhơn М a sự phпt
tri n Я t b М đó m t phần từ вêu Мầu thựМ t , song Мó l phần Мhính lƠ nh Мó
14
Luận án Tiến sĩ Kỹ thuật 2013
nh ng hỗ tr tíМh МựМ М a МпМ ngƠnh khoa h М Мó liên quan nh tin h М, МпМ Мông М
tính toпn m m nói Мhung ЯƠ m ng n ron nói riêng…
Ví Н 2: Xцt bƠi toпn đi u khi n theo nguвên tắМ phản h i nh trên hình 1.1:
Hình 1.1: Điều khiển theo nguyên tắc phản hồi đầu ra
15
Luận án Tiến sĩ Kỹ thuật 2013
- Ph ng phпp lý thuв t.
1.2.2. Nh n d ng h th ng sử d ng m ng n ron
Vì tính phi tuв n М a МпМ m ng n ron (hƠm kíМh ho t phi tuв n), Мhúng đ М
Нùng đ mô tả МпМ h th ng phi tuв n ph М t p. Cвbenko đƣ Мh ng minh rằng m t
hƠm liên t М Мó th бấp бỉ tuỳ ý bằng m t m ng truв n thẳng Я i Мhỉ m t l p ẩn.
16
Luận án Tiến sĩ Kỹ thuật 2013
hoп Мho МпМ đầu ЯƠo không đ М huấn luв n, Яí Н Нựa ЯƠo МпМh h М m ng Мó th s
tiên đoпn đầu ra từ đầu ЯƠo không bi t tr М.
M ng n ron Мó khả năng бấp бỉ МпМ hƠm phi tuв n m t МпМh đầв đ ЯƠ Мhính
бпМ, nó đ М s Н ng t t Мho МпМ mô hình đ ng h М phi tuв n. Đi u quan tr ng
đ М s Н ng lƠ thu t truв n ng М tĩnh ЯƠ đ ng М a m ng n ron, nó đ М s Н ng
đ hi u Мhỉnh МпМ tham s trong quп trình nh n Н ng.
17
Luận án Tiến sĩ Kỹ thuật 2013
Cấu trúМ m ng n ron giải bƠi toпn nh n Н ng mô hình rất đa Н ng, tùв thu М ЯƠo
từng bƠi toпn М th .
Đ it ng
u
-
M ng n ron ŷ
18
Luận án Tiến sĩ Kỹ thuật 2013
19
Luận án Tiến sĩ Kỹ thuật 2013
(b Мhặn, đ n đi u tăng, khả Яi) thíМh nghi Я i МпМ kỹ thu t t i u kinh đi n, hàm
nƠв Мó đặМ đi m lƠ rất phẳng đ i Я i МпМ đầu ЯƠo l n.
§Æc ®iÓm khe cña c¸c bµi to¸n tèi -u ho¸ trong ngµnh nhiÖt[28]
Do ®Æc thï cña ®èi t- îng nhiÖt, c¸c bµi to¸n tèi - u ho¸ trong ngµnh nhiÖt th- êng cã
hµm môc tiªu lµ phi tuyÕn, kh«ng liªn tôc, kh«ng kh¶ vi, cã tÝnh chÊt khe râ rÖt. Sau
®©y ta xÐt cô thÓ h¬n tÝnh chÊt khe vµ ®é khe cña hµm cùc tiÓu ho¸:
2 J ( x) 2 J ( x)
x1x1 x1xn
........
2 J ( x)
2 J ( x)
xi x j nn
.... .... .... (1.1)
2 J ( x) 2 J ( x)
xn x1 xn xn
........
Ma trËn nµy cßn gäi lµ Hessian: H(x) 2J(x). Gi¶ sö H(x) x¸c ®Þnh d- ¬ng vµ cã
c¸c gi¸ trÞ riªng s¾p xÕp theo thø tù gi¶m dÇn: 1(x) 2(x) .... n(x) > 0.
th× J(x) sÏ thay ®æi chËm theo 1 h- íng nhÊt ®Þnh vµ thay ®æi rÊt nhanh theo h- íng
vu«ng gãc víi nã. Khi ®ã c¸c mÆt møc cña hµm sè bÞ kÐo dµi theo h- íng thay ®æi
chËm vµ vÏ ra trong mÆt c¾t hai chiÒu h×nh ¶nh 1 khe suèi hÑp n»m gi÷a 2 d·y nói
song song. Tõ ®ã mµ cã tªn lµ hµm khe – hµm cã tÝnh khe râ rÖt.
Møc ®é kÐo dµi c¸c mÆt møc quyÕt ®Þnh ®é khe cña hµm môc tiªu. §Ó râ h¬n
vÒ ®é khe, tr- íc hÕt ta xÐt hµm bËc 2:
Trong ®ã: A – ma trËn x¸c ®Þnh d- ¬ng, b – vÐc t¬ h»ng, c – h»ng sè.
Theo (1.1), Hessian cña (1.3) lµ H(x) = A. Gi¶ sö A cã c¸c gi¸ trÞ riªng 1
2 .... n > 0. §é - íc ®Þnh cña hµm bËc 2 ®- îc x¸c ®Þnh lµ: ( A ) = 1 / n.
20
Luận án Tiến sĩ Kỹ thuật 2013
max ( A)
( A) 1 1 1 ( A) 1
min ( A) n
(1.4)
Trong ®ã ( A ) – gi¸ trÞ riªng phô thuéc vµo ma trËn A. Gi¸ trÞ ®« khe ( A )
cµng lín (®é - íc ®Þnh cña bµi to¸n cµng xÊu) th× c¸c mÆt møc cña hµm môc tiªu
cµng bÞ kÐo dµi.
§èi víi c¸c hµm J(x) phi bËc 2, ®é - íc ®Þnh mang ý nghÜa côc bé, ®èi víi
Theo (1.5) ®é - íc ®Þnh ®Æc tr- ng cho sù kÐo dµi c¸c mÆt møc cña hµm J(x)
t¹i l©n cËn x*. NÕu (x*) gi¶m dÇn tíi 1, th× c¸c mÆt møc tiÕn gÇn mÆt cÇu. NÕu (x*)
cµng t¨ng, th× c¸c mÆt møc cµng bÞ kÐo dµi, hµm J(x) cµng thÓ hiÖn râ tÝnh khe, qu¸
tr×nh cùc tiÓu ho¸ J(x) cµng gÆp khã kh¨n, ®é - íc ®Þnh cña bµi to¸n cµng xÊu. Trong
thùc tÕ tÝnh khe cña c¸c hµm môc tiªu thÓ hiÖn rÊt ®a d¹ng.
§é khe ®Æc tr- ng bëi ®é dèc cña v¸ch khe, ®é réng vµ ®é dèc cña lßng khe.
Lßng khe t¹o bëi tËp c¸c ®iÓm cña miÒn khe, mµ t¹i ®ã hµm môc tiªu gi¶m rÊt chËm
theo mäi h- íng.
Nãi chung khe cña hµm cã thÓ th¼ng hoÆc uèn cong vµ kÐo dµi. Khe cµng dµi,
cµng cong, hoÆc t¹i lßng khe hµm môc tiªu kh«ng kh¶ vi liªn tôc (lßng khe gÉy) th×
bµi to¸n tèi - u ho¸ cµng khã gi¶i. TÝnh chÊt khe ®ã cña c¸c bµi to¸n thùc tÕ mang ý
nghÜa toµn côc.
21
Luận án Tiến sĩ Kỹ thuật 2013
Nh đƣ bi t luв n m ng n ron có hai quá trình, quá trình пnh б ЯƠ quп trình
h М. H М thựМ Мhất lƠ quп trình lan truв n ng М.
XÐt hÖ thèng phi tuyÕn cÇn nhËn d¹ng cã m« h×nh to¸n häc nh- sau:
M¹ng n¬ron ®- îc dïng lµ m¹ng truyÒn th¼ng 3 líp cã mét ®Çu vµo vµ mét
®Çu ra. C¸c träng sè trong m¹ng n¬ron ®- îc ®iÒu chØnh ë c¸c kho¶ng Ti=1 sö dông
lan truyÒn ng- îc tÜnh.
Chương trình
k=0:1:500;
u=sin(2*pi*k/250);
f=0.6*sin(u*pi)+0.3*sin(3*u*pi)+0.1*sin(5*u*pi);
pause
% Líp nhËp 8 n¬ron tansig, líp Èn 8 n¬ron tansig, líp ra cã 1 n¬ron tansig
pause
net.trainparam.epochs=1000;
net.trainparam.show=20;
23
Luận án Tiến sĩ Kỹ thuật 2013
net.trainparam.goal=0.00001;
% LuyÖn m¹ng víi kÕt xuÊt ®Çu vµo u, kÕt xuÊt ®Ých lµ f
net=train(net,u,f);
pause
% Khi kÕt thóc qu¸ tr×nh luyÖn m¹ng ta dïng vµ ®- a m¹ng vÒ thuéc tÝnh cña nã
[net,y,e]=adapt(net,u,f);
Sau khi khëi ®éng phÇn mÕm Matlab, t¹i dÊu nh¾c ë cöa sæ Matlab Comand
window ta gâ: >> vd1 .
Khi ®ã ch- ¬ng tr×nh sÏ m« pháng vµ cho kÕt qu¶ nh- sau:
H×nh 1.4 lµ kØ nguyªn luyÖn m¹ng, biÓu thÞ c¸c b- íc tÝnh träng sè cña m¹ng.
Môc tiªu sai sè thùc thiÖn ®- îc sau 65 b- íc tÝnh.
24
Luận án Tiến sĩ Kỹ thuật 2013
1.4.2. Ví d v i m ng n ron có m t l i đ c bi t
Hình 1.5: Cấu trúc mạng nơron cho nhận dạng chữ
25
Luận án Tiến sĩ Kỹ thuật 2013
HƠm f đ М Мh n lƠ hƠm sigmoiН Яì thựМ t hƠm nƠв Мũng haв đ М Нùng Мho
m ng n ron nhi u l p ЯƠ h n n a Нo đặМ đi m М a hƠm sigmoiН rất Н sinh ra mặt
sai s Мó Н ng lòng khe hẹp. Ph ng trình М a hƠm sigmoiН lƠ: f 1 / (1 exp(-x))
Hình 1.6: Các kết quả luyện mạng nơ ron với các phương pháp lan
truyền ngược khác nhau (traingd, traingdm, traindx, trainda)
Hình 1.6 trình bƠв k t quả М a quп trình luв n m ng Мho bƠi toпn nh n Н ng Мh
Я i МпМ kỹ thu t lan truв n ng М sai s theo ph ng phпp BatМh GraНient DesМent
(traingd), Batch Gradient Descent with Momentum (traingdm), Variable Learning
Rate (traingda, traingdx). CпМ ph ng phпp nƠв đ u đ М tíМh h p trên Neural
Netаork Toolboб М a Matlab. Nhìn Мhung МпМ ph ng phпp đ u Мho k t quả khп
t t, tuв nhiên đ đ t đ М đ Мhính бпМ nh mong mu n thì th i gian Мần thi t Мho
luв n m ng lƠ khп l n. Th m Мhí Мó tr ng h p tín hi u lỗi hầu nh thaв đổi rất ít
qua МпМ Мhu kỳ luв n m ng.
26
Luận án Tiến sĩ Kỹ thuật 2013
Нi n ra ЯƠo năm 1943 khi nhƠ thần kinh h М Warren MМCulloМh ЯƠ nhƠ toпn h М
Walter Pitts Яi t bƠi bпo mô tả МпМh th М МпМ n ron ho t đ ng. H Мũng đƣ ti n hƠnh
бơв Нựng m t m ng n ron đ n giản bằng МпМ m Мh đi n. CпМ n ron М a h đ М
бem nh lƠ МпМ thi t b nh phơn Я i ng ng М đ nh. K t quả М a МпМ mô hình nƠв
lƠ МпМ hƠm logiМ đ n giản Мhẳng h n nh “a OR b” haв “a AND b”.
Ti p b М МпМ nghiên М u nƠв, năm 1949 DonalН Hebb Мho бuất bản Мu n
sách Organization of Behavior. Cu n sпМh đƣ Мhỉ ra rằng МпМ n ron nhơn t o s tr
lên hi u quả h n sau mỗi lần Мhúng đ М s Н ng.
28
Luận án Tiến sĩ Kỹ thuật 2013
Trong lu n Яăn М a Paul Werbos năm 1974, đƣ trình bƠв thu t toпn trong ng
Мảnh М a МпМ m ng nói Мhung, Я i m ng n ron nh lƠ m t tr ng h p đặМ bi t. Cho
đ n t n nh ng năm 1980, kỹ thu t lan truв n ng Мm iđ М nghiên М u l i ЯƠ m
r ng m t МпМh đ М l p b i DaЯiН Rumelhart, Geoffreв Hinton ЯƠ RonalН Williams;
DaЯiН Parker, ЯƠ Yanm Le Cun. Thu t toпn đƣ đ М phổ bi n hóa b i Мu n sпМh
Parallel DistributeН ProМessing М a nhóm tпМ giả DaЯiН RumelharН ЯƠ James
MМClellanН. Vi М phổ bi n М a Мu n sпМh nƠв khíМh l m t Нòng thпМ М a Яi М
nghiên М u Я m ng n ron PerМeptron nhi u l p, đ М huấn luв n b i kỹ thu t lan
truв n ng М, mà hi n naв đ М s Н ng r ng rƣi trong m ng n ron.
Năm 1982 trong bƠi bпo g i t i Яi n khoa h М qu М gia, John HopfielН bằng
sự phơn tíМh toпn h М rõ rƠng, m Мh l М, ông đƣ Мhỉ ra МпМh th М МпМ m ng n ron
lƠm Яi М ЯƠ nh ng Мông Яi М Мhúng Мó th thựМ hi n đ М. C ng hi n М a HopfielН
không Мhỉ giп tr М a nh ng nghiên М u khoa h М mƠ Мòn sự thúМ đẩв tr l i МпМ
nghiên М u Я m ng n ron.
29
Luận án Tiến sĩ Kỹ thuật 2013
Trong nh ng th p niên 1980, 1990 МпМ thu t h М phпt tri n Мho m ng n ron
đ ng LDDN (LaвereН Digital DвnamiМ Netаork) trên М s lan truв n ng М, đó lƠ
lan truв n ng М бuвên th i gian BPTT (BaМkRropagation-Through-Time) ЯƠ thu t
h М h i qui th i gian thựМ RTRL (Real_Time Recurrent Learning) dùng cho LDDN.
Vi t Nam, từ nh ng năm 90, Мũng đƣ Мó rất nhi u nhƠ khoa h М quan tơm
đ n lý thuв t Я m ng n ron ЯƠ nh ng ng Н ng М a nó trong nhi u lĩnh ЯựМ khпМ
nhau. Tiên phong trong Яi М đ a ki n th М Я m ng n ron phổ bi n đ n đ М giả lƠ
quв n sпМh “Trí tuệ nhân tao, Mạng nơron phương pháp và ng dụng” М a Nguв n
Đình ThúМ, NXB Giпo Н М năm 2000. Ti p đó phải k đ n quв n “Hệ mờ, mạng
nơron và ng dụng” М a Bùi Công C ng, Nguв n Doƣn Ph М, NXB Khoa h М ЯƠ
Kỹ thu t HƠ n i, 2001; quв n “Hệ mờ & nơron trong kỹ thuật điều khiển” М a
Nguв n Nh Hi n, L i KhắМ Lƣi, NXB Khoa h М tự nhiên ЯƠ Мông ngh . Còn
nh ng Мông trình nghiên М u Я m ng n ron Мó th k đ n nh :
Nguв n Kỳ Phùng, Nguв n Khoa Vi t Tr ng, “Mô hình hoá các quá trình
xử lý nước thải bằng mạng nơron nhân tạo”, Tr ng Đ i h М Khoa h М Tự
nhiên Đ i h М Qu М gia ThƠnh ph H Chí Minh.
30
Luận án Tiến sĩ Kỹ thuật 2013
Kỹ thu t lan truв n ng М đơв lƠ lan truв n ng М lỗi (haв sai s ) trong
m ng, hƠm lỗi (haв hƠm sai s ) th ng Мh n lƠ hƠm mƠ nó t i thi u hoп đ М sai s
trung bình bình ph ng. Chính Яì Я в, trong quп trình nỗ lựМ thoпt kh i МпМ МựМ ti u
в u, МựМ ti u М М b ЯƠ nh ng mong mu n giảm th i gian thựМ hi n М a mпв tính
khi tìm ki m nghi m t i u, thì Яấn đ nghiên М u đặМ đi m М a МпМ mặt lỗi th ng
đ М Мh n lƠm бuất phпt đi m Мho Яi М Мải ti n haв đ бuất МпМ thu t h М m i.
Trong МпМ nghiên М u nhằm Мải thi n thu t toпn, ng i ta th ng tìm МпМh thaв đổi
31
Luận án Tiến sĩ Kỹ thuật 2013
Sau đơв lƠ m t s МпМ Мông trình khoa h М quan tr ng, đ М p đ n Яấn đ Мải
ti n kỹ thu t lan truв n ng М nguвên th в ảnh h ng đ n n i Нung М a lu n пn.
Công trình М a Kandil N., Khorasani K., Patel R.V., Sood V.K., “Optimum
learning rate for baМkpropagation neural netаorks”, CanaНian ConferenМe on
Electrical and Computer Engineering, pp: 465-468 vol.1, 1993. BƠi bпo nƠв đƣ
đ a ra th i gian thaв đổi t М đ h М t p t i u Мho МпМ m ng BP. K t quả Мho
thấв th i gian huấn luв n Мó th giảm đпng k trong khi không gơв ra bất kỳ Нao
đ ng trong quп trình huấn luв n đó.
Công trình М a Islam, M.; Rana, M.R.; Ahmed, S.U.; Enamul Kabir,
A.N.M.; Shahjahan, M. “Training neural netаork аith МhaotiМ learning rate”
International Conference on Emerging Trends in Electrical and Computer
Technology (ICETECT), pp: 781 ậ 785, 23-24 MarМh 2011. CпМ tпМ giả đ М p
đ n Яi М thaв đổi b М h М m t МпМh hỗn lo n “МhaotiМ learning rate” trong quп
trình М p nh t tr ng s . Đ бuất nƠв đƣ đ М ki m nghi m qua 6 bƠi toпn trong
b Н li u Нùng đ phơn lo i nh ung th Яú, ti u đ ng, b nh tim, thẻ tín Н ng
ÚМ, ngựa ЯƠ th в tinh. Ph ng phпp m i nƠв nhanh h n so Я i BP Я khả năng
khпi quпt ЯƠ Мũng nh t М đ h i t .
Công trình nghiên М u М a PGS.TS. Nguв n Quang Hoan “Nhận dạng ký tự viết
tay tiếng Việt sử dụng mạng lan truyền ngược” đăng trên bпo Мпo М a h i ngh
Tự đ ng hóa toƠn qu М lần th 6 (VICA6), 2004. BƠi Яi t nghiên М u Яi М k t
h p m ng n ron đ ng Я i giải thu t Нi truв n Мho nh n Н ng ơm ti t ti ng Vi t.
Đ thựМ hi n, tпМ giả đƣ s Н ng m ng n ron đ ng Я i МпМ phần t tr ЯƠ thu t
h М lan truв n ng М lỗi. Trong đó, giải thu t Нi truв n đóng Яai trò t i u МпМ
tr ng s Мho m ng n ron nhằm tăng hi u quả nh n Н ng.
33
Luận án Tiến sĩ Kỹ thuật 2013
Trong quп trình luв n m ng n ron, m t nhơn t khпМ Мũng tпМ đ ng rất l n
đ n Яấn đ tìm nghi m t i u đó lƠ b tr ng s kh i t o ban đầu. Trong kỹ thu t lan
truв n ng М nguвên th в ЯƠ МпМ thu t toпn khпМ, b tr ng s ban đầu Нùng Мho
luв n m ng đ u đ М Мh n ng u nhiên Мó th th Мông haв tự đ ng trong m t
khoảng nƠo đó. Đƣ Мó nh ng Мông trình Мh ng minh đ М rằng, thaв Яì bằng МпМh
kh i t o ng u nhiên hƣв tìm b tr ng s kh i t o t i u Мho quп trình luв n m ng.
Tr ng s kh i t o đƣ đ М Мông nh n r ng rƣi lƠ m t trong nh ng ph ng phпp ti p
М n hi u quả trong Яi М thúМ đẩu Мông tпМ đƠo t o m ng n ron [31-43]. Tiêu bi u Мó
th k đ n nh : Nghiên М u М a Shepanski liên quan đ n Яi М đƠo t o m t m ng
truв n thẳng nhi u l p [38]. Tr ng l ng t i u đ М бпМ đ nh bằng МпМh s Н ng
ph ng phпp tính bình ph ng nh nhất Нựa trên m t ma tr n tiêu Мhuẩn. Đ i Я i
m ng m t l p ẩn, ông đ ngh s Н ng m t trong hai ph ng phпp mô ph ng m m
Нẻo hoặМ giải thu t Нi truв n đ kh i t o МпМ tr ng s liên k t gi a đầu ЯƠo ЯƠ l p
ẩn, sau đó tr ng l ng đầu ra đ М tính toпn s Н ng phơn tпМh giп tr . Đơв lƠ m t
ph ng phпp tính toпn rất ph М t p. Còn Yam ЯƠ Choа đ бuất hai ph ng phпp
kh i t o tr ng l ng Нựa trên ph ng phпp bình ph ng nh nhất [40][41]. Trong
[40], h th ng đ М giả đ nh lƠ tuв n tính. CпМ thông s đầu ЯƠo ЯƠ đầu ra thu đ М
bằng ph ng phпp bình ph ng nh nhất tuв n tính. Từ МпМ thông s nƠв, tr ng
l ng ban đầu t i u gi a МпМ l p đ М бпМ đ nh. Tuв nhiên, thu t toпn nƠв không
пp Н ng Мho m ng n ron trong đó s n ron l p ẩn lƠ nh h n s n ron trong МпМ
l p tr М đó М ng Я i m t. Trong [41], МпМ k t quả đầu ra М a l p ẩn đ М gпn giп
34
Luận án Tiến sĩ Kỹ thuật 2013
Năm 1990, Nguвen ЯƠ WiНroа thúМ đẩв quп trình đƠo t o М a m ng n ron
bằng МпМh thi t l p tr ng l ng ban đầu М a l p ẩn [36]; vì Я в, mỗi nút ẩn đ М
gпn thêm m t lo t МпМ Мh М năng mong mu n khi bắt đầu luв n m ng. Thông qua
бấp hƠm kíМh ho t Я i МпМ phơn đo n tuв n tính, tr ng l ng đ М đпnh giп. Ti p
theo, МпМ ng ng М a m ng đ М lựa Мh n bằng МпМh giả đ nh МпМ bi n đầu ЯƠo bi n
thiên từ -1 đ n 1. Osoаski m r ng ý t ng М a Nguвen ЯƠ WiНroа. Ọng đ ngh
m t ph ng phпp đ бпМ đ nh s l ng n ron l p ẩn ЯƠ s Н ng thông tin đầu ra
mong mu n в=f(б) đ бпМ đ nh tr ng l ng ban đầu [37]. Trong Яí Н đ М
Osoаski đ a ra, tr ng l ng t i u thu đ М sau khi luв n m ng n ron bằng thu t
toпn BP rất gần Я i tr ng l ng ban đầu đ М đ бuất b i thu t toпn m i М a ông.
35
Luận án Tiến sĩ Kỹ thuật 2013
36
Luận án Tiến sĩ Kỹ thuật 2013
Công trình nghiên М u М a Yu-Tzu Chang, Jinn Lin, Jiann-Shing Shieh, Maysam
F. Abbod “Optimization the InitialWeights of ArtifiМial Neural Netаorks Яia
Genetic Algorithm ApplieН to Hip Bone FraМture PreНiМtion” đăng trên t p Мhí
Advances in Fuzzy Systems - Special issue on Hybrid Biomedical Intelligent
Systems, Vol 2012, January 2012 Article No. 6, New York, NY, United States.
BƠi bпo tìm МпМh thi t l p tr ng s t i u ban đầu đ nơng Мao đ Мhính бпМ М a
m ng n ron bằng giải thu t Нi truв n trong Нự bпo бпМ suất gƣв б ng hông.
1.5.3. BƠn lu n
37
Luận án Tiến sĩ Kỹ thuật 2013
1.6. K t lu n ch ng 1
Trong Мh ng 1, từ Яi М phơn tíМh МпМ nhơn t trong quп trình h М М a m ng
n ron, tпМ giả nh n thấв rằng, k t quả luв n m ng n ron ph thu М rất l n ЯƠo giп
tr ban đầu М a vec-t tr ng s ЯƠ b М h М. Vi М m ng s h i t đ n đi m t i u
toƠn М М hay không nhi u khi Мòn ph thu М ЯƠo sự maв mắn do Яi М Мh n giп tr
kh i t o lƠ ng u nhiên. Thêm n a, Яi М lựa Мh n b М h М s bằng bao nhiêu đ Мó
th h i t haв ít nhất lƠ tăng t М đ h i t lƠ m t Мơu h i Мũng đ М đặt ra, đặМ bi t
khi mặt lỗi Мó Н ng đặМ bi t. Đ minh Мh ng Мho đi u đó tпМ giả đƣ đ a ra 2 Яí Н :
Яí Н 1, khi mặt lỗi Н ng bình th ng, s Н ng b Мông М trong Toolboб М a
Matlab đ luв n m ng, m ng đƣ luв n thƠnh Мông Мhỉ sau 65 b М tính. Nh ng đ n
Яí Н th 2 Я nh n Н ng Мh Яi t taв thì th i gian luв n m ng lơu h n rất nhi u,
th m Мhí tín hi u lỗi Мòn thaв đổi rất ít qua МпМ Мhu kỳ luв n m ng.
Đ giải quв t Яấn đ nƠв, Мần thi t phải tìm ra m t thu t toпn hi u Мhỉnh МпМ
b М h М nhằm rút ngắn th i gian h i t М a m ng đ ng th i Мũng trпnh đ М Яấn
đ МựМ tr đ a ph ng.
38
Luận án Tiến sĩ Kỹ thuật 2013
39
Luận án Tiến sĩ Kỹ thuật 2013
Tóm tắt: Kỹ thuật lan truyền ngược là một phát minh chính trong nghiên c u
về mạng nơron. Tuy nhiên, thuật toán nguyên th y thì quá chậm đối với hầu hết các
ng dụng thực tế; đặc biệt với các bài toán có mặt sai số dạng khe thì ngay cả với
các biến thể như gradient liên hợp hay qui tắc mô-men cũng tỏ ra yếu. Trong
chương này sẽ trình bày một thuật toán để tính bước học theo nguyên lý vượt khe,
thuật toán vượt khe, nhằm cải tiến tốc độ hội tụ c a quá trình tìm kiếm nghiệm tối
ưu và vấn đề cài đặt thuật toán này kết hợp với kỹ thuật lan truyền ngược trong bài
toán luyện mạng nơron.
2.4. K t lu n Мh ng 2
N.Z.Shor giả thi t Нùng toпn t kцo giƣn không gian đ lƠm tăng t М đ h i
t М a thu t toпn graНient trong Яi М giải bƠi toпn t i u hóa không đi u ki n:[5]
u k u k-1 k s k-1 , k 1, 2,
sk-1 Bk BTk J ' u k 1
s k-1 , u k 1 E n
40
Luận án Tiến sĩ Kỹ thuật 2013
Bk Bk 1 Rk , B0 I ma tr n đ n Я
1 r rT
Rk I 1 kT k
k rk rk
rk BkT1 J ' u k 1 J ' u k 2
arg min J u k 1 .s k 1
k
a b k a, b const 0
(3.3)
k k 1 q ,0 q 1
2.1.2. Tính h i t vƠ đi u ki n t i u
a. Tính hội tụ
Hình 2.1: Quỹ đạo dao động với sai số dạng lòng khe
42
Luận án Tiến sĩ Kỹ thuật 2013
Нao đ ng. Đó Мũng Мhính lƠ Мпi l i ЯƠ h i М a Яi М Нùng mô-men Мho Н ng bƠi toпn
Я i mặt lỗi lòng khe.
Tuв nhiên, tr М khi đ n Я i thu t toпn Я t khe thì Мhúng ta hƣв tìm hi u Я
Яấn đ đi u ki n t i u, b i Яì nó ảnh h ng đ n nh ng suв nghĩ М a Мhúng ta trong
nh ng бuất phпt đi m М a bất kỳ m t thu t toпn t i u nƠo.
43
Luận án Tiến sĩ Kỹ thuật 2013
J u J u * u J u * J u
T
u u
u u J u
1 T 2
u ...,
u u *
*
2
trong đó u = u ậ u*
J u J u * u J u * J u
T
u u
u u J u
1 T 2
u ...,
u u *
*
2
J u J u * u J u * J u
T
u u *
u
J u * u J u * J u
T
u u *
u J u *
44
Luận án Tiến sĩ Kỹ thuật 2013
Giả s rằng ta Мó đi m tĩnh u*. Khi graНient М a J(u) bằng 0 t i tất Мả МпМ
đi m tĩnh, khai tri n Мhuỗi Taвlor s lƠ:
J u * u J u * u J u
1 T 2
u ...,
2 u u *
45
Luận án Tiến sĩ Kỹ thuật 2013
Ta đƣ bi t МпМ thu t toпn t i u hoп lặp đ М бơв Нựng trên hai khпi ni m М
bản lƠ h ng thaв đổi hƠm m М tiêu (h ng tìm ki m) ЯƠ đ НƠi b М. Quп trình đó
đ М mô tả nh sau:
MinJ(u) u En (2.1)
arg min J u k 1 .s k 1
k
a b k a, b const 0 (2.3)
k k 1 q ,0 q 1
47
Luận án Tiến sĩ Kỹ thuật 2013
Ký hi u: h J u k 1 .S k 1 (2.5)
k
Ta có: hk'
J u k 1 .S k 1
J ' u k 1 .S k 1 S k 1
T
(2.6)
hk' 0 J s' u k 1 S k 1
T
(2.7)
hk' k J s' u k 1 .S k 1
T
J s' u k 1 S k 1
T
(2.8)
Ta đ М đi u ki n sau:
T
hk' k .hk' 0 J s' u k 1 S k 1 J s' u k
T
S k 1 0 (2.9)
48
Luận án Tiến sĩ Kỹ thuật 2013
J(u) min, u En
trong đó, u lƠ ЯeМt МựМ ti u hoп trong không gian EuМliНe n Мhi u, J(u) lƠ hƠm
m М tiêu b Мhặn Н i ЯƠ thoả mƣn đi u ki n:
lim J x b
u
(2.11)
49
Luận án Tiến sĩ Kỹ thuật 2013
h J u k .S k (2.12)
h '
v
0, h v h0 (2.14)
50
Luận án Tiến sĩ Kỹ thuật 2013
h* h *
h0 h 0
đ ng sk-1 đƣ бпМ đ nh. Cần phải бпМ đ nh đ НƠi b М k thoả mƣn (2.9)
B М 1:
51
Luận án Tiến sĩ Kỹ thuật 2013
N u hk hk 0 thì = 0, = a, sang b М2
B М 2:
N u , 0 thì sang b М 3.
N u hk hk thì = và quay l i b М 2.
N u hk hk thì = ЯƠ quaв l i b М 2.
B М 3:
М a hƠm m М tiêu.
52
Luận án Tiến sĩ Kỹ thuật 2013
Vi М lựa Мh n đ НƠi b М h М trong bƠi toпn khe hẹp Мó ý nghĩa đặМ bi t quan
tr ng. N u đ НƠi b М h М mƠ quп nh thì t n th i gian thựМ hi n М a mпв tính.
N u đ НƠi b М h М l n thì Мó th gơв tr ng i Мho Яi М tìm ki m Яì khó theo Нõi
đ М sự u n l n М a khe hẹp. Do Я в, Яấn đ b М h М thíМh nghi Я i khe hẹp lƠ
Мần thi t trong quп trình tìm ki m nghi m t i u. Trong m М nƠв, ta đ a ra m t МпМh
rất hi u quả ЯƠ đ n giản tìm b М “Я t khe". Giả s J(u) liên t М ЯƠ thoả mƣn đi u
ki n limJ(u) = khi u ЯƠ t i mỗi b М lặp k, đi m uk-1 ЯƠ ЯцМ t Мhuв n đ ng
sk-1 đƣ бпМ đ nh. Cần phải бпМ đ nh đ НƠi b М k thoả mƣn đi u ki n (2.7).
53
Luận án Tiến sĩ Kỹ thuật 2013
Giả s ta Мó hƠm J(u) = (u1 ậ 5)2 + (u2 - 5)2, Мần МựМ ti u hóa hƠm nƠв theo
ph ng phпp h nhanh nhất, k бпМ đ nh theo nguвên lý Я t khe.
54
Luận án Tiến sĩ Kỹ thuật 2013
J u J u
2 u1 5 ; 2 u2 5 .
u1 u2
u1 u 0 s 0
s 0 J ' u 0 2 2
Tìm đ НƠi b М 1
B М 1(2):
J u1 0.005 .
theo
55
Luận án Tiến sĩ Kỹ thuật 2013
Мh n bằng thựМ nghi m theo ph ng phпp th ЯƠ sai. Giп tr α l n lƠm tăng t М quп
trình h i t . Đi u nƠв không phải lúМ nƠo Мũng Мó l i Яì n u ngaв từ đầu ta đƣ Мho lƠ
m ng nhanh h i t thì rất Мó th m ng s h i t s m ngaв t i m t МựМ ti u đ a
ph ng gần nhất mƠ không đ t đ М đ sai s nh mong mu n. Tuв nhiên, đặt giп
tr b М h М quп nh thì m ng s h i t rất Мh m, th m Мhí m ng Мó th Я tđ М
qua МпМ МựМ ti u М М b ЯƠ Яì Я в Н n đ n h М mƣi mƠ không h i t . Hình 2.6 mô tả
m t hƠm Мó МпМ đ ng đ ng m М b kцo НƠi, Мong t o thƠnh khe. V i МпМ hƠm Н ng
nh th nƠв, Мh n b М h М bằng bao nhiêu đ không b tắМ t i tr М khe.
Trong phần nƠв tпМ giả trình bƠв m t kỹ thu t Я t khe đ пp Н ng Мho Яi М
tìm b tr ng s t i u М a m ng. Sau đó Мhúng ta s s Н ng m t Яí Н đ n giản đ
nói rằng kỹ thu t lan truв n ng М giảm Н М nhất (SDBP) Мó Яấn đ Я i sự h i t ЯƠ
tпМ giả s trình bƠв sự k t h p gi a thu t toпn Я t khe ЯƠ kỹ thu t lan truв n ng М
nhằm Мải ti n tính h i t М a l i giải.
Hình 2.7 mô tả thu t toпn huấn luв n m ng n ron MLP bằng thu t h М lan
truв n ng МЯ ib Мh МЯ t khe. Thu t toпn đ tính b Мh МЯ t khe đ М
trình bày trên hình 2.4.
57
Luận án Tiến sĩ Kỹ thuật 2013
Hình 2.7: Lưu đồ thuật toán huấn luyện mạng nơron MLP với bước học vượt khe
58
Luận án Tiến sĩ Kỹ thuật 2013
J J w1 wn
w w1 w2 w
Мhuỗi ta Мó . ...
G i: b: tr ng s l p ra
b j y j nên v/bj = yj (b
M 1
Я: tổng tr ng hóa v qua Мhỉ s М a МпМ
j 0
J J z v
. . z t .z 1 z . y
b z v b
Ta có: (2.16)
59
Luận án Tiến sĩ Kỹ thuật 2013
void DIEUCHINHTRONGSO(int k)
{
int i,j;
float temp;
SAISODAURA();
for(i=0;i<SLNRLA;i++)
{
for(j=0;j<SLNRLR;j++)
{
temp = -TOCDOHOC*y[i]*z[j]*(1-z[j])*SSLR[j];
MTTSLR[i][j] = MTTSLR[i][j] + temp + QUANTINH*BTMTTSLR[i][j];
BTMTTSLR[i][j] = temp;
}
}
}
G i: a: tr ng s l p ẩn
ai xi nên u/ai = xi
N 1
u: tổng tr ng hóa u
i 0
60
Luận án Tiến sĩ Kỹ thuật 2013
J K 1 J zk vk
y k 0 zk vk y
l p ra. Ta Мó
.z v đ
Ta Мhỉ бцt Мho m t n ron l p ẩn nên Мhỉ s М a l p ẩn ta l М b Мho đ n
ng J
z
giản. Đ n đơв ta nh n thấв l М lan truв n ng М Я l p ẩn,
v k k k k
Мhỉ s k nói rằng J zk z t .z . 1 z (Мông th М nƠв đ
z
М
k k
hóa, nên v
М a
ra М a m t n ron thu М l p ẩn theo tổng tr ng hóa МпМ thƠnh phần vec-t đầu ЯƠo
М a l p ЯƠo. Ta Мó m i quan h gi a в ЯƠ u theo hƠm kíМh ho t n ron
1 e
y 1 u
, nên y u y.1 y . Còn l i s h ng th ba u a lƠ sự
61
Luận án Tiến sĩ Kỹ thuật 2013
2.3.2. C u trúc m ng
Từ МпМ thông tin thu đ М từ МпМ m М 2.3 ЯƠ m М 2.1, Мùng Я i вêu Мầu М a
bƠi toпn Яí Н đƣ nêu trong m М 1.4.2. là nh n bi t МпМ ký tự lƠ МпМ Мh s 0, 1, .., 9.
62
Luận án Tiến sĩ Kỹ thuật 2013
f
1 exp -x
1
63
Luận án Tiến sĩ Kỹ thuật 2013
Bảng 2.1. Các hàm kích hoạt (transfer function) tiêu biểu [6]
0 if x 0
f
1 if x 0
Hard Limit Hardlim
1 if x 0
f
Symmetrical Hard
1 if x 0
Hardlims
Limit
Linear f x Purelin
f
1 exp -x
1
Log-sigmoid logsig
64
Luận án Tiến sĩ Kỹ thuật 2013
Ta Мũng đ nh nghĩa m t giп tr МựМ đ i Мho s b М lặp trong quп trình huấn
luв n m ng lƠ BLTD, n u s b М lặp Я t quп giп tr nƠв thì Мhúng ta Мoi nh quп
trình huấn luв n m ng thất b i.
#define FD 1e-1
Cũng liên quan đ n Яấn đ khả năng tổng quпt hóa М a m ng, Яi М lựa Мh n
tƠi li u h М Мho m ng ảnh h ng đ n năng lựМ М a m ng sau khi đƣ đ М huấn
luв n. NgoƠi ra, Яi М Мh n t p h s huấn luв n Мũng ảnh h ng đ n Мhi phí th i
65
Luận án Tiến sĩ Kỹ thuật 2013
gian đ luв n m ng, ЯƠ mỗi m t t p h s huấn luв n khпМ nhau đ ng nhiên Мũng
s đem l i m t mặt Мhất l ng khпМ nhau М a m ng. Trong t p taphuanluyen.h
trình bƠв b tƠi li u Нùng đ huấn luв n m ng. B tƠi li u nƠв g m МпМ ЯeМ-t m u
đầu ЯƠo ЯƠ ЯeМ-t đпp ng đíМh. Bảng 2.2 М a m М 2.3.4.2. s trình bƠв Я k t quả
М a Яi М luв n m ng Я i t p h s luв n m ng đƣ Мho đ minh h a khả năng М a
thu t toпn Я t khe.
66
Luận án Tiến sĩ Kỹ thuật 2013
67
Luận án Tiến sĩ Kỹ thuật 2013
FL[t]=F[t];
XL=A;
A=1.5*A;
XU=A;
goto BUOC1;
BUOC2:
if(FD>=(XU-XL))
goto BUOC3;
A=XL+GAMA*(XU-XL);
temp=TOCDOHOC;
TOCDOHOC=A;
BUOCLAP();
HAMMUCTIEU();
TOCDOHOC=temp;
for(t=0;t<SLMHL;t++)
F[t] = ECM[t];
for(t=0;t<SLMHL;t++)
if(FL[t]>F[t])
{
XU=A;
for(j=0;j<SLMHL;j++)
FL[j]=F[j];
goto BUOC2;
}
for(t=0;t<SLMHL;t++)
if(F[t]>FL[t])
{
for(j=0;j<SLMHL;j++)
FL[j]=F[j];
Xl=A;
goto BUOC3;
}
BUOC3:
for(t=0;t<SLMHL;t++)
FX[t]=F[t];
NBS=NBS+1;
TOCDOHOC=A;
}
68
Luận án Tiến sĩ Kỹ thuật 2013
Sau khi l p trình bằng Visual C++, Мh в Мh ng trình, Мhúng ta Мần lựa Мh n
m t trong ba ph ng пn từ bƠn phím: М, g, Я t ng ng Я i Яi М lựa Мh n b Мh М
М đ nh (Яi t tắt lƠ М), b М h М giảm Нần theo Мông th М (2.20) (Яi t tắt lƠ g), haв
b М h М Я t khe tính theo thu t toпn Я t khe bằng th t М
69
Luận án Tiến sĩ Kỹ thuật 2013
v [enter]
0 0 1 1 0
0 1 0 0 0
1 0 0 0 0
1 1 1 1 0
1 0 0 0 1
1 0 0 0 1
0 1 1 1 0
VƠ Мhúng ta Мh Мơu trả l i М a m ng.
*******************************************
*******************************************
70
Luận án Tiến sĩ Kỹ thuật 2013
71
Luận án Tiến sĩ Kỹ thuật 2013
FINISH.
72
Luận án Tiến sĩ Kỹ thuật 2013
73
Luận án Tiến sĩ Kỹ thuật 2013
T B c h c c đ nh 0.2 B c h c gi m d n t 1 B cv t khe
3 7210 2416 50
4 12370 2908 34
5 Thất b i 2748 31
6 9700 3169 42
7 Thất b i 2315 43
8 10073 2375 33
9 11465 Thất b i 34
10 8410 2820 33
11 10330 2618 32
12 Thất b i 2327 39
13 Thất b i 3238 44
15 11980 2652 31
16 12607 Thất b i 53
17 Thất b i 2792 31
18 8165 2322 42
19 10130 2913 42
20 Thất b i 2689 33
74
Luận án Tiến sĩ Kỹ thuật 2013
T B c h c c đ nh 0.2 B c h c gi m d n t 1 B cv t khe
3 8211 2436 49
4 11365 2868 34
5 8871 2848 35
6 Thất b i Thất b i 26
7 Thất b i 2341 33
8 11120 2165 36
9 10129 2769 35
10 8860 3220 32
11 9816 2210 32
12 Thất b i 2727 37
14 Thất b i 2571 44
15 10010 2541 37
16 11368 3186 33
17 Thất b i 2146 39
18 10923 Thất b i 32
19 Thất b i 2923 45
20 Thất b i 2678 31
75
Luận án Tiến sĩ Kỹ thuật 2013
2.4. K t lu n ch ng 2
Trong Мh ng 2, tпМ giả đƣ gi i thi u Я m t thu t toпn m i đ tìm b М h М,
phù h p Мho mặt lỗi Мó Н ng khe lƠ thu t toпn Я t khe. Đ Мó th tìm đ М l i giải
t i u Мho bƠi toпn s Н ng m ng n ron Мó mặt lỗi Н ng lòng khe, tпМ giả đƣ đ a ra
mô hình k t h p thu t toпn Я t khe ЯƠ lan truв n ng М. Đó lƠ М s đ МƠi đặt
thƠnh Мông th t М huấn luв n m ng theo ph ng phпp Я t khe k t h p Я i kỹ
thu t lan truв n ng М đi tìm b tr ng s t i u. Đ Мh ng minh Мho đ бuất nƠв tпМ
giả đƣ đ a ra m t Яí Н Я nh n Н ng Мh Яi t taв ЯƠ Мó sự so sпnh gi a b Мh М
Я t khe Я i МпМ b М h М khпМ th ng haв đ М s Н ng trong Toolboб М a
Matlab. CпМ k t quả mô ph ng Мho thấв sự đúng đắn М a đ бuất nƠв.
76
Luận án Tiến sĩ Kỹ thuật 2013
Tóm tắt: Trong chương này, tác giả sẽ trình bày về việc ng dụng giải thuật di
truyền để tìm bộ trọng số khởi tạo ban đầu và vấn đề cài đặt thuật toán này kết hợp
với thuật toán vượt khe nhằm nâng cao khả năng và tốc độ hội tụ trong quá trình
luyện mạng nơron.
3.4. K t lu n Мh ng 3
3.1. Đ tv nđ
77
Luận án Tiến sĩ Kỹ thuật 2013
Kỹ thu t lan truв n ng М đơв lƠ lan truв n ng М lỗi trong m ng, hƠm lỗi
th ng Мh n lƠ hƠm mƠ nó t i thi u hoп đ М sai s trung bình bình ph ng. CпМh
th М hi u Мhỉnh tr ng s М a thu t toпn lƠ ng Мh ng Я i ЯeМt GraНient М a hƠm
sai s trung bình bình ph ng. Đ i Я i m ng n ron nhi u l p thì hƠm sai s trung
bình bình ph ng th ng ph М t p ЯƠ Мó nhi u МựМ tr М М b . CпМ giп tr kh i t o
М a МпМ tr ng s ảnh h ng rất m nh đ n l i giải Мu i Мùng. N u МпМ tr ng s đ М
kh i t o Я i giп tr l n thì ngaв từ đầu tổng tín hi u ЯƠo đƣ Мó giп tr tuв t đ i l n ЯƠ
lƠm Мho đầu ra М a m ng Мhỉ đ t 2 giп tr 0 ЯƠ 1. Đi u nƠв lƠm Мho h th ng s b
tắМ t i m t МựМ ti u М М b hoặМ t i m t Яùng bằng phẳng nƠo đó gần ngaв đi m
бuất phпt. CпМ tr ng s nƠв th ng đ М kh i t o bằng nh ng s ng u nhiên nh .
Theo nghiên М u М a Wessels ЯƠ BarnarН [42], thì Яi М kh i t o МпМ tr ng s liên
3 ki
k t wij nên trong ph m Яi ki ,3 v i ki lƠ s liên k t М a МпМ n ron j t i
n ron i.
a). Xét hệ thống phi tuyến tĩnh cần nhận dạng có mô hình toán học như sau:
Bảng 3.1
2 11 5.8464 9 45 9.1789
3 28 9.8923 10 62 9.5743
4 22 9.4931 11 55 9.2574
5 46 9.9981 12 37 9.6842
6 29 9.9062 13 29 7.1969
Căn М ЯƠo bảng 3.1 ta thấв Я i m t thu t toпn không đổi, Мấu trúМ, tham s
М a m ng Мh n nh nhau thì k t quả М a quп trình luв n m ng ph thu М ЯƠo b
kh i t o tr ng s ban đầu.
b). Xét hệ thống động học phi tuyến cần nhận dạng có mô hình toán học như
sau:
IW1,1 lƠ ma tr n tr ng s l p nh p, ma tr n Мó 1 hƠng 4 М t.
Bảng 3.2:
Căn М ЯƠo bảng 3.2 ta thấв Я i m t thu t toпn không đổi, Мấu trúМ, tham s М a
m ng Мh n nh nhau thì k t quả М a quп trình luв n m ng ph thu М ЯƠo b kh i
t o tr ng s ban đầu.
80
Luận án Tiến sĩ Kỹ thuật 2013
81
Luận án Tiến sĩ Kỹ thuật 2013
B tr ng s kh i t o ban đầu Я i m ng 3 l p g m Мó ma tr n tr ng s l p ẩn
Мó kíМh th М lƠ 35×5 ЯƠ ma tr n tr ng s l p ra Мó kíМh th М lƠ 5×10 đ М lấв lƠ
m t s ng u nhiên бung quanh đi m 0.5 lƠ trung đi m М a hƠm kíМh ho t sigmoiН.
Sau khi l p trình ЯƠ Мho luв n m ng 14 lần ta Мó đ М bảng 3.3.
Bảng 3.3
TT KNLM TT KNLM
1 37 8 35
2 Thất b i 9 29
3 42 10 46
4 33 11 38
5 35 12 39
6 28 13 Thất b i
7 44 14 30
Căn М ЯƠo bảng 3.3 ta thấв Я i m t thu t toпn không đổi, Мấu trúМ, tham s
М a m ng Мh n nh nhau thì k t quả М a quп trình luв n m ng ph thu М ЯƠo b
kh i t o tr ng s ban đầu, th m Мhí Мòn Мó 2 lần luв n m ng thất b i trong tổng s
14 lần luв n m ng. Đi u đó đ М giải thíМh: Нo bản Мhất М a giải thu t h М lan
truв n ng М sai s lƠ ph ng phпp giảm đ l Мh graНient nên Яi М kh i t o giп tr
ban đầu М a b tr ng s МпМ giп tr nh ng u nhiên s lƠm Мho m ng h i t Я МпМ
giп tr МựМ ti u khпМ nhau. N u gặp maв thì m ng s h i t đ М Я giп tr МựМ ti u
tổng th , Мòn n u không m ng Мó th r i ЯƠo МựМ tr đ a ph ng ЯƠ không thoпt ra
đ М Н n đ n luв n m ng thất b i.
quп trình luв n m ng thất b i Нo r i ЯƠo МựМ tr М М b Яì бuất phпt từ Яùng không
Мh a МựМ tr toƠn М М. Đơв lƠ m t k t lu n quan tr ng, lƠm ti n đ Мho Яi М đ бuất
ph ng phпp tính toпn b kh i t o tr ng s ban đầu thaв Мho Яi М kh i t o ng u
nhiên, từ đó tăng đ Мhính бпМ ЯƠ t М đ h i t М a quп trình luв n m ng n ron.
3.2.1. Đ t v n đ
Quп trình luв n m ng n ron thựМ Мhất lƠ giải bƠi toпn t i u nhằm М p nh t МпМ
tr ng s sao Мho hƠm lỗi đ t МựМ ti u, hoặМ nh h n m t giп tr Мho phцp nƠo đó.
83
Luận án Tiến sĩ Kỹ thuật 2013
nhiên s lƠm Мho m ng h i t Я МпМ giп tr МựМ ti u khпМ nhau. N u gặp maв thì
m ng s h i t đ М Я giп tr МựМ ti u tổng th .
+ Kh i t o b tr ng Мho ANN
- M ng n ron s Н ng lƠ m ng m t l p ẩn
84
Luận án Tiến sĩ Kỹ thuật 2013
-B М h М: 0.2
-S l ng quần th : 20
TT GA BP TT GA BP
1 1356 - 12 865 1890
6 879 - 17 1034 -
7 1102 2102 18 779 3018
Ta thấв rằng giải thu t Нi truв n Мó khả năng đ t đ М вêu Мầu Я h i t (sai
s ≤ 0.1) t М tìm Яùng Мh a МựМ tr toƠn М М Н НƠng h n so Я i kỹ thu t lan truв n
ng М sai s . Haв nói МпМh khпМ kỹ thu t lan truв n ng М sai s Н r i ЯƠo Яùng
85
Luận án Tiến sĩ Kỹ thuật 2013
TT GA BP TT GA BP
1 - 8019 12 3012 -
2 - 9190 13 - 8601
3 3021 - 14 - 11032
4 - 8701 15 - 9963
5 - - 16 - 3378
8 - 9801 19 - -
9 - - 20 - 10914
11 2038 7781
GA BP
0.1 16 14
0.001 4 13
86
Luận án Tiến sĩ Kỹ thuật 2013
Trong phần nƠв s trình bƠв Я giải thu t Нi truв n (GA) k t h p Я i thu t toпn
“Я t khe” đ Мh ngự quỹ đ o ЯƠ rút ngắn th i gian М a quп trình tìm ki m t i u
Я i mặt sai s ph М t p Н ng lòng khe.
87
Luận án Tiến sĩ Kỹ thuật 2013
2. Tính toпn giп tr thíМh nghi f ( ait ) М a mỗi nhi m sắМ th ait trong quần th
P t hi n t i.
3. Căn М ЯƠo giп tr thíМh nghi t o ra МпМ nhi m sắМ th m i bằng МпМh Мh n
l М МпМ nhi m sắМ th Мha mẹ, пp Н ng МпМ thu t toпn lai t o ЯƠ đ t bi n.
5. Tính toпn МпМ giп tr thíМh nghi М a МпМ nhi m sắМ th m i f (ai't ) chèn vào
quần th .
CпМ phцp toпn Нi truв n s Н ng trong МпМ thựМ nghi m đ М trình bƠв nh sau:
Chọn lọc
Lai tạo
Đột biến
89
Luận án Tiến sĩ Kỹ thuật 2013
Hình 3.1: Sơ đồ thuật toán kết hợp giải thuật vượt khe và di truyền cho
luyện mạng MP
Thu t toпn k t h p giải thu t Я t khe ЯƠ giải thu t Нi truв n Мho m ng MLP
đ М đ бuất trong hình 3.1. Nó bao g m hai giai đo n luв n m ng. Giai đo n đầu
tiên s Н ng thu t toпn Нi truв n Я i b М truв n thẳng nhằm đẩв nhanh toƠn b
quá trình luв n m ng. Thu t toпn Нi truв n thựМ hi n tìm ki m toƠn М М và tìm ki m
t i u gần đi m ban đầu (tr ng l ng vec-t ) cho giai đo n th hai. Trong đó, mỗi
nhi m sắМ th đ М s Н ng đ mã hóa các tr ng s М a m ng n ron. Hàm thích
nghi (hàm m М tiêu) Мho МпМ thu t toán Нi truв n đ М бпМ đ nh lƠ tổng bình ph ng
lỗi (TSSE) М a m ng n ron t ng ng. Do đó, bài toán s tr thƠnh t i u hóa
không gi i h n nhằm tìm m t t p h p МпМ bi n quв t đ nh giảm thi u hƠm m М tiêu.
Trong giai đo n th 2 s s Н ng kỹ thu t lan truв n ng М Я i МпМ b Мh Мđ М
thaв đổi theo thu t toпn Я t khe đƣ đ М đ бuất hình 2.4.
90
Luận án Tiến sĩ Kỹ thuật 2013
Tr l i Яí Н Я nh n Н ng Мh Яi t taв 0,1,2,… 9.
/* Giai đo n 1*/
- Kh i t o sub_total_fitness bằng 0 ЯƠ
sub_best_chromosome lƠ rỗng
91
Luận án Tiến sĩ Kỹ thuật 2013
* Tính toпn МпМ giп tr hƠm m М tiêu Мho МпМ nhi m sắМ th Мha mẹ.
- Tính toán sub_total_fitness bằng МпМh tíМh lũв giп tr hƠm m М tiêu
М a mỗi nhi m sắМ th .
/* Giai đo n 2 */
END
92
Luận án Tiến sĩ Kỹ thuật 2013
S th h 1 5 10 15 20
S Мhu kỳ luв n 5 10 15 20 33
93
Luận án Tiến sĩ Kỹ thuật 2013
3.4. K t lu n ch ng 3
Trong Мh ng 3 Мhúng ta đƣ nghiên М u các ví d c th đ thấy sự ảnh
h ng c a vec-t kh i t o tr ng s ban đầu đ n k t quả c a quá trình luy n m ng.
Đ ng th i Мũng đi phơn tíМh đпnh giп u nh М đi m c a giải thu t di truy n và
thu t h c lan truy n ng c sai s trong bài toán nh n d ng. Giải thu t di truy n
đ c bi t đ n nh m t giải thu t tìm ki m dựa trên h c thuy t v ch n l c tự nhiên
ЯƠ nó Мho phцp ta đ t đ c t i cực tr toàn c М. Do đó, пp Н ng giải thu t di truy n
vào bài toán t i u hoп tr ng s m ng n ron nhơn t o là m t cách ti p c n ti m
năng.
94
Luận án Tiến sĩ Kỹ thuật 2013
K T LU N CHUNG VÀ Đ XU T H NG NGHIểN C U
95
Luận án Tiến sĩ Kỹ thuật 2013
S th h 1 5 10 15 20
S Мhu kỳ luв n 5 10 15 20 33
96
Luận án Tiến sĩ Kỹ thuật 2013
Hình a: So sánh hoạt động c a mạng MLP thuần túy và MLP cải tiến
Qua Яi М nghiên М u ЯƠ thựМ nghi m trên mпв tính Мho ta thấв: Я i nh ng Мấu
trúМ m ng n ron mƠ mặt lỗi Мó Н ng lòng khe, Я n s Н ng kỹ thu t lan truв n
ng М nh ng Яi М пp Н ng giải thu t Нi truв n k t h p Я i thu t toпn “Я t khe” đ
luв n m ng s Мho ta đ Мhính бпМ ЯƠ t М đ h i t nhanh h n nhi u so Я i ph ng
pháp gradient.
- K t quả luв n m ng n ron ph thu М rất l n ЯƠo giп tr ban đầu М a vec-t
tr ng s . Vi М s Н ng giải thu t Нi truв n thựМ hi n quп trình tìm ki m toƠn
М М Мho phцp Мó đ М vec-t tr ng s ban đầu t t Мho giai đo n sau М a quп
trình luв n m ng.
- Khi mặt lỗi đặМ bi t Мó Н ng lòng khe, n u luв n m ng bằng thu t toпn
graНien liên h p haв thu t toпn LeЯenberg ậ Marquardt s Мh m h i t ЯƠ
gặp phải Яấn đ МựМ tr đ a ph ng. Thu t toпn “Я t khe” nhằm tìm ki m
МпМ b М h М t i u trong giai đo n 2 М a quп trình luв n m ng nên đƣ khắМ
ph М МпМ nh М đi m nƠв ЯƠ Нo đó lƠm tăng t М đ h i t Мũng nh đ Мhính
бпМ М a quп trình luв n m ng.
97
Luận án Tiến sĩ Kỹ thuật 2013
2. Phơn tíМh, đпnh giп đ h i t М a quп trình luв n m ng n ron ph thu М ЯƠo
b tr ng s kh i t o ban đầu ЯƠ b М h М.
3. Đ бuất mô hình k t h p giải thu t Нi truв n ЯƠ thu t toпn Я t khe trong quп
trình luв n m ng n ron Мó mặt lỗi đặМ bi t. Trong đó giải thu t Нi truв n Мó
Яai trò thựМ hi n quп trình tìm ki m toƠn М М đ Мó đ М ЯeМ-t tr ng s ban
đầu t t Мho giai đo n sau М a quп trình luв n m ng. Còn thu t toпn Я t khe
lƠ đ tìm b М h М t i u, lƠm tăng t М đ h i t Мũng nh đ Мhính бпМ М a
quп trình luв n m ng.
Đ xu t h ng nghiên c u
- ng Н ng thu t toпn nƠв Мho m t s bƠi toпn trong lĩnh ЯựМ đi u khi n, tự
đ ng hóa ЯƠ kỹ thu t đi n t .
98
Luận án Tiến sĩ Kỹ thuật 2013
99
Luận án Tiến sĩ Kỹ thuật 2013
TÀI LI U THAM KH O
[1] Bùi Công C ng, Nguy n Doƣn Ph c. Hệ mờ, mạng nơron và ng dụng. Nhà
xuất bản Khoa h c và kỹ thu t. Hà N i 2001.
[2] Nguy n H u Công, ng dụng mạng nơron trong nhận dạng hệ thống phi tuyến,
T p chí Khoa h c và Công ngh Thái Nguyên, s 3 ậ 2007.
[3] Nguy n Quang Hoan. Một số mô hình và luật điều khiển mạng nơron dùng
trong điều khiển. H i ngh toàn qu c lần th nhất v Tự đ ng hóa. Hà N i, 20-
22/4/1994.
[4] Nguy n Th Vinh, Tìm nghi m bài toán t i u tĩnh theo thu t toпn Я t khe
bằng m ng n ron, Lu n Яăn th М sĩ, 2007
[5] Bùi Minh Trí, Tối ưu hóa, t p II, Nhà xuất bản Khoa h c và Kỹ thu t Hà n i,
2005.
[6] Lê Minh Trung. Giáo trình mạng nơron nhân tạo. Nhà xuất bản th ng kê. 1999.
[7] Nguy n M nh Tùng. Nghiên c u ng dụng mạng nơron nhân tạo cho các bài
toán đo lường. Lu n án ti n sĩ kỹ thu t, tr ng đ i h c Bách Khoa Hà N i,
2003.
[8] Nguy n Quang Hoan (1996), “M t s thu t h c c a m ng n ron”, Tuyển tập các
báo cáo khoa học Hội nghị toàn quốc lần th II về Tự động hóa, tr.220ậ229.
[9] Chu Văn Hỷ (1998), “Đi u khi n thích nghi phi tuy n trên М s m ng n ron
RBF”, Tuyển tập các báo cáo khoa học Hội nghị toàn quốc lần th III về Tự
động hóa, tr.238ậ241.
[10] Nguy n Doƣn Ph c, Phan Xuân Minh (2000), Điều khiển tối ưu và bền
vững, Nhà xuất bản Khoa h c và Kỹ thu t, Hà N i.
[11] Nguy n Doƣn Ph c, Lý thuyết điều khiển nâng cao, Nhà xuất bản Khoa h c
và Kỹ thu t Hà n i, 2005.
[12] Nguy n Đình ThúМ ЯƠ HoƠng Đ c Hải, Trí tuệ nhân tạo – Mạng nơ ron,
phương pháp và ng dụng, Nhà xuất bản Giáo d c, Hà n i.
[13] Đỗ Trung Hải (2008), “ ng dụng lý thuyết mờ và mạng nơron để điều khiển
hệ chuyển động”, lu n án ti n sỹ kỹ thu t, Đ i h c Bách Khoa Hà N i.
100
Luận án Tiến sĩ Kỹ thuật 2013
[14] Lê Hoàng Thái (2004), “Xây dựng phát triển ng dụng một số mô hình kết
hợp giữa mạng nơron (NN), logic mờ (FL) và thuật giải di truyền (GA)”, Lu n
án ti n sĩ tin h М, Đ i h c Khoa h c Tự nhiên Thành ph H Chí Minh, Vi t
Nam.
101
Luận án Tiến sĩ Kỹ thuật 2013
[24] Jyh-Shing Roger Jang, Chuen-Tsai Sun, Eiji Mizutani (1996), Neuro-Fuzzy
and Soft Computing: A Computational Approach to Learning and Machine
Intelligence, Prentice Hall, USA.
[25] L. Davis, “Hand book of Genetic Algorithms”, Van Nostrand Reinhold, New
York, 1991.
[26] D.E. Goldberg, “Genetic Algorithms in Search, Optimization, and Machine
Learning”, Addison-Wesley Pub. Comp. Inc., Reading, MA, 1989
[27] Cong Huu Nguyen, Thanh Nga Thi Nguyen, Phuong Huy Nguyen, “
Research on the application of genetic algorithm combined with the “cleft-
overstep” algorithm for improving learning process of MLP neural network
with special error surface”, ICNC 2011,July, Shanghai China, 223-227.
[28] Nguyen Van Manh and Bui Minh Tri, “Method of “cleft-overstep” by
perpendicular direction for solving the unconstrained nonlinear optimization
problem”, Acta Mathematica Vietnamica, vol. 15, N02, 1990.
[29] Hagan, M.T., H.B. Demuth and M.H Beal, Neural Networks Design, PWS
Publishing Company, Boston, 1996.
[30] Simon Haykin, Neural Networks – A Comprehensive Foundation,
Macmillan, 1994.
[31] L.-Y. Bottou, Reconnaissance de la parole par reseaux multi-couches,
Proceedings of the International Workshop Neural Networks Application,
Neuro-Nimes'88, EC2 and Chambre de Commerce et d'Industrie de Nimes,
1988, pp. 197-217.
[32] T. Denoeux, R. Lengellé, Initializing back propagation networks with
prototypes, Neural Networks 6 (1993),pp 351-363.
[33] G.P. Drago, S. Ridella, Statistically controlled activation weight
initialization (SCAWI), IEEE Trans. Neural Networks 3 (1992) 627-631.
[34] J.-P. Martens, A stochastically motivated random initialization of pattern
classifying MLPs, Neural Process. Lett. 3 (1996) 23-29.
[35] T. Masters, Practical Neural Network Recipes in C++, Academic Press,
Boston, 1993.
102
Luận án Tiến sĩ Kỹ thuật 2013
103
Luận án Tiến sĩ Kỹ thuật 2013
104
Luận án Tiến sĩ Kỹ thuật 2013
Control Perspective”, The 44th IEEE Conference on Decision and Control, and
the European Control Conference, Spain, pp.4117ậ4122.
[58] Tomohisa Hayakawa, Wassim M. Haddad, James M. Bailey, Naira
Hovakimyan (2005), “Passivity-Based Neural Network Adaptive Output
Feedback Control for Nonlinear Nonnegative Dynamical Systems", IEEE
Transactions on Neural Networks, Vol. 16, No. 2, pp.387ậ398.
[59] Tomohisa Hayakawa, Wassim M. Haddad, Naira Hovakimyan, VijaySekhar
Chellaboina (2005), “Neural Network Adaptive Control for Nonlinear
Nonnegative Dynamical Systems", IEEE Transactions on Neural Networks, Vol.
16, No. 2, pp.399ậ413.
[60] Tomohisa Hayakawa, Wassim M. Haddad, and Naira Hovakimyan (2008),
“Neural Network Adaptive Control for a Class of Nonlinear Uncertain
Dynamical Systems with Asymptotic Stability Guarantees", IEEE Transactions
on Neural Networks, Vol. 19, No. 1, pp.80ậ89.
[61] T. Zhang, S. S. Ge, C. C. Hang (2000), “Stable Adaptive Control for a Class
of Nonlinear Systems using a Modified Lyapunov Function", IEEE Transactions
on Automatic Control, Vol. 45, No. 1, pp.129ậ132.
105
Luận án Tiến sĩ Kỹ thuật 2013
106
Luận án Tiến sĩ Kỹ thuật 2013
107
Luận án Tiến sĩ Kỹ thuật 2013
L p ЯƠo L p ẩn 1 L p ẩn (n-1) L p ra
108
Luận án Tiến sĩ Kỹ thuật 2013
109
Luận án Tiến sĩ Kỹ thuật 2013
♦ B5: Hi u Мhỉnh МпМ tr ng s liên k t theo m t МпМh nƠo đó sao Мho lần
ti p theo khi đ a vec-t r б ЯƠo m ng, vec-t r đầu ra z s gi ng Я i t h n.
♦ B6: N u Мần, lặp l i МпМ b М từ 2 đ n 5 Мho t i khi m ng đ t t i tr ng thпi
h i t . Vi М đпnh giп lỗi Мó th thựМ hi n theo nhi u МпМh, МпМh Нùng nhi u nhất lƠ
s Н ng lỗi t М th i: Err = (z - t), hoặМ Err = еz - tе; lỗi trung bình bình ph ng
(MSE: mean-square error): Err = (z- t)2/2;
Có hai lo i lỗi trong đпnh giп m t m ng n ron. Th nhất, g i lƠ lỗi rõ rƠng
(apparent error), đпnh giп khả năng бấp бỉ МпМ m u huấn luв n М a m t m ng đƣ
đ М huấn luв n. Th hai, g i lƠ lỗi ki m tra (test error), đпnh giп khả năng tổng
quп hóa М a m t m ng đƣ đ М huấn luв n, t М khả năng phản ng Я i МпМ vec-t r
đầu ЯƠo m i. Đ đпnh giп lỗi ki m tra Мhúng ta phải bi t đầu ra mong mu n Мho МпМ
m u ki m tra.
Thu t toпn tổng quпt trên Мho h М Мó giпm sпt trong МпМ m ng n ron Мó
nhi u МƠi đặt khпМ nhau, sự khпМ nhau Мh в u lƠ МпМh МпМ tr ng s liên k t đ М
thaв đổi trong su t th i gian h М. Trong đó tiêu bi u nhất lƠ thu t toпn lan truв n
ng М.
Thu t toán lan truy n ng c
II.3.1. Một vài điều về thuật toán lan truyền ngược
Có m t ЯƠi l p khпМ nhau М a МпМ lu t huấn luв n m ng bao g m: huấn
luв n k t h p, huấn luв n М nh tranh,… Huấn luв n Мhất l ng m ng, performanМe
learning, lƠ m t l p quan tr ng khпМ М a lu t huấn luв n, trong ph ng phпp nƠв thì
МпМ thông s m ng đ М đi u Мhỉnh đ t i u hóa Мhất l ng М a m ng. Thu t toпn
lan truв n ng М lƠ m t phпt minh Мhính trong nghiên М u Я m ng n -ron, thu М
lo i thu t h М Мhất l ng m ng (h М Мó giпm sпt). Ng М Нòng th i gian, Мhúng ta
thấв rằng sau khoảng m i năm k từ khi lan truв n ng М bắt đầu đ М thai
nghцn, năm 1974, thì thu t h М lan truв n ng Мđ М Мhính th М nghiên М u l i ЯƠ
m r ng ra m t МпМh đ М l p b i DaЯiН Rumelhart, Geoffeв Hinton ЯƠ RonalН
Williams; DaЯiН Parker ЯƠ Yann Le Cun. Thu t toпn đƣ đ М phổ bi n hóa b i Мu n
sпМh Parallel DistributeН ProМessing М a nhóm tпМ giả DaЯiН Rumelhart ЯƠ James
Mc Clelland. Tuy nhiên, thu t toпn nguвên th в thì quп Мh m Мh p đ i Я i hầu h t
МпМ ng Н ng thựМ t [1], Мó nhi u lý Нo Мho Яi М h i t Мh m trong đó Мó sự ảnh
h ng М a b М h М.
110
Luận án Tiến sĩ Kỹ thuật 2013
111
Luận án Tiến sĩ Kỹ thuật 2013
(1985).
.
.
.C
112
Luận án Tiến sĩ Kỹ thuật 2013
phân
lo i
nhau,
gradient descend.
Tóm lại, khi giải quв t bƠi toпn bằng m ng n ron theo th t М truв n ng М
Мó nh ng Яấn đ rút ra lƠ:
- S Мó bao nhiêu n ron trong m ng, bao nhiêu ngõ vào, bao nhiêu ngõ ra và
bao nhiêu l p ẩn. CƠng nhi u l p ẩn bƠi toпn tr nên ph М t p nh ng Мó th giải
quв t đ М nh ng Яấn đ l n.
- Thu t toпn Back propagation Мung Мấp m t ph ng phпp “xấp xỉ” Мho Яi М
tìm trong không gian trọng số (nhằm tìm ra nh ng trọng số phù h p Мho m ng).
Chúng ta МƠng lấв giп tr М a tham số học МƠng nh bao nhiêu thì sự thaв đổi trọng
số МƠng nh bấв nhiêu ЯƠ quỹ đạo không gian học s МƠng trơn. Tuв nhiên đi u nƠв
l i lƠm Мho tốc độ học Мh m đi. Trпi l i, n u Мhúng ta Мh n tham số tốc độ học quá
l n, sự thaв đổi l n М a МпМ trọng số Мó th lƠm Мho m ng tr nên không ổn đ nh.
V mặt ý t ng, tất Мả МпМ n ron trong m ng nên Мh n Мùng m t tốc độ học, tham
số học nên gпn m t giп tr nh . CпМ n ron Я i nhi u ngõ vào nên Мh n m t tham
số tốc độ học nh h n đ gi m t thời gian học t ng tự Мho nhau Мho tất Мả МпМ
n ron trong m ng.
113
Luận án Tiến sĩ Kỹ thuật 2013
(w)
tr ng hóa a j w ji z i , v i
i
ji ;
trên
(w).
(w)
2
(w ) g O(w)
.
II.4. Các v n đ trong xơy dựng m ng MLP
II.4.1. Chuẩn b dữ li u
a. Kích thước mẫu
Không có nguyên tắМ nƠo h ng d n kíМh th c m u phải lƠ bao nhiêu đ i
v i m t bƠi toпn Мho tr c. Hai y u t quan tr ng ảnh h ng đ n kíМh th c m u:
♦ D ng hƠm đíМh: khi hƠm đíМh МƠng ph c t p thì kíМh th c m u cần tăng.
♦ Nhi u: khi d li u b nhi u (thông tin sai hoặc thi u thông tin) kíМh th c
m u cần tăng.
114
Luận án Tiến sĩ Kỹ thuật 2013
115
Luận án Tiến sĩ Kỹ thuật 2013
b. Mẫu con
Trong xây dựng mô hình cần chia t p m u thành 2 t p con: m t đ xây dựng
mô hình g i là t p huấn luy n (training set), và m t đ ki m nghi m mô hình g i là
t p ki m tra (test set). Thông th ng dùng 2/3 m u cho huấn luy n và 1/3 cho ki m
tra. Đi u nƠв lƠ đ tránh tình tr ng quá kh p (overfitting).
c. Sự phân tầng mẫu
N u ta tổ ch c m u sao cho mỗi m u trong quần th đ u Мó М h i nh nhau
thì t p m u đ c g i là t p m u đ i di n. Tuy nhiên khi ta xây dựng m t m ng đ
бпМ đ nh xem m t m u thu c m t l p hay thu c m t lo i nƠo thì đi u ta mong mu n
là các l p có cùng ảnh h ng lên m ng, đ đ t đ М đi u này ta có th s d ng m u
phân tầng. Xét ví d sau:
Giả s ta xây dựng mô hình nh n d ng ch cái vi t tay ti ng Anh, và ngu n
d li u c a ta có 100.000 ký tự mà mỗi ký tự đ c kèm theo m t mã cho bi t nó là
ch cái nào. Ch cái xuất hi n th ng xuyên nhất là e, nó xuất hi n 11.668 lần
chi m khoảng 12%; ch cái xuất hi n ít nhất là ch z, chỉ có 50 lần chi m 0,05%.
Tr c h t do gi i h n c a b nh máy tính, giả s b nh chỉ có th x lý
đ c 1300 m u. Ta t o hai d ng t p m u: t p m u đ i di n và t p m u phân tầng.
V i t p m u đ i di n, ch e s xuất hi n 152 lần (11,67% c a 1300) trong khi đó
ch z chỉ xuất hi n m t lần (0,05% c a 1300). Ng c l i ta có th t o t p m u phân
tầng đ mỗi ch có 50 m u. Ta thấy rằng n u chỉ có th dùng 1300 m u thì t p m u
phân tầng s t o ra mô hình t t h n. Vi М tăng s m u c a z từ 1 lên 50 s cải thi n
rất nhi u đ chính xác c a z, trong khi n u giảm s m u c a e từ 152 xu ng 50 s
chỉ giảm Мhút ít đ chính xác c a e.
Bây gi giả s ta dùng máy tính khác có b nh đ đ x lý m t l ng m u
gấp 10 lần, nh Я y s m u s tăng lên 13000. Rõ rƠng Яi М tăng kíМh th c m u s
giúp Мho mô hình Мhính бпМ h n. Tuв nhiên ta không th dùng t p m u phân tầng
nh trên n a vì lúc này ta s cần t i 500 m u cho ch z trong khi ta chỉ có 50 m u
trong ngu n d li u. Đ giải quy t đi u này ta t o t p m u nh sau: t p m u g m tất
cả các ch hi m v i s lần xuất hi n c a nó và kèm thêm thông tin v ch có nhi u
m u nhất. Chẳng h n ta t o t p m u có 50 m u c a ch z (đó lƠ tất cả) và 700 m u
c a ch e (ch mà ta có nhi u m u nhất).
Nh Я y trong t p m u c a ta, ch e có nhi u h n Мh z 14 lần. N u ta mu n
các ch z Мũng Мó nhi u ảnh h ng nh МпМ Мh e, khi h c ch z ta cho chúng tr ng
116
Luận án Tiến sĩ Kỹ thuật 2013
s l n h n 14 lần. Đ lƠm đ М đi u này ta có th can thi p chút ít vào quá trình lan
truy n ng c trên m ng. Khi m u h c là ch z, ta thêm vào 14 lần đ o hƠm, nh ng
khi m u là ch e ta chỉ thêm vào 1 lần đ o hàm. cu i th h , khi c p nh t các
tr ng s , mỗi ch z s có ảnh h ng h n mỗi ch e là 14 lần, và tất cả các ch z
g p l i s có bằng có ảnh h ng bằng tất cả các ch e.
d. Chọn biến
Khi t o m u cần ch n các bi n s d ng trong mô hình. Có 2 vấn đ cần quan
tâm:
♦ Cần tìm hi u cách bi n đổi thông tin sao cho có l i cho m ng h n: thông
tin tr М khi đ a ЯƠo m ng cần đ c bi n đổi d ng thích h p nhất, đ m ng đ t
đ c hi u suất cao nhất. Xét ví d v bài toán dự đoпn m t ng i có mắc b nh ung
th haв không. Khi đó ta Мó tr ng thông tin v ng i nƠв lƠ “ngƠв thпng năm
sinh”. M ng s đ t đ c hi u quả Мao h n khi ta bi n đổi tr ng thông tin này sang
thƠnh “tuổi”. Th m chí ta có th quy tuổi v m t trong các giá tr : 1 = “trẻ em”
(Н i 18), 2 = “thanh niên” (từ 18 đ n Н i 30), 3 = “trung niên” (từ 30 đ n Н i
60) ЯƠ 4 = “giƠ” (từ 60 tr lên).
♦ Ch n trong s các bi n đƣ đ c bi n đổi bi n nào s đ М đ a ЯƠo mô
hình: không phải bất kì thông tin nào v m u Мũng Мó l i cho m ng. Trong ví d dự
đoпn ng i có b ung th haв không trên, nh ng thu М tính nh “ngh nghi p”,
“n i sinh s ng”, “ti u s gia đình”,… lƠ nh ng thông tin có ích. Tuy nhiên nh ng
thông tin nh “thu nh p”, “s Мon Мпi”,… lƠ nh ng thông tin không cần thi t.
II.4.2. Xác đ nh các tham s cho m ng
a. Chọn hàm truyền
Không phải bất kỳ hƠm truв n nƠo Мũng Мho k t quả nh mong mu n. Đ trả
l i Мho Мơu h i «hàm truyền như thế nào được coi là tốt ? » lƠ đi u không h đ n
giản. Có m t s quв tắМ khi Мh n hƠm truв n nh sau:
♦ Không Нùng hƠm truв n tuв n tính tầng ẩn. Vì n u Нùng hƠm truв n
tuв n tính tầng ẩn thì s lƠm mất Яai trò М a tầng ẩn đó: Xцt tầng ẩn th i:
Tổng tr ng s ni = wiai-1 + bi
ai = f(ni) = wf ni +bf (hƠm truв n tuв n tính)
Khi đó: tổng tr ng s t i tầng th (i + 1)
ni+1 = wi+1ai + bi+1
117
Luận án Tiến sĩ Kỹ thuật 2013
*Hàm dấu:
x0 x
stepx stepx
1 1
1 x0 1 x
118
Luận án Tiến sĩ Kỹ thuật 2013
119
Luận án Tiến sĩ Kỹ thuật 2013
♦ T o tr ng sao cho giá tr k t xuất c a các nút có giá tr trung gian. (0.5 n u
hàm truy n là hàm Sigmoid). Rõ ràng n u ta không bi t gì v giá tr k t xuất thì giá
tr gi a là h p lý. Đi u nƠв Мũng giúp ta trпnh đ c các giá tr thái quá.
Th t c kh i t o tr ng th ng đ c áp d ng:
ậ B1: Kh i t o các tr ng s nút ẩn (và các tr ng s c a các cung liên k t trực ti p
gi a nút nh p và nút xuất, n u có) giá tr ng u nhiên, nh , phân b đ u quanh 0.
ậ B2: Kh i t o m t n a s tr ng s c a nút xuất giá tr 1, và n a kia giá tr -1.
Gi i thu t di truy n
Giải thu t Нi truв n (GenetiМ Algorithms - GA) đƣ đ М đ М p trong rất
nhi u tƠi li u, trong đó Мó МпМ Мông trình М a D.E. GolНberg [26] ЯƠ Thomas BaМk
[27]. Trong phần nƠв Мhỉ trình bƠв МпМ khпi ni m М bản Я giải thu t Нi truв n ЯƠ
khả năng ng Н ng М a nó.
Theo l i giải бпМ suất, Яi М giải bƠi toпn quв Я quп trình tìm ki m trên
không gian t p h p МпМ l i giải Мó th . Tìm đ М l i giải t t nhất ЯƠ quп trình đ М
hi u lƠ t i u. V i mi n tìm ki m nh , m t s thu t toпn Мổ đi n đ М s Н ng. Tuв
nhiên đ i Я i МпМ mi n l n, phải s Н ng МпМ kỹ thu t trí tu nhơn t o đặМ bi t, giải
thu t Нi truв n lƠ m t trong nh ng Мông М đó. ụ t ng М a giải thu t Нi truв n lƠ
mô ph ng nh ng gì mƠ tự nhiên đƣ thựМ hi n. GA hình thƠnh Нựa trên quan ni m
Мho rằng: quп trình ti n hóa tự nhiên lƠ quп trình hoƠn hảo nhất, h p lý nhất ЯƠ tự nó
đƣ mang tính t i u.
Giải thuật di truyền áp dụng quá trình tiến hóa tự nhiên để giải các bài toán
tối ưu trong thực tế (từ tập các lời giải có thể ban đầu thông qua nhiều bước
120
Luận án Tiến sĩ Kỹ thuật 2013
tiến hóa hình thành các tập hợp mới với lời giải tốt hơn và cuối cùng sẽ tìm
được lời giải gần tối ưu).
Giải thu t Нi truв n Мũng nh МпМ thu t toпn ti n hoп đ u đ М hình thƠnh
Нựa trên m t quan ni m đ М Мoi lƠ m t tiên đ phù h p Я i thựМ t khпМh quan. Đó
lƠ quan ni m "Quá trình ti n hoп tự nhiên lƠ quп trình hoƠn hảo nhất, h p lý nhất ЯƠ
tự nó đƣ mang tính t i u". Quп trình ti n hoп th hi n tính t i u Мhỗ th h sau
bao gi Мũng t t h n th h tr М.
Quп trình phпt tri n М a giải thu t Нi truв n Мó th đ М Мhỉ ra qua МпМ m М
th i gian sau:
121
Luận án Tiến sĩ Kỹ thuật 2013
1975: Giải thu t gen do John Holland phпt minh ЯƠ đ М phпt tri n b i ông
Мùng Я i МпМ đ ng nghi p ЯƠ nh ng sinh Яiên. Cu n sпМh "AНaption in Natural anН
ArtifiМial Sвstems" (Sự thíМh nghi trong МпМ h tự nhiên ЯƠ nhơn t o) бuất bản năm
1975 đƣ tổng h p МпМ k t quả М a quп trình nghiên М u ЯƠ phпt tri n đó.
1992: John Koza đƣ Нùng GA đ бơв Нựng МпМ Мh ng trình giải quв t m t
s bƠi toпn ЯƠ g i ph ng phпp nƠв lƠ "l p trình gen".
NgƠв naв giải thu t Нi truв n МƠng tr nên quan tr ng, đặМ bi t lƠ trong lĩnh
ЯựМ t i u hoп, m t lĩnh ЯựМ Мó nhi u bƠi toпn thú Я , đ М ng Н ng nhi u trong
thựМ ti n nh ng th ng khó ЯƠ Мh a Мó giải thu t hi u quả đ giải.
Giải thu t Нi truв n Нựa ЯƠo quп trình ti n hoп trong tự nhiên nên МпМ khпi
ni m ЯƠ thu t ng М a nó đ u Мó liên quan đ n МпМ thu t ng М a Нi truв n h М.
a. Ch n lựa
Trong tự nhiên, quп trình Мh n l М ЯƠ đấu tranh sinh t n đƣ lƠm thaв đổi МпМ
Мп th trong quần th . Nh ng Мп th t t, thíМh nghi đ М Я i đi u ki n s ng thì Мó
122
Luận án Tiến sĩ Kỹ thuật 2013
b. Lai ghép
c. Đ t bi n
123
Luận án Tiến sĩ Kỹ thuật 2013
Bắt đầu
Điều kiện
dừng
Sinh sản
Lai ghép
Lựa chọn giải pháp tốt
nhất
Đột biến
Kết
thúc
124
Luận án Tiến sĩ Kỹ thuật 2013
125
Luận án Tiến sĩ Kỹ thuật 2013
u1=u03(1);
u2=u03(2);
PPThammuctieu
Jsau=J;
end
%end
if Jsau > Jtruoc
F = Jtruoc;
end
% Buoc 2 ---------------------------------------
% FL1=abs(XU-XL)
while (abs(XU-XL)>FD)
%FL=abs(XU-XL);
%FL1=FL;
% if FL <=FD
% break
% else
TH=XL+gama*(XU-XL);
teta = TH;
u04=u0+TH*s0;
u1=u04(1);
u2=u04(2);
PPThammuctieu
Jsau=J;
if Jsau<F
XU =TH;
Jtruoc = F;
else
XL=TH;
u05=u0+XL*s0;
u1=u05(1);
u2=u05(2);
PPThammuctieu
Jtruoc=J;
end
% end
end
tocdohoc=TH;
% if abs(XU-XL)<=FD
% XL=XU
% end
c=tocdohoc
%Gradient------------------------------
e{3}=t(:,k)-x{3};
J=J+sum(e{3}.^2);
Ju1=diff(J,u1);
Ju2=diff(J,u2);
%Ham muc tieu
e{3}=t(:,k)-x{3};
J=J+sum(e{3}.^2);
127
Luận án Tiến sĩ Kỹ thuật 2013
%------------------------------------------
% Lap trinh tong quat cho thuat toan vuot khe
% Date:15-10-2011
% Version 1
%-------------------------------------------------------
function y = PPTbexulynuocthai(p,t)
clc
clear;
%Nhap du lieu vao he thong
L=3;%so lop
g=inline('1./(1+exp(-x))');%Activation function
unl=[5 16 3];%The units of each layers
% lt=0.3;% learning rate
J=1;
sum=0;
sum1=0;
%Initital the Weights and biases
for i=1:L-1
for n=1:unl(i)
for m=1:unl(i+1)
w{i}(m,n)=1*rand;%The Weights
end
end
for m=1:unl(i+1)
b{i}(m,1)=1*rand;% The biases
end
end
w{L}=eye(unl(L));
while (J>0.00001)& sum<1000
sum=sum+1;%Number of Loops
J=0;
for k=1:length(p)
x{1}=p(:,k);% Inputs vector
% Feed forward Propagation
for i=1:L-1
s{i}=w{i,1}*x{i}+b{i};
x{i+1}=g(s{i});
%x{i+1};
end
%The caculatar error
PPThammuctieu
%Feed back Propagation
for i=L-1:-1:1
e{i}=(x{i+1}.*(1-
x{i+1})).*(w{i+1}'*e{i+1});
thuattoanvuotkhe%Su dung thuat toan vuot khe de xac
%dinh toc do hoc cua mang neural
deltw{i}=(c.*e{i})*x{i};
w{i}=w{i}+deltw{i};% The modify
Weights
128
Luận án Tiến sĩ Kỹ thuật 2013
deltb{i}=(c.*e{i}).*ones(unl(i+1),1);
b{i}=b{i}+deltb{i};% The modify
biases
end
end
J=J/2;
if mod(sum,100)==0
sum1=sum1+1;
data(sum1,1)=sum;
data(sum1,2)=J;
end
end
% Example a value
x{1} = [22 35 1 6 36]';
for i=1:L-1
s{i}=w{i}*x{i}+b{i};
x{i+1}=g(s{i});
end
x{i+1}
%x{L}
semilogy(data(:,1),data(:,2)),grid
%-------------------------------
129
Luận án Tiến sĩ Kỹ thuật 2013
dinhnghia.h
/*
*=======================================================================*
*------------------------------------------------------------------------
*
* DE TAI : HUAN LUYEN MANG NO-RON VOI BUOC HOC TINH THEO NGUYEN LY
VUOT KHE *
* NGON NGU : C
* TRINH DICH : VISUAL C++
* TEN TEP : dinhnghia.h
*-----------------------------------------------------------------------*
*=======================================================================*
*/
#define SIGMF(x) 1/(1 + exp(-(double)x))//HAM KICH HOAT NO RON
#define DSIGM(y) (float)(y)*(1.0-y))//DAO HAM CUA HAM KICH HOAT NO RON
#define SLNRLV 35 // SO LUONG NO RON LOP VAO
#define SLNRLA 5 // SO LUONG NO RON LOP AN
#define SLNRLR 10 // SO LUONG NO RON LOP RA
#define EPSILON 0.06 // SAI SO TRUNG BINH BINH PHUONG DE DUNG QUA
TRINH LUYEN MANG
#define SLMHL 18 // SO LUONG MAU HUAN LUYEN MANG
#define STEPinit 0.5 // GIA TRI KHOI TAO BUOC HOC, CO THE DUNG CHO
NHIEU TRUONG HOP
#define DCBH 0.0001 // DIEU CHINH BUOC HOC
#define MSDCBH 5 // MAU SO DIEU CHINH BUOC HOC
#define TSDCBH 5 // TU SO DIEU CHINH BUOC HOC
#define BLTD 30000 // BUOC LAP TOI DA
#define FD 1e-1 //
taphuanluyen.h
/*
*====================================================================*
*-----------------------------------------------------------------------*
* DE TAI : HUAN LUYEN MANG NO-RON VOI BUOC HOC TINH THEO NGUYEN LY
VUOT KHE *
* NGON NGU : C
* TRINH DICH : VISUAL C++
* TEN TEP : taphuanluyen.h
*-----------------------------------------------------------------------*
*=======================================================================*
*/
#include "dinhnghia.h"
//TAP MAU HUAN LUYEN DAU VAO
int TAPHUANLUYEN[SLMHL][SLNRLV] =
{
{ 0,1,1,1,1,1,0, /* 0 */
1,0,0,0,0,0,1,
1,0,0,0,0,0,1,
1,0,0,0,0,0,1,
0,1,1,1,1,1,0 },
{ 0,0,0,0,0,0,0, /* 1 */
0,1,0,0,0,0,1,
1,1,1,1,1,1,1,
0,0,0,0,0,0,1,
130
Luận án Tiến sĩ Kỹ thuật 2013
0,0,0,0,0,0,0 },
{ 0,1,0,0,0,0,1, /* 2 */
1,0,0,0,0,1,1,
1,0,0,0,1,0,1,
1,0,0,1,0,0,1,
0,1,1,0,0,0,1 },
{ 1,0,0,0,0,1,0, /* 3 */
1,0,0,0,0,0,1,
1,0,0,1,0,0,1,
1,1,1,0,1,0,1,
1,0,0,0,1,1,0 },
{ 0,0,0,1,1,0,0, /* 4 */
0,0,1,0,1,0,0,
0,1,0,0,1,0,0,
1,1,1,1,1,1,1,
0,0,0,0,1,0,0 },
{ 1,1,1,0,0,1,0, /* 5 */
1,0,1,0,0,0,1,
1,0,1,0,0,0,1,
1,0,1,0,0,0,1,
1,0,0,1,1,1,0 },
{ 0,0,1,1,1,1,0, /* 6 */
0,1,0,1,0,0,1,
1,0,0,1,0,0,1,
1,0,0,1,0,0,1,
0,0,0,0,1,1,0 },
{ 1,0,0,0,0,0,0, /* 7 */
1,0,0,0,0,0,0,
1,0,0,1,1,1,1,
1,0,1,0,0,0,0,
1,1,0,0,0,0,0 },
{ 0,1,1,0,1,1,0, /* 8 */
1,0,0,1,0,0,1,
1,0,0,1,0,0,1,
1,0,0,1,0,0,1,
0,1,1,0,1,1,0 },
{ 0,1,1,0,0,0,0, /* 9 */
1,0,0,1,0,0,1,
1,0,0,1,0,0,1,
1,0,0,1,0,1,0,
0,1,1,1,1,0,0 },
{ 1,1,1,1,0,0,0, /* 4 */
0,0,0,1,0,0,0,
0,0,0,1,0,0,0,
0,0,0,1,0,0,0,
1,1,1,1,1,1,1 },
{ 1,1,1,1,0,1,0, /* 5 */
1,0,0,1,0,0,1,
1,0,0,1,0,0,1,
1,0,0,1,0,0,1,
1,0,0,0,1,1,0 },
131
Luận án Tiến sĩ Kỹ thuật 2013
{ 1,0,0,0,0,0,0, /* 7 */
1,0,0,0,0,0,0,
1,0,0,1,0,0,0,
1,1,1,1,1,1,1,
0,0,0,1,0,0,0 },
{ 0,1,0,0,0,1,0, /* 3 */
1,0,0,0,0,0,1,
1,0,0,1,0,0,1,
1,0,1,0,1,0,1,
0,1,1,0,1,1,0 },
{ 1,0,0,0,0,1,1, /* 2 */
1,0,0,0,1,0,1,
1,0,0,1,0,0,1,
1,0,1,0,0,0,1,
1,1,0,0,0,0,1 },
{ 1,1,1,1,0,0,0, /* 4 */
0,0,0,1,0,0,0,
0,0,0,1,0,0,0,
1,1,1,1,1,1,1,
0,0,0,1,0,0,0 },
{ 1,1,1,1,1,1,1, /* 0 */
1,0,0,0,0,0,1,
1,0,0,0,0,0,1,
1,0,0,0,0,0,1,
1,1,1,1,1,1,1 },
{ 0,1,1,0,0,0,1, /* 9 */
1,0,0,1,0,0,1,
1,0,0,1,0,0,1,
1,0,0,1,0,0,1,
0,1,1,1,1,1,1 } };
backprop5.c
/*
*=======================================================================*
132
Luận án Tiến sĩ Kỹ thuật 2013
*------------------------------------------------------------------------
*
* DE TAI : HUAN LUYEN MANG NO-RON VOI BUOC HOC TINH THEO NGUYEN LY
VUOT KHE *
* NGON NGU : C
* TRINH DICH : VISUAL C++
* TEN TEP : backprop.c
*------------------------------------------------------------------------
*
*=======================================================================*
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "taphuanluyen.h"
#include "dinhnghia.h"
/************************** DINH NGHIA CAC BIEN TOAN CUC
****************************/
float MTTSLA[SLNRLV][SLNRLA]; //MA TRAN TRONG SO LOP AN
float MTTSLR[SLNRLA][SLNRLR]; //MA TRAN TRONG SO LOP RA
float BTMTTSLA[SLNRLV][SLNRLA];//BIEN THIEN MA TRAN TRONG SO LOP AN
float BTMTTSLR[SLNRLA][SLNRLR];//BIEN THIEN MA TRAN TRONG SO LOP RA
float x[SLNRLV]; //VEC-TO DAU VAO LOP VAO
float y[SLNRLA]; //VEC TO DAU RA LOP AN
float z[SLNRLR]; //VEC TO DAU RA LOP RA
float HW1[SLNRLV][SLNRLA]; //KHONG SU DUNG
float HW2[SLNRLV][SLNRLA]; //KHONG SU DUNG
float OW1[SLNRLA][SLNRLR]; //KHONG SU DUNG
float OW2[SLNRLA][SLNRLR]; //KHONG SU DUNG
float SSLA[SLNRLA]; //SAI SO LOP AN
float SSLR[SLNRLR]; //SAI SO LOP RA
int PATR[SLMHL];
float ECM[SLMHL];
float TOCDOHOC=2; //TOC DO HOC
int SOBUOCLAP=0;
float BVK=0; //BUOC VUOT KHE
int NBS=0;
float FX[SLMHL];
float F[SLMHL];
float A,GAMA;
float QUANTINH=0.1; //TOAN HANG QUAN TINH
int MTDVKT[35]; //MA TRAN DAU VAO KIEM TRA
long int itr;
int HTHL; //HOAN THANH HUAN LUYEN
int LCBH; //LUA CHON BUOC HOC
int RESET; //RESET MANG
int RES=1; //RESET MANG
int SDM; //SU DUNG MANG
/*************** KET THUC DINH NGHIA CAC BIEN TOAN CUC ****************/
int KHOITAOMANG();
void QUATRINHHUANLUYEN();
void DAPUNGDAURA(int afer[]);
float GIATRIHAMMUCTIEU(int x[],float y[],int SIZE);
void DIEUCHINHTRONGSO(int k);
void HAMMUCTIEU();
void BUOCLAP();
133
Luận án Tiến sĩ Kỹ thuật 2013
/*----------------------------------------------------------------------
Ten Ham: KHOITAOMANG
Mo ta: 1. KHOI TAO MA TRAN TRONG SO LOP AN, VOI CACS GIA TRI
NGAU NHIEN BI CHAN
2. KHOI TAO MA TRAN TRONG SO LOP RA, VOI CACS GIA
TRI NGAU NHIEN BI CHAN
Cac dau vao: KHONG CO
Gia tri tra ve: 1
--------------------------------------------------------------------*/
int KHOITAOMANG()
{
int i,j;
int ch;
int num;
NBS=0;
HTHL=2;
RESET=0;
RES=1;
MHL=0;
srand(time(0));
for(i=0;i<SLNRLV;i++)
for(j=0;j<SLNRLA;j++)
{
MTTSLA[i][j] = -0.5+ (float) rand()/RAND_MAX;
BTMTTSLA[i][j] = 0;
}
for(i=0;i<SLNRLA;i++)
for(j=0;j<SLNRLR;j++)
{
MTTSLR[i][j] = -0.5 + (float) rand()/RAND_MAX;
BTMTTSLR[i][j] = 0;
}
for(i=0;i<SLMHL;i++)
PATR[i] = 0;
for(i=0;i<35;i++)
MTDVKT[i]=0;
return 1;
}
/*---------------------------------------------------------------------
Ten Thu tuc: TOCDOHOCZERO
Mo ta: 1. CAC DAU RA CUA MANG VAN LA ZERO, VI TOC DO HOC LA
ZERO.
2. CAC SAI SO HOAN TOAN BANG VOI CAC DAU RA MONG
MUON.
3. THU TUC NAY DUNG DE PHUC VU CHO VIEC TINH
TOAN BUOC VUOT KHE.
Cac dau vao: KHONG CO
Gia tri tra ve: KHONG CO
------------------------------------------------------------------------
*/
void TOCDOHOCZERO(void)
{
int t;
TOCDOHOC=0;
134
Luận án Tiến sĩ Kỹ thuật 2013
BUOCLAP();
HAMMUCTIEU();
for(t=0;t<SLMHL;t++)
FX[t] = ECM[t];
}
/*---------------------------------------------------------------------
Ten Thu tuc: TINHBUOCHOCVUOTKHE
Ngay sua : 03-11-2007
Phien ban : V2
Mo ta: THU TUC TINH BUOC HOC THEO NGUYEN LY VUOT KHE
Cac dau vao: KHONG CO
Gia tri tra ve: KHONG CO
----------------------------------------------------------------------*/
void TINHBUOCHOCVUOTKHE(void)
{
float XL,XU,FL[SLMHL],temp;
int i,t,j;
if(NBS==0)
{
A=0.5;
GAMA=0.1;
TOCDOHOC=A;
}
for(t=0;t<SLMHL;t++)
FL[t]=FX[t];
XL=0;
BUOC1:
TOCDOHOC=A;
BUOCLAP();
HAMMUCTIEU();
for(t=0;t<SLMHL;t++)
F[t] = ECM[t];
if(F[t]>FL[t])
{
XU=A;
goto BUOC2;
}
//XL=A;
for(t=0;t<SLMHL;t++)
FL[t]=F[t];
XL=A;
A=1.5*A;
XU=A;
goto BUOC1;
BUOC2:
if(FD>=(XU-FL))
goto BUOC3;
A=XL+GAMA*(XU-XL);
temp=TOCDOHOC;
TOCDOHOC=A;
BUOCLAP();
HAMMUCTIEU();
TOCDOHOC=temp;
for(t=0;t<SLMHL;t++)
F[t] = ECM[t];
for(t=0;t<SLMHL;t++)
135
Luận án Tiến sĩ Kỹ thuật 2013
if(FL[t]>F[t])
{
XU=A;
for(j=0;j<SLMHL;j++)
FL[j]=F[j];
goto BUOC2;
}
for(t=0;t<SLMHL;t++)
if(F[t]>FL[t])
{
for(j=0;j<SLMHL;j++)
FL[j]=F[j];
XL=A;
goto BUOC2;
}
BUOC3:
for(t=0;t<SLMHL;t++)
FX[t]=F[t];
NBS=NBS+1;
TOCDOHOC=A;
}
/*-----------------------------------------------------------------------
----
Ten Thu tuc: TINHTOANBUOCHOC
Mo ta: TINH TOAN TOC DO HOC SAU MOI BUOC LAP
Cac dau vao: KHONG CO
Gia tri tra ve: KHONG CO
-----------------------------------------------------------------------*/
void TINHTOANBUOCHOC()
{
TOCDOHOC=TSDCBH/(SOBUOCLAP*0.001+MSDCBH);
}
/*-----------------------------------------------------------------------
Ten Thu tuc: BUOCLAP
Mo ta: DIEU CHINH CAC TRONG SO CUA MANG
Cac dau vao: KHONG CO
Gia tri tra ve: KHONG CO
------------------------------------------------------------------------
*/
void BUOCLAP()
{
int i;
i=0;
//LUA CHON MAU HUAN LUYEN NGAU NHIEN: i = (int)(SLMHL*rnd), VOI
0<rnd<1
do
{
i = (int)(SLMHL*(float) rand() / RAND_MAX);
}while(PATR[i]);
DAPUNGDAURA(TAPHUANLUYEN[i]);
DIEUCHINHTRONGSO(i);
}
/*-----------------------------------------------------------------------
Ten Thu tuc: HUANLUYENCODINH
Mo ta: HUAN LUYEN MANG DE TB-BINH PHUONG SAI SO DAU RA NHO HON
EPSILON CHO TRUOC
BUOC HOC LA MOT HANG SO.
Cac dau vao: KHONG CO
Gia tri tra ve: KHONG CO
136
Luận án Tiến sĩ Kỹ thuật 2013
-----------------------------------------------------------------------*/
void HUANLUYENCODINH()
{
int t,l;
printf("\nDANG HUAN LUYEN MANG VOI BUOC HOC CO DINH...\n");
START:
if(RES==0)
printf("\nKHOI DONG VA HUAN LUYEN LAI MANG!");
KHOITAOMANG();
//Luyen mang
do
{
TOCDOHOC=0.2;
BUOCLAP();
HAMMUCTIEU();
l = 1;
for(t=0;t<SLMHL;t++)
{
PATR[t] = ECM[t] < EPSILON;
l = l && (PATR[t]);
}
SOBUOCLAP++;
RESET++;
if(RESET>15000)break;
if(SOBUOCLAP>BLTD)
{
HTHL=0;
printf("\nQUA TRINH HUAN LUYEN MANG THAT BAI! \n");
printf("\nDE NGHI HUAN LUYEN LAI! \n");
break;
}
}while(!l);//while(!l && !kbhit());
if(RESET>15000)
{
RES=0;
goto START;
}
if(SOBUOCLAP<BLTD)
{
printf("\n\nMANG DA DUOC HUAN LUYEN XONG SAU: ");
printf("%ld",RESET);
printf(" BUOC LAP!\n\n");
}
}
/*-----------------------------------------------------------------------
-
Ten Thu tuc: HUANLUYENGIAMDAN
Mo ta: HUAN LUYEN MANG DE TB-BINH PHUONG SAI SO DAU RA NHO HON
EPSILON CHO TRUOC
BUOC HOC DUOC TINH THEO PHUONG PHAP GIAM DAN DON
GIAN
Cac dau vao: KHONG CO
Gia tri tra ve: KHONG CO
-------------------------------------------------------------------------
-*/
void HUANLUYENGIAMDAN()
{
int t,l;
printf("\n\nDANG HUAN LUYEN MANG VOI BUOC HOC GIAM DAN...\n");
137
Luận án Tiến sĩ Kỹ thuật 2013
START:
if(RES==0)
printf("\n\nKHOI DONG VA HUAN LUYEN LAI MANG!");
KHOITAOMANG();
//Luyen mang
do
{
TINHTOANBUOCHOC();
BUOCLAP();
HAMMUCTIEU();
l = 1;
for(t=0;t<SLMHL;t++)
{
PATR[t] = ECM[t] < EPSILON;
l = l && (PATR[t]);
}
SOBUOCLAP++;
RESET++;
if(RESET>3000)break;
if(SOBUOCLAP>BLTD)
{
HTHL=0;
printf("\nQUA TRINH HUAN LUYEN MANG THAT BAI! \n");
printf("\nDE NGHI HUAN LUYEN LAI! \n");
break;
}
}while(!l);//while(!l && !kbhit());
if(RESET>3000)
}
if(SOBUOCLAP<BLTD)
{
HTHL=1;
printf("\n\nMANG DA DUOC HUAN LUYEN XONG SAU: ");
printf("%ld",RESET);
printf(" BUOC LAP!\n\n");
}
}
/*-----------------------------------------------------------------------
-
Ten Thu tuc: HUANLUYENVUOTKHE
Mo ta: HUAN LUYEN MANG DE TB-BINH PHUONG SAI SO DAU RA NHO HON
EPSILON CHO TRUOC
BUOC HOC DUOC TINH THEO NGUYEN LY VUOT KHE
Cac dau vao: KHONG CO
Gia tri tra ve: KHONG CO
------------------------------------------------------------------------
*/
void HUANLUYENVUOTKHE()
{
int t,l;
printf("\n\nDANG HUAN LUYEN MANG THEO BUOC VUOT KHE...\n");
START:
if(RES==0){
printf("\nKHOI DONG VA HUAN LUYEN LAI MANG!");
}
KHOITAOMANG();
TOCDOHOCZERO();
TINHBUOCHOCVUOTKHE();
//Luyen mang
138
Luận án Tiến sĩ Kỹ thuật 2013
do
{
TINHBUOCHOCVUOTKHE();
BUOCLAP();
HAMMUCTIEU();
l = 1;
for(t=0;t<SLMHL;t++)
{
PATR[t] = ECM[t] < EPSILON;
l = l && (PATR[t]);
}
SOBUOCLAP++;
RESET++;
// printf("lan lap thu %d\n",RESET);
if(RESET>100)break;
if(SOBUOCLAP>BLTD)
{
HTHL=0;
printf("\nQUA TRINH HUAN LUYEN MANG THAT BAI! \n");
printf("\nDE NGHI HUAN LUYEN LAI! \n");
break;
}
/*-----------------------------------------------------------------------
-
Ten Thu tuc: DAPUNGDAURA
Mo ta: TINH CAC DAU RA LOP AN, y, VA DAU RA LOP RA, z, TU DAU
VAO LOPA VAO, x.
Cac dau vao: VEC-TO DAU VAO x[i]
Gia tri tra ve: KHONG CO
------------------------------------------------------------------------
*/
for(i=0;i<SLNRLV;i++)
x[i] = (float)afer[i];
for(j=0;j<SLNRLA;j++)
{
totin = 0;
for(i=0;i<SLNRLV;i++)
totin = totin + x[i]*MTTSLA[i][j];
139
Luận án Tiến sĩ Kỹ thuật 2013
y[j] = SIGMF(totin);
}
for(j=0;j<SLNRLR;j++)
{
totin = 0;
for(i=0;i<SLNRLA;i++)
totin = totin + y[i]*MTTSLR[i][j];
z[j] = SIGMF(totin);
}
}
/*-----------------------------------------------------------------------
Ten Ham: TB_BINHPHUONGSAISO
Mo ta: TINH BINH PHUONG SAI SO DAU RA CUA MANG THEO VEC-TO DAU
RA VA VEC-TO DICH
Cac dau vao: 1. VEC-TO DAU RA MONG MUON DRMM[i],
2. VEC-TO DAU RA CU LOP RA z[i],
3. SO LUONG NO-RON CUA LAOP DAU RA, SLNRLR
Gia tri tra ve: TRUNG BINH BINH PHUONG SAI SO DAU RA CUA LOP RA
------------------------------------------------------------------------
*/
for(i=0;i<SIZE;i++)
e = e + ((float)a[i] - b[i])*(a[i] - b[i]);
e = 0.5 * e;
return e;
}
/*-----------------------------------------------------------------------
-
Ten Thu tuc: SAISODAURA
Mo ta: TINH SAI SO DAU RA CUA MANG THEO VEC-TO DAU RA VA VEC-TO
DICH
1. VEC-TO DAU RA MONG MUON DRMM[i],
2. VEC-TO DAU RA CU LOP RA z[i],
Cac dau vao: SO THU TU MAU
Gia tri tra ve: KHONG CO
------------------------------------------------------------------------
*/
void SAISODAURA(int i)
{
int j;
for(j=0;j<SLNRLR;j++)
SSLR[j] = 0;
for(j=0;j<SLNRLR;j++)
SSLR[j] = z[j] - (float)DRMM[i][j];
}
/*-----------------------------------------------------------------------
Ten Thu tuc: SAISOLOPAN
Mo ta: TINH SAI SO DAU RA CUA LOP AN THEO SAI SO LOP RA VA DAO
HAM CUA SIGMF
Cac dau vao: KHONG CO
Gia tri tra ve: KHONG CO
-----------------------------------------------------------------------*/
140
Luận án Tiến sĩ Kỹ thuật 2013
void SAISOLOPAN()
{
int i,j;
for(i=0;i<SLNRLA;i++)
SSLA[i] = 0;
for(i=0;i<SLNRLA;i++)
for(j=0;j<SLNRLR;j++)
SSLA[i] = SSLA[i] + MTTSLR[i][j]*z[j]*(1-z[j])*SSLR[j];
}
/*-------------------------------------------------------------------
Ten Thu tuc: DIEUCHINHTRONGSO
Mo ta: CAP NHAT MA TRAN TRONG SO LOP AN VA LOP RA
Cac dau vao: SO THU TU MAU
Gia tri tra ve: KHONG CO
----------------------------------------------------------------------*/
void DIEUCHINHTRONGSO(int k)
{
int i,j;
float temp;
SAISODAURA(k);
SAISOLOPAN();
for(i=0;i<SLNRLA;i++)
{
for(j=0;j<SLNRLR;j++)
{
temp = -TOCDOHOC*y[i]*z[j]*(1-z[j])*SSLR[j];
MTTSLR[i][j] = MTTSLR[i][j] + temp +
QUANTINH*BTMTTSLR[i][j];
BTMTTSLR[i][j] = temp;
}
}
for(i=0;i<SLNRLV;i++)
{
for(j=0;j<SLNRLA;j++)
{
temp = -TOCDOHOC*x[i]*y[j]*(1-y[j])*SSLA[j];
MTTSLA[i][j] = MTTSLA[i][j] + temp +
QUANTINH*BTMTTSLA[i][j];
BTMTTSLA[i][j] = temp;
}
}
}
/*----------------------------------------------------------------------
Ten Thu tuc: HAMMUCTIEU
Mo ta: TINH BINH PHUONG SAI SO DAU RA CUA MANG THEO VEC-TO DAU
RA VA VEC-TO DICH
Cac dau vao: KHONG CO
Gia tri tra ve: KHONG CO
---------------------------------------------------------------------*/
void HAMMUCTIEU()
{
int i;
141
Luận án Tiến sĩ Kỹ thuật 2013
for(i=0;i<SLMHL;i++)
{
DAPUNGDAURA(TAPHUANLUYEN[i]);
ECM[i]=TB_BINHPHUONGSAISO(DRMM[i],z,SLNRLR);
}
}
/*----------------------------------------------------------------------
Ten Thu tuc: KIEMTRAMANG
Mo ta: NGUOI SU DUNG NHAP MA TRAN DAU VAO, TINH TOAN DAP UNG
DAU RA CUA MANG
Cac dau vao: KHONG CO
Gia tri tra ve: KHONG CO
------------------------------------------------------------------------
*/
void KIEMTRAMANG()
{
int i,j,t,ind;
float temp;
float tempz1[SLNRLR];
float tempz2[3];
ind=0;
for(;;)
{
printf("\n\nXIN MOI DUA VEC-TO DAU VAO DE KIEM TRA
MANG\n\n");
for(i=0;i<7;i++)
{
for(j=0;j<5;j++)
scanf("%d",&MTDVKT[j*7+i]);
printf("\n");
}
printf("\n\nDAP UNG DAU RA CUA MANG:\n");
DAPUNGDAURA(MTDVKT);
for(i=0;i<SLNRLR;i++)
printf("\nNO-RON %d, Z = %f",i,z[i]);
for(i=0;i<SLNRLR;i++)
tempz1[i]=z[i];
printf("\n\nBA DAU RA CO DAP UNG CAO NHAT UNG VOI VEC-TO DAU
VAO:\n");
for(t=0;t<3;t++)
{
temp=0;
ind=0;
for(i=0;i<SLNRLR;i++)
if(temp<=tempz1[i])
{
temp=tempz1[i];
ind=i;
}
tempz2[t]=temp;
printf("\nDAU RA THU %d LA %3.0f%%",ind,
tempz2[t]*100);
tempz1[ind]=0;
}
temp=z[0];
ind=0;
142
Luận án Tiến sĩ Kỹ thuật 2013
for(i=0;i<SLNRLR;i++)
if(temp<=z[i])
{
temp=z[i];
ind=i;
}
printf("\n\nKET LUAN CUA MANG NO-RON:\n");
printf("\nVEC-TO DAU VAO MANG LA MA CUA KY TU:
%d",ind);
}
}
/*----------------------------------------------------------------------
Ten Thu tuc: MATRANTRONGSOLOPAN
Mo ta: IN MA TRAN TRONG SO LOP AN RA MAN HINH
Cac dau vao: KHONG CO
Gia tri tra ve: KHONG CO
------------------------------------------------------------------------
*/
void MATRANTRONGSOLOPAN()
{
int i,j;
printf("\n\nMA TRAN TRONG SO LOP AN MTTSLA[slnrlv][slnrla]:\n\n");
for(i=0;i<SLNRLV;i++)
{
for(j=0;j<SLNRLA;j++)
{
if(MTTSLA[i][j]>=0)
printf("+%f ",MTTSLA[i][j]);
else
printf("%f ",MTTSLA[i][j]);
}
printf("\n");
}
}
/*----------------------------------------------------------------------
Ten Thu tuc: MATRANTRONGSOLOPRA
Mo ta: IN MA TRAN TRONG SO LOP RA RA MAN HINH
Cac dau vao: KHONG CO
Gia tri tra ve: KHONG CO
---------------------------------------------------------------------*/
void MATRANTRONGSOLOPRA()
{
int i,j;
printf("\n\nMA TRAN TRONG SO LOP RA MTTSLR[slnrla][slnrlr]:\n\n");
for(j=0;j<SLNRLR;j++)
{
for(i=0;i<SLNRLA;i++)
{
if(MTTSLR[i][j]>=0)
printf("+%f ",MTTSLR[i][j]);
else
printf("%f ",MTTSLR[i][j]);
}
printf("\n");
}
}
143
Luận án Tiến sĩ Kỹ thuật 2013
KHOITAOMANG();
printf("*******************************************\n\n");
printf("* CHUONG TRINH HUAN LUYEN MANG NO-RON *\n\n");
printf("* BUOC HOC TINH THEO NGUYEN LY VUOT KHE *\n\n");
printf("*******************************************\n\n");
/*
printf("/Vao\\ /~~~~Lop an~~~~\\ /~~~~~Lop ra~~~~~\\\n");
printf(" -- ------- ---- --------- ---- \n");
printf("| | | | | |Y | | | | Z\n");
printf("|X |->| W11 |->| f1 |->| W21 |->| f2 |-->\n");
printf("| | | (35x5)| | | | (5x10) | | |\n");
printf("| | | | | | | | | |\n");
printf(" -- ------- ---- --------- ---- \n");
printf("\\35/ \\__Y=f1(W11.X)__/ \\__Z=f1(W11.X)___/ \n\n");
printf(" f=sigm(net) \n\n");
printf("\nSU DUNG MANG: TRUOC KHI HOC, t, SAU KHI HOC, s.\n");
SDM = getchar();
if(SDM=='t')
KIEMTRAMANG();// SU DUNG MANG TRUOC KHI HUAN LUYEN
else if(SDM=='s')
{
printf("\n\nLUA CHON LOAI BUOC HOC\n");
printf("\nCO DINH: c, GIAM DAN: g, NGUYEN LY VUOT KHE:
v\n\n");
c = getchar();
}
LCBH = getchar();
switch(LCBH)
{
case 'c':
HUANLUYENCODINH();
break;
case 'g':
HUANLUYENGIAMDAN();
break;
case 'v':
HUANLUYENVUOTKHE();
break;
}
*/
HUANLUYENVUOTKHE();
if(HTHL==1)//NEU MANG DA DUOC HUAN LUYEN XONG
{
MATRANTRONGSOLOPAN();
MATRANTRONGSOLOPRA();
// KIEMTRAMANG();
}
144