1
HC VIN CÔNG NGH BƯU CHÍNH VIN THÔNG
----------------------------
T MINH PHƯƠNG
GIÁO TRÌNH
Nhp môn
trí tu nhân to
ni 2015
Downloaded by viet jack (vietjackteam@gmail.com)
2
LI NÓI ĐẦU
Trí tu nhân to mt lĩnh vc ca khoa hc y tính vi mc tiêu nghiên cu xây
dng ng dng các h thng thông minh nhân to. Đây mt trong nhng lĩnh vc được
quan m nghiên cu nhiu nht ca khoa hc máy tính hin nay vi nhiu kết qu ng dng
rng rãi.
Môn hc Nhp môn trí tu nhân to là môn hc mang tính chuyên ngành trong chương
trình đào to công ngh thông tin h đại hc. Mc tiêu ca môn hc nhm giúp sinh viên làm
quen vi khái nim trí tu nhân to thông qua vic gii thiu mt s k thut ng dng c
th. Vi vic hc v trí tu nhân to, mt mt, sinh viên s được làm quen vi nhng phương
pháp, cách gii quyết vn đề không thuc lĩnh vc toán ri rc hoc gii thut truyn thng,
chng hn các phương pháp da trên heuristics, các phương pháp da trên tri thc, d liu.
Mt khác, sinh viên s được làm quen vi kh năng ng dng tim tàng các k thut ttu
nhân to trong nhiu bài toán thc tế.
Do trí tu nhân to hin đã phát trin thành mt lĩnh vc rng vi khá nhiu lĩnh vc
chuyên sâu, vic la chn các ni dung để gii thiu cho sinh viên là vn đề không đơn gin.
Trong tài liu này, các ni dung được la chn hoc là nhng ni dung có tính tiêu biu, kinh
đin ca trí tu nhân to như biu din tri thc bng logic, các phương pháp tìm kiếm, hoc
nhng k thut nhiu ng dng và đang có tính thi s hin nay, tiêu biu là phương pháp
suy din xác sut và các k thut hc máy.
Trong khuôn kh hn ca tài liu vi tính cht là giáo trình, phn gii thiu v vic
s dng k thut trí tu nhân to trong ng dng c th không đưc trình y nhiu. Chúng
tôi dành phn la chn ng dng c th cho ging viên trong quá trình lên lp hướng dn
sinh viên. Tùy điu kin, ging viên có th la chn trong danh mc ng dng rt phong phú
để gii thiu và minh ha cho các ni dung ca tài liu.
Ni dung tài liu đưc trình y thành năm chương.
Chương 1 là phn gii thiu tng quan v trí tu nhân to bao gm khái nim, lch s
hình thành, sơ lược v nhng k thut và ng dng tiêu biu. Ni dung chương không đi quá
u vào vic định nghĩa chính xác trí tu nhân to gì, thay vào đó, người đọc được gii
thiu v nhng lĩnh vc nghiên cu chuyên sâu lch s phát trin, trước khi làm quen vi
ni dung c th trong các chương sau.
Chương 2 trình bày cách gii quyết vn đề bng phương pháp tìm kiếm. Các phương
pháp tìm kiếm bao gm: tìm kiếm mù, tìm kiếm thông tin, tìm kiếm cc b. Khác vi
mt s tài liu khác v trí tu nhân to, ni dung v tìm kiếm đối th không được đề cp
đến trong tài liu này. Mt s ni dung như gii thut di truyn có th b qua trong phn nhp
môn và dùng để tham kho do tương đối phc tp so vi các k thut khác.
Chương 3 tóm tt v vn đề s dng, biu din tri thc lp lun, trưc khi đi sâu
trình y v biu din tri thc lp lun s dng logic. Trong hai h thng logic đưc trình
bày là logic mnh đề và logic v t, ni dung chương được dành nhiu hơn cho logic v t. Do
ni dung v lp trình logic hin không còn ng dng nhiu, chúng tôi không gii thiu v vn
đề lp trình và xây dng ng dng c th đây.
Downloaded by viet jack (vietjackteam@gmail.com)
3
Chương 4 là m rng ca biu din tri thc và lp lun vi vic s dng nguyên tc suy
din xác sut và mng Bayes. Sau khi trình bày v s cn thiết ca lp lun trong điu kin
không ràng cùng vi nguyên tc lp lun xác sut, phn chính ca chương tp trung vào
khái nim cùng vi ng dng mng Bayes trong biu din tri thc và lp lun.
Chương 5 chương nhp môn v hc y. Trong chương này, ngưi đọc được làm
quen vi khái nim, nguyên tc ng dng ca hc máy. Trong phm vi chương cũng trình
y bn k thut hc máy dùng cho phân loi cây quyết định, phân loi Bayes, phân loi
da trên ví d hi quy logistic, cùng vi mt s k thut đánh giá mô hình và la chn đặc
trưng. Đây là nhng phương pháp đơn gin, d gii thiu, thun tin để trình bày vi tính cht
nhp môn. Đng thi, đây cũng nhng phương pháp tính đại din trong hc máy, cn
thiết cho người nghiên cu v lĩnh vc này. Do ưu đim s ph biến ca Support Vector
Machines, phương pháp phân loi này cũng đưc gii thiu, nhưng mc tóm tt, không đi
o chi tiết để phù hp vi trình độ nhp môn.
Tài liu được biên son t kinh nghim ging dy hc phn Nhp môn trí tu nhân to
ca tác gi ti Hc vin Công ngh bưu chính vin thông, trên cơ s tiếp thu phn hi t sinh
viên đồng nghip. Tài liu th s dng làm tài liu hc tp cho sinh viên đại hc ngành
công ngh thông tin các ngành liên quan, ngi ra có th s dng vi mc đích tham kho
cho nhng người quan tâm ti trí tu nhân to.
Trong quá trình biên son tài liu, mc tác gi đã có nhiu c gng song không th
tránh khi nhng thiếu sót. Ngoài ra, trí tu nn to mt lĩnh vc rng, đang tiến b rt
nhanh ca khoa hc máy tính đòi hi tài liu phi đưc cp nht thường xuyên. Tác gi rt
mong mun nhn đưc ý kiến phn hi, góp ý cho các thiếu sót cũng như ý kiến v vic cp
nht, hoàn thin ni dung ca tài liu.
Hà ni 12/2014
Tác gi
Downloaded by viet jack (vietjackteam@gmail.com)
4
Mc lc
CHƯƠNG 1: GII THIU CHUNG ...................................................................................... 7
1.1. KHÁI NIM TRÍ TU NHÂN TO ............................................................................. 7
1.2. LCH S HÌNH THÀNH VÀ PHÁT TRIN .............................................................. 10
1.3. CÁC LĨNH VC NGHIÊN CU VÀ NG DNG CHÍNH ..................................... 14
1.3.1. c lĩnh vc nghiên cu ............................................................................................ 14
1.3.2. Mt s ng dng và thành tu ................................................................................... 18
1.3.3. Nhng vn đề chưa đưc gii quyết .......................................................................... 20
CHƯƠNG 2: GII QUYT VN ĐỀ BNG TÌM KIM .................................................. 23
2.1. GII QUYT VN ĐỀ KHOA HC TRÍ TU NHÂN TO ............................. 23
2.2. BÀI TOÁN TÌM KIM TRONG KHÔNG GIAN TRNG THÁI ............................. 24
2.2.1. Phát biu bài toán tìm kiếm ....................................................................................... 24
2.2.2. Mt s ví d ............................................................................................................... 25
2.2.3. Thut toán tìm kiếm tng quát và cây tìm kiếm ........................................................ 28
2.2.4. c tiêu chun đánh giá thut toán tìm kiếm ............................................................. 31
2.3. TÌM KIM KHÔNG CÓ THÔNG TIN (TÌM KIM MÙ) .......................................... 32
2.3.1. Tìm kiếm theo chiu rng .......................................................................................... 32
2.3.2. Tìm kiếm theo giá thành thng nht .......................................................................... 36
2.3.3. Tìm kiếm theo chiu sâu ............................................................................................ 37
2.3.4. Tìm kiếm sâu dn ...................................................................................................... 39
2.3.5. Tìm theo hai hướng ................................................................................................... 43
2.4. TÌM KIM CÓ THÔNG TIN ....................................................................................... 44
2.4.1. Tìm kiếm tham lam .................................................................................................... 45
2.4.2. Thut toán A* ............................................................................................................ 47
2.4.3. c hàm heuristic ...................................................................................................... 49
2.4.4. Thut toán IDA* (thut tn A* sâu dn) ................................................................. 51
2.5. TÌM KIM CC B .................................................................................................... 53
2.5.1. Thut toán leo đồi ...................................................................................................... 55
2.5.2. Thut toán tôi thép ..................................................................................................... 60
2.5.3. Gii thut di truyn .................................................................................................... 62
2.5.4. Mt s thut toán tìm kiếm cc b khác .................................................................... 70
2.6. NG DNG MINH HO ............................................................................................ 71
2.7. CÂU HI VÀ BÀI TP CHƯƠNG ............................................................................ 74
CHƯƠNG 3: BIU DIN TRI THC VÀ LP LUN LOGIC ......................................... 77
3.1. S CN THIT S DNG TRI THC TRONG GII QUYT VN ĐỀ .............. 77
3.2. LOGIC MNH ĐỀ ....................................................................................................... 79
3.2.1. Cú pháp ...................................................................................................................... 79
3.2.2. Ng nghĩa .................................................................................................................. 80
3.3. SUY DIN VI LOGIC MNH Đ ........................................................................... 81
3.3.1. Suy din logic ............................................................................................................ 81
3.3.2. Suy din s dng bng chân lý .................................................................................. 82
3.3.3. S dng các quy tc suy din .................................................................................... 83
Downloaded by viet jack (vietjackteam@gmail.com)
5
3.4. LOGIC V T (LOGIC BC 1) .................................................................................. 86
3.4.1. Đặc đim .................................................................................................................... 86
3.4.2. Cú pháp và ng nghĩa ................................................................................................ 86
3.5. SUY DIN VI LOGIC V T ................................................................................... 92
3.5.1. Quy tc suy din ........................................................................................................ 92
3.5.2. Suy din tiến và suy din lùi ...................................................................................... 97
3.5.3. Suy din s dng phép gii ..................................................................................... 100
3.5.4. H thng suy din t động: lp trình logic .............................................................. 106
3.6. CÂU HI VÀ BÀI TP CHƯƠNG .......................................................................... 106
CHƯƠNG 4: LP LUN XÁC SUT .............................................................................. 110
4.1. VN ĐỀ THÔNG TIN KHÔNG CHC CHN KHI LP LUN .......................... 110
4.2. NGUYÊN TC LP LUN XÁC SUT ................................................................. 111
4.3. MT S KHÁI NIM V XÁC SUT .................................................................... 112
4.3.1. c tiên đềc sut ................................................................................................. 112
4.3.2. Xác sut đồng thi ................................................................................................... 115
4.3.3. Xác sut điu kin .................................................................................................... 116
4.3.4. Tính độc lp xác sut ............................................................................................... 118
4.3.5. Quy tc Bayes .......................................................................................................... 119
4.4. MNG BAYES .......................................................................................................... 121
4.4.1. Khái nim mng Bayes ............................................................................................ 122
4.4.2. Tính độc lp xác sut trong mng Bayes ................................................................. 123
4.4.3. ch xây dng mng Bayes .................................................................................... 125
4.4.4. Tính độc lp xác sut tng quát: khái nim d-phân cách ......................................... 127
4.5. SUY DIN VI MNG BAYES .............................................................................. 130
4.5.1. Suy din da trên c sut đồng thi ....................................................................... 130
4.5.2. Độ phc tp ca suy din trên mng Bayes ............................................................. 131
4.5.3. Suy din cho trưng hp riêng đơn gin ................................................................. 132
4.5.4. Suy din bng phương pp ly mu ...................................................................... 134
4.5.5. Phương pháp loi tr biến ....................................................................................... 139
4.6. NG DNG SUY DIN XÁC SUT ....................................................................... 146
4.7. CÂU HI VÀ BÀI TP CHƯƠNG .......................................................................... 150
CHƯƠNG 5: HC MÁY .................................................................................................... 153
5.1. KHÁI NIM HC MÁY ........................................................................................... 153
5.1.1. Hc máy là gì ........................................................................................................... 153
5.1.2. ng dng ca hc máy ............................................................................................ 154
5.1.3. Các dng hc máy .................................................................................................... 155
5.1.4. Hc có giám sát ....................................................................................................... 156
5.2. HC CÂY QUYT ĐỊNH ......................................................................................... 159
5.2.1. Khái nim cây quyết định ........................................................................................ 159
5.2.2. Thut toán hc cây quyết định ................................................................................. 161
5.2.3. Các đặc đim thut toán hc cây quyết định ........................................................... 166
5.2.4. Vn đề quá va d liu ............................................................................................ 167
5.2.5. S dng thuc tính có giá tr liên tc ....................................................................... 168
Downloaded by viet jack (vietjackteam@gmail.com)
6
5.2.6. S dng cách đánh giá thuc tính khác ................................................................... 169
5.3. PHÂN LOI BAYES ĐƠN GIN ............................................................................ 169
5.3.1. Phương pháp phân loi Bayes đơn gin .................................................................. 170
5.3.2. Vn đề tính xác sut trên thc tế ............................................................................. 172
5.3.3. Mt s mô hình phân bc sut ............................................................................ 173
5.3.4. ng dng trong phân loi văn bn t động ............................................................. 174
5.4. HC DA TRÊN VÍ D: THUT TOÁN K LÁNG GING GN NHT ............ 176
5.4.1. Nguyên tc chung .................................................................................................... 176
5.4.2. Phương pháp k-láng ging gn nht ........................................................................ 176
5.4.3. Mt s lưu ý vi thut toán k-NN ........................................................................... 179
5.5. HI QUY TUYN TÍNH VÀ HI QUY LOGISTIC ............................................... 180
5.5.1. Hi quy tuyến tính ................................................................................................... 180
5.5.2. Hi quy logistic ....................................................................................................... 185
5.5.3. Hi quy logistic cho phân loi đa lp ...................................................................... 188
5.6. SUPPORT VECTOR MACHINES ............................................................................ 190
5.6.1. Phân loi tuyến tính vi l cc đại .......................................................................... 190
5.6.2. K thut hàm nhân và SVM tng quát .................................................................... 194
5.6.3. S dng trên thc tế ................................................................................................. 197
5.7. ĐÁNH GIÁ VÀ LA CHN HÌNH .................................................................. 198
5.7.1. Các độ đo s dng trong đánh giá ........................................................................... 198
5.7.2. Đánh giá mô hình bng kim tra chéo ..................................................................... 200
5.7.3. La chn đặc trưng .................................................................................................. 201
5.8. SƠ LƯỢC V MT S PHƯƠNG PHÁP HC MÁY KHÁC ................................ 203
5.9. CÂU HI VÀ BÀI TP CHƯƠNG .......................................................................... 205
TÀI LIU THAM KHO ...................................................................................................... 207
Downloaded by viet jack (vietjackteam@gmail.com)
CHƯƠNG 1: GII THIU CHUNG
Trong chương này, ta s làm quen vi định nghĩa mt s khái nim chung v trí tu
nhân to như mt lĩnh vc nghiên cu đang phát trin nhanh và có nhiu ng dng ca ngành
khoa hc y tính và công ngh thông tin. Trong phm vi chương, ta s xem xét khái nim trí
tu nhân to, các quan đim và cách tiếp cn đối vi lĩnh vc này qua tng thi k ca lch s
hình thành phát trin. Do trí tu nhân to lĩnh vc tương đối rng, phn tiếp theo ca
chương s tóm tt các lĩnh vc nghiên cu chính, cũng như mt s ng dng và thành tu
quan trng nhm giúp người đọc cái nhìn chung v phm vi kh năng ca ttu nhân
to. Cui cùng, mt s bài toán quan trng ca trí tu nhân to hin chưa đưc gii quyết trit
để cũng được đề cp để làm rõ hơn hin trng nghiên cu trong lĩnh vc này.
1.1. KHÁI NIM TRÍ TU NHÂN TO
Trí tu nhân to (TTNT) là mt lĩnh vc nghiên cu ca khoa hc máy tính và khoa hc
tính tn nói chung. nhiu quan đim khác nhau v trí tu nhân to do vy nhiu
định nghĩa khác nhau v lĩnh vc khoa hc này.
Mc đích ca trí tu nhân to xây dng các thc th thông minh. Tuy nhiên, do rt
khó định nghĩa thế nào thc th tng minh n cũng khó thng nht định nghĩa trí tu
nhân to. Theo mt tài liu được s dng rng rãi trong ging dy trí tu nhân to hin nay,
các định nghĩa th nhóm thành bn nhóm kc nhau, theo đó, trí tu nhân to lĩnh vc
nghiên cu vic xây dng các h thng máy tính có đặc đim sau:
1) H thng hành động như ngưi.
2) H thng có th suy nghĩ như ngưi
3) H thng có th suy nghĩ hp lý
4) H thng hành động hp lý
Trong s các định nghĩa trên, nhóm th hai ba quan tâm ti quá trình suy nghĩ và tư
duy, trong khi nhóm th nht và th tư quan tâm ch yếu ti hành vi. Ngoài ra, hai nhóm định
nghĩa đầu xác định mc độ thông minh hay mc độ trí tu bng cách so sánh vi kh năng
suy nghĩ hành động ca con người, trong khi hai nhóm định nghĩa sau da trên khái nim
suy nghĩ hp lý hành động hp lý. Trong phn phân tích bên dưới ta s thy suy nghĩ
hành động hp lý khác vi suy nghĩ và hành động như người thế nào.
Sau đây ta s xem xét c th các nhóm định nghĩa trên.
1) Hành động như người
Do con người đưc coi là động vt có trí tu, nên mt cách rt t nhiên là ly con người
m thưc đo khi đánh giá mc độ thông minh ca máy tính.
Theo cách định nghĩa này, trí tu nhân to nhm to ra các h thng có hành vi hay hành
động tương t con người, đặc bit trong nhng hot động có liên quan ti trí tu. Để xác định
thế nào là hành động như người, có th s dng phép th Turing.
Phép th Turing (Turing test): Vào năm 1950, Alan Turing – nhà toán hc người Anh
nhiu đóng góp cho khoa hc máy tính đã xây dng th tc cho phép định nghĩa ttu.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
8
Th tc này sau đó được gi là phép th Turing (Turing test), đưc thc hin như sau. H
thng được gi thông minh, hay trí tu nếu h thng th hành động tương t con
người trong các công vic đòi hi trí tu. Trong quá trình th, mt ngưi kim tra s đặt các
câu hi (dưi dng văn bn) nhn câu tr li cũng dưới dng văn bn t h thng, tương t
khi ta chat hay nhn tin. Nếu người kim tra không phân bit được câu tr li là do ngưi tht
tr li hay do máy sinh ra thì h thng qua được phép thđược gi là có trí tu.
Cn lưu ý rng, phép th Turing nguyên bn không đòi hi s tiếp xúc vt lý trc
tiếp gia người kim tra h thng b kim tra, do vic to ra h thng người nhân to mt
cách vt lý được coi là không liên quan ti trí tu.
Để qua được phép th Turing, h thng cn có nhng kh năng sau:
- X lý ngôn ng t nhiên: để th phân tích, hiu câu hi tng hp câu tr li trên
mt ngôn ng giao tiếp thông thưng như tiếng Vit hay tiếng Anh.
- Biu din tri thc: phc v vic lưu tri thc và thông tin trong h thng.
- Suy din: s dng tri thc để tr li câu hi.
- Hc máy: để có th thích nghi vi hoàn cnh và hc nhng mu tr li.
Trong lch s trí tu nhân to đã nhng h thng như ELIZA được xây dng nhm
mc đích vượt qua phép th Turing mà không cn đầy đủ ti c bn kh năng trên.
Mc không nhiu người coi mc đích cnh ca trí tu nhân to là vưt qua phép th
Turing, mt s h thng đã xây dng chuyên cho mc đích y. Gn đây nht, vào tháng 6
năm 2014, mt h thng chat t động có tên là Eugene Goostman do mt nhóm nghiên cu
người Nga xây dng đã giành gii nht trong cuc thi phép th Turing. Sau khi thc hin mt
đon hi thoi dài 5 phút vi h thng, 33% giám kho cho rng đó ngưi thc. Mt s ý
kiến cho rng Eugene Goostman là h thng máy tính đầu tiên vượt qua phép th Turing.
2) Suy nghĩ như người
Theo nhóm định nghĩa y, nh động thông minh ch đạt được nếu được dn dt bi
quá trình suy nghĩ tương t quá trình suy nghĩ ca con người.
Nhng nghiên cu theo hướng này da trên vic nghiên cu quá trình nhn thc tư
duy ca con người, t đây hình hóa to ra nhng h thng mô hình nhn thc, tư
duy tương t. Vic tìm hiu quá trình nhn thc, tư duy ca người th thc hin theo mt
s phương pháp như: 1) thc nghim v hành vi con ngưi khi suy nghĩ hoc gii quyết vn
đề; 2) chp nh sóng não, đo tín hiu đin t hoc các tín hiu khác ca não trong quá trình
thc hin c công vic khác nhau; 3) s dng các phương pháp nơ ron sinh hc khác như
ch thích não, gii phu não v.v.
Mt h thng trí tu nhân to dng này là h thng GPS, viết tt ca General Problem
Solver do Newell và Simon trình din năm 1961. GPS là chương trình máy tính cho phép gii
quyết các bài toán bng cách phng chui suy nghĩ ca con người khi gii quyết nhng
bài toán như vy.
Hin nay, hướng nghiên cu này được thc hin trong khuôn kh khoa hc nhn thc
(cognitive science). Đây lính vc khoa hc liên ngành, kết hp các nh máy tính vi
phương pháp thc nghim tâm lý. Nhiu kết qu nghiên cu v nhn thc đã được áp dng
trong các hình tính toán. d, nhiu nghiên cu v quá trình tiếp nhn tín hiu nh
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
9
nhn dng đối tượng đã được áp dng trong lĩnh vc th giác y. Hay, gn đây, mt s
nghiên cu v vic thiết kế các vi mch cu trúc da trên h thn kinh ca người
(neuromorphic chips) đã cho kết qu tt trong các i toán hc máy hoc x lý lượng khi
lượng d liu ln.
3) Suy nghĩ hp lý
Thc tế cho thy con ngưi b chi phi bi tâm lý, cm xúc. Do vy, không phi lúc nào
con người cũng suy nghĩ hành động theo hưng đạt ti kết qu tt. T đây xut hin cách
tiếp cn theo hướng xây dng các h thng cho phép đạt ti kết qu tt không cn hc
theo con ngưi. Cách tiếp cn này được gi là suy nghĩ hp lý và hành động hp lý. Trước hết
suy nghĩ hp lý.
Mt cách tiếp cn tiêu biu ca suy nghĩ hp lý xây dng nhng h thng kh
năng lp lun da trên vic s dng các h thng hình thc như logic. Tin thân ca cách tiếp
cn này có gc r t triết hc Hy lp do Aristot khi xướng. Cơ s ch yếu s dng logic
để biu din bài toán gii quyết bng suy din logic. Mt s h thng logic cho phép biu
din mi loi đối tưng quan h gia c đối tượng đó. Sau khi đã biu din dưới dng
logic, có th xây dng chương trình để gii quyết các bài toán v suy din và lp lun.
Khó khăn ch yếu ca cách tiếp cn y là vic mô t hay biu din bài toán dưi dng
các cu trúc logic để th gii quyết đưc. Trên thc tế, tri thc thông tin v bài toán
thường yếu t không đầy đủ, không cnh c. Ngi ra, vic suy din logic đòi hi khi
lượng tính toán ln khi s dng trong thc tế rt khó để trin khai cho các bài toán thc.
4) Hành động hp lý
ch tiếp cn này tp trung vào vic xây dng các tác t (agent) có kh năng hành động
hp lý, tc hành động đ đem li kết qu tt nht hoc kết qu k vng tt nht khi yếu
t không chc chn. Cn lưu ý rng, nh động hp lý th khác vi hành động ging con
người: con người không phi lúc o cũng nh động hp lý do b chi phi bi các yếu t ch
quan.
Mt đặc đim quan trng ca hành động hp lý hành động kiu này th da trên
vic suy nghĩ (suy lun) hp lý hoc không. Trong mt s trường hp, để quyết định hành
động thế nào, cn da trên vic suy lun hp lý. Tuy nhiên, trong nhiu tình hung, vic hành
động theo phn x, chng hn khi gp nguy him, không đòi hi suy din phc tp, nhưng li
cho kết qu tt hơn. c h thng hành động hp lý th s dng c hai cách tiếp cn da
trên suy din và da trên phn x để đạt đưc kết qu tt.
H thng có kh năng hành động hp lý có th bao gm suy din hoc không, th
da trên cách suy nghĩ ging ngưi hoc không, có th bao gm c các k thut dùng để vượt
qua phép th Turing. Do vy, cách tiếp cn này được coi tng quát bao gm c cách
tiếp cn khác. Hin có nhiu ý kiến coi h thng trí tu nhân to làc h thng dng này.
Tóm tt
c phân tích trên cho thy mt s cách tiếp cn chính trong định nghĩa trí tu nhân
to:
- Ly con người làm tiêu chun, nghiên cu tâm lý thn kinh hc để mô phng nhn
thc con người, da trên đó xây dng h thng trí tu nhân to.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
10
- Ly kết qu làm tiêu chun, không nht thiết phi xây dng h thng mô phng người.
- Ly hành vi hành động làm mc đích, th quá trình lp lun để hướng dn
nh động hoc không.
1.2. LCH S HÌNH THÀNH VÀ PHÁT TRIN
Lch s hình thành phát trin trí tu nhân to có th chia thành mt s giai đon sau
(các giai đon được chia theo mc độ phát trin và có th giao nhau v thi gian):
a. Giai đon tin khi đầu (1943-1955)
Mc chưa khái nim chính thc v trí tu nhân to, giai đon này ghi nhn mt s
kết qu có liên quan trc tiếp ti nghiên cu v trí tu nhân to sau này:
- Năm 1943, Warren McCulloch Walter Pitts t hình mng nơ ron nhân to
đầu tiên, cho thy mng nơ ron nhân to kh năng biu din nhiu hàm s toán
hc.
- Năm 1950, Alan Turing công b bài báo nhc ti trí tu máy, trong đó ln đầu tiên mô
t khái nim phép th Turing, hc máy, thut toán di truyn, hc tăng cường.
- Năm 1956 được coi là năm chính thc ra đời ca khái nim trí tu nhân to. Mười nhà
nghiên cu tr đã t chc mt cuc hi tho o dài hai tháng ti trường đạt hc
Dartmouth vi mc đích đặt nn móng đu tiên cùng vi tên gi chính thc ca trí tu
nhân to: “artificial intelligence. Đa s nhng ngưi tham gia hi tho này, bao gm
John McCarthy, Marvin Minsky, Allen Newell, Herbert Simon, sau đó đã tr thành
nhng chuyên gia tiên phong trong các nghiên cu v ttu nhân to. Đim quan
trng nht ca hi tho y là đưa ra mt s đ xut và hình dung v trí tu nhân to.
c đề xut này vưt ra ngoài khuôn kh các lĩnh vc nghiên cu đã hình thành trưc
đó như lý thuyết điu khin, vn trù hc, lý thuyết ra quyết định. Chính các đề xut
mi này đã đưa trí tu nhân to thành mt lĩnh vc khoa hc mi vi đối tưng
phương pháp nghiên cu riêng ca mình.
b. Giai đon khi đầu (1952-1969)
Đây giai đon vi nhiu thành tích nht định ca các nghiên cu trí tu nhân to,
được th hin qua mt s d sau:
- c chương trình Logic Theorist sau đó General Problem Solver (GPS) ca
Newell và Simon, có kh năng chng minh định lý toán hc theo cách tương t tư duy
ca con người. Chng hn, trong lp bài toán mà GPS th gii quyết, vic chia bài
toán thành các bài toán con th t các bưc gii đưc tiến nh tương t vi con
người khi gii quyết cùng bài toán. Chương trình Logic Theorist đã chng minh được
38 trong s 52 định lý t mt sách giáo khoa toán, trong đó có định lý v tam giác cân
được chng minh theo cách ngn hơn cách truyn thng.
- Năm 1952, Arthur Samuel xây dng mt s chương trình chơi c đam (checkers).
Chương trình có kh năng hc và đánh thng các đối th là người chơi c đam nghip
dư. Đim đặc bit ca chương trình này kh năng t hc t kinh nghim. Nh kh
năng hc, chương trình có th thng c người đã to ra nó.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
11
- Năm 1958, John McCarthy đề xut ngôn ng Lisp, sau này tr thành mt trong hai
ngôn ng thông dng nht ca trí tu nhân to.
- Cũng trong nhng năm này, Minsky khi xướng vic gii quyết nhng vn đề có min
gii hn hp và cn ti tri thc khi gii quyết. Các bài toán có min hp như vy được
gi thế gii nh (microworld). Chng hn, trong lĩnh vc hp v gii tích, chương
trình SAINT do James Slagle viết năm 1963 th gii các bài toán tích phân mc
độ sinh viên năm th nht đại hc.
- Mng nơ ron nhân to tiếp tc tiếp tc được phát trin vi mt s phát minh mi như
mng adalines ca Bernie Widrow (1962), Perceptron ca Rosenblatt (1962), cho phép
gii quyết nhiu i toán hc máy. Trong năm 1962, c nghiên cu đã chng minh
kh năng hc ca mng nơ ron, theo đó có th thay đổi trng s kết ni ca các nơ ron
để phù hp vi bt c thong tin đầu vào nào.
- Năm 1965, John Alan Robinson phát minh ra cách chng minh suy din bng cách
s dng phép gii cho logic v t. Đây phương pháp quan trng, cho phép chương
trình máy nh thc hin lp lun và suy din t động mt cách hiu qu trong trưng
hp tri thc được biu din bng logic.
c. Mt s khó khăn và giai đon trm lng
Sau mt s thành công ban đầu, đã có nhng d o lc quan v kh năng xây dng các
h thng thông minh trong tương lai gn. Mt s nhà khoa hc d o v kh năng to ra các
h thng thông minh trong vòng 10 ti i chc năm. Tuy nhiên, sau giai đon phát trin
mnh lúc đầu, vào đầu nhng năm by mươi, các nhà khoa hc bt đầu nhn ra mt s khó
khăn, đòi hi cách tiếp cn thc tế hơn khi nghiên cu trí tu nhân to.
Th nht, cách tiếp cn thi k đầu thưng s dng các biến đổi pháp đơn gin
không quan tâm ti tri thc v bài tn cn gii quyết. Ví d, khi xây dng các h thng dch
y, nhiu người k vng có nếu có t đin và biết cách lp ghép các t để to thành câu
th dch t động. Trong khi đó trên thc tế, để dch được, người dch cn có hiu biết nht
định v lĩnh vc được đề cp đến để th hin li ni dung cn dch trên ngôn ng đích. Các d
án dch t động t tiếng Nga sang tiếng Anh do B quc phòng M tài tr đã tht bi do cách
tiếp cn đơn gin lúc đầu.
Th hai, nhiu h thng trí tu nhân to thi k đầu s dng vic tìm kiếm các hành
động dn ti li gii. Vi bài toán kích thước nh, các k thut tìm kiếm đơn gin cho kết qu
tt. Tuy nhiên, khi kích thước bài toán tăng lên, s t hp cn xem xét tăng nhanh, vưt kh
năng x lý ca máy tính. Hiu ng này được gi là sbùng n t hpvà ch được quan tâm
đúng mc sau khi lý thuyết v độ phc tp tính toán ra đời.
Do các khó khăn nói trên, mt s báo cáo bi quan v trin vng trí tu nhân to đã được
trình lên chính ph các nước như M, Anh, dn ti vic c chính ph ngng cp kinh phí
nghiên cu cho lĩnh vc này. Đây cũng giai đon khó khăn trong lch s phát trin trí tu
nhân to, kéo dài trong khong 1974 – 1980. Giai đon này được gi là mùa đông trí tu nhân
to (AI winter), ly nguyên mu t khái nim mùa đông ht nhân, kết qu phng khí
hu trái đất lnh lo sau khi xy ra chiến tranh ht nhân.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
12
Mt giai đon th hai cũng được gi mùa đông trí tu nhân to giai đon 1987-
1993. Giai đon trì tr y gn vi s đi xung ca th trường c h chuyên gia tht bi
ca d án máy tính thế h năm do chính ph Nht Bn tài tr.
d. H thng da trên tri thc (1969-1979)
c chương trình trí tu nhân to xây dng trong giai đon trước mt s hn chế do
không có tri thc v lĩnh vc liên quan, do vy không th gii quyết nhng bài toán khó,
đòi hi khi lượng tính toán ln hoc nhiu tri thc chuyên sâu. Để khc phc, giai đon này
chú trng ti vic s dng nhiu tri thc, thông tin đặc thù cho lĩnh vc hp ca vn đề cn
gii quyết. Đin hình ca h thng da trên tri thc là các h chuyên gia (expert systems).
H chuyên gia là các h thng có kh năng ra quyết định tương t chuyên gia trong lĩnh
vc hp ca mình. H thng loi này được xây dng để gii quyết nhng vn đề phc tp
bng ch lp lun trên tri thc nhn được t các chuyên gia. Chng hn, mt bác sĩ chuyên
khoa gii th t các quy tc chn đn bnh trong chuyên khoa ca mình. Các quy tc
đó chính là tri thc cn thiết khi chn đoán bnh. Thông thường, tri thc được biu din dưi
dng các lut NếuThì…”. H chuyên gia thường gm cơ s tri thc cha các lut như vy
mô tơ suy din giúp tìm ra li gii t tri thc và thông tin v trưng hp đang có.
Sau đây là ví d mt s h thng như vy:
- DENDRAL (năm 1967) chương trình h chun gia xây dng ti trưng Stanford,
cho phép d đoán cu trúc pn t hu cơ. Chương trình làm vic da trên các lut do
chuyên gia trong lĩnh vc hóa hc vt lý cung cp.
- Mt trong các tác gi ca DENDRAL, sau đó đã cùng vi cng s y dng MYCIN
(1974), h chuyên gia cho phép chn đn bnh nhim trùng máu. Vi khong 450
lut do chuyên gia cung cp, h thng có cht lưng chn đoán tương đương bác sĩ
gii trong lĩnh vc này.
- Vic s dng tri thc cũng đưc s dng để gii quyết vn đề hiu ngôn ng t nhiên,
d trong h thng dch t động.
H chuyên gia cho phép gii quyết mt phn hn chế ca c h thng đơn gin không
da trên tri thc trước đó. Mt s h chuyên gia đã được thương mi hoá đem li doanh
thu cho lĩnh vc trí tu nhân to.
Cũng trong giai đon này, o năm 1972 Alain Colmerauer đã phát trin ngôn ng
Prolog (viết tt ca logic programming tc lp trình logic) phc v vic biu din tri thc
dưới dng tương t logic v t lp lun trên tri thc đó. Prolog cùng vi Lisp tr thành hai
ngôn ng được dùng nhiu nht trong trí tu nhân to.
e. Trí tu nhân to có sn phm thương mi (1980 đến nay)
Sau thành công ca nhng h chuyên gia đầu tiên, vic xây dng h chuyên gia được
thương mi hóa t năm 1980 và đặc bit phát trin cho ti 1988. Sau giai đon này, do mt s
hn chế ca h chuyên gia, trí tu nhân to rơi vào mt giai đon trì tr, không có nhng bước
tiến đáng k (mùa đông trí tu nhân to th hai).
Giai đon này cũng đánh du s tr li ca mng nơ ron nhân to sau mt thi gian
không các phát minh ng dng đáng k. Cho đến hin nay, mng nơ ron nhân to vn
được s dng tương đối nhiu cho hc y và như các chương trình nhn dng, phân loi t
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
13
động. Đặc bit, trong khong gn 10 năm gn đây, các mng nơ ron nhân to nhiu lp được
gi là mng sâu (deep network) đang đưc đặc bit quan tâm do độ chính xác rt tt trong
các ng dng nhn dng âm thanh, hình nh, x lý ngôn ng t nhiên.
Vào năm 1981, chính ph Nht Bn khi động chương trình xây dng máy tính thế h
5. Mc đích ca chương trình xây dng các máy tính thông minh chy trên ngôn ng
Prolog. Chính ph M và Anh cũng có nhng d án tương t nhưng quy mô nh hơn. Mc dù
các chương trình này đều không đạt đưc mc tiêu đề ra nhng đã giúp chm dt mùa đông
trí tu nhân to ln th nht.
f. Trí tu nhân to chính thc tr thành ngành khoa hc (1987 đến nay)
Trong giai đon trước, ch đề nghiên cu ch yếu tính thăm tìm kiếm định
hướng. Các phương pháp nghiên cu v trí tu nhân to cũng không b gii hn nhiu trong
các lý thuyết sn. Nhiu ch đề nghiên cu được đề xut hoàn toàn mi phương pháp
gii quyết cũng tương đối t do, không da trên các lý thuyết hay kết qu khoa hc đã có.
Mc tiêu ca trí tu nhân to giai đon đầu vưt ra ngoài khuôn kh các lĩnh vc nghiên
cu đã như lý thuyết điu khin hay thng kê, do vy nhiu nghiên cu không đòi hi phi
da trên cơ s lý thuyết đã phát trin trong các lĩnh vc này.
Bt đầu t giai đon này (1987), trí tu nhân to đã phương pp nghiên cu riêng
ca mình, tuân theo các yêu cu chung đối vi phương pháp nghiên cu khoa hc. Chng hn,
kết qu cn chng minh bng thc nghim, đưc pn tích k lưng bng khoa hc thng
. Các vn đề nghiên cu cũng gn nhiu vi ng dng và đi sng, thay nhng d
mang tính minh ho như trong các giai đon trưc.
Nhiu phát minh trước đây ca trí tu nhân to như mng nơ ron nhân to được phân
tích so sánh k càng vi nhng k thut khác ca thng kê, nhn dng, hc máy. Nh
vy, các phương pháp không còn mang tính kinh nghim thun túy đều da trên các cơ s
lý thuyết ràng hơn. Tương t như vy, mt d khác cách tiếp cn vi bài toán nhn
dng tiếng nói. Trong giai đon đầu, bài toán này được tiếp cn theo mt s cách tương đối t
do, hưng vào vic gii quyết mt s trường hp riêng vi phm vi hn chế, không da
trên các lý thuyết đã có. Hin nay, đa s gii pháp nhn dng tiếng nói đưc xây dng trên các
hình thng như hình Markov n (Hidden Markov Models), hay các mng nơ ron
nhiu lp. Hiu qu ca các gii pháp này th gii thích da trên lý thuyết thng kê, hc
y và các phương pháp ti ưu đã tn ti và đưc kim chng t lâu.
g. Cách tiếp cn da trên d liu, s dng khi lượng d liu ln (2001 đến nay)
Trong các giai đon trước, vic phát trin trí tu nhân to ch yếu tp trung vào xây
dng thut toán các h thng da trên tri thc chuyên gia. Gn đây, do s xut hin ca
Internet, thương mi đin t, và mt s lĩnh vc khoa hc như sinh hc phân t, lượng d liu
s hóa đưc to ra tăng rt nhanh. Nhiu nghiên cu cũng cho thy vic s dng d liu hp
lý quan trng hơn vic xây dng các thut toán phc tp. Mt trong nhng ví d là tiến b ca
h thng dch t động ca Google, được xây dng da trên vic thng s lượng ln các
văn bn đơn ng song ng, thay vì s dng lut và quy tc ng pháp như trước đây.
Trong vài năm gn đây, xu hưng s dng d liu ln (big data), tc các k thut ra
quyết định da trên vic phân tích lượng ln d liu vi bn cht đa dng thay đổi nhanh
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
14
theo thi gian đang được coi mt trong nhng xu hướng nh hưởng quan trng ti s
phát trin ng dng ca trí tu nhân to. Nhiu ng dng quan trng da trên d liu ln
như các h thng h tr khuyến ngh ca Amazon, ng dng tr giúp Siri ca Apple, chương
trình dch t động và nhn dng ging nó ca Google, chương trình trò chơi Watson ca IBM
nhng ví d thành công đin hình ca xu hướng này.
Thành công ca vic s dng d liu ln cho thy th gii quyết mt vn đề quan
trng ca trí tu nhân to: đó là vic thu thp đủ lưng tri thc cn thiết cho h thng. Thay vì
thu thp bng tay như trước đây, tri thc th được tng hp, hay “hc” t d liu. Đây
cũng là ha hn cho mt giai đon phát trin mnh các ng dng ca trí tu nhân to.
1.3. CÁC LĨNH VC NGHIÊN CU VÀ NG DNG CHÍNH
1.3.1. Các lĩnh vc nghiên cu
Trí tu nhân to được chia thành mt s lĩnh vc nghiên cu nh hơn chuyên u
nhm gii quyết nhng vn đề khác nhau khi xây dng mt h thng trí tu nhân to. Mt s
lĩnh vc chuyên sâu được nh thành để gii quyết mt lp bài toán. Mt s lĩnh vc chuyên
u khác tp trung vào các hướng tiếp cn hay các k thut. Mt s lĩnh vc nghiên cu li
xoay quanh các ng dng c th. Trong khi nhiu lĩnh vc nghiên cu nh liên quan mt
thiết đến nhau thì nhiu lĩnh vc khác rt xa nhau, c v mc tiêu, phương pháp cng
đồng nghiên cu.
Thông thường, mt h thng trí tu nhân to hoàn chnh, làm vic trong vic mt môi
trường nào đó cn kh năng: cm nhn (perception), lp lun (reasoning), hành động
(action). Dưới đây mt s lĩnh vc nghiên cu ca trí tu nhân to đưc phân chia theo ba
thành phn này.
a) Cm nhn
H thng cn cơ chế thu nhn tng tin liên quan ti hot động t môi trường bên
ngoài. Đó th camera, cm biến âm thanh (microphone), cm biến siêu âm, radar, cm
biến gia tc, các cm biến khác. Đó cũng có th đơn gin hơn là thông tin do người dùng nhp
vào chương trình bng tay. Để biến đổi thông tin nhn được v dng th hiu được, thông
tin cn đưc x lý nh nhng k thut được nghiên cu và trong khuôn kh các lĩnh vc sau.
Th giác máy (computer vision)
Đây lĩnh vc thuc ttu nhân to mc đích nghiên cu v vic thu nhn, x lý,
phân tích, nhn dng thông tin hình nh thu được t c cm biến hình nh như camera. Mc
đích ca th giác máy là biến thông tin thu được thành biu din mc cao hơn để máy tính sau
đó có th hiu được, chng hn t nh chp văn bn cn tr v mã UNICODE ca các ch in
trên văn bn đó. Biu din mc cao hơn ca thông tin t cm biến hình nh sau đó có th s
dng để phc v quá trình ra quyết định. Th giác máy tính bao gm mt s bài toán chính
sau: nhn dng mu (pattern recognition), phân tích chuyn động (motion analysis), to lp
khung cnh 3D (scene reconstruction), nâng cao cht lượng nh (image restoration).
Nhn dng mu lĩnh vc nghiên cu ln nht trong phm vi th giác máy. Bn thân
nhn dng mu được chia thành nhiu bài toán nhđặc thù hơn như bài toán nhn dng đối
tượng nói chung, nhn dng các lp đối tượng c th như nhn dng mt ngưi, nhn dng
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
15
vân tay, nhn dng ch viết tay hoc ch in. Nhn dng đối tượng phát hin ra đối tượng
trong nh hoc video c định đó đối tưng nào. Trong khi con người th thc hin
vic này tương đối đơn gin thì vic nhn dng t động thường khó hơn nhiu. Hin máy tính
ch có kh năng nhn dng mt s lp đối tượng nht định như ch in, mt người nhìn thng,
vi độ cnh xác gn vi con người.
X lý ngôn ng t nhiên (natural language processing)
Đây là lĩnh vc nghiên cu vi có mc đích phân tích thông tin, d liu nhn được dưới
dng âm thanh hoc văn bn được trình y dưới dng ngôn ng t nhiên ca con người.
Chng hn, thay vì gõ các lnh quy ước, ta th ra lnh bng cách nói vi máy tính như vi
người thường. Do đối tượng giao tiếp ca h thng tr tu nhân to thường con người, kh
năng tiếp nhn thông tin phn hi dưới dng li nói hoc văn bn theo cách din đạt ca
người s rt có ích trong nhng trường hp như vy.
X lý ngôn ng t nhiên bao gm ba giai đon chính: nhn dng tiếng nói (speech
recognition), x lý thông tin đã đưc biu din dưới dng văn bn, biến đổi t văn bn
thành tiếng nói (text to speech).
Nhn dng tiếng nói là quá trình biến đổi t tín hiu âm thanh ca li nói thành văn bn.
Nhn dng tiếng nói còn các tên gi như nhn dng tiếng nói t động (automatic speech
recognition) hay nhn dng tiếng nói bng máy tính, hay biến đổi tiếng nói thành văn bn
(speech to text – STT). Nhn dng tiếng nói đưc thc hin bng cách kết hp k thut x lý
tín hiu âm thanh vi k thut nhn dng mu, chng hn bng cách s dng các nh
thng kêhc máy.
X lý thông tin văn bn đưc din đạt bng ngôn ng t nhiên như tiếng Vit hay tiếng
Anh bao gm mt si toán ng dng cnh sau:
- Phân tích t loi, ng pháp. Nhn đầu o mt câu, tr v t loi (động t, tính t
v.v.) ca các t trong câu; y dng cây cú pháp ca câu đó tc là xác định các thành
phn như ch ng, v ng và quan h gia các thành phn. Do ngôn ng t nhiên
thường tính nhp nhng n t mt câu th nhiu cách phân tích. Đây bài
toán cơ s cho các bài toán x lý ngô ng t nhiên khác.
- Hiu ngôn ng t nhiên hay phân tích ng nghĩa. Biến đổi các câu trên ngôn ng t
nhiên thành c biu din như biu thc trên logic v t sao cho máy tính th thc
hin biến đổi hoc lp lun trên đó. Các biu din y cn tương ng vi ng nghĩa
trong thế gii thc ca bài toán.
- Dch t động hay dch máy. T động biến đổi các văn bn trên ngôn ng t nhiên này
sang ngôn ng t nhiên khác, d t tiếng Vit sang tiếng Anh ngưc li. Đây là
i toán có tính ng dng cao nhưng là bài toán khó do đòi hi kh năng thc hin các
i toán x lý ngôn ng t nhiên khác cng vi kh năng s dng tri thc v các lĩnh
vc liên quan ti ni dung văn bn cn dch.
- Tr li t động (question answering). T động sinh ra câu tr li cho các câu hi ca
con người. Ví d h thng dng này chương trình Watson ca IBM cho phép tr li
các câu hi trong tchơi Jeopardy tương t trò Ai triu phú, hay tr lý o Siri ca
iPhone. H thng dng này thường đòi hi kh năng hiu câu hi, cơ s tri thc liên
quan, và tng hp câu tr li.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
16
- Tách thông tin (information extraction). ch thông tin có ng nghĩa t văn bn,
chng hn tên riêng, thi gian, quan h gia các thc th, các thông tin ý nghĩa
khác lưu các thông tin này dưi dng thun tin cho vic x lý bng máy tính. Bài
toán xác định tách tên riêng được gi nhn dng thc th tên (Named Entity
Recognition). Kết qu tách thông tin được s dng trong nhiu bài toán khác, chng
hn đểy dng cơ s tri thc cho các h thng tr li t động.
- Tng hp ngôn ng t nhiên. Biến đổi t các thông tin tin dùng cho máy tính, chng
hn thông tin trong cơ s d liu, thành các câu trên ngôn ng t nhiên ca người vi
mc đích giúp vic giao tiếp ca máy tính vi ngưi được t nhiên thun li hơn.
Đây bài toán ngược vi bài toán hiu nhn dng tiếng nói hiu ngôn ng t
nhiên.
b) Lp lun và suy din
Sau khi cm nhn được thông tin v môi trưng xung quanh, h thng cn có cơ chế để
đưa ra được quyết định phù hp. Quá trình ra quyết định thường da trên vic kết hp thông
tin cm nhn được vi tri thc có sn v thế gii xung quanh. Vic ra quyết định da trên tri
thc được thc hin nh lp lun hay suy din. Cũng nhng trưng hp h thng không
thc hin suy din da trên nhng k thut kc như tìm kiếm hay tp hp các phn x
hoc hành vi đơn gin.
Thành phn lp lun ra quyết định đưc y dng da trên k thut t nhng lĩnh
vc nghiên cu sau:
Biu din tri thc (knowledge representation)
Nhiu bài toán ca trí tu nhân to đòi hi lp lun da trên hình dung v thế gii xung
quanh. Để lp lun được, s kin, thông tin, tri thc v thế gii xung quanh cn được biu
din dưi dng máy tính có th hiu” đưc, chng hn dưới dng logic hoc ngôn ng trí tu
nhân to nào đó. Thông thưng, h thng cn có tri thc v: đối tượng hoc thc th, tính cht
ca chúng, phân loi và quan h gia các đi tượng, tình hung, s kin, trng thái, thi gian,
nguyên nhân hiu qu, tri thc v tri thc (chúng ta biết v tri thc mà người khác có) v.v.
Trong phm vi nghiên cu v biu din tri thc, mt s phương pháp biu din đã được phát
trin và đưc áp dng như: logic, mng ng nghĩa, Frame, các lut (chng hn lut Nếu…Thì
…), bn th hc (ontology).
Biu din tri thc dùng trong y tính thường gp mt s khó khăn sau. Th nht,
lượng tri thc mi người bình thường có v thế gii xung quanh là rt ln. Vic xây dng
biu din lượng tri thc ln như vy đòi hi nhiu công sc. Hin nay đang xut hin
hướng t động thu thp xây dng cơ s tri thc t động t lưng d liu ln, thay thu
thp bng tay. Cách xây dng tri thc như vy được nghiên cu nhiu trong khuôn kh khai
phá d liu (data mining) hay hin nay được gi là d liu ln (big data) Đin hình ca cách
tiếp cn này h thng Watson ca IBM (s được nhc ti bên dưới). Th hai, tri thc
trong thế gii thc ít khi đầy đ, chính xác nht quán. Con người th s dng hiu qu
các tri thc như vy, trong khi các h thng biu din tri thc như logic gp nhiu khó khăn.
Th ba, mt s tri thc khó biu din dưới dng biu tưng tn ti như các trc giác ca
con người.
Tìm kiếm (search)
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
17
Nhiu bài toán hoc vn đề th phát biu gii quyết như bài toán tìm kiếm trong
không gian trng thái. Chng hn các bài toán tìm đưng đi, bài toán tìm trng thái tho mãn
ràng buc. Nhiu bài toán khác ca ttu nhân to cũng th gii quyết bng tìm kiếm.
Chng hn, lp lun logic th tiến hành bng ch tìm các đưng đi cho phép dn t các
tin đề ti các kết lun.
Trí tu nhân to nghiên cu cách tìm kiếm khi s trng thái trong không gian quá ln và
không th thc hin tìm kiếm bng ch vét cn. Trong khuôn kh trí tu nhân to đã phát
trin mt s phương pháp tìm kiếm riêng như tìm kiếm heuristic, tìm kiếm cc b, bao gm
các thut toán tìm kiếm tiến hoá.
Lp lun, suy din (reasoning hay inference)
Lp lun quá trình sinh ra kết lun hoc tri thc mi t nhng tri thc, s kin
thông tin đã có. Trong giai đon đầu, nhiu k thut lp lun t động da trên vic mô phng
hoc hc tp quá trình lp lun ca con ngưi. Các nghiên cu v sau đã phát trin nhiu k
thut suy din hiu qu, không da trên cách lp lun ca người. Đin hình các k thut
chng minh định lý suy din logic. Lp lun t động thường da trên m kiếm cho phép
tìm ra các liên kết gia tiên đề kết qu.
Vic suy din t động thường gp phi mt s kkhăn sau. Th nht, vi bài toán kích
thước ln, s t hp cn tìm kiếm khi lp lun rt ln. Vn đề này được gi “bùng n t
hp” và đòi hi phát trin các k thut vi độ phc tp chp nhn đưc. Th hai, lp lun
biu din tri thc thưng gp vn đề thông tin tri thc không rõ ràng, không chc chn.
Hin nay, mt trong nhng cách gii quyết vn đề y là s dng lp lun xác sut, s được
trình by trong chương 4 ca giáo trình. Th ba, trong nhiu tình hung, con người th ra
quyết định rt nhanh hiu qu thay vì lp lun tng bưc, chng hn co tay li khi chm
phi nước sôi. H thng trí tu nn to cn có cách tiếp cn khác vi lp lun truyn thng
cho nhng trường hp như vy.
Hc máy (machine learning)
Hc máy hay hc t động là kh năng ca h thng máy tính t ci thin mình nh s
dng d liu và kinh nghim thu thp được. Hc kh năng quan trng trong vic to ra tri
thc ca người. Do vy, đây vn đề được quan tâm nghiên cu ngay t khi hình thành trí
tu nhân to. Hin nay, đây là mt trong nhng lĩnh vc được quan tâm nghiên cu nhiu nht
vi rt nhiu kết qu ng dng.
Hc y bao gm các dng chính hc giám sát, hc không giám sát, hc tăng
cường. Trong hc giám sát, h thng được cung cp đầu vào, đầu ra và cn tìm quy tc để
ánh x đầu vào thành đầu ra. Trong hc không giám sát, h thng không được cung cp đầu ra
cn tìm các mu hay quy lut t thông tin đầu vào. Trong hc tăng cường, h thng ch biết
đầu ra cui cùng ca c quá trình thay đầu ra cho tng bước c th. Chi tiết v ba dng hc
y được trình by trong chương 5.
Hc y được phát trin trong khuôn kh c khoa hc y tính và thng kê. Rt nhiu
k thut hc y ngun gc t thng kê nhưng đưc thay đổi để tr thành các thut toán
có th thc hin hiu qu trên máy tính.
Hc máy hin k thut chính được s dng trong th giác máy, x lý ngôn ng t
nhiên, khai phá d liu và phân tích d liu ln.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
18
Lp kế hoch (planning)
Lp kế hoch thi khoá biu t động, hay đơn gin lp kế hoch, quá trình sinh
ra các bước hành động cn thc hin để thc hin mt mc tiêu nào đó da trên thông tin v
môi trưng, v hiu qu tng hành động, v tình hung hin thi và mc tiêu cn đạt. Ly
d mt bt nhn nhim v di chuyn mt vt ti mt v trí kc. Kế hoch thc hin bao
gm xác định các bưc để tiếp cn vt cn di chuyn, nhc vt lên, xác định qu đạo các
bước di chuyn theo qu đạo, đặt vt xung.
Khác vi lý thuyết điu khin truyn thng, bài toán lp kế hoch thưng phc tp, li
gii phi ti ưu theo nhiu tiêu chí. Vic lp kế hoch th thc hin trưc đối vi môi
trường không thay đổi, hoc thc hin theo thi gian vi môi trưng động.
Lp kế hoch s dng các k thut m kiếm ti ưu, các phương pháp quy hoch
động để tìm ra li gii. Mt s dng biu din ngôn ng riêng cũng được phát trin để
thun li cho vic mô t u cu và li gii.
c) Hành động
Cho phép h thng c động vào môi trường xung quanh hoc đơn gin đưa ra thông
tin v kết lun ca mình. Thành phn này đưc xây dng da trên nhng k thut sau.
Tng hp ngôn ng t nhiên và tiếng nói.
c k thut y đã được nhc ti trong phn x lý ngôn ng t nhiên trên.
K thut rô bt (robotics)
k thut xây dng các cơ quan chp nh như cánh tay ngưi máy, tng hp tiếng
nói, tng hp ngôn ng t nhiên. Đây là lĩnh vc nghiên cu giao thoa gia cơ khí, đin t,
trí tu nhân to. Bên cnh k thut cơ khí để to ra các cơ chế vt lý, chuyn động, cn
thut toán chương trình điu khin hot động và chuyn động cho các cơ chế đó. Chng
hn, vi cánh tay máy, cn tính tn qu đạo điu khin c th các khp ni cơ khí khi
mun di chuyn tay ti v trí c định thc hin hành động nào đó. Đây là nhng thành
phn ca k thut bt trí tu nn to đóng góp chính. Ngoài ra, vic xây dng
nhng rô bt thông minh chính là xây dng các h thng trí tu nhân to hoàn chnh.
1.3.2. Mt s ng dng và thành tu
a. Các chương trình trò chơi
Xây dng chương trình kh năng chơi nhng trò chơi trí tu lĩnh vc nhiu
thành tu ca trí tu nhân to. Vi nhng trò chơi tương đối đơn gin như c ca rô hay c th
cáo, máy tính đã thng người t cách đây vài thp k.
Đối vi nhng trò chơi phc tp hơn, các h thng trí tu nhân to cũng dn đui kp
vượt qua con ngưi. S kin quan trng thường đưc nhc ti vào tháng 5 năm 1997
chương trình c vua Deep Blue ca IBM đã thng địch c vua thế gii lúc đó Gary
Kasparov. Trong vòng đấu kéo dài 6 ván, Deep Blue thng Kasparov vi đim s 3.5 : 2.5.
Đây là ln đầu tn máy tính thng đương kim vô địch c vua thế gii.
Mt trường hp tiêu biu khác h thng tr li t động Watson cũng ca IBM đã
chiến thng hai quán quân ca Jeopardy trong trò chơi này vào năm 2011. Jeopardy là trò chơi
hi đáp trên truyn hình M, tương t “Ai triu phú” trên truyn hình Vit Nam nhưng
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
19
trong đó ba người chơi phi thi vi nhau không nhng tr li đúng còn phi nhanh.
Watson h thng hi đáp do IBM xây dng da trên vic thu thp và phân tích thông tin t
khong 200 triu trang Web, trong đó toàn b Wikipedia. Trong mt cuc đấu vi hai cu
quán quân Jeopardy, Watson đã giành thng li và phn thưng 1 triu USD. Các k thut s
dng trong Watson như thu thp thông tin, pt hin tri thc, hiu ngôn ng t nhiên, tìm
kiếm, đã được IBM thương mi hóa và có th s dng trong nhiu ng dng.
b. Nhn dng tiếng nói
Nhn dng tiếng nói biến đổi t âm thanh tiếng nói thành các văn bn. Hin người
dùng công c m kiếm Google th đọc vào câu truy vn thay cho vic t khóa như
trước. Các đin thoi di động thông minh cũng có kh năng nhn dng ging nói và tr li các
câu hi. d đin hình là chương trình tr giúp Siri trên đin thoi thông minh ca Apple
(s dng công ngh nhn dng tiếng nói ca hãng Nuance) hay h thng Google Now.
Cht lượng nhn dng ging nói đang đưc ci thin và tiến b rt nhanh trong vài năm
gn đây. Các h thng nhn dng tiếng nói hin ti cho phép nhn dng ti vài chc ngôn ng
khác nhau và không ph thuc vào người nói ( mt mc độ nht định).
c. Th giác máy tính
Mc dù nhiu ng dng ca th giác máy tính vn chưa đạt ti độ chính xác như người,
nhưng trong mt s bài toán, th giác y tính cho độ cnh xác tương đương hoc gn vi
kh năng ca người. Tiêu biu phi k đến các h thng nhn dng ch in vi độ chính xác
gn như tuyt đối, h thng nhn dng tròng mt, vân tay, mt người. Nhng h thng dng
y được s dng rng rãi trong sn xut để kim tra sn phm, trong h thng camera an
ninh. ng dng nhn dng mt ngưi trên Facebook được dùng để xác định nhng người
quen xut hin trong nh n nhãn tên cho ngưi đó.
c ng dng nhn dng hin nay đang đưc ci thin nhiu nh s dng k thut hc
u (deep learning), trong đó các mng nơ ron nhiu lp được kết ni vi nhau được s
dng để phát hin các đặc trưng ca đối tưng mc t đơn gin ti phc tp.
d. Các thiết b t lái
c thiết b t lái bao gm máy bay, ô tô, tu thy, thiết b thám him vũ tr có th t di
chuyn không s điu khin ca người (c điu khin trc tiếp điu khin t xa).
Hin ô t lái đang đưc mt s hãng công ngh các t chc khác nghiên cu phát
trin, trong đó có nhng d án ni tiếng như xe t i ca Google. Mc ti thi đim viết
ch này mi ch có mt mu xe duy nht được thương mi hóa dùng cho các khu đi b ch
th chy vi tc độ khong 20 km/gi nhưng các d báo cho thy xe t lái s đưc thương
mi hóa thành công trong vòng vài năm ti. Các thiết b t lái khác bao gm c các xem thám
him vũ tr và hành tinh khác như xe thám him sao Ha ca NASA.
e. H chuyên gia
c h thng làm vic da trên kinh nghim và tri thc ca chuyên gia trong mt lĩnh
vc tương đối hp nào đó để đưa ra khuyến cáo, kết lun, chun đoán mt cách t động. Các
d gm:
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
20
- MYCIN: h chuyên gian đầu tiên chn đoán bnh v nhim trùng máu và cách điu tr
vi kh năng tương đương mt bác sĩ gii trong lĩnh vc này.
- XCON ca DEC: h tr chn cu hình máy tính t động.
f. X lý, hiu ngôn ng t nhiên
Tiêu biu là các h thng dch t động như h thng dch ca Google, các h thng tóm
tt ni dung văn bn t động. H thng dch t động ca Google s dng các mô hình thng
xây dng t các văn bn song ng và các văn bn đơn ng. H thng này có kh năng dch
qua li gia vài chc ngôn ng.
Các h thng hi đáp đưc đề cp ti trong phn v trò chơi nhn dng tiếng nói
cũng thuc loi ng dng x lý ngôn ng t nhiên. Nhng h thng này s dng nhng thành
phn đơn gin hơn như các phân h phân tích hình thái, cú pháp, ng nghĩa.
Nhiu k thut x lý ngôn ng t nhiên đã được ng dng trong các ng dng rt thiết
thc như các b lc thư rác. Dch v thư đin t ca Google, Microsoft, Yahoo đều có các b
lc thư rác vi cơ chế hc t động thích nghi vi thay đổi ca ngưi phát tán. Kh năng
phát hin thư rác ca các h thng này là rt cao, gn như tuyt đối trong mt s trường hp.
g. Lp kế hoch, lp thi khóa biu
K thut trí tu nhân to được s dng nhiu trong i toán lp thi khóa biu cho
trường hc, xí nghip, các bài toán lp kế hoch khác. Mt ví d lp kế hoch thành công vi
quy mô ln là kế hoch đảm bo hu cn cho quân đội M trong chiến dch Cơn bão sa mc
ti Iraq đã được thc hin gn như hoàn toàn da trên k thut trí tu nhân to. Đây mt kế
hoch ln, liên quan ti khong 50000 thiết b vn ti người ti cùng mt thi đim. Kế
hoch bao gm đim xut phát, đim ti, thi gian, phương tin người tham gia sao cho
không mâu thun và ti ưu theo các tiêu c.
h. Rô bt
Mt s rô bt được y dng sao cho có hình dng tương t con người và kh năng toàn
din như th giác y, giao tiếp bng ngôn ng t nhiên, kh năng lp lun nht định, kh
năng di chuyn và thc hin các hành động như nhy múa. Các rô bt này ch yếu được to ra
để chng minh kh năng ca k thut rô bt thay vì hướng vào ng dng c th. Trong s này
có th k ti rô bt Asimo, rô bt Nao.
n cnh đó, mt s bt không mô phng ngưi nhưng được s dng trong đời sng
ng ngày hoc các ng dng thc tế. d, bt Roomba ca ng iRobot có kh năng t
động di chuyn trong phòng, tránh vt cn, chui o các ngóc ngách để lau sch toàn b sàn.
S lượng rô bt Roomba đã bán lên ti vài triu bn.
1.3.3. Nhng vn đề chưa đưc gii quyết
Mc đạt đưc nhiu thành tu nhiu ng dng đáng k, các h thng trí tu
nhân to hin nay chưa đạt được mc độ trí tu nhân to mnh (strong AI) hay trí tu nhân
to tng quát (Artificial General Intelligence). Đây cũng được coi vn đề khó nht và chưa
được gii quyết. Trí tu nhân to mnh khái nim để ch kh năng ca máy tính thc hin
bt c công vic ttu nào con người th thc hin. Khái nim trí tu mnh được s
dng để phân bit vi trí tu nhân to yếu (weak AI) hay trí tu nhân to ng dng (applied
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
21
AI), tc ng máy nh để gii quyết tng bài toán ra quyết định hay lp lun đơn l. Như
vy, trí tu nhân to mnh đòi hi gii quyết đầy đủ các công vic trí tu như người trong khi
trí tu nhân to yếu gii quyết bài toán c th.
c khó khăn để đạt được trí tu nhân to tng quát bao gm kh năng th giác máy, x
lý ngôn ng t nhiên, kh năng x lý c tình hướng mi, tình hung không ng ti khi gii
quyết các bài toán thc tế. Đây nhng lĩnh vc máy tính còn thua kém con ngưi. Các
h thng trí tu nhân to hin nay có th gii quyết tt bài toán đặt ra trong mt phm vi hp.
Tuy nhiên, khi gp vn đề thc tế phm vi rng hơn, h thng trí tu nhân to thường không
th x lý được các tình hung mi, vượt ra ngoài ng cnh ban đầu ca bài toán. Ngược li,
con người có kh năng x lý tt hơn nhiu nhng trường hp như vy do có hiu biết rng v
thế gii xung quanh. Vic trang b cho máy tính lượng tri thc như con người hin vn là vn
đề chưa được gii quyết.
Để đánh giá h thng trí tu nhân to, có th so sánh các h thng này vi con ngưi khi
thc hin tng bài toán trí tu c th. Kết qu so sánh được chia thành các mc sau:
- Ti ưu: h thng cho kết qu ti ưu, không th tt hơn na.
- Tt hơn người: h thng cho kết qu tt hơn bt c ngưi nào.
- Tương đương người gii: h thng cho kết qu tương đương nhng ngưi gii (nht)
hơn đa s người còn li.
- Tương đương người: h thng cho kết qu tương đương đa s người.
- m hơn ngưi.
Nhng bài toán trí tu trong đó h thng máy tính thc hin kém hơn người nhng
bài toán cn tiếp tc gii quyết. Dưi đây là mt s i toán và mc độ so sánh gia máy tính
và người.
- Rubik, c ca rô 3 ô: ti ưu.
- C vua: gn đạt mc tt hơn ngưi. H thng Deep Blue đã thng đương kim địch
c vua thế gii Gary Kasparov.
- Tr li câu hi t động: gn đạt mc tt hơn người. H thng IBM Watson đã thng
người trong trò chơi truyn hình Jeopardy.
- Lái xe t động: tương đương ngưi. Mt ví d là h thng lái xem t động ca Google
kết qu lái an toàn êm ái hơn so vi người. Tuy vy, kết qu này mi ch trong
các th nghim ti M, nơi h thng giao thông tt. Chưa h thng cho kết qu
thế nào trong các điu kin khác, ví d trong điu kin giao thông ti Vit Nam.
- Nhn dng ch in (theo chun ISO 1073-1:1976, tc các phông ch đơn nét
không quá phc tp): tương đương ngưi. Các h thng OCR hin nay độ chính
xác 99% hoc hơn trên văn bn in bng máy in la de.
- Nhn dng ch viết tay: kém người. Mc có nhiu tiến b, các h thng nhn dng
ch viết tay t động vn độ chính xác kém hơn người vi khong cách tương đối
ln.
- Nhn dng đối tượng: kém ngưi. Tr mt s trường hp đặc bit như nhn dng vân
tay, tròng mt, mt ngưi, kh năng nhn dng đối tượng nói chung ca máy tính hin
vn kém khá xa kh năng ca người.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii thiu chung
22
- Dch t động: kém ngưi. Mc hin nay, kh năng dch t động ca máy kém con
người trên tng cp ngôn ng c th nhưng nhng h thng dch t động như Google
translate li vượt tng người c th v s lượng ngôn ng có th dch.
- Nhn dng tiếng i: kém người. Trong vài năm gn đây, kh năng nhn dng tiếng
nói bng máy tính đã rt nhiu tiến bđưc ng dng rng rãi như các h thng
Google Voice, hay Siri (dùng phn nhn dng ca hãng Nuance). Tuy nhiên, kh năng
nhn dng t động vn kém kh năng con người.
- Phân bit nhp nhng trong nghĩa t mt s bài toán x lý ngôn ng t nhiên khá
Downloaded by viet jack (vietjackteam@gmail.com)
CHƯƠNG 2: GII QUYT VN ĐỀ BNG TÌM KIM
Chương này s trình by v k thut gii quyết vn đề bng tìm kiếm, còn đưc gi
tìm kiếm trong không gian trng thái. Đâycác phương pháp được ng ph biến trong mt
lp ln các bài toán là lp k thut gii quyết vn đề quan trng, đưc nghiên cu ng
dng nhiu ca trí tu nhân to. Trong phm vi chương, ta s xem xét cách phát biu mt vn
đề dưới dng bài toán tìm kiếm, trước khi chuyn sang các gii thut đã đưc phát trin để
gii quyết bài toán này. Các gii thut tìm kiếm được chia thành ba nhóm ln: tìm kiếm
(không có thông tin), tìm kiếm heuristics (có thông tin), tìm kiếm cc b. Gii thut thuc
nhóm hai nhóm ba, đặc bit nhóm ba, được s dng cho các bài toán thc tế vi ch
thước ln.
2.1. GII QUYT VN ĐỀ VÀ KHOA HC TRÍ TU NHÂN TO
Ti sao phi tìm kiếm
Khi quan sát các bài toán trên thc tế, có th nhn thy mt lp ln bài toán có th phát
biu gii quyết dưới dng tìm kiếm, trong đó u cu có th tìm nhng trng thái, tính
cht tha mãn mt s điu kin nào đó, hoc tìm chui nh động cho phép đạt ti trng thái
mong mun. Sau đây là mt s d các i toán như vy.
- Trò chơi: nhiu trò chơi, d c vua, thc chtquá trình tìm kiếm nước đi ca
các bên trong s nhng nưc mà lut chơi cho phép, để giành ly ưu thế cho bên
mình.
- Lp lch, hay thi khóa biu: lp lch là la chn th t, thi gian, tài nguyên (máy
c, địa đim, con ngưi) tha mãn mt s tiêu chí nào đó. Như vy, lp lch
th coi như q trình tìm kiếm trong s t hp phương án sp xếp phương án đáp
ng yêu cu đề ra.
- Tìm đưng đi: cn tìm đường đi t đim xut phát ti đích, th tha n thêm
mt s tu chí nào đó như tiêu chí ti ưu v độ dài, thi gian, giá thành v.v.
- Lp kế hoch: là la chn chui hành động cơ s cho phép đạt mc tiêu đề ra đồng
thi tha mãn các yêu cu ph.
S ph biến ca các vn đềtính cht tìm kiếm dn ti yêu cu phát biu bài toán tìm
kiếm mt cách tng quát, đồng thi xây dng phương pháp gii bài toán tìm kiếm sao cho
hiu qu, thun li. Các bài toán tìm kiếm mi có th đưa v dng bài toán tìm kiếm tng quát
áp dng thut gii đã đưc xây dng.
Do tính quan trng ca lp bài toán này, tìm kiếm đã được nghiên cu t rt sm trong
khuôn kh toán ri rc lý thuyết gii thut. Trong khuôn kh ttu nhân to, tìm kiếm
được đặc bit quan tâm t khía cnh xây dng phương pháp cho phép tìm ra kết qu trong
trường hp không gian tìm kiếm có kích thưc ln khiến cho nhng phương pháp truyn
thng gp khó khăn. Rt nhiu thut toán tìm kiếm được phát trin trong khuôn kh trí tu
nhân to được phát trin da trên vic tìm hiu quá trình gii quyết vn đề ca con người, hay
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
24
da trên s tương t vi mt s quá trình xy ra trong t nhiên như quá trình tiến hóa, quá
trình hình thành mng tinh th, cách thc di chuyn ca mt s loi côn trùng.
Ngoài vic đứng độc lp như ch đề nghiên cu riêng, tìm kiếm còn cơ s cho rt
nhiu nhánh nghiên cu khác ca trí tu nhân to như lp kế hoch, hc máy, x lý ngôn ng
t nhiên, suy din. Chng hn, i toán suy din th phát biu như quá trình tìm ra chui
các lut suy din cho phép biến đổi t quan sát ban đầu ti đích ca quá trình suy din. Nhiu
phương pháp hc máy cũng coi quá trình hc như quá trình tìm kiếm hình cho phép biu
din d liu hun luyn được dùng trong quá trình hc.
Lưu ý: cn phân bit bài toán tìm kiếm đưc trình by trong chương này, còn được gi
tìm kiếm trong không gian trng thái, vi bài toán tìm kiếm thu hi thông tin
(information retrieval) được gii quyết trong các máy tìm kiếm (search engine) như Google,
Yahoo, hay Bing. Trong bài toán thu hi thông tin, các máy tìm kiếm cn tìm các văn bn,
nh nh, tài liu đa phương tin tha mãn nhu cu thông tin ca ngưi dùng. Vic này đưc
thc hin bng các k thut khác vi các k thut s được trình by trong các phn dưới đây.
Ngoài ra, cũng cn phân bit bài toán tìm kiếm trong không gian trng thái vi các bài
toán như tìm kiếm xâu tương t, tìm kiếm k láng ging gn nht. Mc cùng n tìm
kiếm nhưng nhng bài toán này mc tiêu, tính cht và cách gii quyết khác vi tìm kiếm
trong không gian trng thái được trình by chương này.
2.2. BÀI TOÁN TÌM KIM TRONG KHÔNG GIAN TRNG THÁI
2.2.1. Phát biu bài toán tìm kiếm
Mt cách tng quát, mt vn đ có th gii quyết tng qua tìm kiếm bng cách c
định tp hp c phương án, đi tưng, hay trng thái liên quan, gi chung kng gian
trng thái. Th tc tìm kiếm sau đó s kho sát không gian trng thái theo mt cách nào đó để
tìm ra li gii cho vn đề. Trong mt s trưng hp, th tc tìm kiếm s kho sát tìm ra
chui các hành động cho phép đạt ti trng thái mong mun và bn thân chui hành động này
li gii ca bài toán, như trong bài toán tìm đường. Tùy vào cách thc kho sát không gian
trng thái c th, ta s có nhng phương pháp tìm kiếm khác nhau.
Để th kho sát không gian trng thái, thut toán tìm kiếm bt đầu t mt trng thái
xut phát nào đó, sau đó s dng nhng phép biến đổi trng thái để nhn biết và chuyn sang
trng thái khác. Quá trình tìm kiếm kết thúc khi tìm ra li gii, tc khi đạt ti trng thái
đích.
i toán tìm kiếm cơ bn có th pt biu thông qua năm thành phn chính sau:
Tp các trng thái Q. Đây chính là không gian trng thái ca bài toán.
Tp (không rng) các trng thái xut phát S (S Q). Thut toán tìm kiếm s xut phát
t mt trong nhng trng thái này để kho sát không gian tìm kiếm.
Tp (không rng) các trng thái đích G (G Q). Trng thái đích th đưc cho mt
cách tường minh, tc ch ra c th đó trng thái nào, hoc không tường minh.
Trong trường hp sau, thay trng thái c th, bài toán s quy định mt s điu kin
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
25
trng thái đích cn tha mãn. Ví d, khi chơi c vua, thay vì ch ra v trí c th ca
quân c, ta ch có quy tc cho biết trng thái chiếu hết.
c toán t, còn gi hành động hay chuyn đng hay hàm chuyn tiếp. Thc cht
đây mt ánh x P: QQ, cho phép chuyn t trng thái hin thi sang các trng
thái khác. Vi mi trng thái n, P (n) là tp các trng thái được sinh ra khi áp dng
toán t hay chuyn động P cho trng thái đó. Các trng thái này đưc gi là trng thái
hàng xóm hay láng ging ca n.
Giá thành c: Q x Q R. Trong mt s trường hp, quá trình tìm kiếm cn quan tâm
ti giá thành đường đi. Giá thành để di chuyn t nút x ti nút hàng xóm y đưc cho
dưới dng s không âm c (x, y). Giá thành c th được chn tùy vào tng trưng hp
th hin mi quan tâm chính trong bài toán. d, vi cùng i toán tìm đường đi,
giá thành có th tính bng độ dài quãng đường, hay thi gian cn để di chuyn, hay giá
thành nhiên liu tiêu th. Giá tr c (x, y) đưc gi là giá thành bước, t giá thành bưc
có th tính ra giá thành toàn b đường đi bng cách ly tng các bước đi đã thc hin.
Vi bài toán phát biu như trên, li gii chui chuyn động cho phép di chuyn t
trng thái xut phát ti trng thái đích. Cht lưng li gii đưc tính bng giá thành đưng đi,
tc tng giá thành cn để thc hin chui chuyn đng này, giá thành càng thp thì li gii
càng tt. Cũng nhng trường hp ta không quan tâm ti chui chuyn động ch quan
m ti trng thái đích, ví d trong bài toán lp lch. Trong trưng hp đó, thut toán tìm kiếm
cn tr v li gii là trng thái đích, thay v tr v chui chuyn động.
Cn lưu ý rng, không gian trng ti có th cho mt cách tường minh, bng cách lit kê
các trng thái như trong trưng hp bài tn tìm đưng vi mi địa đim mt trng thái.
Tuy nhiên, trong nhiu trưng hp, không gian trng thái đưc cho mt cách không tường
minh thông qua trng thái xut pt và các chuyn động: khi đó không gian trng thái tp
hp tt c các trng thái th đạt ti t trng thái xut phát bng cách áp dng mi t hp
chuyn động. Trong trường hp y, không gian trng thái có th là hu hn hoc vô hn.
2.2.2. Mt s d
c thành phn ca bài toán tìm kiếm được minh ha trên nhng d sau. Mt s
d không ng dng thc tế nhưng đơn gin, d s dng cho mc đích minh ha. Mt s
khác là nhng bài toán thc tế, có nhiu ng dng.
i toán đố tám ô
Cho hình ch nht được chia thành chín ô như trên hình dưới, trong đó tám ô được đánh
s t 1 đến 8 mt ô trng. th thay đổi v trí c s bng cách di chuyn ô trng. Mi
ln di chuyn, ô trng có th đổi ch vi mt ô s ngay phía trên, phía dưới, bên phi hoc
bên trái.
Yêu cu ca bài toán thc hin các di chuyn để chuyn t mt sp xếp các ô (ví d
trên hình n trái) sang mt cách sp xếp khác (hình bên phi). Ngoài ra th yêu cu
ph, ví d cn di chuyn sao cho s ln đổi ch ô trng là ti thiu.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
26
1 2
3 4 5
6 7 8
Trng thái xut phát Trng thái đích
nh 2.1. Tđố 8 ô
Trò đố 8 ô có th phát biu nhưi toán tìm kiếm vi các thành phn sau.
- Trng thái: mi trng thái là mt sp xếp c th v trí các ô
- Hành động: mi hành động tương ng vi mt di chuyn ô trng trái, phi, lên,
xung
- Trng thái xut phát: đưc cho trước (trng thái bên trái trong hình 2.1)
- Trng thái đích: được cho mt cách tưng minh (trng thái bên phi trong hình 2.1)
- G thành: bng tng s ln dch chuyn ô trng. Nói ch khác, mi chuyn động
có giá thành bng 1.
Li gii trong trưng hp y là chui các hành động cho phép di chuyn t trng thái
xut phát ti đích. Li gii cn ít hành động hơn là li gii tt hơn.
i toán n con hu
Cho mt bàn c vua kích thưc n x n. Cn xếp n con hu lên bàn c sao cho không
đôi hu nào đe da nhau. Trường hp riêng ca bài toán này trường hp n = 8, khi đó bàn
c là bàn c vua truyn thng kích thước 8 x 8.
Đây cũng là bài toán tìm kiếm vi các thành phn c th như sau:
- Trng thái: đây hai cách xác định trng thái. Theo cách th nht, trên bàn c
luôn n con hu, khi đó mi trng thái đưc xác định bi v trí c th ca n con
hu. Theo cách th hai, trên bàn c th t 0 ti n con hu, khi đó mi trng
thái đưc xác định bi sp xếp ca t 0 ti n con hu trên bàn c mi hành động
được thc hin bng cách thêm mt con hu vào trng ti cũ.
- Trng thái xut phát: theo cách biu din trng thái th nht, trng thái xut phát
th được chn bng cách sp xếp ngu nhiên n con hu. Theo cách th hai, trng thái
xut phát là bàn c trng không có con hu nào.
- Trng thái đích: đưc cho bng quy tc kim tra, theo đó trng thái là đích nếu gm
đủ n con hu và không có quá mt con trên cùng mt ct, hoc cùng mt dòng, hoc
cùng mt đưng chéo.
3 1 6
5 8
2 7 4
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
27
- Chuyn động: nhiu cách khác nhau. d, vi cách xác định trng thái th
nht, mi chuyn động đưc thc hin bng cách đổi ch 2 con hu, di chuyn mt
con hu sang ô khác (cùng ct, khác ct). Vi cách xác định trng thái th hai
trng thái đích bàn c trng, ta th quy định chuyn động như sau: ti mi
chuyn động, tìm cách đặt thêm mt con hu ct trái nht còn trng sao cho con
hu mi đặt vào không đe da các con trước (cách chuyn động này cho không gian
trng thái nh hơn nhiu so vi các kiu chuyn động khác và mi trng thái ch cho
phép không quá mt con hu trong mt ct).
Trong bài toán này, khác vi bài toán tám ô, ta không quan tâm ti đường đi ch
quan tâm ti trng thái đích tìm được.
Bài toán tìm đường đi
Đây bài toán có rt nhiu ng dng. Dng đơn gin và thường gp nht là tìm đường
đi gia hai đim trên bn đồ, th đường đi theo đường b như trên hình 2.2, đường
không, hoc đường thy. Các công c tìm đường dng này có th gp trong ng dng bn đồ
như ca Google, bán kèm y định v GPS, công c h tr lái xe, dch v đặt chuyến bay v.v.
i toán tìm đưng đi cũng gp trong định tuyến cho mng, chng hn mng Internet, trong
đó cn tìm đường đi cho các gói tin gia hai nút mng.
Hình 2.2. ng dng tìm kiếm đưng đi trên bn đồ
Xét ví d tìm kiếm đường b trên bn đồ như trong ví d hình 2.2. Ta có các thành phn
i toán tìm kiếm như sau:
- Trng thái: mi trng thái mt địa danh trên đường đi, ví d mt thành ph, th
, th trn, hay mt nút giao thông. Đ cho đơn gin, ta s quy định mi trng thái
mt nút giao thông t mc th trn tr lên. d, trng thái hin thi th
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
28
nút giao thông Ninh Bình, hay nút giao thông Hòa Bình vi bn đồ trên hình 2.2.
- Trng thái xut phát: do người dùng xác định.
- Trng thái đích: do người dùng xác định.
- Chuyn động: đưc c định bng tp các nút giao thông láng ging ca trng thái
hin thi, tc các nút giao thông có th di chuyn ti t nút giao thông hin thi
mà không phi đi qua mt nút khác.
- Giá thành: có th tính bng khong cách (s km) để di chuyn t nút giao thông này
sang nút giao thông khác. Giá thành cũng th tính bng thi gian để di chuyn,
s tin phi b ra cho tin xăng và tin phí giao thông (nếu có) v.v.
c h thng tìm đưng s tr v đường đi tc chui các chuyn đng ngn nht theo
m giá thành đưc chn.
Để tin cho vic tp trung vào các thành phn chính, khi phát biu i toán tìm đường
đi, nhiu chi tiết thường được b qua như qu đạo thc tế, điu kin thi tiết, cht lưng
đường v.v. Khi đó, bài toán tìm đường đi thường được biu din dưi dng tìm đường đi gia
hai nút trên đồi th như minh ha trên hình 2.3. Ti mi nút, các chuyn động đưc phép
chuyn động sang nút lin k. Giá thành đường đi gia hai nút lin k được th hin trên cung
ni hai nút.
Hình 2.3. Ví d i toán tìm đường đi trên đồ th. Các s trên cung th hin giá thành.
2.2.3.Thut toán tìm kiếm tng quát và cây tìm kiếm
Mt cách tng quát, các thut toán tìm kiếm da trên nguyên lý chung như sau:
Nguyên lý chung: bt đầu t trng thái xut phát, s dng các hàm chuyn động để di
chuyn trong không gian trng thái cho ti khi đạt đến trng thái mong mun. Tr v chui
chuyn động hoc trng thái đích tìm được tùy vào yêu cu bài toán.
Để minh ha nguyên lý tìm kiếm này, ta xét d trò đố 8 ô vi trng thái xut phát
trng thái trên cùng trong hình 2.4. Khi đầu t trng thái xut phát, thut toán kim tra xem
đây phi đích chưa. Nếu chưa, ta áp dng các chuyn động để sinh ra các trng thái láng
ging. Tiếp theo, ta xét mt trng thái va được sinh ra, gi trng thái hin thi bng cách
S
A
D
E
F
G
C
K
I
H
55
45
45
72
82
42
40
48
68
50
40
38
47
50
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
29
kim tra xem đây đã phi đích chưa. Nếu chưa, ta m rng trng thái hin thi bng cách áp
dng các chuyn động được phép đối vi trng thái đó để sinh ra các trng thái khác. Quá
trình tìm kiếm như vy kết thúc khi tìm được trng thái đích hoc khi không còn trng thái
o để m rng na.
Thut toán tìm kiếm tng quát như vy sinh ra mt cây tìm kiếm, trong đó mi trng thái
tương ng vi mt t trên cây, mi nhánh tương ng vi mt chuyn động ti nút đang xét.
Trng thái xut phát tương ng vi gc cây, nhng trng thái được m rng to thành các nút
thế h tiếp theo. Trên hình 2.4 là ví d mt phn cây tìm kiếm sinh ra cho bài toán đố 8 ô.
Sau đây là mt s thut ng s dng khi trình bày v thut toán tìm kiếm:
M rng nút áp dng các chuyn động lên trng thái tương ng để sinh ra các t
con.
Nút lácác nút không có nút con ti thi đim đang xét.
c nút biên (còn gi là nút m): tp các nút lá có th m rng tiếp.
Tp các nút đã được m rng được gi là tp các nút đóng, hay đơn gin tp đóng.
nh 2.4. Cây tìm kiếm cho bài toán 8 ô
Nguyên lý tìm kiếm va trình byđược th hin qua thut toán tìm kiếm tng quát trên
hình 2.5. Thut toán duy trì tp các nút biên O được khi to bng tp trng thái xut phát.
Qua mi vòng lp, thut toán ly ra mt nút t tp bin O, kim tra xem nút này phi đích
không. Nếu nút được ly ra đích, thut toán tr v kết qu. Trong trường hp ngược li, nút
y được m rng, tc dùng hàm chuyn động để sinh ra các nút con. Các nút mi sinh ra
li được thêm vào tp O. Thut toán kết thúc khi tìm thy trng thái đích hoc khi O rng.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
30
Search(Q, S, G, P) (Q: không gian trng thái, S: trng ti bt đầu, G: đích, P: hành động)
Đầu vào: bài toán tìm kiếm vi 4 thành phn như trên
Đầu ra: trng thái đích
-------------------------------------
Khi to: O S (O: tp các nút biên, bước này khi to giá tr ban đầu cho O bng S)
While(O Ø) do
1. Chn nút n O xóa n khi O
2. If n G, return (đường đi ti n)
3. Thêm P(n) vào O
Return: Không có li gii
Hình 2.5. Thut toán tìm kiếm tng quát
Cn lưu ý trong thut toán tìm kiếm tng quát trên không quy định rõ nút nào trong
s các nút biên (nm trong tp O) đưc chn để m rng. Vic la chn nút c th ph thuc
o tng phương pháp tìm kiếm và đưc trình y trong nhng phn tiếp theo.
Tránh vòng lp
Trong y tìm kiếm trên nh 2.4 thut tn trên hình 2.5, ta đã gi s rng mi nút
đã được duyt s không đưc duyt li ln na, do vy không cn lưu tr danh sách nhng
nút đã duyt. Trên thc tế, trong nhiu trưng hp, vic di chuyn trong không gian trng thái
s dn ti nhng nút đã duyt qua to tnh vòng lp. Chng hn, tn hình 2.4, t trng
thái ngoài cùng bên trái thuc lp gia có th quay v trng thái xut phát nếu s dng chuyn
động “Dưới”. Tương t, vi đồ th trên hình 2.3, thut toán có th dn ti vòng lp G A
S A Vic chuyn động theo vòng lp nh hưng không tt ti thut toán tìm kiếm.
Mt s thut toán tìm kiếm như tìm kiếm theo chiu sâu (trình by trong mt phn sau) không
th tìm ra li gii nếu rơi vào vòng lp. Mt s thut toán khác như tìm theo chiu rng, mc
dù vn tìm ra li gii, nhưng s phi tính toán lâu hơn, xem xét nhiu trng thái hơn nếu gp
phi vòng lp.
Để tránh không ri vào vòng lp cn cách kim tra để không xem xét li nút đã
duyt. Cách chung nht để tránh duyt li các nút là duy trì tp các nút đóng, tc là các nút đã
được m rng, nh tt c các nút đã được m rng vào tp đóng này. Nếu mt nút mi
sinh ra đã có mt trong tp các nút đóng hoc tp nút biên thì s không được thêm vào tp các
nút biên na.
Trên hình 2.6 phiên bn ca thut toán tìm kiếm tng quát trình by trong hình 2.5,
trong đó tp c nút đóng được s dng để lưu các nút đã m rng cho phép tránh vòng
lp. Phn ch đậm là các phn được b sung so vi thut toán cũ. Thut toán này được đặt tên
Graph_Search để phân bit vi thut toán không lưu các nút đóng.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
31
Graph_Search(Q, S, G, P) (Q: tp trng thái, S: trng thái bt đầu, G: đích, P: hành động)
Đầu vào: bài toán tìm kiếm vi 4 thành phn như trên
Đầu ra: trng thái đích
Khi to: O S // O: tp các nút biên, bước này khi to giá tr ban đầu cho O bng S
D Ø // D là tp nút đóng, được khi to bng rng
----------------------------------------
While(O Ø) do
1. chn nút n O và xóa n khi O
2. If n G, return (đường đi ti n)
3. Thêm n vào D
4. Thêm các nút thuc P(n) vào O nếu nút đó không thuc DO
Return: Không có li gii
Hình 2.6. Thut toán Graph_Search vi danh sách các nút đóng cho phép tránh vòng lp.
Phn bôi đậm là phn khác so vi thut tn tìm kiếm không tránh vòng lp.
Lưu ý: cn phân bit khái nim nút trng ti khi trin khai thut toán c th. Mi nút
được gn vi mt đưng đi c th trên cây tìm kiếm còn trng thái đặc trưng ca thế gii
bài toán. Hai nút khác nhau có th cha cùng mt trng thái nếu trng thái đó đưc sinh ra t
hai đưng đi khác nhau. Như vy, trong nhiu thut toán, ta ch không duyt li các nút đã
được m rng, trong khi vn có th xem t các trng thái đã đưc xem xét trước đó nhưng
được sinh ra theo nhng đường khác trong cây tìm kiếm.
2.2.4. Các tiêu chun đánh giá thut toán tìm kiếm
Vi bài toán tìm kiếm đưc phát biu như trên, nhiu thut toán m kiếm có th s
dng để kho sát không gian tìm ra li gii. Để th so sánh vi nhau, thut tn tìm
kiếm được đánh giá theo bn tiêu chun sau:
Tính đầy đủ: nếu bài toán có li gii thì thut toán đảm bo tìm ra li gii đó
không? Nếu có, ta nói rng thut toán tính đầy đủ, trong trưng hp ngưc li ta
nói thut toán không đầy đủ.
Tính ti ưu: nếu bài toán nhiu li gii thì thut toán cho phép tìm ra li gii tt
nht không? Tiêu chun ti ưu thường đưc dùng giá thành đường đi. Li gii ti
ưu li gii gthành đường đi nh nht. Thut toán luôn đảm bo m ra li gii
ti ưu được gi là thut toán có tính ti ưu.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
32
Độ phc tp tính tn: được xác định bng khi lượng tính toán cn thc hin để tìm
ra li gii. Thông thưng, khi lưng tính toán đượcc định bng s lưng nút ti đa
cn sinh ra trước khi tìm ra li gii.
Yêu cu b nh: đưc xác định bng s lưng nút ti đa cn lưu tr đồng thi trong b
nh khi thc hin thut toán.
c tiêu chun trên được đánh giá y theo đ khó (kích thước) ca bài toán. ràng,
i toán không gian trng thái ln hơn s đòi hi tính toán nhiu hơn. Trong trường hp
không gian trng thái được cho tưng minh hu hn, độ khó ca bài toán được xác định
bng tng s nút s liên kết gia các nút trong đồ th tìm kiếm. Tuy nhiên, do không gian
trng thái có th là vô hn và được cho mt cách không tường minh, độ khó ca bài tn được
c định qua ba tham s sau:
- Mc độ r nhánh b: là s lượng ti đa nút con có th sinh ra t mt nút cha.
- Độ sâu d ca li gii: độ sâu ca li gii nông nht, trong đó độ sâu được nh
bng s nút theo đường đi t gc ti li gii.
- Độu m ca cây tìm kiếm: là độ sâu ln nht ca mi nhánh trên cây tìm kiếm.
2.3. TÌM KIM KHÔNG CÓ THÔNG TIN (TÌM KIM MÙ)
Định nghĩa: Tìm kiếm không có thông tin, còn gi là tìm kiếm (blind, uninformed
search) phương pháp duyt không gian trng ti ch s dng các thông tin theo phát biu
ca bài toán tìm kiếm tng quát trong q trình tìm kiếm, ngoài ra không s dng thêm thông
tin nào khác.
Tìm kiếm không có thông tin bao gm mt s thut toán khác nhau. Đim khác nhau
căn bn ca các thut toán là th t m rng các t biên. Sau đây ta s xem xét các thut
toán tìm theo chiu rng, tìm theo chiu sâu, tìm kiếm sâu dn mt s biến th ca nhng
thut toán này.
2.3.1. Tìm kiếm theo chiu rng
Thut toán tìm kiếm không thông tin được xem xét trưc tiên tìm kiếm theo chiu
rng (Breadth-first search, viết tt là BFS), mt dng tìm kiếm vét cn.
Nguyên tc ca tìm kiếm theo chiu rng là trong s nhng nút biên la chn nút nông
nht (gn nút gc nht) để m rng. Như vy, trưc hết tt c các nút độ sâu bng 0 (nút
gc) đưc m rng, sau đó ti các nút độ u bng 1 được m rng, ri ti các nút độ
u bng 2, và tiếp tc như vy. đây, độ sâu đưc tính bng s nút nm trên đưng đi t nút
gc ti nút đang xét.
th nhn thy, để thc hin nguyên tc tìm kiếm theo chiu rng, ta cn la chn nút
được thêm vào sm hơn trong danh sách nút biên O để m rng. Điu này có th thc hin d
dàng bng cách dùng mt hàng đợi FIFO để lưu các nút biên.
Thut toán tìm theo chiu rng đưc th hin trên hình 2.7. Khác vi thut toán m
kiếm tng quát trên, tp nút biên O đưc t chc dưới dng hàng đợi FIFO: các nút mi
sinh ra được thêm vào cui ca O ti bước 3 ca mi vòng lp; nút đầu tiên ca O s được ly
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
33
ra để m rng như ti bước 1 ca vòng lp ca thut toán trên hình v. Bước 2 ca vòng lp
kim tra điu kin đích tr v kết qu trong trường hp nút ly ra t O nút đích. Thut
toán kết thúc trong hai trường hp: 1) khi ly được nút đích t O; 2) khi tp O rng. Hai
trường hp này tương ng vi hai lnh return trong và ngoài vòng lp.
Con tr ngưc: khi m rng mt nút ta cn s dng con tr ngưc để ghi li nút cha ca
nút va đưc m ra. Con tr này đưc s dng để tìm ngược li đưng đi v trng thái xut
phát khi tìm được trng thái đích. Khi cài đặt thut toán, mi nút đưc biu din bng mt cu
trúc d liu có cha mt con tr ngược tr ti nút cha.
Sau khi tìm đưc nút đích, th khôi phc đường đi ti nút đó bng cách ln theo các
con tr ngược, bt đầu t nút đích.
BFS (Q, S, G, P)
Đầu vào: bài toán tìm kiếm
Đầu ra: trng thái đích
Khi to: O S // trong thut toán này, O là ng đợi FIFO
-----------------------------
While (O không rng) do
1. Chn nút đầu tiên n t O xóa n khi O
2. If n G, return (đưng đi ti n)
3. Thêm P(n) vào cui O
Return: Không có li gii
Hình 2.7. Thut toán tìm kiếm theo chiu rng
Các ci tiến. Mt s ci tiến sau đây th s dng kết hp vi thut toán tìm theo chiu
rng va trình by.
Tránh xem xét li các nút đã m rng. Vic xem xét li các nút đã m rng th dn
ti vòng lp. Mc vòng lp không nh hưởng ti kh năng tìm ra li gii ca tìm theo
chiu rng, xong vic có vòng lp xem xét li các nút làm tăng độ phc tp tính toán do
phi kho sát nhiu nút hơn. Vn đề này th gii quyết bng cách s dng tp đóng tương
t trong thut toán Graph_Search trên hình 2.6. Mt trng thái đã mt trong tp đóng hoc
tp biên s không đưc thêm vào tp biên na. Người đọc có th t kim tra kết qu ca thut
toán trong trường hp s dng kim tra tp đóng tp biên vi trưng hp không kim
tra bng cách thc hin thut toán vi ví d trên hình 2.8.
Kim tra đích trưc khi thêm vào tp biên. Trong thut toán tng quát, vic kim tra
điu kin đích được thc hin khi nút đưc ly ra khi O để m rng. Thay vào đó, ta có th
kim tra trưc khi thêm nút vào O. Ưu đim ca cách m này gim bt s lưng nút cn
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
34
lưu trong nút biên cũng như s nút đưc m rng. C th v s lưng nút cn m rng khi
thc hin kim tra đích trưc s được trình by trong phn tính cht ca thut toán bên dưới.
d: Xét ví d tìm đường đi t nút S ti nút G trên đồ th hình 2.8. (để đơn gin,
d này s dng đồ th có hướng; quá trình tìm đường đi trên đồ th hướng đưc thc hin
tương t, tr vic t mt nút có th di chuyn sang nút cha ca nút đó)
Hình 2.8. Ví d đồ th cho i tn tìm đường đi
Mt s bưc đầu tiên ca thut tn, có s dng vic lưu và kim tra tp nút đóng, đưc
th hin dưới dng các cây tìm kiếm như trên nh 2.9. Lưu ý: để thng nht trong vic trình
by, trong s các nút vai trò ging nhau, tc là có cùng độ sâu, nút đứng trước trong bng
ch cái s đưc m rng trưc. Quy tc y không đưc quy định trong thut toán ch để
tin cho trình by.
Hình 2.9. Mt s cây tìm kiếm sinh ra khi tìm kiếm theo chiu rng. Các cây được th hin
theo th t t trái sang phi, t trên xung dưi. Nút m rng tiếp theo được đánh du bng
mũi tên
S
A
D
E
B
F
G
C
55
45
45
72
82
42
40
48
68
50
40
H
73
60
S
S
A
B
E
S
A
B
C
E
D
S
A
E
D
F
S
A
B
C
E
D
F
H
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
35
Kết qu thc hin các bước ca thut toán cũng có th theo dõi qua th t m rng các
nútni dung danh sách tp nút biên. Dưới đây minh ha cho th t m rng nút tp
biên cho d trên hình 2.8 (có s dng tp nút đóng). Để tin cho trình by, ta s quy định
phía bên trái là đầu ca hàng đợi O phía bên phi là cui ca hàng đợi O. Như vy các nút
được thêm vào t phía bên phi ly ra t bên trái. Con tr ti nút cha s được viết dưới
dng ch s bên cnh mi nút
Nút được m rng Tp biên O (hàng đợi FIFO trong trường hp này)
S
S A
S
, B
S
, C
S
, E
S
A
S
B
S
, C
S
, E
S,
D
A
B
S
C
S
, E
S,
D
A
, F
B
C
S
E
S
,
D
A
, F
B
, H
C
E
S
D
A
, F
B
, H
C
, G
E
D
A
F
B
, H
C
, G
E
F
B
H
C
, G
E
H
C
G
E
G
E
Đích
Sau đó, s dng con tr ngưc, theo đó E nút cha ca G, S nút cha ca E, ta tìm
được đường đi G E S.
Tính cht ca tìm theo chiu rng:
Đối chiếu vi các tiêu chun trên, tìm kiếm theo chiu rng có nhng tính cht sau:
Thut toán tính đầy đủ, tc nếu bài toán li gii, tìm kiếm theo chiu rng
đảm bo tìm ra li gii. Tht vy, nếu li gii nm độ sâu hu hn d thì thut toán s
đạt ti li gii đó sau khi đã kho sát hết các nút nông hơn, tr khi yếu t r nhánh b
hn. Tìm theo chiu rng tìm kiếm vét cn, trong đó các nút độ u nh hơn
được xem xét trưc.
Tính ti ưu: thut toán đảm bo tìm ra li gii độ sâu nh nht. Tuy nhiên, trong
trường hp giá thành đường đi gia các nút không bng nhau thì điu này chưa đảm
bo tìm ra đường đi ngn nht. C th, trong d trên, thut toán tìm ra đưng đi
SEG độ sâu bng 2 (nh nht) nhưng độ dài 154, trong khi đường đi ngn nht
SBFG có đội 132.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
36
Độ phc tp tính toán: vi mc độ r nhánh là b độ sâu li gii d, thut toán sinh ra
O(b
d +1
) nút trưc khi tìm ra li gii hay O(b
d
) nút nếu kim tra đích trước khi thêm
nút vào tp biên. Đ phc tp này là ln và tăng rt nhanh khi b d tăng.
Gi s rng, mi trng thái khi được phát trin s sinh ra b trng thái k. Như vy t nút
gc s sinh ra b nút vi độ sâu 1, các nút này li sinh ra b
2
t vi độ sâu 2, tiếp tc như
vy. Gi s nút đích ca bài toán nm độ sâu d. Trong trường hp xu nht, t đích nm
cui cùng trong s các nút độ sâu này và do vy ta cn m rng tt c nút độ sâu d trưc
khi tìm ra đích, tc là sinh ra b
d +1
nút độ sâu d +1. Như vy, tng s nút cn m rng để tìm
ra nút đích là (tính c nút gc):
1 + b + b
2
+ ... + b
d +1
= O(b
d +1
)
Nếu tiến hành kim tra điu kin đích trước khi thêm vào tp biên như đề cp trên, ta
s không phi sinh ra các nút độ sâu d + 1 và do vy s nút cn sinh ra chn là O(b
d
).
Yêu cu b nh: thut toán cn lưu O(b
d +1
) nút trong tp biên sau khi đã m rng tt
c các nút độ sâu d. Nếu s dng tp các nút đóng thì tp này cn lưu O(b
d
) nút. Như
vy độ phc tp b nh ca tìm kiếm rng là O(b
d +1
).
Như vy, ưu đim ca tìm theo chiu rng là tính đầy đủ và ti ưu nếu giá thành đường
đi như nhau. Nhưc đim ca thut toán y là độ phc tp tính toán ln yêu cu v b
nh ln. Trong hai nhược đim sau, đ phc tp v b nh ln là nghiêm trng hơn do không
th kiếm đưc máy tính có b nh đ ln để chy thut tn, trong khi ta có th đợi thêm thi
gian để ch thut toán chy xong nếu thi gian chy không quá lâu. Trên thc thế, thut toán
tìm theo chiu rng ch có th s dng cho các i tn kích thước rt nh (b d không
quá 10).
2.3.2. Tìm kiếm theo giá thành thng nht
Trong trưng hp giá thành di chuyn gia hai nút là không bng nhau gia các cp nút,
tìm theo chiu rng không cho tìm ra li gii giá thành nh nht do vy không ti ưu.
Để tìm ra đường đi ngn nht trong trưng hp này cn s dng mt biến th ca tìm theo
chiu rng có tên gi là tìm kiếm theo giá thành thng nht (Uniform-Cost-Search).
Phương pháp: Thut toán tìm theo giá thành thng nht chn nút n giá thành đường
đi g(n) nh nht đ m rng trước thay vì chn nút nông nht như trong tìm theo chiu rng,
trong đó g(n) là giá thành đường đi t nút xut phát ti nút n.
Thut toán: đưc biến đổi t tìm kiếm theo chiu rng bng cách thay ba bưc trong
vòng lp While như sau:
1. Chn nút n có giá thành g(n) nh nht thuc O xóa n khi O
2. If n G, return (đường đi ti n)
3. Thêm P(n) giá thành đưng đi ti n (g(n)) vào O
ch tránh vòng lp được thc hin như trong thut toán Graph-search, tuy nhiên nếu
nút đã có trong tp biên thì ta lưu li bn có giá thành nh hơn.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
37
d: vi d trên hình 2.8, kết qu các bước tìm kiếm theo giá thành thng nht
được th hin dưi đây, vi giá tr g(n) đưc cho trong ngoc sau mi nút.
Nút được m rng Tp biên O
S(0)
S A
S
(55) , B
S
(42), C
S
(48), E
S
(72)
B
S
A
S
(55) , C
S
(48), E
S
(72), F
B
(82)
C
S
A
S
(55) , E
S
(72), F
B
(82), H
C
(121)
A
S
E
S
(72), F
B
(82), H
C
(121), D
A
(100)
E
S
F
B
(82), H
C
(121), D
A
(100), G
E
(154)
F
B
H
C
(121), D
A
(100), G
F
(132)
D
A
H
C
(121), G
F
(132)
H
C
G
F
(132)
G
F
Đích
The con tr ngược, ta tìm đưc đưng đi G F B S vi giá thành 132.
Thut toán tìm kiếm theo giá tnh thng nht có mt trưng hp riêng thut toán
Dijkstra. Mt trong nhng đim khác nhau ln nht vi thut toán Dijkstra thut toán
Dijkstra tìm đường đi ngn nht t nút gc ti tt c các nút còn li thay ch tìm đường ti
nút đích như trong trưng hp tìm theo giá thng nht.
Thut toán tìm kiếm này luôn cho li gii ti ưu, tc li gii vi đường đi có giá nh
nht. Do thut toán không la chn nút đ m rng da trên độ sâu mà da trên giá thành nên
không th phân tích độ phc tp tính toán cũng như u cu b nh ca thut toán da trên
tham s b d. Trong trưng hp giá thành mi chuyn động bng nhau, m kiếm theo giá
thng nht s ging vi tìm theo chiu rng.
2.3.3. Tìm kiếm theo chiu sâu
Thut toán tìm kiếm mù được biết đến nhiu tiếp theo tìm theo chiu sâu (Depth-
First-Search, viết tt là DFS).
Nguyên tc ca m kiếm theo chiu sâu la chn trong s nhng nút biên nút sâu
nht (xa nút gc nht) để m rng trưc. Như vy, thay thì kho sát tt c các nhánh ca cây
tìm kiếm mt lúc như trong tìm theo chiu rng, thut toán tìm sâu s di chuyn theo mt
nhánh trong cây tìm kiếm cho ti nút sâu nht, tc là nút không nút con, trước khi chuyn
sang nhánh tiếp theo.
Để thc hin nguyên tc trên, ta cn la chn nút được thêm vào sau cùng trong tp nút
biên O để m rng. Điu này th thc hin d dàng bng cách dùng mt ngăn xếp để lưu
các t biên, các nút đưc thêm vào ly ra theo nguyên lý LIFO (vào sau ra trước). Thut
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
38
toán tìm theo chiu sâu cũng th thc hin bng cách đệ quy và quay lui. Tuy nhiên, trong
i liu này, ta không s không xem xét phương án s dng đệ quy và quay lui.
Thut toán tìm kiếm theo chiu sâu đưc th hin trên hình 2.10, trong đó tp biên O
được trin khai dưới dng ngăn xếp LIFO. Các t mi sinh ra được thêm vào đầu ngăn xếp
O bước 3 ca vòng lp chính. Nút để m rng cũng đưc ly ra t đầu ca O bưc 1 ca
vòng lp chính. Tương t tìm theo chiu rng, mi nút cn con tr ngược v nút cha. Con
tr ngưc được s dng để khôi phc li đường đi khi thut toán đã tìm ra nút đích. Thut
toán kết thúc tr v kết qu ti bưc 2 ca vòng lp nếu nút ly ra khi O là nút đích; hoc
thut toán kết thúc (bng lnh return dưới cùng) mà không tìm được kết qu nếu tp O rng.
DFS(Q, S, G, P)
Đầu vào: bài toán tìm kiếm
Đầu ra: (đường đi ti) trng thái đíchC
Khi to: OS // O đưc t chc như ngăn xếp LIFO
-------------------------
While(O Ø) do
1. Chn nút n đầu tiên ca O và xóa n khi O
2. If n G, return (đưng đi ti n)
3. Thêm P(n) vào đầu O
Return: Không có li gii
Hình 2.10. Thut toán tìm kiếm theo chiu sâu
Tránh các nút lp:
Thut toán trên hình 2.10 th dn ti vòng lp. Ví d, trong bài toán tìm đường trên
bn đồ, thut toán th quay v v trí trưc đó và lp đi lp li chuyn động gia hai trng
thái lin nhau. Khác vi tìm theo chiu rng, tìm theo chiu sâu s lp hn không tìm
được li gii.
Để tránh vòng lp khi tìm kiếm theo chiu sâu, th s dng mt trong hai phương
pháp. Phương pháp th nht ging như phương pháp s dng trong thut toán Graph_Search,
tc duy trì danh sách nút đóng và nh tt c các nút đã m rng vào đây. Mt nút mi sinh
ra ch được thêm vào nút biên nếu nó chưa xut hin trong tp đóng và tp biên. Phương pháp
y đòi hi nhiu b nh để duy trì tp nút đóng.
Phương pp th hai kim tra xem nút mi thuc đưng đi t gc ti nút hin thi
không, nếu có, nút mi s không đưc thêm vào tp nút biên. Cách này không đòi hi b nh
để lưu tp đóng, tuy nhiên ch cho phép tránh vòng lp hn và không cho phép gim khi
lượng tính toán trong trường hp nhiu nhánh ca đồ th tìm kiếm có nhng phn trùng nhau.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
39
d: kết qu sau các bước lp ca thut toán tìm theo chiu sâu cho bài toán tìm
đường t S ti G trên đồ th hình 2.8 đưc th hin dưi đây dưới dng các nút đưc m rng
ni dung tp biên O sau mi vòng lp. Cũng như trong các ví d trước, nếu hai nút cùng độ
u thì nút đứng trước trong bng ch cái được m rng trước. Vic tránh vòng lp được thc
hin theo phương pháp th hai. Đỉnh ngăn xếp nm phía trái đáy ngăn xếp nm bên phi
trong mi dòng.
Nút được m rng Tp biên O (ngăn xếp LIFO trong trưng hp này)
S
S A
S
, B
S
, C
S
, E
S
A
S
D
A
, B
S
, C
S
, E
S
D
A
E
D
, B
S
, C
S
, E
S
E
D
B
S
, C
S
, E
S
G
E
Đích
Theo con tr ngưc, ta tìm được đưng đi G E D A S vi độ sâu bng 4
đội 227.
Tính cht thut toán tìm theo chiu sâu:
Nếu không gian trng ti là hu hn t thut toán đầy đủ. Ngược li, nếu không
gian trng thái là hn t thut toán là không đầy đủ do th di chuyn theo mt
đường đi không cha nút đích và có đ sâu vô hn (c đi theo nhánh không đúng mãi
mà không chuyn sang nhánh khác được).
Thut toán không ti ưu: thut toán có th m rng nhng nhánh dn ti li gii không
ti ưu trưc, đặc bit trong trường hp có nhiu li gii.
Độ phc tp ca thut toán trường hp xu nht là O( ) vi m là độ sâu ti đa ca
cây tìm kiếm. Trong trường hp không gian trng thái là hn thì mhn. Trên
thc tế DFS tìm ra li gii nhanh hơn BFS, đặc bit nếu tn ti nhiu li gii.
B nh cn nh ti đa b*m (mi mc ch nh b nút, vi ti đa m mc), như vy độ
phc tp v b nh ca thut toán này ch O(bm). Để đánh giá độ phc tp không
gian ca tìm kiếm theo độ sâu ta có nhn xét rng, khi ta phát trin mt đỉnh u tn cây
tìm kiếm theo độ sâu, ta ch cn lưu các đỉnh chưa đưc phát trin chúng các
đỉnh con ca các đỉnh nm trên đường đi t gc ti đỉnh u. Như vy đối vi cây tìm
kiếm nhân t nhánh b độ sâu ln nht là m, ta ch cn lưu ít hơn b*m đỉnh. Ưu
cu b nh so vi tìm theo chiu rng là ưu đim ni bt nht ca tìm theo chiu sâu.
2.3.4. Tìm kiếm sâu dn
Tìm kiếm sâu dn (Iterative Deepening Search, viết tt IDS) mt phương pháp tìm
m
b
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
40
kiếm da trên tìm theo chiu sâu nhưng có tính đầy đủ và cho phép tìm ra li gii ti ưu.
Như đã nói trên, mc có ưu đim rt ln không yêu cu nhiu b nh như tìm
theo chiu rng, tìm theo chiu sâu có th rt chm hoc bế tc nếu m rng nhng nhánh sâu
(vô tn) không cha li gii. Để khc phc, th s dng k thut tìm kiếm vi độ sâu hu
hn: tìm kiếm theo chiu sâu nhưng không tiếp tc phát trin mt nhánh khi đã đạt ti mt độ
u nào đó, thay vào đó, thut toán chuyn sang phát trin nhánh khác. Nói cách khác, các nút
độ sâu gii hn s không được m rng tiếp. Thut toán này yêu cu b nh nh tương
tm theo chiu sâu, trong khi chc chn tìm được li gii.
K thut này th s dng trong trường hp th d đoán đưc độ sâu ca li gii
bng cách da trên đặc đim bài toán c th. Chng hn, nếu ta biết rng min bc bc
trung b không có nhiu hơn 15 thành ph thì khi tìm đường t ni vào Vinh th gii
hn chiu sâu tìm kiếm bng 15. Mt s bài toán khác cũng th d đoán trước gii hn độ
u như vy. Trong trưng hp ta biết chính xác độ sâu ca li gii, thut toán s cho li gii
ti ưu (li gii nông nht).
Tuy nhiên, trong trưng hp chung, ta thường không trước thông tin v độ sâu ca
li gii. Trong trường hp như vy có th s dng phương pháp tìm kiếm sâu dn. Thc cht
tìm kiếm sâu dn tìm kiếm vi độ sâu hu hn, trong đó gii hn độ sâu được khi đầu
bng mt giá tr nh, sau đó tăng dn cho ti khi tìm đưc li gii.
Phương pháp: Tìm theo DFS nhng không bao gi m rng các nút có độ sâu quá mt
gii hn nào đó. Gii hn độ sâu đưc bt đầu t 0, sau đó tăng n 1, 2, 3 v.v. cho đến khi
tìm đưc li gii.
Thut toán tìm kiếm sâu dn th hin trên hình 2.11, trong đó tìm kiếm sâu được lp li,
ti mi bước lp, độ sâu đưc gii hn bi biến C. Sau mi vòng lp, giá tr ca C được tăng
thêm mt đơn v thut tn y dng li cây tìm kiếm t đầu. Vi mi giá tr ca C, thut
toán tiến hành tìm kiếm theo chiu sâu nhưng không thêm vào ngăn xếp O c nút có độ sâu
ln hơn C. Vic kim tra này đưc thc hin bưc c) ti vòng lp trong ca thut toán. Lưu
ý rng trong trưng hp này khó c định điu kin kết thúc ca thut toán trong trưng hp
không tìm được li gii.
IDS(Q, S, G, P)
Đầu vào: thut toán tìm kiếm
Đầu ra: trng thái đích
Khi to: OS (O: ngăn xếp LIFO như trong DFS)
C 0 (C là gii hn độ sâu tìm kiếm)
---------------------------------
While (điu kin kết thúc chưa tho mãn) do
While(O Ø) do
//Thc hin 3 bước tương t tìm kiếm sâu
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
41
a)
L
y nút
đầ
u tn n t
đầ
u c
a O
b) If (n G) then return (đường đi ti n)
c) If (độ sâu ca n nh hơn hoc bng C) then
Thêm P(n) vào đầu O
C++, OS
Return: không tìm được li
Hình 2.11. Thut toán tìm kiếm sâu dn
y tìm kiếm trong trường hp tìm sâu dn được minh ha trên hình 2.12.
Hình 2.12. Cây tìm kiếm theo thut toán tìm kiếm sâu dn
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
42
Ví d. Kết qu sau các bưc lp ca thut toán tìm kiếm sâu dn cho bài toán tìm đường
t S ti G trên đồ th hình 2.8 đưc th hin dưới đây. Các thông tin sau mi bước lp bao
gm gii hn độ sâu C, nút đưc m rng, và ni dung tp biên O. Cũng như trong các ví d
trước, nếu hai nút cùng độ sâu thì nút đứng trước trong bng ch cái được m rng trước.
Vic tránh vòng lp được thc hin theo phương pháp th hai. Đỉnh ngăn xếp nm phía trái và
đáy ngăn xếp nm bên phi trong mi dòng.
Nút được m rng Tp biên O (ngăn xếp LIFO trong trưng hp này)
C = 0
S
S
C = 1
S
S A
S
, B
S
, C
S
, E
S
A
S
B
S
, C
S
, E
S
B
S
C
S
, E
S
C
S
E
S
E
S
C = 2
S
S A
S
, B
S
, C
S
, E
S
A
S
B
S
, C
S
, E
S
, D
A
B
S
C
S
, E
S
, D
A
, F
B
C
S
E
S
, D
A
, F
B
, B
C
, F
C
, H
C
E
S
D
A
, F
B
, B
C
, F
C
, H
C
, G
C
D
A
F
B
, B
C
, F
C
, H
C
, G
C
F
B
B
C
, F
C
, H
C
, G
C
B
C
F
C
, H
C
, G
C
F
C
H
C
, G
C
H
C
G
C
G
C
Đích
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
43
Theo con tr ngược, ta tìm được đường đi G E S vi độ sâu bng 2 độ dài
154. Đây là đường đi nông nht, mc dù không phi là đưng đi ngn nht.
Tính cht ca tìm sâu dn:
d) Thut toán đầy đủ, tc đảm bo tìm ra li gii nếu có. Tht vy, tương t tìm theo
chiu rng, tìm sâu dn xem t toàn b các nút mt độ sâu, bt đầu t độ sâu 0,
trước khi chuyn sang xem xét toàn b nút độ sâu tiếp theo. Do vy, thut toán s
tìm đưc li gii khi xem xét hết các nút độ sâu d (dđộ sâu li gii).
e) Tương t tìm theo chiu rng, thut toán ti ưu nếu giá thành đường đi gia hai nút
ging nhau, tc nếu có nhiu li gii, th tìm ra đưc li gii nông nht. Tht
vy, thut toán s xem xét toàn b các nút có độ sâu bng 0, trưc khi xem xét các nút
độ sâu bng 1 v.v. Do vy, trong các li gii có độ sâu khác nhau, thut toán s xem
xét li gii nông hơn trưc.
f) Yêu cu b nh nh. C th, yêu cu b nh O(bd). Thc cht, ti mi bước lp,
thut toán thc hin m kiếm theo chiu sâu nên yêu cu b nh tương t tìm theo
chiu sâu, tc là O(bd).
g) Đ phc tp tính toán O( ).Trong m kiếm sâu lp, ta phi phát trin lp li nhiu
ln cùng mt trng thái. Điu đó làm cho ta có cm giác rng, tìm kiếm sâu lp lãng
phí nhiu thi gian. Thc ra thi gian tiêu tn cho phát trin lp li các trng thái
không đáng k so vi thi gian tìm kiếm theo b rng. Tht vy, mi ln gi th tc
tìm kiếm sâu hn chế ti mc d, nếu cây tìm kiếm có nhân t nhánh b, thì s đnh
cn phát trin là:
1 + b + b
2
+ ... + b
d
Nếu li gii độ sâu d, t trong tìm kiếm sâu lp, ta phi gi th tc tìm kiếm sâu hn
chế vi độ sâu ln lưt là 0, 1, 2, ..., d. Do đó các đỉnh mc 1 phi phát trin lp d
ln, các đỉnh mc 2 lp d-1 ln, ..., các đỉnh mc d lp 1 ln. Như vy tng s đỉnh
cn phát trin trong tìm kiếm sâu lp là:
(d + 1) + db + (d - 1)b
2
+ ... + 2b
d-1
+ b
d
Do đó thi gian tìm kiếm sâu dn O(b
d
) tương t tìm kiếm theo chiu rng. Trên thc
tế, do phi xem xét nhiu ln các nút độ sâu nh, nên độ phc tp tính toán ca tìm u dn
ln hơn tìm kiếm theo chiu rng nhưng không ln hơn quá nhiu.
2.3.5.Tìm theo hai hướng
Trong c phương pháp tìm kiếm trên, quá trình tìm kiếm bt đầu t nút xut phát và
kết thúc khi đạt ti nút đích. Do tính cht đối xng ca đường đi, quá trình tìm kiếm cũng
th bt đầu t nút đích tìm ti nút xut phát. Ngoài ra, quá trình tìm kiếm có th xut phát
đồng thi t c nút xut phát nút đích, xây dng đồng thi hai cây tìm kiếm. Quá trình tìm
kiếm kết thúc khi hai cây tìm kiếm có mt nút chung (hình 2.13).
Tìm theo hai hưng (Bidirectional Search) phương pháp tìm kiếm trong đó ta đồng
thi xây dng hai cây tìm kiếm có nút gc là trng thái xut phát và trng thái đích.
d
b
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
44
Phương pháp. Tìm kiếm bt ngun t nút xut phát và nút đích. Như vy, s tn ti hai
cây tìm kiếm, mt cây gc nút xut phát mt cây gc nút đích. Tìm kiếm kết
thúc khi có nút lá ca cây này trùng vi nút lá ca cây kia.
Hình 2.13: Cây tìm kiếm trong trưng hp tìm theo hai hướng
Chú ý:
Khi tìm theo hai hướng cn s dng tìm theo chiu rng. Vic tìm theo chiu sâu
th không cho phép tìm ra li gii nếu hai cây tìm kiếm pt trin theo hai nhánh
không gp nhau.
Để tìm theo hai hướng cn viết tm mt hàm chuyn động ngược P(x): tp các nút
con ca x D(x): tp các t cha ca x. Nút càng gn nút xut phát càng được coi
t tn
Tính cht ca tìm theo hai hưng:
Vic kim tra xem nút lá y có trùng vi nút lá kia đòi hi tương đối nhiu thi gian.
Tht vy, độ sâu d, mi cây tìm kiếm s sinh ra b
d
nút lá. Như vy cn so sánh mi
nút lá ca cây theo hướng này vi b
d
nút lá ca hướng ngược li.
Độ phc tp tính toán: do gp nhau gia nên chiu sâu mi cây d/2. Theo tính
toán đối vi tìm theo chiu rng, độ phc tp tính toán khi đó O( ). Như vy
mc dù vic kim tra các nút trùng nhau gây tn thi gian nhưng s lượng nút cn m
rng ca c hai cây gim đáng k so vi tìm theo mt chiu.
2.4. TÌM KIM CÓ THÔNG TIN
Đối vi tìm kiếm mù, các nút biên ln lượt được m rng theo mt th t nht định
không tính ti vic ưu tn các nút có kh năng dn ti li gii nhan hơn. Kết qu ca vic tìm
kiếm như vy vic di chuyn trong không gian tìm kiếm không định hướng, dn ti phi
/ 2d
b
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
45
xem xét nhiu trng thái. Đối vi nhng bài toán thc tế không gian trng thái ln, tìm
kiếm mù thưng không thc tế do có độ phc tp tính toán và yêu cu b nh ln.
Để gii quyết vn đề trên, chiến lược tìm kiếm thông tin (Informed search) hay còn
được gitìm kiếm heuristic s dng thêm thông tin t bài toán để định hưng tìm kiếm, c
th là la chn th t m rng nút theo hướng mau dn ti đích hơn.
Nguyên tc chung ca tìm kiếm thông tin là s dng mt hàm f (n) để đánh giá độ
“tt” tim năng ca nút n, t đó chn nút n có hàm f tt nht để m rng trưc. Thông thường,
độ tt đưc đo bng giá thành đường đi ti đích, do vy nút có hàm f (n) nh được ưu tiên m
rng trước.
Trên thc tế, vic xây dng m f (n) phn ánh chính xác độ tt ca nút thường không
thc hin được, thay vào đó ta ch th ước lượng hàm f (n) da vào thông tin đưc t
bài toán. Như s thy trong các phn sau, hàm f (n) thường cha mt thành phn hàm
heuristic h(n), là hàm ưc lượng khong cách t nút n ti đích.
Trong phn này ta s xem xét hai chiến lược tìm kiếm có thông tin, đó tìm kiếm tham
lam tìm kiếm A*.
2.4.1. Tìm kiếm tham lam
Ý tưởng ca tìm kiếm tham lam (Greedy Search) là chn trong tp nút biên nút
khong cách ti đích nh nht để m rng. Lý do làm như vy vic m rng nút gn đích
có xu hướng dn ti li gii nhanh hơn.
Trong phương pháp y, để đánh giá độ tt ca mt nút, ta s dng hàm đo giá thành
đường đi t nút đó ti đích. Tuy nhiên, do không biết đưc chính c giá thành đường đi t
mt nút ti đích, ta ch có th ưc lưng giá tr này. Hàm ước lượng độ tt, hay giá thành
đường đi t mt nút n ti địch gi là hàm heuristic ký hiu h(n). Như vy, đối vi thut
toán tham lam, ta có f(n) = h(n).
Do hàm h(n) ch hàm ưc lưng giá thành đưng đi ti đích nên th nói rng tìm
kiếm tham lam m rng nút trông có v gn đích nht trưc c nút khác. Thut toán được gi
tham lam” do ti mi bước, thut toán c gng tiến v đích nhiu nht có th. Như ta s
thy dưới đây, do thut toán ch c gng làm tt nht ti mi bước không tính ti t hp
các bước, đường đi tìm được có th không phi là đưng đi ngn nht.
Hàm heuristic đưc xây dng da trên thông tin đưc v bài toán. Hàm này phi
tha mãn hai điu kin: th nht, đây m không âm (h(n) 0), th hai, nếu n nút
đích th(n) = 0.
Như vy, m kiếm tham lam s dng hàm heuristic h(n) để ước lưng khong cách t
các nút ti đích và thut toán luôn m rng nút n có hàm h(n) nh nht trong s các nút biên.
Ví d. Khi tìm đường đi gia hai nút bn đồ, hàm heuristic cho mt nút có th tính bng
khong cách theo đưng chim bay gia thành ph đó vi nút đích cn đến. Để minh ha, ta
t bài toán tìm đường đi t t S ti nút G trên đồ th hình 2.14. Trên đồ th này, khong
cách thc gia hai nút bt k đưc cho dưới dng s bên cnh cung ni hai nút. Khong cách
tính theo đường chim bay gia mt nút bt k và nút đích G được cho bng s in nghng bên
cnh nút đó.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
46
Hình 2.14. d tìm đường đi trên đồ th t S ti G. Khong cách thc đưc cho trên
các cung. Khong cách tính theo đường chim bay t mi nút ti nút đích G đưc cho bng s
in nghiêng bên cnh các nút.
Hình 2.15. Minh ha hot động ca thut toán tìm kiếm tham lam
Xut phát t S, th t m rng các nút ca thut toán tham lam được th hin trên hình
2.15. sau khi m rng nút S, nút được chn tiếp theo là E do nút này giá tr hàm heuristic
(khong cách theo đường chim bay) bng 72, nh nht trong s 4 nút A, B, C, E. Sau khi m
rng nút E, nút được chn tiếp theo G do nút này có giá tr hàm heuristic nh nht (bng 0)
40
82
125
S
A
D
E
F
G
C
K
I
H
55
45
45
72
82
42
40
48
68
55
40
38
47
50
115
72
123
118
70
40
30
0
S
S
A
B
E
125
82
72
123
118
S
A
E
82
123
118
D
G
115
0
m
r
ng S
m
r
ng E
m
r
ng G:
đ
ích
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
47
trong s 5 t biên A, B, C, D, G. Kim tra G cho thy đây là đích. Đưng đi tìm được
SEG.
Đặc đim ca tìm kiếm tham lam:
Không tính đầy đủ do có kh năng to thành vòng lp hn mt s t. Chng
hn, nếu trong ví d trên cn tìm đưng đi t nút I ti nút D. Thut toán s chn nút
tiếp theo là H do nút này gn D hơn G theo đưng chim bay. M rng H, thut toán li
thêm I vào tp biên do I gn D hơn G, thut toán li chn I, như vy b lp
hn gia I và H.
Độ phc tp v thi gian: trong trưng hp xu nht là O( ). Độ phc tp này có th
gim rt nhiu nếu tn ti heuristic tt. Tuy nhiên trong trường hp heuristic không tt
thì thut toán s đi sai hưng và do vy gn ging vi tìm sâu.
Độ phc tp v không gian lưu tr: trong trưng hp xu nht thut toán lưu O( )
nút vi mđộ sâu cây tìm kiếm, tuy nhiên nếu heuristic tt thì s nút cn lưu gim đi
rt nhiu như trong ví d trên.
Thut toán không ti ưu: trong ví d trên, đường đi SEG tìm được có độ dài
154 trong khi đường đi ngn nht SBFG có đội bng 97.
2.4.2. Thut toán A*
Mt trong nhng nhược đim ca tìm kiếm tham lam là không cho li gii ti ưu, tc
li gii vi đưng đi ngn nht. Lý do tìm kiếm tham lam không đảm bo tìm ra đường đi
ngn nht do thut toán ch quan tâm ti khong cách ước lượng t mt nút ti đích
không quan tâm ti qng đưng đã đi t nút xut phát ti nút đó. Trong trưng hp khong
cách t nút xut phát ti nút đang t ln s làm tng độ dài đưng đi t xut phát ti đích
qua nút hin thi ln lên.
Để khc phc nhược đim y, thut toán A* s dng hàm đánh giá f(n) vi hai thành
phn, thành phn th nht đưng đi t nút đang t ti nút xut phát, thành phn th hai
khong cách ưc lượng ti đích.
Phương pháp: khc phc nhược đim ca thut toán tham lam, thut toán A* s s
dng hàm f(n) = g(n) + h(n). Trong đó:
g(n) là giá thành đường đi t nút xut phát đến nút n
h(n) là giá thành ước lưng đường đi t nút n đến nút đích; h(n) là hàm heuristic.
Trong phn tìm kiếm mù, ta đã xem xét thut toán tìm kiếm vi giá thành thng nht,
trong đó nút biên có hàm g(n) nh nht được chn để m rng. Như vy, thut toán A* khác
tìm kiếm vi giá thành thng nht ch s dng tm hàm h(n) để ưc lưng khong cách ti
đích. Nh s dng thêm hàm h(n) để ước lượng khong cách ti đích, thut toán A* cho phép
tìm được đường đi nhanh hơn so vi m theo g thành thng nht, nếu hàm h(n) cht
lượng tt, trong khi vn đảm bo tìm đưc đường đi ti ưu nếu h(n) tho mãn điu kin dưới
đây.
m
b
m
b
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
48
Thut toán A* yêu cu hàm h(n) hàm chp nhn được (admissible) theo định nghĩa
sau.
Định nghĩa: Hàm h(n) được gi là chp nhn được nếu h(n) không ln hơn độ dài đường đi
thc ngn nht t n ti nút đích.
Thut toán A* đưc th hin trên hình 2.16.
Thut toán: A*(Q, S, G, P, c, h)
Đầu vào: bài toán tìm kiếm, hàm heuristic h
Đầu ra: đường đi ngn nht t nút xut phát đến nút đích
Khi to: tp các nút biên (nút m) O S
------------------------------------
While(O không rng) do
1. Ly nút nf(n) nh nht ra khi O
2. Nếu n thuc G, return(đưng đi ti n)
3. Vi mi m P(n)
i. g(m) = g(n) + c(m, n)
ii. f(m) = g(m) + h(m)
iii. Thêm m vào O cùng giá tr f(m)
Return: không tìm được đưng đi
Hình 2.16. Thut toán A*
Vi thut toán A*, có th s dng phiên bn Graph-search (tc danh sách nút
đóng) hoc không. Trong trường hp không s dng nút đóng, tt c các nút mi sinh ra đều
được thêm vào tp biên. Trong trường hp s dng phiên bn Graph-search, mt nút đã m
rng s không được thêm vào danh sách biên. Nếu mt nút đã mt bn sao trong tp biên
thì bn sao vi giá tr hàm f(n) nh hơn s được gi li.
Ví d. Kết qu các bước thc hin thut toán A* cho bài toán tìm đường t S ti G trên
đồ th hình 2.14 đưc th hin dưới đây. Các thông tin bao gm nút được m rng, danh sách
các t trong tp biên cùng vi giá tr hàm f(n). Phiên bn được trình by đây phiên bn
không s dng danh sách nút đóng và không kim tra tp biên. Như vy, tp biên có th cha
nhiu phiên bn ca cùng mt nút vi giá tr m f(n) khác nhau.
Nút được m rng Tp biên O. Giá tr hàm f(n) được cho trong ngoc
S (125)
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
49
S A
S
(123+55), B
S
(82+42), C
S
(118+48), E
S
(72+72)
B
S
A
S
(123+55), C
S
(118+48), E
S
(72+72), S
B
(125+84),
C
B
(118+82), F
B
(40+82)
F
B
A
S
(123+55), C
S
(118+48), E
S
(72+72), S
B
(125+84),
C
B
(118+82), G
F
(0+137), C
F
(118+150)
G
F
đích
S dng con tr ngược, ta đường đi tìm được GFBS vi độ i 137. Đây
cũng là đường đi ngn nht gia S và G.
Đặc đim ca thut toán A*:
Thut toán cho kết qu ti ưu nếu hàm heuristic h là hàm chp nhn được.
Thut toán đầy đủ, tr trường hp s các nút vi hàm f có giá tr rt nh nm
gia node xut phát và node đích.
Độ phc tp: trong trưng hp xu nht, khi m heuristic không nhiu thông tin,
độ phc tp tính toán và yêu cu b nh ca A* đều là O( ).
Trong tt c các thut toán tìm kiếm ti ưu s dng cùng hàm heuristics thì thut toán
A* độ phc tp tính toán nh nht, tc là u cu sinh ra ít nút nht trước khi tìm ra
li gii.
Yêu cu b nh ln là nhưc đim ln nht ca A*. Do nhưc đim này, A* thường
không th s dng để gii các i tn có ch thước ln. Trong phn sau, ta s xem t mt
thut toán vi yêu cu b nh nh, trong khi vn cho phép tìm ra li gii ti ưu và có độ phc
tp tính toán gn tt như A*.
2.4.3. Các hàm heuristic
Trong tìm kiếm thông tin, các hàm heuristic đóng vai trò rt quan trng. Hàm
heuristic tt đảm bo tính ti ưu cho nhng thut toán như A*. Bên cnh đó, hàm heuristic tt
cho phép hướng thut toán theo phía li gii, nh vy gim s trng thái cn kho sát độ
phc tp ca thut toán.
c hàm heuristic h(n) đưc y dng tùy thuc vào bài toán c th. Cùng mt loi bài
toán chúng ta th rt nhiu hàm heuristic khác nhau. Cht lượng hàm heuristic nh
hưởng rt nhiu đến quá trình tìm kiếm.
Hàm heuristic h(n) được gi là chp nhn đưc khi:
h(n) h*(n)
trong đó h*(n) giá thành đưng đi thc tế t n đến node đích. Lưu ý rng hàm h(n)=0
vi mi n, là hàm chp nhn được. Để minh ho cho hàm heuristic, ta xét mt s d sau.
Ví d:
Trong bài toán tìm đưng, đường chim bay như nhc ti trên mt d ca hàm
heuristic chp nhn đưc.
m
b
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
50
Trong bài toán 8 ô, th xây dng mt s hàm heuristic. Dưới đây, ta s xem xét hai
trong s các hàm như vy.
Trng thái hin thi Trng thái đích
Ta có th s dng hai hàm heuristic sau.
- : s ô đặt sai ch. Chng hn nếu hình bên phi là trng thái đích và hình bên
trái trng thái u thì trng thái bên trái h
1
(u) = 5 do 5 ô các ô 3, 6, 4, 5, 2
nm sai v trí. th nhn thy h
1
là hàm chp nhn được do mun di chuyn t
trng thái bên trái sang trng thái đích ta phi chuyn v trí tt c nhng ô đứng sai,
trong khi để di chuyn mi ô sai, ta cn ít nht mt nưc đi. Như vy độ dài đường
đi luôn ln hơn hoc bng h1.
- : tng khong cách Manhattan gia v trí hin thi ca mi ô ti v trí đúng
ca ô đó. Khong cách Manhattan đưc tính bng s ít nht các dch chuyn theo
ng hoc ct để đưa mt qn ti v trí ca trong trng thái đích. d, để đưa
quân 2 ti v trí đích ta cn 4 dch chuyn và do vy khong cách Manhattan ca 2
ti đích 4. Giá tr h
2
ca trng thái u trên hình bên trái s bng h
2
(u) = 1 + 4 + 1 +
2 + 1. Hàm h
2
cũng là hàm chp nhn được. Tht vy, để di chuyn mt ô ti v trí
đích, ta cn ít nht s nưc đi bng khong cách Manhattan t ô đó ti đích. Như
vy, s nước để di chuyn toàn b các ô đng sai s ln hơn hoc bng tng khong
cách Manhattan như cách tính h
2
.
Hàm heuristic tri
d trên cho thy, vi cùng mt bài toán, ta th xây dng đồng thi nhiu hàm
heuristic chp nhn được. Vn đề đặt ra khi đó nên dùng m nào trong thut toán tìm
kiếm, hàm đưc chn phi là hàm tt hơn, tc là hàm nhanh dn ti kết qu hơn.
Gi s có hai hàm heuristic chp nhn đưc h
1
(n) h
2
(n). Nếu h
1
(n) h
2
(n) vi mi n
thì ta nói rng tri hơn so vi . Rõ ràng hàm mang nhiu thông tin hơn
do vy là hàm tt hơn do dn ti kết qu nhanh hơn.
Trong trưng hp trong hai hàm h
1
(n) h
2
(n) không có hàm tri hơn thì ta có th to ra
m h’(n) = max (h
1
(n) , h
2
(n)) vi mi n. Rõ ràng, h’(n) là hàm tri hơn hai hàm ban đầu.
ch xây dng hàm heuristic
Vic la chn m heuristic ph thuc vào bài toán c th. Nguyên tc chung để xây
dng hàm heuristic cho mt bài toán ni lng các ràng buc ca bài toán đó khi ước lưng
1
( )
h n
2
( )
h n
2
( )
h n
1
( )
h n
2
( )
h n
3 1 6
5 4
2 7 8
1 2
3 4 5
6 7 8
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
51
đường đi ti đích. d, đối vi hàm trong trò đố 8 ô, ta đã b ràng buc v vic các ô
phi di chuyn tng bước để đến được v trí đích. Hay đối vi heuristic đường chim bay, ta đã
ni rng ràng buc v vic phi di chuyn trên đường b (thưng không phiđưng thng)
gi s có th di chuyn thng t mt đim ti đích.
2.4.4. Thut toán IDA* (thut toán A* sâu dn)
Thut toán A* có nhng ưu đim quan trng như tính ti ưu và tính đầy đủ. Tuy nhiên,
nếu hàm heuristic không tt, thut toán s phi xem xét nhiu trng thái và có yêu cu b nh
trong trưng hp xu nht là O(b
m
). Yêu cu b nh theo hàm mũ như vy làm gim kh năng
s dng A*. Để gii quyết vn đề này th s dng phiên bn ca A* được gi A* sâu
dn (Iterative Deepening A*) có yêu cu b nh t l tuyến tính vi độu li gii.
Phương pháp: Nguyên tc ca A* sâu dn lp li vic tìm kiếm theo chiu sâu trên
các cây tìm kiếm con có giá tr m f(n) không ln hơn các ngưỡng 0,
α
, 2
α
, 3
α
, .v.v..
C th:
1. Tìm kiếm sâu dn (DFS), không m rng nút có m f > 0, nếu tìm đưc đích thì dng
li.
2. Tìm kiếm sâu dn (DFS), không m rng nút có m f >
α
, nếu tìm được đích thì dng
li.
3. Tìm kiếm sâu dn , không m rng nút có hàm f > 2
α
, nếu tìm đưc đích thì dng li.
đây,
α
là giá tr đưc tm o ngưng sau mi vòng lp. Để mi vòng lp có th xét
thêm các nút mi
α
cn có giá tr ln hơn hoc bng giá thành nh nht để di chuyn gia hai
trng thái trong không gian tìm kiếm. đây cn lưu ý cách chn
α
. Nếu
α
nh, sau mi ln
tăng ngưng, cây tìm kiếm mi s thêm đưc ít nút do vi cây tìm kiếm cũ và do vy cn lp
li quá trình tìm sâu nhiu ln, dn ti tăng đ phc tp tính toán. d, trong trưng hp đc
bit, khi giá tr ca f(n) trên mi nút đu khác nhau, mi bưc lp s ch xem xét thêm đưc
mt nút so vi bưc trưc. Khi đó, nếu A* cn m rng N nút, thì A* sâu dn s phi m
rng 1 + 2 + … + N = O ( N
2
).
Gii pháp cho vn đ đ phc tp tính toán là s dng mc đ tăng ngưng
β
>
α
, sao
cho ti mi bưc lp s m rng cây tìm kiếm thêm mt s nút mi. Giá tr
β
như vy cho
phép gim thi gian tìm kiếm, tuy nhiên ch tr li li gii
β
- ti ưu trong trưng hp xu
nht. Mt li gii m* đưc gi
β
- ti ưu nếu g(m*) < g* +
β
, trong đó g* là giá thành ca
li gii ti ưu. Như vy, li gii g* li gii giá thành đưc đi không vưt quá
β
so vi
giá thành đưng đi ti ưu.
Thut toán A* sâu dn chi tiết đưc th hin trên hình dưi đây:
Thut toán: A*(Q, S, G, P, c, h,
α
)
1
( )
h n
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
52
Đầu vào: bài toán tìm kiếm, hàm heuristic h, bước nhy
α
cho ngưỡng
Đầu ra: đường đi ngn nht t nút xut phát đến nút đích
Khi to: giá tr i = 0 là ngưng cho hàm f
danh sách các nút biên (nút m) O S
------------------------------------
While (1) do
1. while (O không rng) do
a) Ly nút n t đầu O
b) Nếu n G, then return(đường đi ti n)
c) Vi mi m P(n)
i. g(m) = g(n) + c(m, n)
ii. f(m) = g(m) + h(m)
iii. If ( f(m) i) then Thêm m vào đầu O
2. i i +
α
, O S
Hình 2.15. Thut tn A* sâu dn
Ví d. Xét bài toán tìm đưng đi t nút S ti nút G trên hình 2.16 vi hàm heuristic cho
cnh các nút và giá thành đưng đi bên cnh các cung.
Hình 2.16. Ví di toán tìm đường đi
Kết qu các bưc thc hin thut toán A* sâu dn vi bước nhy
α
= 2 cho bài toán này
được th hin trên bng dưới đây. Kết qu bao gm giá tr ngưỡng i, nút được m rng, tp
biên O cha các nút giá tr hàm f. Thut toán tìm sâu ti mi bước s dng phương pháp
th hai, tc nút đưc thêm vào tp biên nếu không nm trên đưng đi hin thi. Đầu ca
danh sách O nm phía trái và đuôi ca O phía phi trong bng.
S
B
C
E
A
D
F
G
2
3
3
3
1
3
2
2
1
1
h
=4
h
=6
h
=4
h
=4
h
=3
h
=1
h
=1
h
=0
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
53
Nút được m rng Danh sách O. Giá trm f(n) được cho trong ngoc
i = 0
i = 2
i = 4
i = 6
S(6)
S A
S
(6)
A
S
i = 8
S(6)
S A
S
(6), B
S
(7)
A
S
B
S
(7)
B
S
D
B
(8)
D
B
C
D
(8), F
D
(8)
C
D
E
C
(8), F
D
(8)
E
C
G
E
(8), F
D
(8)
G
E
Đích
Theo con tr ngưc, ta tìm đưc đưng đi GECDBS. Có th d dàng kim
tra, đây chính là đường đi ngn nht t S ti G.
Người đọc th t kim tra trường hp thc hin thut toán vi bưc nhy
α
= 3, li
gii s không phi là li gii ti ưu.
Tính cht ca tìm kiếm A* sâu dn:
Thut toán đầy đủ
β
- ti ưu (xem khái nim
β
- ti ưu trên)
Yêu cu b nh tuyến tính (ch nh nhánh đang xét hin thi tương t tìm kiếm sâu
dn)
Độ phc tp tính toán ln hơn ca thut toán A* do ti mi vòng lp ngoài, thut toán
lp li các bước ca ln lp trước.
Không ph thuc o hàm heuristic h(n). Sau mi ln tăng giá tr ngưng, thut toán
li xây dng li cây tìm kiếm t đầu, tc không s dng hàm heuristic h(n) để thu
hp không gian tìm kiếm và hưng v phía nhiu kh năng có trng ti đích.
2.5. TÌM KIM CC B
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
54
c thut toán tìm kiếm trên đều da trên vic kho sát không gian tìm kiếm mt cách
h thng bng cách di chuyn theo mt s đường đi. Trong quá trình di chuyn, các thut toán
y lưu li thông tin v đưng đi đã qua cùng vi thông tin v phương án đã hoc chưa được
xem xét ti mi trng thái trên đường đi. Vn đề ca thut toán như vy là vic s dng đường
đi để kho sát không gian tìm kiếm mt cách h thng làm tăng s lượng trng thái cn xem
t đồng thi đòi hi ghi nh nhiu trng thái do vy không thích hp vi i toán có
không gian trng thái ln.
Trong phn này ta s xem xét các thut toán tìm kiếm cc b (local search), còn được
gi tìm kiếm ci thin dn (iterative improvement). Đặc đim chính ca thut toán tìm
kiếm cc b ti mi thi đim, thut toán ch s dng mt trng thái hin thi, ch xem
xét các láng ging ca trng thái đó. Thut toán không lưu đưng đi hoc các trng thái đã
kho sát, do vy không đòi hi nhiu b nh như các thut toán đã trình by trên. Mc
tìm kiếm cc b thường không cho phép tìm được li gii ti ưu, thut toán loi này cho phép
tìm đưc li gii tương đối tt vi thi gian b nh nh hơn nhiu so vi tìm kiếm h
thng, và do vy có th s dng cho các bài toán có kích thước ln.
Tìm kiếm cc b thường được s dng cho nhng bài toán ti ưu hóa t hp hoc ti
ưu hóa ri rc, tc nhng bài toán trong đó cn tìm trng thái ti ưu hoc t hp ti ưu
trong không gian ri rc các trng thái, và không quan tâm ti đưng đi dn ti trng thái đó.
Ví d, trong bài toán 8 con hu, ta ch cn tìm v trí ca 8 con hu mà không cn quan tâm ti
đường di dn ti trng thái đó.
Bài toán ti ưu hóa t hp (ti ưu hóa ri rc) có nhng đặc đim sau.
Tìm trng thái ti ưu cc đại hóa hoc cc tiu hóa hàm mc tiêu. Không quan tâm ti
đường đi.
Không gian trng thái rt ln.
Không th s dng các phương pháp tìm kiếm trước để xem xét tt c không gian
trng thái
Thut toán cho phép tìm li gii tt nht vi độ phc tp tính toán nh. Thut toán
cũng chp nhn li gii tương đối tt.
d: ti ưu hóa t hp là lp bài toán có nhiu ng dng trên thc tế. Có th k ra mt
s d sau: bài toán lp lch, lp thi khóa biu, thiết kế vi mch, triu con hu,…
Tìm kiếm cc b đưc thiết kế cho bài toán tìm kiếm vi không gian trng thái rt ln
và cho phép tìm kiếm trng thái tương đối tt vi thi gian tìm kiếm chp nhn đưc.
Ý tưởng: tìm kiếm cc b da trên ý tưởng chung như sau:
Ch quan tâm đến trng thái đích, không quan tâm đến đường đi.
Mi trng thái tương ng vi mt li gii (chưa ti ưu) ci thin dn bng cách ch
quan tâm ti mt trng thái hin thi, sau đó xem xét để để chuyn sang trng thái
hàm xóm ca trng thái hin thi (thường là trng thái có hàm mc tiêu tt hơn).
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
55
Thay đổi trng thái bng cách thc hin các chuyn động (trng thái nhn được t
trng thái n bng cách thc hin các chuyn động được gi là hàng xóm ca n).
Do tìm kiếm cc b ch quan tâm ti trng thái hin thi và hàng xóm nên cn ít b nh
hơn nhiu so vi các phương pháp tìm kiếm h thng trên. Tìm kiếm cc b thường cho
phép tìm được li gii chp nhn được k c khi bài toán ln đến mc không dùng được
nhng phương pháp tìm kiếm h thng.
Phát biu bài toán:
i toán tìm kiếm cc b đưc cho bi nhng thành phn sau:
Không gian trng thái X
Tp chuyn động để sinh ra hàng xóm
Hàm mc tiêu Obj: X R
Yêu cu: Tìm trng thái X* sao cho Obj(X*) ln nht hoc nh nht. Lưu ý: th
d dàng biến đổi bài toán tìm trng thái vi hàm mc tiêu ln nht thành nh nht
hoc ngược li bng cách nhân hàm mc tiêu vi –1.
Để minh ha cho bài toán tìm kiếm cc b, ta t d trên hình 2.17 (được tham kho
t tài liu s 1). Trc hoành trên hình v th hin không gian các trng thái (để cho đơn gin,
không gian trng thái đây đưc th hin trong không gian mt chiu dưi dng các đim
trên trc hoành), trc tung độ ln ca m mc tiêu. Yêu cu bài toán ti ưu hóa t hp là
tìm được trng thái (đim trên trc hnh) có m mc tiêu ln nht. Lưu ý, hình v minh ha
trường hp cn tìm trng ti vi m mc tiêu ln nht, tuy nhiên trong bài toán khác th
u cu tìm trng thái vi m mc tiêu nh nht.
Hình 2.17. Bài toán tìm kiếm cc b vi không gian trng thái và hàm mc tiêu
2.5.1. Thut toán leo đồi
Leo đồi (Hill climbing) tên chung để ch mt h các thut toán nguyên lý ging
nhau. Thut toán thc hin bng cách to ra hàng xóm cho trng thái hin thi di chuyn
sang hàng xóm có hàm mc tiêu tt hơn, tc là di chuyn lên cao đối vi trường hp cn cc
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
56
đại hóa hàm mc tiêu. Thut toán dng li khi đạt ti mt đỉnh ca đồ th hàm mc tiêu,
tương ng vi trng thái không hàng xóm nào tt hơn. Đỉnh này th đỉnh cao nht,
hoc cũng nhng đỉnh thp hơn (hình 2.17). Trong trưng hp th nht, thut toán tìm
được giá tr cc tr, trong trường hp th hai thut toán ch tìm được cc tr địa phương. Thut
toán leo đồi không lưu li nhng trng thái đã qua, đồng thi không nhìn xa hơn hàng xóm
ca trng thái hin thi.
Thut toán leo đồi còn được gi là thut toán tìm cc b tham lam do ti mi thi đim
thut toán này ch xét mt láng ging tt mà không quan tâm ti tương lai xa hơn.
a) Di chuyn sang trng thái tt nht
Có nhiu phiên bn khác nhau ca thut toán leo đồi. Mt trong nhng phiên bn thông
dng nht tên leo đồi di chuyn sang trng thái tt nht (best-improvement hill
climbing). Phiên bn này ca leo đồi la chn trong s hàng xóm hin thi hàng xóm có hàm
mc tiêu tt nht. Nếu hàng xóm đó tt hơn trng thái hin thi thì di chuyn sang hàm xóm
đó. Nếu ngưc li thì kết thúc tr v trng thái hin thi. Thut toán đầy đủ được th hin
trên hình 2.18. Bước 1 bước khi to, trong đó ta chn ngu nhiên trng thái xut phát.
Bước 2 sinh ra các láng ging ca trng thái hin thi. bước 3, thut toán kim tra các láng
ging, nếu không có láng ging nào tt hơn thut trng thái hin thi (tt c láng ging có giá
tr hàm mc tiêu Obj không ln hơn Obj ca trng ti hin thi) thì kết thúc tr v trng
thái hin thi là kết qu. Trong trường hp ngưc li, bưc 4, thut toán chn láng ging có
giá tr hàm mc tiêu Obj ln nht và chuyn sang trng ti đó, sau đó lp li t bước 2.
Đầu vào: bài toán ti ưu t hp
Đầu ra: trng thái vi m mc tiêu ln nht (hoc cc đại địa phương)
--------------------
1. Chn ngu nhiên trng ti x
2. Gi Y tp các trng ti ng xóm ca x
3. If y
i
Y: Obj (y
i
) < Obj (x) then
Kết thúc và tr li x là kết qu
4. x y
i
, trong đó i = argmax
i
(Obj (y
i
))
5. Go to 2
Hình 2.18. Thut toán leo đồi di chuyn sang trng thái tt nht
Đặc đim ca leo đồi
- Đơn gin, d lp trình. Trong các thut toán trình by phn trước, khi lp trình
cn s dng các cu trúc d liu để biu din các nút, nh tp biên. Thut toán
leo đồi không đòi hi phi lp trình vi các cu trúc như vy.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
57
- Như các gii thut tìm kiếm cc b khác, leo đồi s dng ít b nh do không
phi lưu li các trng thái. Ti mi thi đim, thut toán ch cn lưu li trng thái
hin thi và mt tráng thái láng ging.
- Bên cnh hai ưu đim trên, leo đồi d b li gii ti ưu cc b (cc tr địa
phương) tương ng vi đỉnh các “đồi” thp trong hình 2.17. Nếu bt đầu t mt
trng thái nm trong phm vi ca các vùng “đồi” thp, thut toán s di chuyn v
trng thái tương ng vi đnh đồi, sau đó dng li đỉnh do các trng thái xung
quanh đều không tt bng. Mc đỉnh đồi thp tương ng vi trng thái tt
nht trong mt vùng, trng thái đó không phi trng thái ti ưu trong toàn b
không gian trng thái. Để khc phc phn nào vn đề này, thut toán đưc thc
hin nhiu ln, mi ln s dng mt trng thái xut phát sinh ngu nhiên khác
vi trng thái xut phát trong nhng ln trưc đó. Nếu s ln thc hin vi trng
thái xut phát ngu nhiên như vy được thc hin đủ nhiu thì xác sut tìm ra li
gii ti ưu s tiến ti 1.
Khi thiết kế thut toán leo đồi vi cách chuyn động sang trng thái láng ging tt nht,
vic la chn chuyn động rt quan trng. Nếu nhiu chuyn động, t trng thái hin thi
th sinh ra nhiu láng ging. Do thut toán cn so sánh tt các láng ging để tìm ra trng thái
tt nht, mi bưc ca vòng lp s đòi hi nhiu thi gian do phi tính hàm mc tiêu cho tt
c láng ging. Ngược li, nếu sinh ra tp láng ging nh s d dn ti cc tr địa phương do
không vượt qua được nhng “h nh trên đưng đi.
Ví d minh ho 1: bài toán 8 con hu. Ta s quy đnh mi trng thái là sp xếp ca c 8
con hu trên bàn c, sao cho mi ct ch gm 1 con. Trng thái xut phát được khi to ngu
nhiên. Hàm mc tiêu m heuristic đưc tính bng s c đôi hu đang đe da nhau. Như
vy hàm mc tiêu càng nh t càng gn vi trng thái đích cn tìm. Trng thái đích trng
thái hàm mc tiêu nh nht (bng 0). Đ minh ha cho nh hưởng ca vic la chn hàm
chuyn động, ta xét hai cách chuyn động sau.
ch 1: chn mt ct, dch chuyn quân hu trong ct đó sang dòng khác. Vi cách
chuyn động như vy, t mi trng thái th sinh ra 7 x 8 = 56 láng ging. Trên hình 2.19 a
d mt trng thái vi hàm mc tiêu bng 17, đồng thi trên các ô trng giá tr hàm
mc tiêu (s đôi hu đe da nhau) ng vi chuyn động di chuyn quân hu trong cùng ct ti
ô đó. Vi s lượng láng ging tương đối ít, cách này d dn ti cc tr địa phương, chng hn
trng thái trên hình 2.18 b hàm mc tiêu = 2 nhưng tt c láng ging đều hàm mc tiêu
ln hơn và do vy không tìm đưc li gii.
ch 2: chn hai ct, dch chuyn đồng thi mi quân hu trong hai ct đó sang dòng
khác vi dòng hin thi. Cách này to ra 7 x 8 + 7 x 7 láng ging cho mi trng thái. Mc
s lượng láng ging ln đòi hi mi bưc lp phi tính toán nhiu gn gp đôi so vi cách 1
nhưng s ít kh năng dn ti cc tr địa phương như trng thái trên hình 2.19 b hơn.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
58
(a) (b)
nh 2.19. Bài toán 8 con hu vi giá tr hàm mc tiêu cho mi trng thái láng ging (a)
trng thái cc tr địa phương (b)
b) Leo đồi ngu nhiên
Leo đồi ngu nhiên (stochastic hill climbing) là mt phiên bn khác ca leo đồi. Thay vì
tìm ra hàng xóm tt nht, phiên bn này la chn ngu nhiên mt hàng xóm. Nếu hàng xóm
đó tt hơn trng thái hin thi, ng xóm đó s đưc chn làm trng thái hin thi thut
toán lp li. Ngưc li, nếu hàng m đưc chn không tt hơn, thut toán s chn ngu
nhiên mt hàng xóm khác và so sánh. Thut toán kết thúc và tr li trng thái hin thi khi đã
hết “kiên nhn”. Thông thưng, độ kiên nhn đưc cho bng s lượng ti đa hàng xóm
thut toán xem xét trong mi bưc lp hoc trong tn b thut toán.
Thut toán leo đồi ngu nhiên đưc th hin trên hình 2.20.
Đầu vào: bài toán ti ưu t hp
Đầu ra: trng thái vi hàm mc tiêu ln nht (hoc cc đại địa phương)
--------------------------------------------
1. Chn ngu nhiên trng thái x
2. Gi Y tp các trng ti hàng xóm ca x
3. Chn ngu nhiên y
i
Y
4. Nếu Obj (yi) > Obj (x) thì
x yi
5. Go to 2 nếu chưa hết kiên nhn
Hình 2.20. Thut toán leo đồi ngu nhiên
c thc nghim trên nhiu bài toán cho thy, trong trường hp mi trng thái có nhiu
ng ging, leo đồi ngu nhiên cho kết qu nhanh hơn do thut toán th chuyn sang trng
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
59
thái tiếp theo không cn kho sát toàn b tp láng ging. Ngoài ra, leo đồi ngu nhiên
cũng ít gp phi cc tr địa phương hơn leo đồi chuyn sang trng ti tt nht.
Nhìn chung, kh năng tìm được li gii ti ưu ca các thut toán leo đồi ph thuc
nhiu vào không gian trng thái. Đối vi nhng không gian ít cc tr địa phương, leo đồi
thường tìm được li gii khá nhanh. Trong trưng hp không gian trng thái phc tp, thut
toán thưng ch tìm được cc tr địa phương. Tuy nhiên, bng ch thc hin nhiu ln vi
trng thái xut phát ngu nhiên, leo đồi thường tìm đưc cc tr địa phương khá tt.
d minh ho 2: Bài toán ngưi bán hàng. Cho mt đồ th gm n nút, trong đó hai
nút bt k đều được ni vi nhau bng mt cung. Cn tìm đưng đi xut phát t mt nút, qua
tt c các nút khác đúng mt ln và quay v nút xut phát sao cho độ dài đưng đi là nh nht.
i toán này mô phng trưng hp mt ngưi bán hàng cn đi qua tt c các thành ph đúng
mt ln và quay v nơi xut phát vi chi phí nh nht.
th áp dng thut toán leo đồi cho bài toán người bán hàng như sau.
Trng thái: Mi trng thái là mt chu trình Hamilton, tc chu trình qua các đỉnh đúng
mt ln.
Hàm mc tiêu: độ dài ca chu trình Hamilton. Cn tìm trng thái có hàm mc tiêu
nh nht.
Chuyn động: Chuyn động theo kiu thay_đi_k_cung, trong đó k = 2, 3, 4, d,
vi k = 2, t trng thái hin thi ta ly ra 2 cung không lin nhau, b hai cung đó ni nút
đầu cung này vi nút cui cung kia để to ra 2 cung mi như ví d trên hình 2.21 (trên). Vi
mi cp cung như vy ta đưc mt láng ging mi ca trng thái hin thi. Trong d đang
xét, bng cách thay đổi 2 cung, ta có th to ra 20 láng ging cho mi trng thái.
Tương t, hình 2.21 (dưi) minh ha mt s trng thái láng ging đưc to ra khi thc
hin thay_đổi_3_cung. Vi đ th có nhiu t, khi k tăng lên, s chuyn động và láng ging
tương ng cũng tăng theo.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
60
nh 2.21. Ví d mt trng thái ca bài toán ngưi n hàng (a), mt s ng ging sinh ra
nh thay_đổi_2_cung (b), mt s láng ging sinh ra nh thay_đổi_3_cung.
Vi các đồ th vài chc nút tr lên, các nghiên cu thc nghim cho thy mt s kết
qu sau. Giá tr k = 3 cho kết qu tt hơn nhiu (thường tìm được đường đi ngn hơn) so vi k
= 2. Vic s dng k = 4 ln hơn không ci thin cht lưng li gii đáng k so vi k = 3,
trong khi đòi hi khi lưng tính tn ln hơn nhiu do tp láng ging ln.
2.5.2. Thut toán tôi thép
Mt vn đề ln vi leo đồi là thut toán không có kh năng “đi xung” và do vy không
thoát khi được cc tr địa phương khi đã rơi vào. Ngược li, cách di chuyn hoàn toàn ngu
nhiên (random walk) th kho sát toàn b không gian trng thái nhưng không hiu qu.
Thut toán tôi thép hay phng luyn kim (simulated annealing) mt phương pháp tìm
kiếm cc b cho phép gii quyết phn nào vn đề cc tr địa phương mt cách tương đối hiu
qu.
th coi tôi thép phiên bn ca thut toán leo đồi ngu nhiên, trong đó thut toán
chp nhn c nhng trng ti kém hơn trng thái hin thi vi mt xác sut po đó. C th
khi la chn ngu nhiên mt hàng xóm, nếu hàng xóm đó m hơn trng thái hin thi,
thut toán có th quyết định di chuyn sang đó vi mt xác sut p.
Vn đề quan trng đối vi thut toán la chn xác sut p thế nào. Nguyên tc chung
không chn p c định, g tr p được xác định da trên hai yếu t sau.
A
B
C
D
E
F
G
H
A
B
C
D
E
F
G
H
A
B
C
D
E
F
G
H
A
B
C
D
E
F
G
H
A
B
C
D
E
F
G
H
A
B
C
D
E
F
G
H
(a)
(b)
(c)
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
61
- Nếu trng thái mi kém hơn nhiu so vi trng thái hin thi thì p phi gim đi.
nghĩa c sut chp nhn trng thái t l nghch vi độm ca trng thái
đó. Gi (x,y) = Obj(x) – Obj(y) trong đó x là trng thái hin thi, ta cn chn p
t l nghch vi (x,y).
- Theo thi gian, giá tr ca p phi gim dn. Ý nghĩa ca vic gim p theo thi
gian do khi mi bt đầu, thut toán chưa vào vùng trng thái tt do vy
chp nhn thay đổi ln. Theo thi gian, thut toán s chuyn sang vùng trng
thái tt hơn và do vy cn hn chế thay đổi.
Thut toán tôi thép đưc th hin trên hình 2.22. Khác vi thut toán leo đồi, trong đó ta luôn
chuyn động sang trng thái tt hơn do vy trng thái hin thi luôn trng thái tt nht,
thut toán tôi thép có th di chuyn sang trng thái kém hơn. Do vy, thut toán tôi thép s
dng mt biến x* để lưu trng thái tt nht đã tng kho sát, tính ti thi đim hin ti. Lnh
if rand[0,1] < p then x y nghĩa là gán y cho x vi xác sut p, trong đó rand[0,1] là hàm
tr v giá tr ngu nhiên trong khong [0,1]. Lnh này có th trin khai trên máy tính hàm
sinh s t nhiên.
SA(X, Obj, N, m, x, C) //Obj càng nh càng tt
Đầu vào: s bước lp m
trng thái bt đầu x (chn ngu nhiên)
sơ đồ làm lnh C
Đầu ra: trng thái tt nht x*
Khi to: x* = x
For i = 1 to m
1. chn ngu nhiên y N(x)
a) tính (x,y) = Obj(y) – Obj(x)
b) if (x,y) < 0 then p = 1
c) else p = e - (x,y)/T
d) if rand[0,1] < p then x y //gán y cho x vi xác sut p.
if Obj(x) < Obj(x*) then x* x
2. gim T theo sơ đồ C
return x* //x* là trng thái tt nht trong s nhng trng thái đã xem xét
Hình 2.22. Thut toán tôi thép
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
62
Thut toán tôi thép va trình y da trên mt hin tưng cơ hc quá trình làm lnh
kim loi để to ra cu trúc tinh th bn vng. Hàm mc tiêu khi đó được đo bng độ vng
chc ca cu trúc tinh th. Khi n nóng, mc năng lưng trong kim loi cao, các nguyên t
kim loi có kh năng di chuyn linh động hơn. Khi nhit độ gim xung, tinh th dn chuyn
ti trng thái n định và to ra mng tinh th. Bng cách thay đổi nhit độ hp lý, có th to ra
nhng mng tinh th rt rn chc.
Chính vì s tương t vi cách tôi kim loi như vy nên trong thut toán, xác sut p gim
theo thi gian da vào mt công thc gi là sơ đồ làm lnh C. nhiu dng sơ đồ làm lnh
khác nhau. Sau đây là ví d mt sơ đồ làm lnh.
Sơ đồ làm lnh C:
Trong đó:
> 0 là giá tr ban đầu, α thuc (0,1), 1 < k < m
Vi sơ đồ làm lnh này, khi s vòng lp tăng lên, tc t tăng, giá tr ca T gim. Tiếp
theo, t công thc tính xác sut s dng trong thut toán, có th nhn thy khi T tăng tiến
ti cùng, xác sut p 1 mi (x, y). Khi đó, thut toán chp nhn bt chuyn động nào
bt k trng thái mi tt hơn hay kém hơn, tc là thut tn di chuyn ngu nhiên trong không
gian trng thái.
Ngược li, khi T 0, ta có p 0 vi mi (x, y), tc thut toán không chp nhn
các trng thái kém hơn trng ti hin thi do vy tr thành leo đồi ngu nhiên. Như vy,
th coi thut toán i tp là s kết hp gia leo đồi ngu nhiên vi chuyn động ngu
nhiên, trong đó khi đu xu hưng chuyn động ngu nhiên ln hơn, càng v cui, xu
hướng leo đồi càng chiếm ưu thế.
Vic la chn các tham s cho sơ đồ làm lnh thường được thc hin bng ch thc
nghim vi tng bài toán c th.
Thut toán tôi thép được dùng nhiu trong vic thiết kế vi mch độ tích hp ln cũng
như gii quyết nhng bài toán ti ưu hóa t hp kích thưc ln trên thc tế. Nhiu ng
dng cho thy, thut toán tôi thép kh năng tìm được li gii tt hơn so vi thut toán leo
đồi.
2.5.3. Gii thut di truyn
Gii thut di truyn (genetic algorithm) hay thut toán di truyn thut toán tìm kiếm
được thiết kế da trên s tương t vi quá trình chn lc t nhiên thuyết tiến hoá ca
Charles Darwin. Gii thut di truyn trưng hp riêng ca mt lp gii thut được gi
gii thut tiến hoá (evolutionary algorithms). Gii thut di truyn cho li gii tt trong nhiu
i toán ti ưu và được s dng rng rãi trong rt nhiu ng dng khác nhau.
V mt thut toán, có th xem gii thut di truyn như mt phiên bn leo đồi ngu nhiên
vi mt s khác bit chính. Th nht, thut toán đồng thi duy trì nhiu li gii ti mi thi
*
1 0
*
t k
t
T T
α
+
=
0
T
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
63
đim thay vì mt li gii như leo đồi. Th hai, tng cp li gii có th trao đổi thành phn vi
nhau để to ra li gii mi.
V mt ý tưởng, gii thut di truyn hc tp t quá trình sinh tn chn lc t nhiên
ca sinh vt trong t nhiên, trong đó th vi kh năng thích nghi cao hơn s chiếm ưu thế
tn ti. Nếu ta coi đây là bài toán ti ưu thì quá trình tiến hoá s sinh ra cá th ti ưu, tc là
cá th thích nghi cao.
1) Nguyên lý chung.
Gii thut di truyn phng quá trình tiến hoá qua các thế h trong t nhiên như sau.
Mi thế h gm mt s nht định li gii, còn gi là th. Mi li gii hay cá th được biu
din bng mt nhim sc th, cha các gen. Độ tt ca li gii được đánh giá bng hàm tch
nghi (fitness). Thông thường, hàm thích nghi chính hàm mc tiêu ca bài toán ti ưu. Các
li gii trong mi thế h được biến đổi trong quá trình thích nghi để to ra thế h tiếp theo.
Nguyên bn sinh hc. Trong sinh hc, mi cá th đưc hoá di truyn bng b gen,
b gen có th gm nhiu nhim sc th như ca người hoc động vt bc cao, mi nhim sc
th gm nhiu gen. Khi sinh sn, hai cá th b m trao đổi các gen vi nhau, cá th con nhn
mt s gen t b và mt s gen t m.
Gii thut di truyn s dng các quy tc sau đ to ra thế h li gii tiếp theo.
- Các th cnh tranh vi nhau. Cá th vi độ tch nghi cao hơn s to ra nhiu hu
du hơn cá th kém thích nghi.
- Gen t các th thích nghi tt đưc kết hp vi nhau, nh đó th to ra hu du
tt hơn t tiên.
- Tng cá th cũng có th thay đổi gen ca mình.
- Nh vy, thế h tiếp theo s cha cá th tch nghi hơn vi môi trường.
2) Biu din li gii không gian tìm kiếm
Để s dng gii thut di truyn, trưc hết mi li gii phi được biu din bng mt
nhim sc th, cha các gen. đây, nhim sc th mt vec tơ độ dài xác định, mi phn
t ca vec t mt gen. Thông thường, li gii đưc biu din bng vec tơ nh phân, tc là
phn t nhn giá tr {0, 1}, nhưng cũng có th s dng phn ts hoc ch. Ví d ca gen,
nhim sc th, và qun th được minh ho trên hình 2.23.
Hình 2.23. Ví d biu din li gii và qun th trong gii thut di truyn
0 1 1 0 0 1 0 0 1 1 0 1
0 0 0 1 0 1 1 1 0 1 1 0
Qu
n th
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
64
Mi li gii được gán mt độ thích nghi th hin kh năng cnh tranh ca li gii.
Thông thường, độ thích nghi được tính t hàm mc tiêu ca bài toán, hàm mc tiêu tt tương
đương vi độ thích nghi cao.
Gii thut thc hin qua nhiu bước lp, mi bước lp tương ng vi mt thế h. Ti
mi thế h, gii thut duy trì mt qun th, tc mt tp hp gm N li gii, trong đó N
tham s. Qun th trong thế h đầu tiên đưc khi to ngu nhiên bng cách sinh ngu nhiên
các li gii. T qun th hin ti, tng cp th được la chn da trên độ thích nghi
được lai ghép vi nhau để to ra cá th con. th vi độ thích nghi cao đưc la chn vi
xác sut cao hơn. Cá th con được to ra như vy s thay thế th b m để to ra qun th
mi trong thế h tiếp theo.
Như vy, thế h tiếp theo s cha các li gii vi các gen tt hơn mc trung bình trong
thế h trước. Nói cách khác, thế h sau cha các li gii thành phn tt hơn thế h trước.
Thut toán lp li cho đến khi th trong thế h tiếp theo không khác nhiu so vi thế h
trước. Khi đó thut toán được gi hi t. Cũng th s dng các tiêu chí kết thúc khác,
chng hn sau khi lp mt s ln nht định.
2) Gii thut
Qun th đầu tiên được khi to ngu nhiên. Sau đó thut toán đưc thc hin qua nhiu
bước lp, ti mi bước lp thut toán sinh ra mt qun th mi. Các qun th tiếp theo đưc
to ra t qun th trước đó bng cách áp dng ba thao tác: chn lc, lai ghép, và đột biến.
Để minh ho cho các bưc ca thut tn, ta t d bài toán 8 quân hu, trong đó mi
quân hu đưc đặt trong mt ct riêng. Mi trng ti gm thông tin v v trí 8 quân hu trong
ct ca mình. Nếu chn biu din dưi dng chui bit, cn 3 bit cho mt v trí, tc 24 bit
cho mi trng thái. Nếu biu din dưi dng chui s thp phân, cn 8 ch s thp phân cho
mi trng thái. Trong ví d minh ho y, ta s dùng biu din dưới dng thp phân như minh
ho trên hình 2.24 2.25. Chng hn, nhim sc th 24415124 cho biết quân hu th nht
nm hàng th 2 trong ct đầu tiên bên trái, quân th hai nm hàng 4 trong ct tiếp theo
v.v. Do trng thái tt ng vi gtr hàm thích nghi ln nên ta s chn độ thích nghi bng s
lượng đôi hu không đe do nhau. Trng thái li gii là trng thái có độ thích nghi bng 28.
Chn lc (selection). Chn lc th để tham gia vic to ra thế h tiếp theo. Cá th
độ thích nghi càng cao càng nhiu kh năng được chn. nhiu phương pháp thc hin
la chn như vy, chi tiết s được trình by dưới. Trong ví d trên hình 2.24, cá th th nht
được chn 1 ln, các th th hai đưc chn 2 ln, cá th th ba đưc chn mt ln, cá th th
tư không được chn.
Lai ghép (crossover), n gi trao đổi chéo, hay tái t hp. Lai ghép thao tác kết
hp các phn t nhim sc th ca b m để to ra hai th con vi mt xác sut nht
định. th b m đưc la chn bng cách s dng thao tác chn lc trên. Sau đó,
nhim sc th b và m đưc ct ra. Phn đầu nhim sc th b được ni vi phn đuôi nhim
sc th m và ngược li. Trên hình 2.24, v trí ct gia gen th 6 và gen th 7.
Cũng th ct mi nhim sc th b m thành nhiu hơn hai phn ghép các phn
con vi nhau. Vic chn đim ct và s phn con ph thuc bài toán c th. Như vy, nh kết
qu lai ghép, mi th con nhn mt phn gen t b mt phn gen t m. Lưu ý là, vi
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
65
mi cp b m, thao tác lai ghép được thc hin vi mt xác sut nht định gi là xác sut lai
ghép. Xác sut này thường được chn ln hơn 0.5.
Đột biến (mutation). Thay đổi giá tr các gen ca cá th con va to ra vi mt xác sut
nht định. C th, vi mi cá th con, duyt các gen vi mt xác sut rt nh thay đổi giá
tr ca gen đó (0 thành 1 ngưc li nếu biu din nh phân). c sut này thường được
chn nh hơn 0.1 để tránh đột biến quá nhiu. Trong ví d hình 2.24, các gen th 4 ca cá th
con s 1 và gen th 8 ca cá th con s 4 được thay đổi giá tr.
Mc đích ca thao c đột biến để to ra nhng đon gen hoàn toàn mi, chưa
trong qun th cha m. Đột biến cũng cho phép hn chế vic hi t quá sm ca thut toán.
V bn cht, đột biến hiu qu tương t di chuyn ngu nhiên trong không gian trng thái,
có th cho phép vưt qua các trưng hp cc tr địa phương.
Ti mi bước lp, thut toán thc hin ba thao trên này để sinh ra qun th mi. Quá
trình lp đưc thc hin cho ti khi thut toán hi t, tc th con không khác nhiu
th b m, hoc khi thc hin đủ mt s lưng vòng lp do người dùng quy định. Toàn b
thut toán được trình by trên hình 2.26.
Hình 2.24. Ví d minh ho các thao tác ca gii thut di truyn vi bài toán 8 quân hu.
Mi li gii được biu din bng chui 8 ch s tương ng vi v trí ca mi quân trong ct
tương ng. Hàm thích nghi đưc tính bng s đôi hu không đe do nhau và th hin bng s
phía trên li gii (ch th hin cho qun th ban đầu)
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
66
Hình 2.25. Bàn c minh ho kết qu lai ghép gia hai nhim sc th b m th 1 và 2,
dòng 2, trên nh 2.24
GA(X, f, N, c, m)
Đầu vào: bài toán ti ưu vi không gian trng ti X
hàm thích nghi f
kích thước qun th N
xác sut lai ghép c
xác sut đt biến m
Đầu ra: li gii (cá th) vi độ tch nghi cao
Khi to: Khi to ngu nhiên qun th G gm N li gii
------------------------------------------------
While (chưa tho mãn điu kin dng) do
1. For i = 1 to N do
Tính giá trm thích nghi f(i) cho cá th th i
2. For i = 1 to N/2 do
i. Chn lc: chn 2 cá th b m x và y t G tu theo giá tr thích nghi
ii. Lai ghép: vi xác sut c, đổi ch đon gen trên x và y
iii. Đột biến: vi xác sut m, thay đổi giá tr các gen trên cá th mi to ra
iv. Thêm cá th mi vào qun th mi G’
3. Gán G G’
Return: Li gii thuc G vi giá tr thích nghi tt nht
Hình 2.26. Gii thut di truyn
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
67
3) Mt s chi tiết
Các phương pháp thc hin chn lc. Vic chn lc th th thc hin theo
nhiu cách, ví d các cách sau:
- Bánh xe ru let: phương pháp thường dùng nht. Bánh xe ru let phương pháp
chn ngu nhiên hay dùng trong mt trò chơi sòng bc. Theo phương pháp này,
c sut la chn mt li gii t l thun vi độ thích nghi ca li gii đó. Ta th
hình dung tng gtr thích nghi ca qun th đưc biu din bng mt hình tròn,
hay mt bánh xe ru let. Các hình qut ca bánh xe được gán cho các li gii sao cho
kích thước hình qut t l thun vi độ thích nghi ca li gii. Ta th cho bánh xe
quay và tung hòn bi để chn li gii tương ng vi hình qut mà hòn bi dng li. Gi
s f(i) độ thích nghi ca li gii th i. Theo phương pháp bánh xe ru let, xác sut
chn li gii th i được tính theo công thc:
p(i) =
f
(
i
)
f (i)
i
=
1..
N
Phương pháp bánh xe ru lét có th cài đặt bng thut toán sau:
+ Tính tng giá tr thích nghi ca tt c cá th trong qun th, gi tng này S.
+ Sinh ra s ngu nhiên trong khong (0, S), gi s này là r.
+ Ln lưt cng giá tr thích nghi ca tng cá th trong qun th, gi tng này
s. Khi nào s > r thì dng tr v cá th hin thi.
- Thi đấu: chn ngu nhiên mt đôi cá th s dng phân b xác sut đều, sau đó chn
th tt hơn trong hai cá th đó như mt cá th cha m. Thc hin tương t để chn
cá th cha m còn li.
- La chn cá th tinh hoa (Elitism). Các phương pháp trên đều không đm bo cá th
tt nht được la chn. Trong phương pháp la chn tinh hoa, mt s lượng nht
định các cá th tt nht đưc la chn trưc, sau đó phn còn li được la chn theo
các phương pháp ru lét hay thi đấu như trên. Như vy, các cá th tt nht luôn được
duy trì đon gen ca mình sang thế h sau tránh làm mt li gii tt nht đã tìm
được.
- Loi b các cá th hàm thích nghi nh hơn mt ngưng nht định, s dng các
th còn li để lai ghép và to qun th mi.
Giá tr xác sut.
Xác sut lai ghép. Nếu xác sut lai ghép là 1 (100%) thì toàn b th con s được to
ra do lai ghép. Ngược li, nếu xác sut lai ghép là 0 thì toàn bth con bn sao ca mt
s cá th b m nhưng không nht thiết qun th tiếp theo trùng vi qun th cũ. Như đã nói
trên, xác sut lai ghép được la chn tương đối ln, thường t 0.5 trn.
Xác sut đột biến. Nếu xác sut đột biến 100% thì toàn b th sau khi lai ghép s
b thay đổi. Ngưc li, nếu xác sut này 0 thì không th nào b thay đổi. c sut đột
biến đưc la chn rt nh, ít khi vượt quá 0.1. Xác sut đột biến nh để tránh cho thut toán
di chuyn theo kiu ngu nhiên.
Kích thưc qun th.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
68
Kích thưc qun th N là s lượng cá th được duy trì trong mi thế h. Nếu N quá nh,
thut toán ít la chn để thc hin lai ghép, dn ti ch mt phn không gian tìm kiếm
được kho sát và do vy có th không tìm được li gii tt. Nếu N quá ln, thut toán s thc
hin chm do phi x lý nhiu trong mi vòng lp. Giá tr tt ca N ph thuc vào bài toán c
th cách h li gii. Tuy nhiên, nhiu kết qu thc nghim cho thy, khi N tăng ti
mt mc độo đó, cht lưng li gii không tăng, trong khi thut toán s chm hơn.
Mã hoá li gii
Li gii hay th cn được hoá dưới dng nhim sc th. Cách mã hoá c th ph
thuc rt nhiu vào tng bài toán. Sau đâu là mt s cách mã hoá thường gp.
- Mã hoá dưới dng chui bit hay dng nh phân. Mi nhim sc th là mt vec tơ gm
các s 0 hoc 1 như d trên hình 2.23. Đây cách mã hoá thông dng nht. Cách
hoá to ra rt nhiu nhim sc th. Tuy nhiên, vi nhiu bài toán, cách hoá
y không t nhiên vic lai ghép hay đột biến th to ra nhim sc th không
tương ng vi li gii hp l nào và do vy cn x lý để nhn đưc li gii hp l.
- hoá dưới dng các hoán v. Cách hoá này thưng s dng trong bài toán cn
c định th t như đường đi hay thi khoá biu. d, trong i toán ngưi bán
ng đã trình by trong phn trước, mi gen tương ng vi mt thành ph nhim
sc th hoá th t đường đi dưi dng hoán v th t thành ph (1 ng vi A, 2
vi B v.v.).
Nhim sc th 1 5 3 2 6 4 7 9 8
- Mã hoá dưới dng các giá tr. Trong mt s trường hp, các giá tr như s thc được
s dng để biu din li gii. Vic s dng trc tiếp s thc cn thiết do vic biu
din bng bit trong trưng hp y rt phc tp. Vi cách hoá này, nhim sc th
mt chui giá tr, trong đó giá tr có th là s thc , s nguyên, ch cái hoc xâu ký
t. Trong bài toán 8 quân hu trên, ta đã thy v trí các con hu được biu din bi
vec tơ c s nguyên như trên hình 2.24. Mt d khác khi hun luyn mng nơ
ron, cn xác định trng s cho các kết ni. Nhim sc th khi đó cha các trng s
y. Dưới đây là ví d mt s nhim sc th khi mã hoá kiu này;
Nhim sc th 1.2324 5.3243 0.4556 2.3293 2.4545
Nhim sc th ABDJEIFJDHDIERJFDL
Nhim sc th (trên) (dưới) (dưi) (trái) (trên) (phi)
Các phương pháp lai ghép
Thao tác lai ghép rt đa dng ph thuc vào cu trúc ca li gii trong i toán c
th. Các la chn bao gm:
- La chn đim ct. Thông thưng s dng cùng đim ct trên c b m nhưng
cũng có th s dng đim ct khác nhau. Trường hp sau sinh ra cá th con có độ dài
thay đổi và do vy cn x lý riêng sau đó.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
69
- La chn s đon gen. Thông thường nhim sc th được ct làm hai phn nhưng
cũng có th nhiu hơn.
d lai ghép vi mt đim ct:
11001|011+11011|111 = 11001111
d lai ghép vi hai đim ct:
11|0010|11 + 11|0111|11 = 11011111
Vi cách hoá kiu hoán v như trong bài toán ngưi n hàng, khi lai ghép vi
mt đim ct, phn trước đim ct được ly nguyên t th b m th nht. Phn
sau đim ct được to ra bng cách ly các s chưa đưc s dng t cá th b m th
hai (thay ly nguyên c đon t sau đim ct). Cách này đảm bo để mi s ch
xut hin đúng mt ln (cn lưu ý có nhng cách khác cho phép đảm bo điu
y). Ví d:
(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) = (1 2 3 4 5 6 8 9 7)
- Lai ghép đều. Trong phương pháp này, mi gen được sao chép t b hoc t m vi
c sut bng nhau.
d lai ghép đều:
11101011 + 11011101 = 11111111
- Lai ghép s hc. Áp dng phép tính s hc hoc logic trên cp bit tương ng ca b
m. Ví d:
11001011 + 11011111 = 11001001 (AND)
- Có th s dng ba cha m thay hai.
Các phương pháp to đt biến
Đối vi cách hoá nh phân, đột biến được thc hin bng cách đổi giá tr các bit
được chn.
Đối vi mã hoá dng hoán v: hai s được chn và đổi v trí cho nhau. Ví d:
(1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)
Đối vi hoá dng vec tơ các giá tr: thay đổi giá tr các gen được chn như trong ví
d 8 quân hu trên.
4) Hiu ng ca các thao tác
c thao tác chn lc, lai ghép đột biến có các hiu ng như sau khi được s dng
riêng r hoc kết hp vi các thao tác khác.
- Nếu ch s dng thao tác chn lc thì thut toán có xu hướng chn th tt nht t
thế h trưc. Như vy ch th tăng độ thích nghi trung bình tránh li gii ít
thích nghi ch không to ra li gii tt hơn li gii tt nht ca thế h trước.
- Kết hp chn lc và lai ghép có xu hướng khiến thut toán hi t li gii tương đối
tt nhưng không ti ưu.
- S dng mt mình thao tác đột biến sinh ra chuyn động ngu nhiên. Nếu ch s
dng mt mình thao tác đột biến, thut toán s không di chuyn v hướng li gii
tt.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
70
- S dng chn lc kết hp vi đột biến to ra mt dng leo đồi song song n định hơn
leo đồi thông thưng.
Như vy, gii thut di truyn th coi như mt biến th m rng ca m kiếm leo đồi
ngu nhiên thc hin song song trên mt tp hp các li gii.
2.5.4. Mt s thut toán tìm kiếm cc b khác
Ngoài phương pháp leo đồi tôi thép, nhiu thut toán tìm kiếm cc b khác được đề
xut và s dng trong thc tế, trong đó phi k đến nhng thut toán sau:
1) Tìm kiếm tabu.
Tìm kiếm tabu (Tabu search) th coi như s kết hp ca leo đồi vi mt s k thut
cho phép tránh cc tr địa phương. C th, thut toán cho phép chuyn sang các láng ging
không tt hơn trng thái hin thi. Tuy nhiên, để tránh xét li các trng thái đã s dng trưc
đó, thut toán lưu mt danh sách nhng trng thái đã đi qua gi tabu list (tm dch danh
ch cm). Khi duyt tp hàng xóm, nhng trng thái thuc danh sách này s b loi và không
được xem xét na. Kích thước ca danh sách cm hu hn sau mt thi gian, các nút
được lưu vào danh sách cm t trước s b đẩy ra khi danh sách và li có th xem xét li.
2) Tìm kiếm chùm cc b
Tìm kiếm chùm cc b (Local beam search) là phương pp tìm kiếm cc b tương t
leo đồi nhưng thay vì ch lưu mt trng ti ti mi thi đim, tìm kiếm chùm lưu k trng ti.
mi vòng lp, thut toán sinh ra tt c láng ging ca tn b k trng thái kim tra các
ng ging này. Nếu mt trong các trng ti mi sinh ra là đích thì thut toán dng tr v
kết qu. Nếu ngược li, thut tn chn k trng ti tt nht trong s mi sinh ra chuyn
sang vòng lp tiếp theo. Như vy, thut toán đồng thi duy trì mt “chùm” gm k trng thái.
Hiu qu ca vic duy trì k trng ti là nếu mt trng thái sinh ra các láng ging tt hơn
các trng thái còn li thì thut tn s tp trung vào các láng ging ca trng thái này như
vy s b hướng tìm kiếm sinh ra t các trng thái còn li. Điu này giúp tìm kiếm chùm
kết qu khác vi vic chy đồng thi k phiên bn leo đồi ngu nhiên. Tìm kiếm chùm s
nhanh chóng t b nhng hướng tìm kiếm trông có v không ha hn.
Do có xu hướng t b sm nhng hưng tìm kiếm trông không ha hn, tìm kiếm chùm
xu hưng tp trung vào mt vùng nh trong không gian tìm kiếm và b qua các vùng có li
gii ti ưu. Để gim bt hiu ng này, th s dng phiên bn tìm kiếm chùm ngu nhiên,
theo đó thay gi li k trng thái tt nht cho vòng lp sau, thut toán chn ngu nhiên k
trng thái sao cho trng thái tt hơn có xác sut ln hơn. Cách chn y tương t thao tác
chn lc s dng bánh xe ru lét trong gii thut di truyn.
Phương pháp ti ưu đàn kiến
Ti ưu đàn kiến (Ant colony optimization) là phương pháp ti ưu xác sut đưc Marco
Dorigo đề xut vào năm 1992, ban đầu để gii bài toàn tìm đưng ti ưu trên đồ th. Phương
pháp ti ưu đàn kiến sau đó có th m rng để gii quyết các bài toán ti ưu bng cách quy v
bài toán tìm đưng ngn nht trên đồ th.
Ý tưng phương pháp này da trên hành vi ca đàn kiến khi di chuyn gia t nơi có
thc ăn. Trong trưng hp gia t kiến và ngun thc ăn có nhiu đưng đi, sau mt thi gian
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
71
đàn kiến s tp trung đi theo đưng đi ngn nht mc kiến không có bn đồ và có th mù.
Kết qu này đạt được nh cơ chế sau. Khi đầu kiến di chuyn ngu nhiên theo các đường đi
th gia hai đim. Trong quá trình di chuyn, các con kiến để li trên đường đi các
pheromone, mt dng cht sinh hc kiến sinh ra th cm nhn đưc. Nếu kiến đi
theo đường ngn hơn thì s mau tr li hơn chuyn động được nhiu ln hơn trên đường
ngn hơn này. Kết qusau mt thi gian, đưng đi ngn hơn s lượng pheromone nhiu
hơn. Các con kiến đi sau đó s tp trung theo đường đi có nhiu pheromone, tc đường
ngn.
Thut toán ti ưu đàn kiến được thc hin bng cách la chn các cung trên đồ th vi
c sut t l thun vi lượng pheromone trên cung đó. Mi khi di chuyn qua mt cung,
thut toán cũng cp nht để tăng lượng pheromone trên cung. Phương pháp ti ưu đàn kiến
được s dng trong mt s bài toán ti ưu như định tuyến mng, quy hoch mng giao thông.
Ưu đim ca phương pháp này so vi i thép gii thut di truyn th thc hin rt
nhanh trong trưng hp cu trúc mng thay đổi. Nh vy, thut toán cho phép tìm gii pháp
cho bài toàn định tuyến mng khi cu trúc mng là động và thay đổi theo thi gian thc.
2.6. NG DNG MINH HO
Trên thc tế, tìm kiếm cc b tìm kiếm heuristic đưc s dng rng rãi nht do kh
năng gii quyết nhng bài toán thc ch thưc ln. Các thut tn heuristic và tìm kiếm cc
b được ng để gii quyết nhiu bài tn ti ưu như tìm đưng đi, thiết kế vi mch, lp lch
sn xut, làm thi khoá biu v.v.
Trong phn 2.5.1, ta đã xem t cách gii quyết bài toán ngưi bán hàng bng thut toán
leo đồi. Bài toán người bán ng cũng có th gii quyết bng thut toán tôi thép vi cùng cách
la chn trng thái xut pt, chuyn động m mc tiêu như đã trình by cho leo đồi. Để
gii quyết bng gii thut di truyn có th dùng cách biu din li gii các thao tác la
chn, lai ghép, đột biến như trình by trong phn v gii thut di truyn. Các thc nghim cho
thy thut toán tôi thép và gii thut di truyn thường cho kết qu tt hơn (đường đi ngn hơn)
so vi leo đồi.
Trong phn này, ta s xem xét cách s dng tìm kiếm cc b, c th là thut toán leo đồi
ngu nhiên và tìm kiếm tabu, trong mt bài toán có nhiu ng dng: xếp thi khoá biu cho
trường trung hc (cơ s ph thông). Các k thut trình by đây cũng có th áp dng
trong xếp thi khoá biu cho trường đại hc vi mt s b sung và điu chnh phù hp.
u cu chung: Xếp thi khoá biu bài toán xác định giáo viên nào dy lp nào vào
tiết nào sao cho tho mãn mt s ràng buc như không có giáo viên nào dy hai lp cùng mt
c hay không lp nào hc hai môn cùng mt lúc v.v. Để đơn gin, ta s gi s thi khoá
biu ca các tun là ging nhau và do vy ch cn lp thi khoá biu cho mt tun.
Phát biu bài toán: Gi s m lp hc c
1
, …, c
m
, n giáo viên t
1
,…,t
n
, p tiết hc
trong mt tun 1,…,p. Ma trn R kích thước m x n th hin phân công giáo viên, sao cho phn
t r
ij
s tiết giáo viên t
j
phi dy cho lp c
i
trong mt tun. Hai ma trn T
n x p
và C
m x p
th hin các tiết mà giáo viên lp có th dy hoc hc. C th, t
jk
= 1 nếu giáo viên jth
dy vào tiết k, và t
jk
= 0 nếu ngược li, chng hn giáo viên n có con nh không phi dy tiết
đầu bui sáng. Tương t, c
ik
=1 (hoc 0) nếu lp i th hc (hoc không) o tiết k, chng
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
72
hn th quy định để mi lp có mt s tiết trng vào nhng gi nht định dành cho ngoi
khoá. Tiếp theo, D
m x p
là ma trn ràng buc sao cho t
jk
=1 nếu lp i bt buc phi hc vào tiết
k và t
jk
= 0 nếu không bt buc.
i toán xếp thi khoá biu được phát biu như sau:
Tìm x
ijk
(i = 1..m, j = 1..n, k = 1..p)
Tho mãn các ràng buc sau:
x
ijk
= 0 hoc 1 (i = 1..m, j = 1..n, k = 1..p) (1) // x
ijk
= 1 nếu giáo viên j dy lp io
tiết kx
ijk
= 0 nếu ngược li.
x
ijk
k
=
1
p
= r
ij
(i = 1..m, j =1..n) (2)
x
ijk
t
jk
i
=
1
m
(j = 1..n, k = 1.. p) (3)
x
ijk
c
ik
j=1
n
(i = 1..m, k = 1.. p) (4)
x
ijk
d
ik
j=1
n
(i =1..m, k =1.. p) (5)
Ràng buc cng: các ràng buc (1) (5) trên là các ràng buc cng, tc ràng buc
li gii buc phi tho n. Trong trưng hp c th có th thêm hoc bt ràng buc
cng. Chng hn có th thêm ràng buc th hin vic hc lp ghép trong mt s môn hc.
Ràng buc mm. Ngi ràng buc cng còn có ràng buc mm, tc là ràng buc không
bt buc nhưng mong mun tho mãn càng nhiu càng tt. Ràng buc mm s đóng góp o
m mc tiêu ca bài toán. Dưi đây là mt s ràng buc mm thường gp. Để tin cho vic
y dng hàm mc tiêu n dưi, mi ràng buc mm được gán mt trng s w th hin
đim pht khi mt ràng buc mm như vy b vi phm.
- Gn đon (w
1
= 6): hai tiết ca mt giáo viên cho cùng mt lp không nm lin
nhau.
- Tiết trng (w
2
= 1): giáo viên có tiết trng gia các tiết dy.
- Dy quá ít (w
3
= 3): giáo viên dy ít hơn mc ti thiu trong mt ngày.
- Dy quá nhiu (w
4
= 3): giáo viên dy nhiu hơn mc ti đa trong mt ngày.
- Phân b không đều (w
5
= 5): mt giáo viên dy quá nhiu tiết cho cùng mt lp trong
mt ngày (chng hn nhiu hơn 2 tiết). Ràng buc này đảm bo các tiết ca mt giáo
viên cho mt lp phân b đều trong tun.
- Dy vào thi gian không mong mun (w
6
= 3): giáo viên có th đăng ký mt s gi
không mong mun. S vi phm được chun hoá bng cách chia đều cho s đăng ký.
- Không có gi thc hành (w
7
= 10): không xếp được tiết lin nhau cho các môn có gi
thc hành.
Cn lưu ý rng các ràng buc trên th thay đổi (thêm/bt) cho tng trưng hp c
th. Giá tr mc định ca trng s được dùng để minh ho th thay đổi tu vào độ quan
trng ca tng loi ràng buc vi mi trường c th.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
73
Hàm mc tiêu. Để s dng vi thut toán tìm kiếm cc b, các ràng buc cng mm
cn được kết hp thành mt hàm mc tiêu duy nht. Hàm mc tiêu được tính bng s ràng
buc cng b vi phm nhân vi trng s cho ràng buc cng cng vi s ràng buc mm b vi
phm nhân vi trng s tương ng. Các ràng buc b vi phm được tính trên toàn b giáo viên
lp.
Hàm mc tiêu = s ràng buc cng vi phm * w
0
+ s ràng buc mm loi i vi phm * w
i
Giá tr trng s mc định w
0
cho mi ràng buc cng b vi phm được chn cao hơn
ràng buc mm. Chng hn, có th chn trng s cho ràng buc cng: w
0
= 20.
Biu din thi khbiu. Để thut tin cho vic thc hin các chuyn động, thi khoá
biu (tc là các giá tr x
ijk
) được biu din dưới dng ma trn B
n x k
, trong đó mi dòng tương
ng vi mt giáo viên, mi ct tương ng vi mt tiết. Phn t b
jk
cha s th t ca lp
giáo viên j
dy vào tiết k. Giá tr b
jk
= 0 nếu giáo viên không dy nếu giáo viên không dy
vào tiết đó. Giá tr ln hơn s lp có th dùng để biu din các hot động khác ca giáo viên.
n cnh cách biu din này, th s dng cách biu din trong đó dòng tương ng
vi lp, ct vi tiết hc và mi phn t cha s th t giáo viên dy cho lp tương ng vào
tiết tương ng. đây, ta s s dng cách biu din bng ma trn B như đề cp trên.
Trên hình 2.27 mt phn ca thi khoá biu vi cách biu din dùng trn B. Để
tin cho vic hình dung, trên hình v th hin tên lp thay vì s th t được dùng trong thut
toán. Các ô trng tương ng vi gi mà giáo viên không dy. Các ô "--" tương ng vi gi
giáo viên không th dy (tương ng t
jk
= 0).
Cn lưu ý rng, vi cách biu din như vy, vic mt giáo viên dy nhiu hơn mt lp
ti mt thi đim là không th, do vy ràng buc (3) luôn được thon mt phn.
Giáo viên
(s th t)
Th hai Th ba
t1 t2 t3 t4 t5 t1 t2 t3 t4 t5 t1 t2 t3 t4 t5 t1 t2 t3 t4 t5
1
2
3
4
5
8A 8A 9B 9B
9A 9A 7A 7A
-- 8A 8B 8C 7B 7C
-- -- -- -- -- -- -- -- -- --
6B 6B 7A 7A
-- -- -- -- -- -- -- -- -- --
7B 7B 7C 7C
9B 9B 7C 7C
6A 6C 6B 6D
6A 16A 7B 7B
Hình 2.27. Mt phn thi khoá biu
Khi to. Trng thái đầu tiên (thi khoá biu đầu tiên) đưc khi to bng cách xếp lch
cho tng giáo viên mt cách ngu nhiên sao cho ràng buc (2) được tho mãn, tc là tng s
gin lp cho mi giáo viên đưc đảm bo.
Chuyn động. Để s dng các thut toán như leo đồi, tôi thép hay tìm kiếm tabu, ta cn
c định các chuyn động cho phép sinh ra các trng thái (thi khoá biu) láng ging t trng
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
74
thái hin thi. Các nghiên cu trưc đây cho thy có th s dng kết hp hai loi chuyn động
sau.
Dng th nht là dng chuyn động đơn, đưc thc hin bng cách đổi ch hai gi
ging ca cùng mt giáo viên, hoc, nếu mt trong hai gi gi trng thì chuyn gi dy
sang gi trng đó. Chuyn động này được xác định bng b ba <t, p
1
, p
2
>.
Dng th hai là dng chuyn động kép, đưc to thành t hai chuyn động đơn, sao cho
chuyn động đơn th hai khc phc ràng buc cng chuyn động đơn th nht phá v.
Trong trường hp chuyn động đơn th nht không dn ti vic vi phm ràng buc cng thì
chuyn động đơn th hai s đưc b qua chuyn động kép tr thành chuyn động đơn
thông thường.
Thut toán tìm kiếm. Cách biu din bài toán chuyn động như trên th s dng
trong các thut toán leo đồi, tôi thép, tìm kiếm Tabu. Mt s nghiên cu trưc đây cho thy
th kết hp leo đồi ngu nhiên tìm kiếm Tabu đ cho ra kết qu tt. C th, quá trình tìm
kiếm được thc hin như sau.
Bưc 1: Khi to như mô t trên.
Bưc 2: Thut toán leo đồi ngu nhiên đưc s dng để ci thin li gii hin thi.
Thut toán leo đồi ngu nhiên được sa đổi đ cho phép đi ngang, tc chuyn sang các
trng thái tt bng trng thái hin thi ti đa N ln (N là tham s).
Bưc 3: Sau khi leo đồi ngu nhiên dng li do không ci thin đưc na, thut toán
Tabu s được thc hin trên li gii do leo đồi ngu nhiên tr v.
Bưc 4: Lp li bước 2 bưc 3 M ln (M là tham s).
Vic s dng leo đồi ngu nhiên có hai tác dng. Th nht, leo đồi ngu nhiên to ra
trng thái xut phát cho tìm kiếm Tabu để tiết kim thi gian do thi gian thc hin Tabu lâu
hơn leo đồi. Th hai, sau khi Tabu không th ci thin tiếp li gii, leo đồi cho phép di
chuyn sang vùng li gii khác để bưc thc hin Tabu tiếp theo có th kho sát vùng không
gian li gii khác vòng chy trước. Cách kết hp hai thut toán cho phép tìm ra li gii cht
lượng hơn vi độ phc tp tính toán chp nhn đưc.
Kết qu. Thc nghim vi các trường ph thông vi trên 30 lp và trên 50 giáo viên cho
thy các k thut trình by trên tìm ra thi khoá biu cht lưng tt hơn nhiu (hàm mc
tiêu nh hơn nhiu) so vi thi khoá biu xếp bng tay và các phương pháp heuristic. Quá
trình xếp thi khoá biu có th thc hin trên máy tính nhân thông thường trong vòng vài
phút ti vài chc phút tuch thước trưng.
2.7. CÂU HI VÀ BÀI TP CHƯƠNG
1. Gi s ta có ba can đựng nưc vi dung tích 3 lít, 8 lít và 12 lít. Ta có th đổ nước đầy các
can hoc rót toàn b nước trong can ra ngoài hoc sang can khác. Cn tìm cách đổ đầy và
rót nước khi can để đong đưc 1 lít nước. Trình by bài toán này dưới dng bài toán tìm
kiếm viết chương trình để tìm li gii, s dng mt thut toán tìm kiếm phù hp.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
75
2. i toán nhà truyn giáo và người ăn tht người. Có ba nhà truyn giáo ba người thuc
b lc ăn tht người trên b mt con sông. Cn chuyn c u người sang b bên kia
bng mt con thuyn có th ch ti đa hai người. Yêu cu đặt ra không lúc nào s
người ăn tht trên mt b sông hoc trên thuyn ln hơn s nhà truyn giáo.
Hãy phát biu bài toán dưới dng bài toán tìm kiếm trong không gian trng thái s
dng thut toán tìm kiếm phù hp để tìm ra li gii.
Xây dng chương trình máy tính để thc hin hin thut toán.
3. c khng định sau đúng hay sai, gii thích ti sao:
Để tìm được li gii, tìm theo chiu sâu không bao gi m rng ít nút hơn tìm kiếm
A* vi hàm heuristic chp nhn được.
h(n) = 0 là hàm heuristic chp nhn đưc cho bài toán 8 quân hu.
Tìm theo chiu rng đầy đủ k c khi giá thành đưng đi gia hai trng thái th
bng không.
4. Gi s cn tìm chui các link cho phép di chuyn t trang Web này sang trang Web khác.
Hãy la chn thut toán tìm kiếm phù hp cho bài toán này viết chương trình hin
thc hóa thut toán.
Vic s dng tìm kiếm theo hai hưng cho bài tn y có hiu qu không?
5. c khng định sau đúng hay sai, gii tch (chng minh) câu tr li:
Tìm theo chiu rng là trưng hp riêng ca tìm theo giá thành thng nht.
Tìm theo giá thành thng nht là trưng hp riêng ca tìm kiếm A*.
6. Cho đồ th trên hình sau:
Hãy xác định đường đi t START ti GOAL s dng các thut toán tìm kiếm sau:
a) Tìm theo chiu rng.
b) Tìm theo chiu sâu.
c) Tìm theo giá thành thng nht.
d) Tìm kiếm sâu dn.
Downloaded by viet jack (vietjackteam@gmail.com)
Gii quyết vn đề bng tìm kiếm
76
Th hin nút được m rng và danh sách các nút trong tp biên ti mi vòng lp ca thut
toán. S dng con tr ngưc để khôi phc li đường đi khi tìm được nút đích.
Hãy cho biết trong trường hp nào đường đi tìm đưc là ngn nht.
7. Cho đồ th trên hình sau:
trong đó giá thành đường đi gia hai t được th hin cnh cung tương ng, giá tr hàm
heuristic h đưc th hin bên cnh các nút.
a) Hãy cho biết hàm h có phi là hàm heuristic chp nhn được hay không? Ti sao?
b) Tìm đưng đi t S ti G s dng thut tn tìm kiếm tham lam vi hàm h hàm
heuristic.
c) Thay đổi giá tr h ti nút D thành h = 3, sau đó tìm đưng đi t S ti G s dng thut
toán A* vi h là hàm heuristic. Hãy cho biết đưng đi trong trường hp này có phi là
đường đi ngn nht không.
d) Thay đổi giá tr h ti t D thành h = 5, sau đó tìm đưng đi t S ti G s dng thut
toán A* vi h hàm heuristic. Hãy cho biết đưng đi trong trường hp này có phi là
đường đi ngn nht không.
e) S dng thut toán A* sâu dn để tìm đường đi t S ti G vi bưc nhy bng 2. Hãy
cho biết đường đi tìm được có ti ưu không?
f) S dng thut toán A* sâu dn để tìm đường đi t S ti G vi bước nhy bng 3. Hãy
cho biết đường đi tìm đưc có ti ưu không? So sánh vi kết qu câu e.
8. Viết chương trình gii bài toán n quân hu vi n ln (t 1000 tr lên) s dng thut toán
leo đồi vi trng thái xut phát đưc khi to ngu nhiên nhiu ln. Có th s dng không
gian trng thái vi đầy đủ c n quân hu, mi quân nm trong mt ct. Th nghim và so
sánh kết qu s dng các kiu chuyn động khác nhau: thay đổi v trí 1, 2, 3, 4, quân hu.
Trong trưng hp nào thut toán tìm được li gii tt hơn. Trong trưng hp nào thi gian
thc hin thut toán ngn hơn.
9. Viết chương trình gii bài toán n quân hu vi n ln, s dng thut toán tôi thép. th
th nghim các kiu chuyn động tương t như i tp 8.
Downloaded by viet jack (vietjackteam@gmail.com)
CHƯƠNG 3: BIU DIN TRI THC VÀ LP LUN LOGIC
Vic s dng tri thc v thế gii ca i toán đóng vai trò quan trng trong vic xây
dng các h thng thông minh hay h thng trí tu. Trong chương này, ta s xem xét cách
s dng logic để biu din tri thc dưới dng thun tin cho x lý trên máy tínhmt s k
thut lp lun da trên tri thc để đưa ra quyết định. Ni dung chương đề cp ti hai dng
logic: logic mnh đề và logic v t hay logic bc mt. Trong đó, phn trng tâm phn v
logic v t do logic v t kh năng biu din tt hơn và nhiu kh năng ng dng hơn logic
mnh đề. Ngưi đọc s đưc làm quen vi cách xây dng các biu thc logic, mt s quy tc
suy din quan trng cho tng loi logic. Cui cùng phn trình by v mt s th tc suy
din thông dng và ví d.
3.1. S CN THIT S DNG TRI THC TRONG GII QUYT VN ĐỀ
S cn thiết ca tri thc và lp lun
Mt yêu cu quan trng đối vi h thng thông minh phi kh năng s dng tri
thc v thế gii xung quanh lp lun (reasoning) vi tri thc đó. Rt khó để đạt được
nhng hành vi thông minh mm do mà không có tri thc v thế gii xung quanh kh
năng suy din vi tri thc đó. S dng tri thc và lp lun đem li nhng li ích sau.
- H thng da trên tri thc có tính mm do cao. Vic kết hp tri thc lp lun
(bao gm suy din suy lun) cho phép to ra tri thc khác, giúp h thng đạt
được nhng mc tiêu khác nhau, đồng thi có kh năng lp lun v bn thân mc
tiêu. Chương trưc đã đề cp ti k thut gii quyết vn đề bng cách tìm kiếm.
Nhng h thng tìm kiếm ch s dng tri thc hn chế, th hin trong vic biu
din i toán (như cách sinh ra các chuyn động) các heuristic. H thng như
vy không kh năng t thay đổi mc đích cũng như không kh năng hành
động mt cách mm do, ngoài nhng gì cha trong gii thut và t bài toán.
vy k thut tìm kiếm là chưa đủ để to ra h thng thông minh.
- S dng tri thc lp lun cho phép h thng hot động c trong trưng hp
thông tin quan sát v môi trường là không đầy đủ. H thng có th kết hp tri thc
chung đã để b sung cho thông tin quan sát đưc khi cn ra quyết định. d,
khi giao tiếp bng ngôn ng t nhiên, th hiu mt câu ngn gn nh s dng
tri thc đã có v ng cnh giao tiếp và ni dung ln quan ti ch đề.
- Vic s dng tri thc thun li cho vic y dng h thng. Thay lp trình li
hoàn toàn h thng, th thay đổi tri thc trang b cho h thng t mc
đích cn đạt được, đồng thi gi nguyên th tc lp lun.
c h thng s dng tri thc được gi h da trên tri thc. H thng loi này gm
thành phn cơ bn là cơ s tri thc (tiếng Anh Knowledge Base, viết tt KB). Cơ s tri
thc gm các câu hay các công thc trên mt ngôn ng nào đó và cha các tri thc v thế gii
ca bài toán. Cùng vi cơ s tri thc, h thng còn kh năng lp lun, gm c suy din
(inference) suy lun (deduction), cho phép đưa ra các hành động hoc câu tr li hp lý
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
78
da trên tri thc thông tin quan sát được. Thc cht, suy din hay suy lun cách to ra
các câu mi t nhng câu đã . Như vy, mt h da trên tri thc bao gm cơ s tri thc
th tc suy din.
Biu din tri thc
Để có th s dng tri thc, tri thc cn đưc biu din dưi dng thun tin cho vic
t và suy din. Nhiu ngôn ng và mô hình biu din tri thc đã được thiết kế để phc v mc
đích y. Ngôn ng biu din tri thc phi ngôn ng nh thc để tránh tình trng nhp
nhng như thường gp trong ngôn ng t nhiên. Mt ngôn ng biu din tri thc tt phi
nhng tính cht sau:
- Ngôn ng phi kh năng biu đạt tt, tc cho phép biu din mi tri thc
thông tin cn thiết cho bài toán.
- Cn đơn gin và hiu qu, tc là cho phép biu din ngn gn tri thc, đồng thi
cho phép đi đến kết lun vi khi lưng tính toán thp.
- Gn vi ngôn ng t nhiên để thun li cho người s dng trong vic t tri
thc.
Sau khi đã có ngôn ng biu din tri thc, tri thc v thế gii ca i toán được biu
din dưới dng tp hp các câu hay các công thc to thành cơ s tri thc (ký hiu KB
trong các phn sau). Th tc suy din đưc s dng để to ra nhng câu mi nhm tr li cho
các vn đề ca bài toán. Thay vì trc tiếp nh động trong thế gii thc ca bài toán, h thng
có th suy din da trên cơ s tri thc đưc to ra.
Logic
Trong chương này, ta s xem t logic vi vai trò là phương tin để biu din tri thc
suy din.
Dng biu din tri thc c đin nht trong máy tính logic, vi hai dng ph biến
logic mnh đề logic v t. Logic là mt ngôn ng biu din tri thc trong đó các câu nhn
hai giá tr đúng (True) hoc sai (False)
1
. Cũng như mi ngôn ng biu din tri thc, logic
được xác định bi 3 thành phn sau:
pháp: bao gm các ký hiu các quy tc liên kết các ký hiu để to thành câu
hay biu thc logic. Mt d pháp các ký hiu quy tc xây dng biu thc
toán hc trong s hc và đại s.
Ng nghĩa ca ngôn ng cho phép ta xác định ý nghĩa ca các câu trong mt min
o đó ca thế gii hin thc, xác định các s kin hoc s vt phn ánh thế gii thc
ca câu mnh đề. Đối vi logic, ng nghĩa cho phép xác định câu đúng hay sai
trong thế gii ca bài toán đang xét. d, trong ngôn ng toán hc, câu a + 1 = 3
câu đúng pháp. Theo ng nghĩa ca ngôn ng toán hc, câu này đúng trong
min bài toán có a = 2 và sai trong nhng min bài toán có a 2.
1
�Mt s h thng logic được phát trin v sau s dng nhiu giá tr hơn như logic đa tr, logic m
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
79
Cơ chế suy din là phương pháp cho phép sinh ra các câu mi t các câu đã hoc
kim tra liu các câu có phi là h qu logic ca nhau. Ta th s dng suy din để
sinh ra các tri thc mi t tri thc đã có trong cơ s tri thc.
Logic cung cp mt công c hình thc để biu din suy lun tri thc. c phn tiếp
theo s trình bày v hai dng logic mnh đề và logic v t cũng như cách s dng các h thng
logic này trong biu din tri thc và suy din.
3.2. LOGIC MNH ĐỀ
3.2.1. Cú pháp
Logic mnh đề logic rt đơn gin, tuy kh năng biu din ca nó còn mt s hn chế
nhưng thun tin cho ta đưa vào nhiu khái nim quan trng trong logic.
pháp ca logic mnh đề bao gm tp các ký hiu tp các quy tc kết hp c ký
hiu to thành công thc hay câu.
a) Các ký hiu
Các ký hiu đưc dùng trong logic mnh đề bao gm:
Các ký hiu chân lý hay các hng logic: True (ký hiu T) và False (ký hiu F).
Các ký hiu mnh đề (còn đưc gi là các biến mnh đề thường đưc ký hiu
bng các ch cái): P, Q,...
Các kết ni logic
,
, ¬,
,
.
Các du ngoc, chng hn ( ).
b) Các câu hay công thc
c câu hay công thc trong logic mnh đề đưc xác định theo các quy tc sau:
Quy tc 1: Mi ký hiu chân lý ký hiu mnh đề là câu.
Ví d: True, P
c câu ch gm ký hiu chân lý hoc ký hiu mnh đề như vy gi các câu đơn hay câu
nguyên t.
Quy tc 2: Tm ngoc ra ngoài mt câu s được mt câu.
Ví d, nếu P là câu thì (P) cũng là câu.
Quy tc 3: Kết hp các câu bng phép ni logic s to ra câu mi. C th là:
Nếu A và B là câu thì:
(A
B) (đọc là A hi B” hoc “A và B”)
(A
B) (đọc là “A tuyn B” hoc “A hoc B”)
(¬ A) (đọc là “ph định A”)
(AB) (đọc là “A kéo theo B” hoc “nếu A thì B”). Phép kéo theo còn được gi quy
tc “nếu – thì
(AB) (đọc là “A và B kéo theo nhau” hay “A và B tương đương nhau”, mt s tài liu
s dng ký hiu
cho phép ni logic này)
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
80
các câu.
c câu đưc to ra như vy không phi câu đơn và đưc gi là câu phc hp.
Để cho ngn gn các công thc đưc b đi các cp du ngoc không cn thiết. Chng
hn, thay cho ((A
B)
C) ta s viết là (A
B)
C. Trong trường hp mt câu cha nhiu phép
ni, các phép ni s đưc thc hin theo th t sau:
¬,
A B
¬ A
A
B
A v B A=>B A<=>B
False False True False False True True
False True True False True True False
True False False False True False False
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
81
True True False True True True True
S dng bng chân lý, ta th tính được giá tr bt c câu phc nào bng cách thc
hin đệ quy nhng kết ni thành phn.
Các công thc tương đương
c phép biến đổi tương đương giúp đưa c công thc v dng thun li cho vic lp
lun và suy din. Hai công thc A và B được xem là tương đương nếu chúng có cùng mt giá
tr chân lý trong mi minh ha.
Ký hiu: Để ch A tương đương vi B ta viết A
B.
Bng phương pháp bng chân lý, d dàng chng minh được s tương đương ca các
công thc sau đây :
o AB
¬ A B
o A B
(AB)
(BA)
Lut ph định kép
o ¬ (¬ A)
A
Lut De Morgan
o ¬ (A B)
¬ A
¬ B
o ¬ (A
B)
¬ A ¬ B
Lut giao hoán
o A v B
B v A
o A
B
B
A
Lut kết hp
o (A B) C
A ( B C)
o (A
B)
C
A
( B
C)
Lut phân phi
o A
(B C)
(A
B ) (A
C)
o A (B
C)
(A v B )
(A C)
3.3. SUY DIN VI LOGIC MNH ĐỀ
3.3.1. Suy din logic
Mt công thc H đưc xem h qu logic ca mt tp công thc G ={G
1
,.....,G
m
} nếu
trong bt k minh ha nào mà {G
1
,.....,G
m
} đúng thì H cũng đúng.
Khimt cơ s tri thc dưới dng tp hp các câu logic, ta mun s dng các tri thc
trong cơ s này để sinh ra tri thc mi, tc là sinh ra h qu logic ca các công thc trong
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
82
cơ s tri thc. Điu đó được thc hin bng cách suy din. Suy din hay suy lý thường dùng
ch quá trình cho phép rút ra kết lun. Để thc hin suy din ta s dng lut suy din. Mt lut
suy din gm hai phn : mt tp các điu kin và mt kết lun.
Định nghĩa.
Th tc suy din đưc gi là đúng đắn (sound) nếu kết qu suy din là h qu logic ca
điu kin.
Th tc suy din được gi đầy đủ (complete) nếu cho phép tìm ra mi h qu logic
ca điu kin.
Ta s s dng nhng kí hiu sau:
KB: kí hiu tp các câu đã có hay cơ s tri thc (Knowledge Base)
KB α : Khi các câu trong KB đúng (True) thì α đúng (True), hay α h qu
logic ca KB.
Nếu mt câu α được sinh ra t KB nh th tc suy din (hay thut toán suy din) i thì ta
ký hiu:
KB
i
α
3.3.2. Suy din s dng bng chân lý
Suy din là xác định liu mt công thc α có phi là h qu logic ca c công thc
trong cơ s tri thc KB không. Nói cách khác, cn c đnh KB α đúng hay sai. Th tc suy
din đơn gin nht đưc thc hin bng cách lit tt c các minh ha và kim tra xem trong
các minh ha các câu trong cơ s tri thc KB đúng thì α đúng không, theo đúng định
nghĩa v h qu logic phn trưc. Như ta đã biết trên, mi minh ha mtch gán các
giá tr True hoc False cho tng ký hiu mnh đề. S dng bng chân lý, th xác định giá
tr cho các câu trong KB và giá tr ca α cho tng minh ha. T đây có thc định đưc mt
công thc có phi là h qu logic ca các công thc trong cơ s tri thc hay không.
Ví d: cho KB: A
A B C
A B (A A
KB α
T T T T T T T
T T F T T T T
T F T T F F T
T F F T T T T
F T T T T T T
α
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
83
F T F F T F T
F F T T F F F
F F F F T F F
Suy din vi logic mnh đề s dng bng chân lý th tc suy din đầy đủ đúng
đắn. Tính đúng đắn là hin nhiên do bng chân lý s dng đúng ng nghĩa đưc quy định vi
kết ni logic. Tính đầy đủ do s lưng các t hp giá tr đối vi logic mnh đề hu hn
do vy có th lit kê đầy đủ trường hp KB có giá tr đúng.
Tuy nhiên, cn lưu ý rng, mt công thc cha n biến mnh đề, thì s các minh ha ca
2
n
, tc bng chân lý 2
n
dòng. Như vy vic kim tra mt công thc phi
mt h qu lôgic hay không bng phương pháp bng chân lý độ phc tp tính toán ln do
đòi hi thi gian theo hàm mũ. Cook (1971) đã chng minh rng, phương pháp chng minh
thut suy din là bài toán NP-đầy đủ.
3.3.3. S dng các quy tc suy din
Do vic suy din s dng bng như trên có độ phc tp ln nên cn có nhng thut toán
suy din hiu qu hơn cho logic mnh đ. Các th tc suy din đều da trên mt s ki nim
như công thc tương được và các quy tc suy din. Sau đây là mt s lut suy din quan trng
trong logic mnh đề.
Trong các lut này
,
i
,
,
là các câu. Phn tin đề hay phn điu kin đưc viết
dưới dng t s, phn h qu đưc viết dưi dng mu s.
1. Lut Modus Ponens
=>
,
T mt kéo theo và gi thiết ca kéo theo, ta suy ra kết lun ca nó.
2. Lut Modus Tollens
=>
,¬
¬
T mt kéo theo và ph định kết lun ca nó, ta suy ra ph định gi thiết ca kéo theo.
3.Lut loi tr
1
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
84
1
,.......,
i
,........
m
1
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
85
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
86
3.4. LOGIC V T (LOGIC BC 1)
Trong phn trước ta đã xem xét logic mnh đề và cách s dng logic mnh để biu din
tri thc. Bên cnh ưu đim đơn gin, logic mnh đề mt nhưc đim ln kh năng
biu đạt hn chế, không th s dng để biu din tri thc mt cách ngn gn cho nhng bài
toán độ phc tp ln. C thlogic mnh để thun li cho biu din s kin, s kin đơn
gin được biu din bng câu nguyên t, s kin phc tp đưc biu din bng cách s dng
kết ni logic để kết hp câu nguyên t. Logic mnh đề không cho phép biu din mt cách
ngn gn môi trường vi nhiu đối tượng. Chng hn để th hin nhn xét “tt c sinh viên
trong lp nào đó chăm hc” ta phi s dng các câu riêng r để th hin tng sinh viên c th
trong lp chăm hc. Nói chung, logic mnh đề không cho phép biu din ngn gn các yếu t
v thi gian, không gian, s lượng hoc các quan h có tính ph quát gia các đối tượng.
Trong phn này ta s xem t logic v t - mt h thng logic có kh năng biu din
ngn gn và mnh hơn, đồng thi xem xét chi tiết th tc suy din vi logic v t.
3.4.1. Đc đim
Đặc đim quan trng nht ca logic v t là cho phép biu din thế gii xung quanh
dưới dng các đối tượng, tính cht đối tưng, quan h gia các đối tượng đó. Vic s dng
đối tưng rt t nhiên trong thế gii thc và trong ngôn ng t nhiên, vi danh t biu din
đối tưng, tính t biu din tính cht và động t biu din quan h gia các đối tưng. Có th
k ra rt nhiu ví d v đối tượng, tính cht quan h:
o Đối tượng : mt cái bàn, mt cái nhà, mt cái cây, mt con ngưi, mt sinh viên, mt
con s. ...
o Tính cht : Cái n có th có tính cht : có bn chân, làm bng g, không có ngăn kéo,
sinh viên có th tính cht là thông minh, cao, gy…
o Quan h : cha con, anh em, bn (gia con ngưi ); ln hơn nh hơn, bng nhau (
gia các con s ) ; bên trong, n ngoài nm trên nm dưới (gia các đồ vt )...
o Hàm : Mt trường hp riêng ca quan h là quan h hàm, trong đó vi mi đầu vào
mt hoc nhiu đối tượng, ta có mt giá tr hàm duy nht, cũng là mt đối tượng. Ví d:
tay trái ca ai đó, b ca ai đó, bi s chung nh nht ca hai s.
Logic v t pháp ng nghĩa được y dng da trên khái nim đi tượng. H
thng logic này đóng vai trò quan trng trong vic biu din tri thc do có kh năng biu din
phong phú và t nhiên, đồng thi là cơ s cho nhiu h thng logic khác.
3.4.2. Cú pháp và ng nghĩa
Trong phn này ta s xem xét pp, tc là quy tc to ra nhng câu hay biu thc
logic, ca logic v t cùng vi ng nghĩa ca nhng cu trúc đó.
c ký hiu và ý nghĩa
Logic v t s dng nhng dng ký hiu sau.
o Ký hiu hng logic: True, False
o c ký hiu hng: Nam, 3, Vnh H long,… dùng để th hin các đối tượng
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
87
o c ký hiu biến: x, y, z,... biu din lp đối tượng
o c ký hiu v t: Tch (Nam, Bc), Làm_t_g (t), Anh_em (An, Ba, Út)
Ký hiu v t th hin quan h gia các đối tượng hoc tính cht ca đối tượng.
Mi v t có th n tham s ( n
0). d Thích v t ca hai tham s,
Làm_t_g v t mt tham s. Các ký hiu v t không tham s các ký
hiu mnh đề.
o c ký hiu hàm: M_ca(An), min(3,4,9),...
Ký hiu hàm th hin quan h hàm. Mi hàm có th có n tham s ( n
1). Mc
dù cú pháp ca hàm tương t v t nhưng hàm tr v giá tr đối tượng, trong
khi v t có giá tr True hay False.
o c ký hiu kết ni logic:
( hi),
(tuyn), ¬ ( ph định),
(kéo theo),
(
tương đương ).
o c ký hiu lượng t:
(vi mi),
(tn ti).
o c ký hiu ngăn cách: du phy, du m ngoc và du đóng ngoc.
Tương t như vi logic mnh đề, ng nghĩa cho phép liên kết biu thc logic vi thế
gii ca bài toán để xác định tính đúng hoc sai ca biu thc. Mt liên kết c th như vy
được gi mt minh ha. Minh ha c định c th đối tưng, quan h hàm các ký
hiu hng, v t, và ký hiu hàm th hin.
Để c định mt minh ha, trưc hết ta cn c định mt min đối tượng (nó bao gm
tt c các đối tưng trong thế gii mà ta quan tâm). Cũng có th xác định min đối tượng cho
tng tham s ca mt v t hoc mt hàm o đó. d trong v t Thích(x,y), min ca x
tt c mi người, min ca y là các loi động vt. S đối tượng có th hn, chng hn
trong trường hp min đối tưng là toàn b s thc.
Vic la chn tên cho hng, biến, v t, và hàm hoàn toàn do người dùng quyết định. Có
th nhiu minh ha khác nhau cho cùng mt thế gii thc. Tương t như vi logic mnh
đề, vic suy din, tính đúng đắn ca biu thc, hay vic xác định h qu logic được xác định
da trên toàn b minh ha. Tuy nhiên, vic lit kê toàn b minh ha trong logic v t phc tp
hơn nhiu so vi logic mnh đề, thm chí không th thc hin đưc, so s lượng minh ha
thhn.
Hng thc (term)
Hng thc (term) là biu thc logic có kết quđối tưng. Hng thc được xác định đệ
quy như sau.
o c ký hiu hng và các ký hiu biến là hng thc.
o Nếu t
1
, t
2
, t
3
, ..., t
n
n hng thc và f là mt ký hiu hàm n tham s thì f(t
1
, t
2
,
..., t
n
) là hng thc. Mt hng thc không cha biến được gi mt hng thc
c th hay hng thc nn (ground term).
Chng hn, An ký hiu hng, M_ca ký hiu hàm, thì M_ca(An) mt hng
thc c th. Nh s dng ký hiu hàm, ta không cn đặt tên cho tt c các đối tượng. Chng
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
88
hn, thay dùng mt hng c th để biu din m ca An, ta th dng ký hiu hàm
M_ca (An).
Ng nghĩa ca hng thc như sau: các hng, biến, tham s tương ng vi đối tưng
trong min đối tượng; ký hiu hàm tương ng vi quan h hàm trong thế gii thc; hng thc
tương ng vi đối tượng là giá tr ca hàm khi nhn tham s.
Ký hiu “=”
Hai hng thc bng nhau và đưc ký hiu “=” nếu cùng tương ng vi mt đối tượng.
d: M_ca(Vua_T_Đức) = Bà_T_Dũ
Tính đúng đắn ca quan h bng được xác định bng cách kim tra hai vế ca ký t “=”.
Câu nguyên t (câu đơn)
c câu nguyên t, còn gi là câu đơn, được xác định như sau:
o True và False là các câu nguyên t.
o V t có tham s là hng thc là câu nguyên t.
o Hng thc 1 = hng thc 2 là câu nguyên t.
Ví d : Yêu ( Hoa, M_ca( Hoa))
M_ca(Vua_T_Đc) = Bà_T_Dũ
u nguyên t nhn giá tr đúng (true) trong mt minh ha nào đó nếu quan h được
biu din bi ký hiu v t là đúng đối vi các đối tưng đưc biu din bi các hng thc
đóng vai trò thông s. Như vy, câu nguyên t th hin nhng s kin (đơn gin) trong thế
gii ca bài toán và do vy tương đương vi các mnh đề.
Mt u nguyên t là đúng nếu trong mt minh ha nào đó nếu quan h đưc biu din
bi v t ca câu tn ti gia các tham s ca v t trong minh ha đó. Nhc li: minh ha là
cách gán giá tr c th cho các ký hiu và biến trong thế gii nào đó.
u
T các câu nguyên t, s dng các kết ni logic các lưng t, ta xây dng nên các
câu. Câu được định nghĩa đệ quy như sau:
o u nguyên t là câu.
o Nếu G H các câu ngun t, thì các biu thc (G
H), (G
H), (¬ G), (G
H), (G
H) là câu
o Nếu G là mt câu nguyên t x biến thì các biu thc (
x G), (
x G) là câu,
trong đó
,
các lưng t logic s được đề cp ti trong phn sau.
c câu không phi là câu nguyên t s đưc gi là các câu phc hp. Các câu không
cha biến được gi là câu c th. Khi viết các công thc ta s b đi các du ngoc không cn
thiết, chng hn các du ngoc ngoài cùng.
Ví d: ¬ Ghét ( Hoa, M_ca ( Hoa))
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
89
Anh_em (Nam, Dũng)
Anh_em (Dũng, Nam)
Thun_tay_trái (x) Thun_tay_phi (x)
Anh_ca(x, y) ¬ Anh_ca (y, x)
Ng nghĩa ca câu phc hp đưc xác định mt cách đệ quy t ng nghĩa các câu đơn
các phép ni logic tương t như trong logic mnh đề. C th là, nếu P, Q là các câu thì:
¬ P ph định ca P nhn giá tr true trong mt minh ha nếu P sai trong minh
ha đó và ngưc li.
P
Q nhn giá tr true nếu c P Q đều đúng nhn giá tr false nếu ít nht mt
trong hai câu P, Q là sai.
P Q nhn giá tr true nếu ít nht mt trong hai câu P, Q đúng nhn giá tr false
nếu c hai câu đều sai.
P Q nhn giá tr false nếu P đúng Q sai, nhn giá tr true trong các trường hp
còn li.
P Q nhn giá tr true nếu các P và Q cùng đúng hoc c P Q cùng sai, nhn giá
tr false trong các trưng hp còn li.
x P nhn giá tr true nếu tt c các câu nhn đưc t P bng cách thay x bi mt đối
tượng trong min giá tr ca x đều có giá tr đúng, và nhn giá tr false nếu ít nht mt câu như
vy sai.
x P nhn giá tr true nếu tn ti mt đối tưng nào đó trong min giá tr ca biến x
m cho câu P nhn giá tr true.
Tr ng nghĩa ca các câu có cha lưng t, ng nghĩa ca các phép ni tương t như
trong logic mnh đề và có th th hin bng bng chân lý.
c lượng t
Logic v t s dng hai lượng t: vi mi và tn ti.
Lượng t vi mi (ký hiu
) cho phép mô t tính cht ca c mt lp các đối tượng,
ch không phi ca mt đối tượng, không cn phi lit ra tt c các đối tượng trong
lp. d ta s dng v t Voi(x) (đối tượng x con voi ) v t m(x) (đối tưng x
màu xám) thì câu “ tt c các con voi đều có màu xám” có th biu din bi công thc
x (Voi (x)
Xám(x)).
Như vy câu
x P nghĩa câu P đúng vi mi đối tượng x thuc min giá tr đã
được quy định ca thế gii bài toán. Lưng t vi mi có th coi như phép hi ca nhiu câu.
Lưu ý: lượng t vi mi được dùng vi kéo theo ch không dùng vi “và”. Chng hn,
để nói rng mi sinh viên đều chăm hc thì câu
x Sinh_viên(x)
Chăm_hc(x) là đúng
trong khi
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
90
x Sinh_viên(x) Chăm_hc(x) sai do câu này s ý nghĩa tt c mi người đều
sinh viên và đều chăm hc.
Lượng t tn ti (ký hiu
) cho pp ta to ra các câu nói đến mt đối tượng nào đó
trong mt lp đối tượng mà có mt tính cht hoc tho mãn mt quan h nào đó. Ví d ta
s dng các câu nguyên t Sinh_viên(x) (x sinh viên) _trong(x, P308), (x trong
phòng 308), ta có th biu din câu “ Có mt sinh viên phòng 308” bi biu thc
x (Sinh_vn(x)
_trong (x, P308).
Ng nghĩa ca công thc
x P đưc c định như là ng nghĩa ca công thc tuyn
ca tt c các công thc nhn được t P bng ch thay x bi mt đối tượng trong min đối
tượng.
Lưu ý: Lượng t tn ti đưc dùng vi và” ch không dùng vi “kéo theo”. Chng
hn để nói rng có mt s sinh viên chăm hc thì câu:
x Sinh_viên(x) Chăm_hc(x) là đúng
trong khi
x Sinh_viên(x) Chăm_hc(x)
sai. Tht vy, do phép kéo theo đúng khi tin đề là sai nên câu trên đúng khi có mt
người x nào đó không phi sinh viên, trong khi đây không phi ý ta mun khng
định.
Quan h gia lượng t vi mi và lưng t tn ti: lượng t này có th biu din bng
lượng t kia bng cách s dng phép ph định. Ví d:
x Thích (x, Kem) tương đương vi ¬
x ¬Thích(x, Kem)
y Thích (x, Kem) tương đương vi ¬x ¬Thích (x, Kem)
Như vy, ta có th dùng mt trong hai lượng t để biu din cho lưng t còn li. Tuy
nhiên để thun tin cho vic đọc và hiu các câu logic, logic v t vn s dng c hai lượng t
vi mi và tn ti.
Các lượng t lng nhau
th s dng đồng thi nhiu lượng t trong mt câu phc tp. Vùng nh hưng ca
lượng t có th bao hàm lượng t khác và khi đó ta nói lượng t lng nhau. Ví d:
xy Anh_em(x, y) H_hàng(x, y)
x
y Yêu (x, y)
Nhiu lượng t cùng loi có th đưc viết gn bng mt ký hiu lượng t, d câu
th nht th viết gn thành
x, y Anh_em(x, y) H_hàng(x, y)
Trong trường hp lượng t vi mi đưc s dng cùng lượng t tn ti thì th t lượng
t nh hưởng ti ng nghĩa ca câu và không đưc phép thay đổi. Chng hn câu
x
y Yêu (x, y)
có nghĩa là mi người đều có ai đấy để yêu, trong khi câu
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
91
y x Yêu (x, y)
có nghĩa là có ai đó mà tt c đều yêu.
Trong trường hp nhiu lượng t khác nhau cùng s dng mt tên biến thì có th gây
nhm ln vì vy cn s dng tên biến khác nhau cho ký hiu lượng t khác nhau.
Literal
Mt câu là câu nguyên t hoc là ph định ca câu nguyên t được gi là literal.
d: Chơi (x, bóng_đá),
¬ Thích ( Lan, hoa_hng)
các literal, trong đó câu th nht là literal dương và câu th hai là literal âm.
Câu tuyn (clause)
Mt công thc là tuyn ca các literal s được gi là câu tuyn. Chng hn:
Đàn_ông (x)
¬ Thích (x, bóng_đá) là câu tuyn.
Các công thc tương đương
Cũng như trong logic mnh đề, ta nói hai công thc G và H tương đương ( viết là G
H ) nếu chúng cùng đúng hoc cùng sai trong mt minh ho. Ngoài các tương đương đã biết
trong logic mnh đề, trong logic v t cp mt còn có các tương đương khác liên quan ti các
lượng t.
Sau đây là các tương đương ca logic v t
x G(x)
y G(y)
x G(x)
y G(y)
Đặt tên li biến đi sau lưng t tn ti, ta nhn được công thc tương đương .
¬ (
x G(x))
x ( ¬ G(x))
¬ (
x G(x))
x ( ¬ G(x))
x (G(x)
H(x))
x G(x)
x H(x)
x (G(x)
H(x))
x G(x)
x H(x)
Ví d :
x Yêu(x, M_ca(x))
y Yêu(y, M_ca(y)).
Mt s ví d
Dưới đây mt s d các câu tiếng Vit biu din các câu đó bng logic v t.
Cn lưu ý rng mi câu tiếng Vit th có nhiu câu tương đương trong logic v t. Trong
mi ví d dưới đây ch s dng mt câu như vy.
Tt c sinh viên đều chăm hc
x (Sinh_viên(x) Chăm_hc(x))
Có mt s sinh viên
x Sinh_viên(x)
Mt s sinh viên chăm hc
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
92
x (Sinh_viên(x) Chăm_hc(x))
Mi sinh viên đều thích mt sinh viên nào đó
x (Sinh_viên (x) y (Sinh_viên (y) Thích (x, y) ))
Mi sinh viên đều thích mt sinh viên khác
x ( Sinh_viên(x) y ( Sinh_viên(y) ¬ (x = y) Thích(x,y) ))
Có mt sinh viên được tt c sinh viên khác thích
x ( Sinh_viên(x) y ( Sinh_viên(y) ¬(x = y) Thích(y,x) ))
Nam là sinh viên
Sinh_viên (Nam)
Nam hc mt trong hai ngành: công ngh thông tin hoc kế toán
Hc_ngành (Nam, CNTT) ¬ Hc_ngành (Nam, kế_toán)
Nam hoc CNTT hoc kế toán hoc c hai ngành mt lúc
Hc_ngành (Nam, CNTT) ∨� Hc_ngành (Nam, kế_toán)
Tt c sinh viên đều hc ít nht mt ngành
x ( Sinh_viên(x) y ( Ngành(y) Hc_ngành(x,y) ))
Ch mt sinh viên trượt môn Triết
x ( Sinh_viên(x) Trượt(x, Triết) y ( Sinh_viên(y) Trượt(y, Triết) x = y )
Không sinh viên nào giúp đ tt c sinh viên khác
¬ x ( Sinh_viên(x) y ( Sinh_viên(y) ¬ (x = y) Giúp_đỡ(x,y) ))
3.5. SUY DIN VI LOGIC V T
Trong phn v logic mnh đề, ta đã xem xét mt s quy tc suy din. Quy tc suy din
nhng th tc suy din đúng đắn đơn gin. Trong phn này s gii thiu thêm các quy
tc suy din dùng cho các lưng t. Cùng vi các quy tc suy din đã biết, các quy tc suy
din vi lưng t to thành tp quy tc được s dng trong suy din vi logic v t. Phn này
cũng gii thiu phép hp nht và cách s dng hp nht để suy din vi các biu thc logic v
t. Sau đó, ta s xem xét ba phương pháp suy din: suy din tiến, suy din lùi, suy din
bng hp gii.
3.5.1. Quy tc suy din
Mi quy tc suy din cho logic mnh đề cũng đúng vi logic v t. Ngoài ra, logic v t
còn thêm mt s quy tc suy din khác, ch yếu đưc dùng vi câu có cha lượng t, cho
phép biến đổi nhng câu này thành câu không có lượng t.
Phép thế (substitution)
Trước khi đi xem xét quy tc suy diên, ta định nghĩa khái nim phép thế, cn thiết cho
nhng câu có cha biến.
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
93
Mt phép thế θ là mt danh sách các đôi θ = {v
1
/ t
1
,..,v
n
/ t
n
}, trong đó mi đôi v
i
/ t
i
bao
gm biến v
i
hng thc t
i
đưc s dng để thay thế biến v
i
.
Ví d: θ = {x
/ y, .., z
/ M_ca(An)}
có nghĩa là x đưc thay bng yz được thay bng M_ca(An).
Vi câu
α
phép thế θ cho các biến ca
α
, ký hiu
SUBST( θ,
α
)
xác định mt câu mi đưc to ra bng cách thc hin c phép thế được quy định trong
θ vào câu
α
.
Ví d: SUBST ({x/Nam, y/An}, Thích(x,y))
nghĩa là thay thế x bng Nam y bng An trong câu Thích(x,y)), cho kết qu
như sau:
SUBST ({x/Nam, y/An}, Thích(x,y)) = Thích(Nam, An)
Vi ký hiu phép thế, ta có th viết các quy tc suy din như sau.
Phép loi tr vi mi (universal elimination)
x
SUBST( {x/g},
)
Tc th thay thế biến x bng mt hng s g và b lượng t để được câu mi
không cha lưng t không cha biến ca lưng t.
d:
x Thích(x, Kem) {x/Nam} Thích (Nam, Kem)
Lưu ý rng loi tr vi mi có th thc hin nhiu ln để to ra nhiu u khác nhau
bng cách thay thế biến x bng các hng khác nhau.
Loi tr tn ti (existential elimination)
x
, k là kí hiu hng chưa xut hin trong KB
SUBST( {x/k},
)
Tc th thay thế biến x ca lượng t bng mt hng s nào đó chưa xut hin
trong KB để được câu mi không cha lượng t .
d:
x Hc_gii(x) {x/Siêu_nhân) Hc_gii (Siêu_nhân),
trong đó Nam phi là mt hng chưa tng xut hin trong cơ s tri thc.
Lý do phi chn mt hng chưa xut hin trong KB do câu x Hc_gii(x) ch có
nghĩa trong lp ngưi hc gii không xác định người đó, do vy ta không được
phép chn tên ca mt sinh viên trong lp mà phi đặt cho ngưi hc giói mt các tên nào đó,
chng hn gi ngưi đó “siêu nhân”. Trong logic, mt hng s mi k như vy đưc gi
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
94
hng Skolem ta th đặt tên cho hng này. Yêu cu vi hng Skolem hàm này chưa
được phép xut hin trong cơ s tri thc.
Nhp đề tn ti (existential introduction)
Vi câu
, biến x không thuc câu
hng thc cơ s g thuc câu
Ta có:
x SUBST( {g/x},
)
Ví d: Thích(Nam, Kem) {Nam/x} x Tch (x, Kem)
Vi các quy tc suy din trên, ta có th thc hin suy din như trong ví d dưới đây.
Ví d suy din:
KB:
Bob là trâu
Pat là ln
Trâu to hơn ln
KB:
trâu (Bob) (1)
ln (Pat) (2)
trâu (x) ln (y) => to_hơn (x,y) (3)
u hi:
Bob to hơn Pat ?
to_hơn (Bob, Pat) ?
Nhp đề: (1) (2) trâu (Bob) ln(Pat) (4)
Loi tr vi mi: (3) trâu(Bob) ln (Pat) => to_hơn (Bob,Pat) (5)
Modus Ponens: (4) (5) to_hơn (Bob, Pat) (6)
vy to_hơn (Bob, Pat) là h qu logic ca KB
yx
,
1, 2, 3
1, 2, 3, 4
1, 2, 3, 4, 5
6
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
95
Quá trình áp dng các lut suy din để chng minh câu truy vn có th coi như quá trình
tìm kiếm, trong đó ta cn tìm cách áp dng các lut suy din, tìm cách thay giá tr các biến
trong loi tr vi mi để dn ti câu truy vn. Hình v trên minh ho cho mt phn ca cây
tìm kiếm ca ví d trên.
Thc cht, trong d này ta đã s dng các quy tc suy din vi lượng t để biến đổi
các câu v t thành các câu trong logic mnh đề, sau đó áp dng các quy tc suy din như vi
logic mnh đề. Tuy nhiên, suy din t động trên logic v t khó hơn so vi suy din trên logic
mnh đề do các biến có th nhn vô s các giá tr khác nhau. Ta cũng không th s dng bng
chân lý do kích thước ca bng có th vô hn. Trong các phn dưới đây s trình by mt s
th tc suy din cho phép áp dng trc tiếp vào các biu thc logic v t.
Phép hp nht (Unification)
u trong logic v t có th cha các biến. Khi thc hin suy din, thường xut hin yêu
cu thay thế các biến (thc hin c phép thế) sao cho các câu tr nên ging nhau. Ví d, vi
hai câu Sinh_viên (x) Sinh_viên(Nam), nếu thay thế {x/Nam} ta s được hai câu ging
nhau.
Gi s p q hai câu, hp nht là th tc xác định phép thế cn thiết để làm cho 2
câu ging nhau và đưc ký hiu như sau:
UNIFY (p, q) = θ,
Sao cho SUBST(θ, p) = SUBST (θ, q)
trong đó θ đưc gi là hp t (phn t hp nht - unifier)
Ví d: trong bng sau cho mt s cp câu hp t ca các cp câu đó.
p q θ
Biết (Nam, x) Biết (Nam, Bc) {x/Bc}
Biết (Nam, x) Biết (y, M (y)) {y/Nam, x/ M (Nam)}
Biết (Nam, x) Biết (y, z) {y/Nam, x/z}
{y/Nam, x/Nam, z/Nam}
Trong d th ba trên, tn ti nhiu hơn mt phép thế làm cho hai câu p q hp
nht vi nhau. Trong đó, phép thế {y/Nam, x/z} đòi hi thay thế ít biến hơn so vi phép thế
{y/Nam, x/Nam, z/Nam}. Ta nói rng phép thế {y/Nam, x/z} tng quát hơn phép thế {y/Nam,
x/Nam, z/Nam} do to ra ít ràng buc hơn vi giá tr các biến.
Trong c trường hp tn ti nhiu phép thế như vy, ta s dng hp t tng quát nht
(MGU: most general unifier) tc là hp t s dng ít phép thế cho biến nht.
Phép hp nht th thc hin t động bng thut toán độ phc tp t l tuyến tính
vi s lưng biến. Chi tiết thut toán không được trình by đây, nhưng vic tn ti thut
toán như vy rt quan trng khi xây dng các th tc suy din có độ phc tp tính toán thp.
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
96
Modus Ponens tng quát (GMP)
Gi s ta các câu cơ s, p
i,
p
i
, q tn ti phép thế θ sao cho UNIFY (p
i,
p
i
) = θ vi
mi i
Khi đó ta có:
p
1
’ , p
2
’ , p
3
’ ,… p
n
’ , (p
1
p
2
p
n
=> q)
SUBST(θ, q)
d: t các câu
Sinh_viên (Nam)
Chăm_hc (x)
(Sinh_viên(y) Chăm_hc(y) Hc_gii(y))
s dng GMP cho phép suy ra:
Hc_gii (Nam)
th coi quy tc Modus Ponens tng qt s kết hp ca modus ponens vi các
phép nhp đề và. Ngoài ra, GMP là phương án m rng ca modus ponens thông thường, cho
phép làm vic trc tiếp vi các câu trong logic v t.
Th tc suy din vi GMP đúng đắn nhưng không đầy đủ vi logic v t nói chung.
Chi tiết v tính đúng đắn đầy đủ ca suy din s dng GMP s được trình by trong phn
v suy din tiến và suy din lùi.
Suy din bng GMP ch đầy đủ trong trưng hp KB ch cha các câu tuyn Horn
(Horn clause), s được định nghĩa dưi đây.
c câu tuyn Horn (Horn clause)
Các u tuyn Horn (Horn clause) đóng vai trò quan trng trong mt s phương pháp
suy din. Các câu này được đặt theo tên ca Alfred Horn, người đã ch ra vai trò ca các câu
dng này trong suy din logic. Dưới đây là định nghĩa d câu Horn.
Như đã nói trên, literal câu nguyên t hoc ph định ca câu nguyên t. Clause
(dch là u tuyn hoc mnh đề tuyn) là tuyn ca các literal. Dưới đây ví d mt clause:
x, y Cao_hơn(x, y) Cao_hơn(y, x)
Thông thường, ta s viết câu trên mà không có lượng t, tc
Cao_hơn(x, y) Cao_hơn(y, x)
do các biến t đo đưc hiu như lượng t vi mi.
u tuyn Horn (Horn clause) là câu tuyn có ti đa mt literal dương. Dưi đây là mt
s d câu Horn:
Cao_hơn (An, Nam)
Cao_hơn (An, B_ca (An))
¬Cao_hơn(x, y) ¬Cao_hơn(y, z) Cao_hơn(x, z)
¬Cao_hơn (An, Nam) ¬Anh_ca (Nam, An)
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
97
n cnh cách th hin dưới dng tuyn ca c literal, câu Horn còn đưc th hin
bng cách s dng phép kéo theo. Khi đó câu Horn có dng
P
1
P
2
P
n
Q
Chng hn, ví d th ba và th tư trên s đưc viết thành:
Cao_hơn(x, y) Cao_hơn(y, z) Cao_hơn(x, z)
Cao_hơn (An, Nam) Anh_ca (Nam, An) ⇒�False
Trên thc tế, khi suy din thường s dng cách biu din câu Horn s dng phép kéo
theo hơn. Cách biu din này cũng làm cho các câu Horn ging như các quy tc Nếu Thì
… thường đưc s dng trong thc tế.
Các câu Horn cha đúng mt literal dương gi câu xác định (definite clause). Các
d th mt, hai, ba trên đều các câu xác định. Các u Horn ch cha literal dương mà
không cha literal âm nào như các ví d 1 và 2 trên được gi là s kin (fact).
Trong phn dưới đây, ta s xem xét cách suy din s dng Modus Ponens tng quát
trong trưng hp cơ s tri thc ch gm các câu xác định.
3.5.2. Suy din tiến và suy dini
S dng quy tc Modus Ponens tng quát cho phép y dng thut toán suy din t
động, c th phương pháp suy din tiến suy din lùi. Suy din tiến lùi có th áp dng
đối vi KB ch cha các câu xác đnh, tc là các câu Horn vi đúng mt literal dương.
Suy din tiến (forward chaining)
Gi s ta KB bao gm các câu c định. Th tc suy din tiến được thc hin như
sau: bt đầu t các câu trong KB, áp dng Modus Ponens để sinh ra các câu mi cho đến khi
không th sinh ra thêm câu nào na. Nếu các câu trong KB đưc biu din dưi dng quy tc
kéo theo thì vic suy din đưc thc hin theo chiu ca phép kéo theo, tc t c tin để
suy ra kết lun, do vy suy din đưc gi là suy din tiến.
Th tc suy din tiến được mô t như dưới đây.
Khi câu p mi đưc thêm vào KB:
vi mi quy tc q mà p hp nht đưc vi mt phn vế trái:
Nếu các phn còn li ca vế trái đã thì thêm vế phi vào KB
suy din tiếp
Hình 3.2. Th tc suy din tiến
Ví d:
Cho KB gm các câu sau
1. o thích cá
2. o ăn gì nó thích
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
98
3. Có con mèo tên là Tom
Cn xác định:
Tom có ăn cá không?
Li gii: Trước hết, viết các câu trên dưới dng logic v t
(1) x Mèo(x) => Thích(x, cá)
(2) x, y Mèo(x) Thích (x,y) => Ăn(x,y)
(3) Mèo (Tom)
Câu truy vn Q: Ăn (Tom, cá) ?
Ln lưt thêm các câu vào KB, ta có:
Thêm câu (1): không hp nht được vi vế trái câu nào.
Thêm câu (2): không hp nht được vi vế trái câu nào.
Thêm câu (3): hp nht được vi vế trái câu (1), quy tc GMP sinh ra câu (4)
(4) GMP (1) (3) => Thích (Tom, cá) { x / Tom}
Thêm câu (4): hp nht được vi mt phn vế trái câu (2), quy tc GMP sinh ra câu (5)
(5) GMP (4) (3) (2) => Ăn(Tom, cá) { x / Tom, y / cá}
Đây chính là câu truy vn cn tìm.
Thêm câu (5): không hp nht đưc vi vế trái câu o, do đó quá trình suy din dng
li.
Nhn xét: Suy din tiến tm dn các câu vào KB khi các u mi xut hin. Quá
trình suy din này không hưng ti câu truy vn hay kết lun c th nào ch được khi
động khi có thêm câu mi.
Nếu KB ch cha các câu Horn xác định tsuy din tiến th tc suy din đúng đắn,
tc ch sinh ra nhng u thc s là h qu logic ca KB. Tính đúng đắn ca suy din tiến
được suy ra t tính đúng đắn ca Modus Ponens tng quát.
Nếu KB ch cha các câu Horn xác định thì suy din tiến là th tc suy din đầy đủ, tc
th sinh ra tt c các câu là h qu logic ca KB. Tuy nhiên, do không phi câu logic v
t nào cũng có th biến đổi v dng câu xác định nên suy din tiến không phi th tc suy
din đầy đủ đối vi logic v t nói chung.
Suy din lùi (Backward chaining)
Th tc suy din tiến trình by trên bt đầu t các câu đã trong KB sinh ra các
câu mi bng cách s dng quy tc GMP. Mt vn đề vi suy din tiến s câu sinh ra
th rt nhiu, trước khi sinh ra được câu truy vn mà ta cn xác định tính đúng sai. Ngược li
vi suy din tiến, suy din lùi bt đầu t câu truy vn, sau đó tìm các s kin và quy tc trong
KB cho phép chng minh câu truy vn đúng. Quá trình suy din th coi như được tiến
hành ngược vi chiu ca phép kéo theo, tc t h qu ta tìm cách tìm ra các tin đề làm
cho h qu đó đúng. Suy din lùi rt phù hp vi vic tr li câu hi hoc chng minh mt
câu c th là đúng hay sai t các câu có trong KB.
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
99
Quá trình suy din lùi được tiến hành như sau. Th tc suy din nhn câu hi hoc câu
cn chng minh (gi chung câu truy vn) dưới dng mt câu nguyên t. Câu truy vn
th cha lượng t vi mi biến tương ng. Kết qu tr v chui các phép thế nếu có th
chng minh câu truy vn đúng. Trước hết, th tc suy din tìm cách hp nht câu truy vn
vi các các s kin trong KB (nhc li: s kin câu Horn ch cha mt literal dương
không có literal âm). Nếu không được thì tìm lut và vế phi có th hp nht vi câu truy vn
sau đó tìm cách chng minh vế trái mt cách đệ quy bng cách dùng cùng mt th tc như
chng minh câu truy vn.
Th tc suy din lùi được mô t trên hình sau.
Vi câu hi q, nếu tn ti q’ hp nht vi q thì tr v hp t
Vi mi quy tc có vế phi qhp nht vi q c gng chng minh các phn t
vế trái bng suy din lùi
Hình 3.3. Th tc suy din lùi
Để minh ha cho th tc suy din lùi, ta s s dng li d đã dùng trong phn suy
din tiến. C th, để chng minh Ăn(Tom, cá) là đúng, theo suy din lùi, ta nhn thy:
Ăn(Tom, cá) hp nht vi vế phi ca (2) vi phép thế {x/ Tom, y/ cá}.
Vế trái ca (2), sau khi thc hin pp thế trên, s gm hai phn Mèo (Tom) Thích
(Tom, cá), cn chng minh hai phn y.
Mèo(Tom) có th chng minh do hp nht vi s kin trong câu (3).
Thích (Tom, cá) hp nht vi vế phi câu (1) nh phép thế {x / Tom}, cn chng minh
vế trái ca (1) là Mèo(Tom). Câu y cũng là đúng do hp nht được vi (3).
Vy ta hoàn thành vic chng minh Ăn ( Tom, ) bng suy din lùi vi phép thế {x/
Tom, y/ cá}.
Quá trình chng minh có th minh ha mt cách thun tin dưi dng đồ ha như trên
hình sau.
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
100
nh 3.4. Cây suy din cho trường hp suy din lùi
Tính cht suy din lùi: Suy din lùi đúng đắn. Nếu KB ch gm các câu c định thì
suy din lùi th tc suy din đầy đủ, tc là có th chng minh mi h qu logic ca KB.
Trong trường hp chung, do không phi tt c các câu đều có th đưa v dng câu Horn nên
suy din lùi không đầy đủ. Th tc suy din lùi khá hiu qu v mt độ phc tp tính toán và
được s dng làm cơ chế suy din trong ngôn ng Prolog.
3.5.3. Suy din s dng phép gii
Phép gii (resolution) cho logic v t
Như đã đề cp trên, ta có pp gii cho logic mnh đề
, ¬ =>
Đối vi logic v t, phép gii có dng như sau:
Cho câu: P
1
P
2
... P
n
câu: Q
1
Q
2
... Q
m
Trong đó P
i
, Q
i
literal
Nếu P
j
và ¬ Q
k
có th hp nht bi hp t thì ta có phép gii:
P
1
P
2
... P
n
, Q
1
Q
2
... Q
m
SUBST ( ,P
1
P
j-1
P
j+1
... P
n
Q
1
Q
k-1
Q
k+1
... Q
m
)
d:
1. Cho hai câu
Giàu (x) Gii (x)
λβα
µ
γλ
βα
µ
γ
θ
θ
ă
n(Tom, )
2
mèo(Tom)
{ x/Tom, y/cá }
thích(Tom
, cá)
3
{ }
mèo(Tom)
1
{ x/Tom}
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
101
¬ Gii (Bc) Đẹp trai (Bc)
suy ra
Giàu (Bc ) Đẹp trai (Bc)
2. Cho các câu
P (x, f(a))
P(x, f(y)) Q
(y)
¬ P(z, f (a)) ¬ Q(z)
suy ra
P (z, f(y)) Q
(y) ¬ Q(z) {x/z}
hoc P (x, f(a))
P (x, f(z)) ¬ P (z, f(a)) {y/z}
Dng Conjunctive Normal Form (CNF) và câu tuyn
c công thc tương đương có th xem như các biu din khác nhau ca cùng mt s
kin. Để d dàng viết c chương trình máy tính thao tác trên các công thc, chúng ta s
chun hóa các công thc, đưa chúng v dng biu din chun.
Như đã nói trên, ta định nghĩa mi u tuyn là tuyn ca literal, có dng A
1
A
2
... .
A
m
trong đó các A
i
literal.
Mt dng chun được gi Conjunctive Normal Form (CNF - dng chun hi), câu
bao gm hi ca phép tuyn ca các literal, tc là hi ca các câu tuyn.
KB dưới dng chun hi có kh năng biu din tt hơn các câu Horn. Chúng ta th
biến đổi mt công thc bt k v công thc dng CNF bng cách áp dng mt s bước th
tc nht định s được trình bày phn sau.
Suy din s dng phép gii và phn chng (Resolution Refutation)
Nếu KB tp hu hn các câu thì các literal có mt trong các câu ca KB cũng hu
hn. Do đó s các câu tuyn thành lp đưc t các literal đó là hu hn. vy chmt s
hu hn câu được sinh ra bng lut gii. Phép gii s dng li sau mt s hu hn bưc. S
dng phép gii ta th chng minh đưc mt câu tp con ca mt KB đã cho hay
không bng phương pháp chng minh phn chng.
KB: Q?
Thêm ¬ Q vào KB, sau đó chng minh tn ti mt tp con ca KB mi có giá tr False
(KB Q) <=> (KB ¬ Q False)
Nói cách khác: phương pháp chng minh to cơ s tri thc mi bao gm KB ¬ Q,
sau đó dùng phép gii để chng minh t cơ s tri thc mi suy ra False. Mt trong các lý do
kết hp phép gii phn chng do suy din s dng phép gii là th tc suy din không
đầy đủ. d, dùng phép gii ta không th chng minh P ¬P t KB rng mc đây
công thc vng chc, tc đúng trong mi minh ha, do trong KB không tn ti câu nào để
áp dng phép gii. Vic s dng phn chng cho phép suy din trong nhng trường hp như
vy.
Th tc suy din s dng phép gii và phn chng đưc th hin trên hình sau.
θ
θ
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
102
Đầu vào: cơ s tri thc KB, câu truy vn Q
KB = UNION (KB, ¬ Q) // thêm ¬ Qo KB
While ( KB không cha False ) do
Chn 2 câu S
1,
S
2
t KB sao cho có th áp dng phép gii cho 2 câu này
IF không có hai câu như vy
Return Không chng minh đưc
Thêm kết qu phép gii vào KB
Return Câu Q được chng minh
Hình 3.5. Suy din bng phép gii và phn chng
Vnh đầy đủ ca suy din s dng phép gii
Suy din s dng phép gii phn chng đầy đủ, tc nếu mt tp hp các câu
không tha được trong mt minh ha nào đó thì th tc suy din s dng phép gii luôn cho
phép tìm ra mâu thun. Như vy, phép gii cho phép xác định mt câu h qu logic ca
mt tp các câu khác không. Tuy nhiên, phép gii không cho phép sinh ra tt c các câu h
qu logic ca mt tp câu cho trước.
d: ví d dưới minh ho cho vic chng minh bng phép gii và phn chng trong trường
hp KB gm các câu clause.
KB: ¬ A ¬ B P (1)
¬ C ¬ D P (2)
¬ E
C (3)
A (4)
E (5)
D (6)
Ta cn chng minh KB: P.
c bưc chng minh s như sau:
Tm vào KB câu sau:
¬ P (7)
Áp dng phép gii cho câu (2) và (7) ta đưc câu:
¬ C v ¬ D (8)
T câu (6) và (8) ta nhn được câu:
¬ C (9)
T câu (3) và (9) ta nhn được câu:
¬ E (10)
u (10) mang giá tr False. Ti đây ta đã tìm thy mt tp con ca KB mi giá tr
False .
Kết lun : T KB suy ra P
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
103
Biến đổi các câu v dng CNF và Clause Form
Khi biu din tri thc bi các câu trong logic v t, KB là mt tp các câu. Đ s dng
thut toán trên thì ta thc hin chun hóa các u trong KB để chuyn v dng Clause form
bng cách s dng các bưc sau:
Bước 1: Kh tương đương
Để kh phép tương đương thay PQ bng (P=>Q)(Q=> P).
Bước 2: Loi b kéo theo
Để loi b các kéo theo, ta ch cn thay thế công thc PQ bi công thc tương đương ¬
P
Q
Bước 3: Đưa các ph định vào gn các v t
Chuyn các du ph định (¬ ) vào sát các v t bng cách áp dng lut De Morgan và thay
¬ (¬ A) bi A . Điu này đưc thc hin bng cách thay công thc vế trái bng công
thc vế phi trong các tương đương sau:
¬ (¬ P) P
¬ (PQ) ¬ P
¬ Q
¬ (P
Q) ¬ P¬ Q
¬ (x P) x (¬ P)
¬ ( x P) x (¬ P)
Bước 4: Chun hóa tên biến sao cho mi lưng t có biến riêng
d :
x ¬ P (x )
Q (x) x ¬ P (x )
Q (x)
x ¬ R (x )
Q (x) y ¬ R (y)
Q (y)
Bước 5: Loi b các lưng t tn ti bng cách s dng hng Skolem và hàm Skolem
Trong bước này ta b lượng t tn ti bng cách thay các biến ca lượng t này bng
hng Skolem hoc hàm Skolem. C th là, khi lượng t tn ti nm trong lưng t vi
mi thì ta dùng hàm Skolem, còn trong trường hp khác ta s dng hng Skolem.
d, x P(x) đưc biến đổi thành P(C), trong đó C hng Skolem chưa xut hin
trong KB, do lượng t tn ti không nm trong bt c lượng t vi mi o.
Ngược li, nếu lượng t tn ti nm trong lượng t vi mi thì ta s dng hàm
Skolem, tc mt hàm chưa xut hin trong KB. S cn thiết s dng hàm Skolem
được gii thích qua d sau. Gi s P(x,y) là các v t nghĩa rng y ln hơn x”
trong min các s. Khi đó u x (y (P(x,y)) có nghĩa “vi mi s x tn ti y sao
cho y ln hơn”. Ta có th xem y trong câu đó là hàm ca đối s x, chng hn f(x) và
loi b lượng t y, câu đang xét tr thành x (P(x,f(x)).
Mt cách tng quát, gi s y (G) là mt câu con ca câu đang xét và nm trong min
c dng ca lượng t x
1
,......,x
n
. Khi đó ta th xem y hàm ca n biến x
1
,......,
x
n,
chng hn f(x
1
,......, x
n
). Sau đó ta thay các xut hin ca y trong câu G bi hng
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
104
thc f(x
1
,......, x
n
) loi b các lượng t tn ti. Các hàm f được đưa vào để loi b
các lượng t tn ti được gi là hàm Skolem.
Ví d: Xét câu sau:
x (y (P(x,y) u (b (Q(a,b) t¬ R(x,t))) (1)
u con y P(x,y) nm trong min tác dng ca lượng t x, ta xem y hàm ca x:
F(x). Các câu con b (Q(a,b) t¬R(x,y) nm trong min tác dng ca các lượng t
x, u nên ta xem b hàm g(x,u) t hàm h(x,u) ca 2 biến x,u. Thay các xut
hin ca y và b, t bi các hàm tương ng, sau đó loi b các lượng t tn ti, t câu
(1) ta nhn đưc câu :
x ( (P(x,f(x)) u (Q(a,g(x,u))¬ R(x,h(x,u))))
Bước 6: Loi b các lượng t vi mi ()
Để loi b lượng t vi mi (), ta đưa các lượng t vi mi () sang trái sau đó b
lượng t vi mi ().
d: x ( P (x,y) Q (x) ) => P (x,y) Q (x)
Bước 7: Sp xếp các phép và, hoc đ có dng CNF
Ví d:
(P Q)
R ( P
R ) ( Q
R )
( P
Q )
R P
Q
R
Bước 8: Loi b các phép và
Ta thc hin loi b các phép để to thành các clause riêng
Ví d :
( P
R
S ) ( Q
¬ R ) => P
R
S
Q
¬ R
Bước 9 : Chun hóa tên biến sao cho mi câu có biến riêng ca mình
Ví d:
1) ¬ P(x)
P(y)
Q (f(x,y) ) 1) ¬ P(x)
P(y)
Q (f(x,y) )
2) ¬ P(x)
Q(x, g(x) ) 2) ¬ P(z)
Q(z, g(z) )
3) P(x)
¬ R(g(x)) 3) P(u)
¬ R(g(u))
Ví d: Sau đây là ví d minh ho cho vic áp dng đầy đủ các bước k trên
Chun hóa công thc sau:
x ( P(x) => ( y (P(y) => P (f(x,y) )) ¬ y (Q(x,y) => P(y)) ) )
Ta s ln lượt thc hin theo tng bước c th như sau:
1. Kh tương đương: không cn thc hin
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
105
2. Loi bo theo
x (¬ P(x)
( y (¬ P(y)
P (f(x,y) )) ¬ y (¬ Q(x,y)
P(y)) ) )
3. Đưa ph định vào gn các v t
x (¬ P(x)
( y (¬ P(y)
P (f(x,y) )) y ¬ (¬ Q(x,y)
P(y)) ) )
x (¬ P(x)
( y (¬ P(y)
P (f(x,y) )) y (Q(x,y) ¬ P(y)) ) )
4. Chun hóa tên biến sao cho mi lượng t có biến riêng
x (¬ P(x)
( y (¬ P(y)
P (f(x,y) )) z (Q(x,z) ¬ P(z)) ) )
5. Loi b các lưng t tn ti bng cách s dng hng Skolem và hàm Skolem
x (¬ P(x)
( y (¬ P(y)
P (f(x,y) )) (Q(x, g(x)) ¬ P(g(x) )) ) )
6. Loi b lượng t vi mi ()
(¬ P(x)
( (¬ P(y)
P (f(x,y) )) (Q(x, g(x) ) ¬ P(g(x))) ) )
7. Sp xếp phép và và phép hoc để có dng CNF
[¬ P(x)
¬ P(y)
P (f(x,y) )] [ ¬ P(x)
Q(x, g(x) ) ] [¬ P(x)
¬ P(g(x) ) ]
8. B phépđể to thành các clause riêng: ta đưc 3 câu clause sau
1) ¬ P(x)
¬ P(y)
P (f(x,y) )
2) ¬ P(x)
Q(x, g(x) )
3) ¬ P(x)
¬ P(g(x))
9. Chun hóa tên biến sao cho mi câu có biến riêng ca mình
1) ¬ P(x)
¬ P(y)
P (f(x,y) )
2) ¬ P(z)
Q(z, g(z))
3) ¬ P(k)
¬ P(g(k))
Ví d. Sau đây d minh ho cho bài toán suy din s dng phép gii phn chng. Ta
s s dng li ví d đã dùng trong phn v suy din tiến, lùi. C th, cho KB gm các câu sau
1. o thích cá
2. o ăn gì nó thích
3. Có con mèo tên là Tom
Cn xác định: Tom ăn cá không?
Li gii: Trưc hết, viết các câu trên dưới dng logic v t
(1) x Mèo(x) => Thích(x, cá)
(2) x, y Mèo(x) Thích (x,y) => Ăn(x,y)
(3) Mèo (Tom)
Câu truy vn Q: Ăn (Tom, cá) ?
Li gii:
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
106
Theo nguyên tc phn chng, ta gi s câu Q sai, tc ¬Q đúng. Thêm ¬Q vào KB, ta
được:
(1) x Mèo(x) => Thích(x, cá)
(2) x, y Mèo(x) Thích (x,y) => Ăn(x,y)
(3) Mèo (Tom)
(4) ¬ Ăn (Tom, cá)
Biến đổi v dng clause, ta được:
(1) ¬Mèo(x)
Thích(x, cá)
(2) ¬Mèo(z)
¬Thích (z,y)
Ăn(z,y)
(3) Mèo (Tom)
(4) ¬ Ăn (Tom, cá)
Áp dng phép gii:
(5): (1)+(3) Thích(Tom, cá) {x/Tom}
(6): (2)+(3) ¬Thích (Tom, y)
Ăn(Tom, y) {z/Tom}
(7): (5)+(6) Ăn(Tom, cá) {y/cá}
(8): (4)+(7) False điu phi chng minh
Vy câu truy vn Ăn(Tom, cá) là đúng, theo nguyên tc phn chng.
3.5.4.H thng suy din t đng: lp trình logic
Trên thc tế, vic biu din tri thc và suy din logic được thc hin bng cách s dng
mt s ngôn ng lp trình đưc thiết kế đặc bit. K thut y dng h thng suy din như
vy được gi lp trình logic (logic programming). Ngôn ng lp trình logic tiêu biu
Prolog. Rt nhiu h chuyên gia trong nhiu lĩnh vc khác nhau đã được xây dng trên ngôn
ng Prolog.
Chương trình trên Prolog mt tp hp các câu xác định (definite clause). Tuy nhiên,
để thun tin cho vic viết trên máy tính, các câu này pháp không hoàn toàn ging vi
logic v t truyn thng.
Suy din được thc hin theo kiu suy din lùi và tìm kiếm theo chiu sâu, trong đó các
câu được xét theo th t xut hin ca câu trong chương trình. Ngoài ra, Prolog cũng cho
phép chng minh bng cách ph định câu truy vn, sau đó dn ti kết lun rng không th
chng minh đưc câu ph định này.
3.6. CÂU HI VÀ BÀI TP CHƯƠNG
1. Các khng định nào sau đâyđúng:
a) False True
b) True False
c) (A B) (A B)
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
107
d) (A B) (A B)
e) (A B) (A v B)
f) (A B) (¬A v B)
g) A B C (A C) v (B C)
2. Cho KB = (A v B)
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
108
Thc hin suy din tiến ra các câu có th s dng suy din tiến.
6. Cho KB gm các câu sau:
1- Ln (y) c_ sên (z) => Nhanh_hơn (y, z)
2- Nh (z) Biết_ bò (z) => c_sên (z)
3- Ln (Pat)
4- Nh (Steve)
5- Biết_bò (Steve)
Hãy chng minh bng suy din tiến và lùi câu sau:
Nhanh_hơn (Pat, Steve)?
7. Tìm MGU (hp t tng quát nht) cho các cp câu sau:
a. P (A, B, B) , P (x, y, z)
b. Q (y, G(A, B)) , Q (G (x, x), y)
c. Older (Father (y), y) , Older(Father (x), John)
d. Knows (Father(y), y), Knows (x, x)
8. Biu din các câu sau dưi dng logic v t phù hp vi vic s dng Modus Ponens tng
quát
1. Nga, Bò, Ln là động vt
2. Con ca nga là nga
3. Nga tên là Xích Th
4. ch Th là b ca con Chiếu D
5. Quan h cha con là quan h nghch đảo
6. Tt c động vt đều có b
9. T các câu trong câu 8 hãy s dng suy din lùi chng minh con Chiếu D là con nga.
10. Cho biết:
Tôi không có anh ch em
B ca người đó là con trai ca b tôi
Hãy xây dng KB gm các câu liên quan, sau đó s dng phép gii phn chng để tìm
xem người đó là ai.
11. Cho biết:
3 người Bc, Đông, Nam tham gia câu lc b.
Downloaded by viet jack (vietjackteam@gmail.com)
Biu din tri thc và suy din logic
109
Mi thành viên câu lc b leo núi hoc trượt tuyết
Không có người leo núi nào thích mưa
Tt c nhng người trượt tuyết thích tuyết
Đông ghét tt c nhng gì Nam thích
Đông thích tt c nhng gì Nam ghét
Nam thích mưa và tuyết
Hi có thành viên nào ca câu lc b người leo núi không phi là người trưt tuyết? Tr li
câu hi bng cách thc hin các bưc sau:
a. Dch sang logic v t
b. Chuyn dng clause form
c. Dùng phép gii và phn chng để chng minh.
12. Cho các câu sau:
1. x Kem (x ) => Thc_ăn (x)
2. x Caramen(x) => Thc_ăn (x)
3. x, y Thc_ăn (x) Thc_ăn(y) Lnh(x) Trn (x,y) => Lnh (y)
4. x y Kem (x) Lnh (x) Caramen (y) Trn (x,y)
a. Dch các câu trên sang dng ngôn ng t nhiên tiếng Vit
b. Gi s KB gm các câu trên, hãy s dng phn chng và phép gii để chng minh câu
sau:
x (Caramen (x) Lnh (x) )
Downloaded by viet jack (vietjackteam@gmail.com)
CHƯƠNG 4: LP LUN XÁC SUT
Chương này trình by v lp lun xác sut, phương pháp lp lun biu din tri thc
hin đang được quan tâm nhiu do có tính mm do cao kh năng ng dng thc tế rng
hơn lp lun logic. Trước hết, người đọc s được gii thiu v nh hưng ca vn đề thông tin
không chc chn nguyên tc lp lun c sut để ra quyết định trong các nh hung như
vy. Tiếp theo là phn tóm tt mt s khái nim v xác sut giúp ngưi đọc d dàng làm quen
vi các ni dung quan trng ca chương. Phn quan trng ca chương trình by v mng
Bayes, cách s dng mng Bayes để biu din tri thc ca bài toán, mt s phương pháp
suy din trên mng Bayes. Mt s ni dung quan trng liên quan ti mng Bayes như khái
nim d- phân cách phân tích v hiu qu suy din cho tng dng mng cũng đưc đề cp
ti trong chương.
4.1. VN ĐỀ THÔNG TIN KHÔNG CHC CHN KHI LP LUN
Trong chương trước, ta đã xem t cách biu din tri thc bng logic cũng như mt s
phương pháp suy din logic để đưa ra quyết định. Mc các h thng logic cho phép biu
din tri thc mt cách ràng tường minh, vic s dng logic đòi hi tri thc phi được
cung cp mt cách đầy đủ, chính c, không mâu thun. Nếu yêu cu này không tha mãn,
các h thng suy din da trên tri thc v t hoc logic mnh đề không th s dng đưc.
Trên thc tế, c thông tin, tri thc hay mô nh v thế gii xung quanh thường không
đầy đủ, không ràng, không chính c, có th mâu thun vi nhau. th lit mt s
nguyên nhân gây ra s không rõ ràng, không chc chn như dưới đây.
- Do thông tin có cha đựng yếu t ngu nhiên, yếu t xác sut. Ví d khi chơi các trò
chơi ln quan ti xác sut như chơi bài, chơi cá nga.
- Do không hiu biết đầy đ v vn đề đang xét. Ví d khi xây dng h thng chn
đoán bnh trong y hc, do y hc hin đại chưa hiu biết hoàn toàn chính xác v cơ
chế bên trong ca nhiu loi bnh, vic xây dng quy tc suy din da trên kiến thc
như vy s không chc chn, không chính xác.
- Do s các yếu t liên quan đến quá ln, không th xem xét hết. d khi chn đn
bnh, bác sĩ có th phi chn đoán trong khi không có đầy đủ thiết b đểm mi loi
t nghim cn thiết.
- Do sai s khi ta ly thông tin t môi trường. d trong trường hp các thiết b đo
có th có sai s.
Như vy, trên thc tế, nhiu i toán đòi hi lp lun, ra quyết định trong khi chưa
đầy đủ thông tin hay thông tin không rõ ràng, không chc chn. Vn đề này thưng được gi
lp lun trong điu kin không ng (reasoning under uncertainty) không th gii
quyết được bng lp lun logic truyn thng.
Để lp lun trong điu kin không ràng, nhiu ch tiếp cn khác nhau đã được
nghiên cu phát trin, trong đó phi k đến:
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
111
- ch tiếp cn da trên logic đa tr: thay vì ch cho phép đưa ra kết lun “đúng” hoc
“sai” như logic truyn thng, logic đa tr cho phép s dng nhiu giá tr hơn, d
thêm giá trkhông đúng không sai”.
- Logic m (fuzzy logic): thay vì hai giá trđúng” hoc “sai”, biu thc logic m
th nhn giá tr đúng” vi mt giá tr hàm thuc nm trong khong [0,1], th hin
mc độ đúng ca biu thc đó.
- Lý thuyết kh năng (possibility theory): các s kin hoc công thc được gán mt s
th hin kh năng xy ra s kin đó.
- Suy din xác sut: kết qu suy din tr v xác sut mt s kin hay công thc nào đó
đúng.
Trong chương này, ta s xem xét phương pháp lp lun xác sut cho trường hp lp
lun có yếu t không rõ ràng.
4.2. NGUYÊN TC LP LUN XÁC SUT
Khác vi lp lun logic, trong đó các s kin, mnh đề, công thc nhn giá tr đúng
hoc sai, trong lp lun xác sut, thay kết lun mt s kin hay công thc đúng hoc sai, ta
tính toán nim tin s kin, công thc đó đúng hay sai. Nim tin đây đưc định lượng
bng xác sut, qtrình tính toán tuân theo các công thc ca lý thuyết c sut. Như vy,
thay vì ch s dng hai giá tr đúng hoc sai, lp lun xác sut cho phép làm vic vi vô s giá
tr.
C th, mi mnh đề hoc biu thc đưc gn mt s đo giá tr nim tin mnh đề đó
đúng. Mc đo nim tin được biu din như giá tr xác sut và lý thuyết xác sut đưc s dng
để làm vic vi mc đo nim tin này.
Chng hn, vi mnh đề A, ta s dng c sut P(A), 0 P (A) 1, vi ý nghĩa P (A) = 1
nếu A đúng, P (A) = 0 nếu A sai. Như vy, P (A) th din gii như phn thế gii ca bài
toán trong đó mnh đề A đúng. Nếu A luôn đúng trong thế gii đó thì P (A) = 1, ngược li, nếu
A luôn sai thì P (A) = 0.
Ví d:
P (Cm = true) = 0.6 : người bnh b cm vi xác sut 60%, “Cm” là biến ngu nhiên
có th nhn 1 trong 2 giá tr {True, False}
P (tri = nng ^ gió = mnh) = 0.8: ta tin rng tri nng gió mnh vi xác sut
80%, tri là biến ngu nhiên nhn các giá tr {nng, mưa, u ám}, gió biến ngu
nhiên nhn giá tr {mnh, yếu, trung bình}.
Bn cht xác sut s dng trong suy din
Bn cht thng : trong lý thuyết xác sut truyn thng, giá tr xác sut được xác định
da trên quan sát, thc nghim, thng kê. d, để xác định xác sut tri mưa vào ngày l 1-
5 ta cn quan sát thng s ngày 1-5 tri mưa trong rt nhiu năm. Vic xác định xác
sut như vy không phi khi nào cũng thc hin được.
Xác sut da trên ch quan: trong suy din xác sut, khi không thc định giá tr xác
sut bng thng kê, xác sut có th xác định mt cách ch quan, da trên nim tin ca chuyên
gia, ca người dùng v s đúng, sai ca c s kin. d, bác sĩ có th cung cp giá tr xác
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
112
sut v mt triu chng bnh nào đó da trên kinh nghim ưc lượng, thay da trên
thng kê chính xác và c th.
Thu thp và biu din thông tin cho suy din xác sut
Để suy din xác sut cho mt vn đề nào đó, các bước sau cn được thc hin:
Xác định các tham s liên quan ti vn đề, chng hn trong chn đn bnh, tham s
th đau đầu”, “chán ăn”. Mi tham s xác định trên được biu din bng mt
biến ngu nhiên tương ng.
Xác định min giá tr cho các biến ngu nhiên. Thông thường, mi biến ngu nhiên có
th nhn mt giá tr ri rc trong min giá tr ca mình. Vi nhng trưng hp đơn
gin, biến ch hai giá tr đúng”, “sai” như đối vi biến “chán ăn”. Nhng biến như
vy được gi biến bool hay biến nh phân. Trong trưng hp chung, biến th
nhn nhiu giá tr hơn, chng hn đau đầu” th nhn giá tr “nh”, d di”,
“không”.
Xác định xác sut ng vi s kin biến nhn giá tr nào đó. Ví d, P(¬ chán ăn) = 0.9,
P(đau đầu = d di) = 0.15.
Vic suy din xác sut khi đó s qui v tính c sut cho mt hoc mt s các biến nhn
nhng giá tr nào đó.
4.3. MT S KI NIM V XÁC SUT
Trước khi xem xét vn đề biu din tri thc và suy din xác sut, phn này nhc li mt
s kiến thc vc sut cn thiết cho nhng ni dung tiếp theo:
4.3.1. Các tiên đề xác sut
Gi s A, B biến ngu nhiên có th nhn mt trong hai giá tr true (đúng) false
(sai), hay A, B mnh đề có th nhn hai giá tr đúng hoc sai. Khi s dng trong suy din
c sut, ta có ba tiên đề c sut như sau:
1) 0 P (A) 1
2) P (true) = 1; P (false) = 0.
2
3) P (A
v
B) = P (A) + P (B) nếu A và B không giao nhau
trong đó P (A v B) xác sut hoc A đúng hoc B đúng P (A B) xác sut c A
B đều đúng.
Tiên đề 3 có th m rng cho trường hp có nhiu hơn hai s kin ngu nhiên:
vi X
i
là s kin ngu nhiên không giao nhau
Din gii
Ý nghĩa các tiên đề xác sut có th din gii bng cách s dng sơ đồ Venn. Trên hình
dưới đây, hình ch nht biu din thế gii ca bài toán; hình tròn mu trng th hin phn thế
2
Lưu ý, đây là tiên đề dùng cho suy din xác sut, trong trường hp tng quát, ta có P()=1,
P()=0, trong đó là toàn b không gian ly mu.
=
=
n
i
in
XPXXXP
1
21
)()...(
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
113
gii ca bài toán trong đó A đúng. Phn mu xám bên ngoài hình tròn phn thế gii trong
đó A sai. Xác sut P (A) khi đó được c định như t l din tích vùng A đúng so vi toàn b
thế gii ca bài toán.
Do din tích vùng hình tròn không th nh hơn 0 như th hin trên hình dưới bên trái
n ta 0 P(A). Din tính hình tròn bng 0 tương ng vi trường hp A sai trong toàn b
thế gii đang xét ca bài toán.
Tương t như vy, do din tích phn trng không th ln hơn phn hình ch nht, tc
không th vượt ra ngoài thế gii ca i toán như trong nh dưới bên phi nên ta P (A)
1. Din tích phn trng bng 1 tương ng vi trưng hp A đúng trong toàn b thế gii đang
t ca bài toán. Kết hp các ý trên li, ta đưc din gii ca tiên đề 1 và tiên đề 2.
Ý nghĩa ca tiên đề 3 đưc din gii trên hình dưới, trong đó hình ch nht gch chéo
vi khung lin th hin phn ca thế gii bài toán trong đó mnh đề A đúng (P (A)), hình ch
nht vi nn chm th hin phn ca thế gii bài toán trong đó mnh đề B đúng (P (B)).
Phn thế gii bài toán trong đó hoc A đúng hoc B đúng bao gm c hai hình ch nht. Do
hai vùng ch nht không giao nhau nên phn thế gii trong đó hoc A đúng hoc B đúng bng
tng ca P(A) P(B). T đây ta có tiên đề 3.
ph
n th
ế
gi
i
trong đó A sai
ph
n th
ế
gi
i
trong đó A
đ
úng
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
114
Các tính cht xác sut:
Ngoài các tiên đề trên, xác sut có mt s tính cht quan trng sau
- P (¬A) = 1 – P (A)
- P (A) = P (A ^ B) + P (A ^ ¬B)
- P (A v B) = P (A) + P (B) – P (A B)
-
a
P(A = a) = 1, trong đó tng ly theo tt c các giá tr a thuc min giá tr ca A
Trường hp biến ngu nhiên đa tr
trên ta đã t trường hp bin ngu nhiên có th nhn mt trong hai giá tr true hoc
false. Trong suy din nói chung, bin ngu nhiên có th nhn mt trong nhiu hơn hai giá tr.
Trong phn này ta s xem t các tính cht xác sut cho trường hp biến ngu nhiên đa tr.
Gi s Abiến ngu nhiên có th nhn mt trong n giá tr {v
1
, v
2
, …, v
n
}. Do A ch
th nhn mt trong các giá tr y n hai s kin (A = v
i
) (A = v
j
) không th đồng thi
đúng nếu i j, và do vy:
P (A = v
i
A = v
j
) = 0
Tiếp theo, do ít nht mt trong các s kin (A = v
i
), i = 1,..,n phi đúng nên ta có:
P (A = v
1
A = v
2
... A = v
n
) = 1
S dng các tiên đề xác sut và hai tính cht trên, có th chng minh:
, vi k n,
do vy có th suy ra:
Tiếp theo, gi s B biến ngu nhiên nh phân. S dng tiên đề xác sut các tính
cht trên, có th chng minh:
T đây suy ra:
=
=====
k
i
ik
vAPvAvAvAP
1
21
)()...(
=
==
n
i
i
vAP
1
1)(
)(])...[(
1
21
=
=====
k
i
ik
vABPvAvAvABP
A
B
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
115
c tính cht nói trên s đưc s dng khi trình by các vn đề liên quan ti suy din
cho trường hp biến ngu nhiên đa tr trong các phn sau.
4.3.2. Xác sut đồng thi
Xác sut đồng thi ca các s kin là c sut quan sát thy đồng thi xy ra c s
kin đó. Xác sut đồng thi quan sát thy các s kin V
1
= v
1
, V
2
= v
2
, …, V
n
= v
n
được
ký hiu như sau:
P (V
1
= v
1
V
2
= v
2
V
n
= v
n
)
hoc P (V
1
= v
1
, V
2
= v
2
, …, V
n
= v
n
)
Mt bài toán suy din xác sut gm n biến ngu nhiên, mi biến có th nhn mt s giá
tr ri rc vi nhng xác sut nht định. Phân b xác sut đồng thi xác định xác sut xy ra
tng t hp giá tr ca tt c n biến ngu nhiên đó.
Phân b xác sut đồng thi đóng vai trò quan trng trong suy din xác sut. Vi mt bài
toán suy din xác sut, nếu chúng ta biết phân b c sut đồng thi tc là xác sut tt c các
t hp giá tr ca các biến liên quan thì ta có th tính đưc c sut mi mnh đề liên quan ti
i toán đang xét.
d: Cho 3 biến nh phân (True, False): Chim, Non”, “Bay được”. Ta các xác
sut đồng thi cho trong bng 4.1. Mi dòng trong bng y tương ng vi mt t hp giá tr
ca ba biến ngu nhiên đang t. S dòng trong bng bng tng s t hp th có, tc 2
3
trong trường hp này và 2
m
trong trưng hp ta có m biến nh phân. Ct ngoài cùng bên phi
ca bng cha xác sut xy ra t hp giá tr tương ng. Lưu ý rng, theo các tiên đề xác sut,
tng ca tt c các xác sut đồng thi trong bng phi bng 1.
T bng xác sut này, ta có th tính giá tr mi xác sut liên quan ti 3 biến ca bài
toán. Sau đây là ví d tính mt s c sut:
Xác sut mt vt nào đó là “chim”:
P(Chim = T) = 0 + 0,2 + 0,04 + 0.01 = 0,25.
Xác sut “chim không biết bay”:
P(Chim = T, Bay = F) = 0,04 + 0,01 = 0,05.
Trường hp tng quát
Trong trường hp tng quát, xác sut ca bt c t hp giá tr Eo ca mt hoc nhiu
trong s n biến có th tính t bng xác sut đồng thi ca n biến đó như sau:
th d dàng kim tra các d trên nhng trưng hp riêng ca công thc này.
Chng hn, ví d “chim không biết bay”, E (Chim = T, Bay = F) P (E) bng tng xác
sut các dòng có Chim = T và Bay = F.
Bng 4.1. Ví d bng xác sut đồng thi cho ba biến nh phân
)()(
1
=
==
n
i
i
vABPBP
=
Evoitrùngdòngcác
dòngcácPEP
____
)_()(
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
116
Chim Bay được Non Xác sut
T T T 0
T T F 0,2
T F T 0,04
T F F 0,01
F T T 0,01
F T F 0,01
F F T 0,23
F F F 0,5
4.3.3. Xác sut điu kin
Xác sut điu kin P (A|B) xác sut xy ra s kin A khi biết s kin B và không biết
thêm khác. Xác sut điu kin đưc định nghĩa như sau:
P(A|B) =
d, xác sut P(cúm|đau đầu) = 0.5 có nghĩa là nếu ta thy mt ngưi đau đầu,
ngoài ra không có thêm thông tin khác thì c sut ngưi đó b cúm là 50%.
Xác sut điu kin đóng vai trò quan trng trong suy din xác sut ý nghĩa như
sau:
- Khi P (A | B) = 1: B đúng t chc chn suy ra A
- Khi P (A | B) = 0: B đúng t suy ra ¬A.
- th xem B bng chng hoc quan sát và A là kết lun. Khi đó, P (A | B) là xác
sut hoc nim tin A là đúng khi quan sát thy B.
Như ta s thy dưới, quá trình suy din quá trình tính xác sut điu kin ca kết
lun khi biết bng chng. C th là khi cho biết các bng chng E
1
, , E
n
, suy din xác sut
được thc hin bng cách tính xác sut điu kin P (Q | E
1
, …, E
n
), tc là nim tin kết lun Q
đúng khi có các bng chng E
1
, …, E
n
.
Để hiu hơn v ý nghĩa ca xác sut điu kin, ta hãy xét ví d vi sơ đồ Venn được
th hin trên hình v dưới đây. Trong nh v, hình ch nht bên ngoài th hin thế gii ca
bài toán, trong trường hp này là toàn b người trên trái đất. Hình ch nht tròn C th hin tp
hp nhng người b bnh cúm và hình ch nht tròn Đ tp hp nhng người b đau đầu.
P(C) là xác sut mt ngưi b cúm tính bng t l hình ch nht C so vi hình ch nht to.
Tương t P(Đ) là xác sut mt người b đau đầu. Phn giao ca C và Đ là nhng người va b
cúm va đau đầu, hay C Đ. Theo hình v, ta có:
P(C) = 1/40; P(Đ) = 1/10; P(C Đ) = 1/80
)(
)(
BP
BAP
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
117
Theo hình v, c cúm đau đầu đều có xác sut không ln. Tuy nhiên, nếu ta biết mt
người b cúm, tc nm trong hình ch nht C thì s 1/2 xác sut người đó nm trong
hình ch nht Đ, tc là 50% xác sut ngưi đó b đau đầu. Nói cách khác, ta có:
P(Đ|C) = 1/2 = P(C Đ)/P(C)
Các tính cht ca xác sut điu kin
- Qui tc nhân
P (A, B) = P (A | B) * P(B)
- Qui tc chui ( m rng ca quy tc nhân)
P (A, B, C, D) = P (A | B, C, D) * P (B | C, D) * P (C | D) * P (D)
- Quy tc chui có điu kin
P (A, B | C) = P (A | B, C) * P (B | C)
- Cng
P (A) =
P( = ( = )
!
quy tc cng có th chng minh d ng t định nghĩa xác sut ca xác sut điu kin
và tính cht xác sut biến đa tr đã trình by phn tn.
- PB | A) = 1 – P (B | A)
- Quy tc Bayes
P (A | B) =
ta s xem xét k hơn quy tc Bayes trong mt phn sau.
Tính xác sut điu kin t bng xác sut đồng thi
Trong trường hp đầy đủ c sut đồng thi như đã xem xét trên, ta th thc
hin suy din thông qua tính xác sut điu kin. Sau đây mt s d minh ha s dng
bng xác sut đồng thi trong phn trên vi ký hiu “Chim” là C, “Bay” là B và “Non” là N
d 1. Gi s các bng chng cho thy mt sinh vt biết bay, cn tính xác sut sinh
vt đó là chim. Ta có:
P (Chim | Bay) = P (C | B)
= P (C, B) / P (B) (theo định nghĩa)
=
)(
)()|(
BP
APABP
N) P(~C, ~B,, ~B, N) +, N) + P(C + P(~C, BP(C, B, N)
~N) + P(C, B,
P(C, B, N)
C
Đ
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
118
= (0 + 0,2) / ( 0 + 0,04 + 0,01 +0,23)
d 2.d này minh ha cho vic kết hp nhiu bng chng. Gi s có bng chng
sinh vt biết bay và không còn non, cn tính xác sut đây không phi là Chim. Ta có:
P (¬Chim | Bay, ¬Non) = = 0,048
Trong trường hp tng quát, khi cho bng xác sut đồng thi ca n biến V1, …, Vn, ta
có th tính xác sut ca mt s biến này khi biết giá tr mt s biến khác như sau:
Công thc tng quát
P (V
1
= v
1
, … V
k
= v
k
| V
k+i
= v
k+i
, … V
n
= v
n
)
=
tng các dòng có V
1
= v
1
, …, V
K
= v
k
, V
k+i
= v
k+i
, … V
n
= v
n
tng các dòng có V
k+i
= v
k+i
, … V
n
= v
n
Mt ch hình thc hơn, gi các biến cn tính xác sut Q, các biến đã biết E, các
biến còn li (ngoài E và Q) là Y, ta có
Mc công thc trên tương đối đơn gin nhưng trên thc tế, khi s lưng biến tăng
n, s lượng các dòng cha t hp giá tr các biến t s và mu s ca công thc trên s
tăng theo hàm mũ, dn ti kích thưc bng c sut đồng thi quá ln nên không th s dng
cho suy din xác sut được. Trên thc tế, vic suy din vi bng xác sut đồng thi ch th
thc hin được vi nhng i tn có dưi 10 biến ngu nhiên nh phân.
4.3.4. Tính độc lp xác sut
Tính độc lp xác sut mt trong nhng tính cht quan trng, cho phép gim s lượng
c sut cn biết khi xây dng bng c sut đồng thi.
Tính độc lp xác sut được định nghĩa như sau: s kin A độc lp v xác sut vi s
kin B nếu:
P (A | B) = P (A)
Tc là biết giá tr ca B không cho ta thêm thông tin gì v A.
d, gi s A s kin mt sinh viên thi môn trí tu nhân to được 10 đim, B là
s kin năm nay là năm nhun. Vic biết năm nay là năm nhun hay không rõ ràng không làm
tăng thêm xác sut sinh viên được 10 đim trí tu nhân to do vy ta P (A | B) = P (A),
tc là A độc lp xác sut vi B.
Tương đương vi công thc trên, khi A độc lp vi B, ta có:
P(A, B) = P(A) P(B)
P(B | A) = P(B)
(người đọc th t chng minh hai công thc này bng cách s dng định nghĩa xác
sut điu kin).
2,001,0
01,0
)~,,(~)~,,(
)~,,(~
+
=
+ NBCPNBCP
NBCP
=
YQ
Y
YEQP
YEQP
EQP
,
),,(
),,(
)|(
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
119
Công thc cui cho thy s độc lp xác sut có tính đối xng: nếu A độc lp xác sut
vi B thì ngược li ta có B độc lp xác sut vi A. T hai công thc trên cũng có th nhn thy
t hai xác sut P(A) P(B), ta có th tính được toàn b xác sut đồng thi ca hai biến ngu
nhiên A và B như sau:
P (A, B) = P(A) P(B)
P (A, ¬B) = P(A) PB) = P(A) (1 P(B))
P (¬A, B) = P(¬A) P(B) = (1P(A)) P(B)
P (¬A, ¬B) = P(¬A) P(¬B) = (1P(A)) (1 P(B))
Như vy, thay vì cn biết 4 xác sut đồng thi, nay ta ch cn biết 2 c sut. Nhn xét
y cho thy tính độc lp xác sut cho phép biu din rút gn bng xác sut đồng thi, làm cơ
s cho vic suy din trong nhng bài toán suy din xác sut vi nhiu biến ngu nhiên.
Độc lp xác sut có điu kin
trên ta đã t trường hp độc lp xác sut không điu kin. M rng cho trường hp
c sut điu kin, ta nói rng A độc lp có điu kin vi B khi biết C nếu:
P (A | B, C) = P (A | C)
hoc P (B | A,C) = P (B | C)
khi đó ta:
P (A, B | C) = P (A | C) P(B | C)
Ý nghĩa: nếu đã biết giá tr ca C t vic biết giá tr ca B không cho ta thêm thông tin
v A.
d: gi s ký hiu A là s kin sinh viên đi hc mun, B s kin sinh viên mc áo
mưa, C là tri mưa. Thông thưng, nếu quan sát thy sinh viên mc áo mưa (B = true) thì xác
sut sinh viên đi hc mun s tăng lên (do đường b ngp, phương tin di chuyn chm
hơn), tc P(A|B) P(A). Tuy nhiên, nếu ta đã biết tri mưa (C = true) biết xác sut đi
hc mun tăng lên, thì vic nhìn thy sinh viên mc áo mưa không làm tăng tiếp đổi xác sut
sinh viên đi hc mun na. Tc là P (A | B, C) = P (A | C).
4.3.5. Quy tc Bayes
Như đã nhc ti trên, quy tc Bayes có dng sau:
P (A | B) =
Quy tc Bayes đóng vai trò quan trng trong suy din xác sut. Thông thưng, bài toán
suy din đòi hi tính P (A | B), tuy nhiên trong nhiu trường hp, vic tính P (B | A) có th d
dàng hơn. Khi đó, quy tc Bayes cho phép ta quy vic tính P(A | B) v tính P (B | A).
Ví d: Gi s cn tính xác sut mt người b cúm khi biết ngưi đó đau đầu, tc là tính
P (cúm | đau đầu)
Để tính xác sut này, cn xác định có bao nhiêu người b đau đầu trong mt cng đồng
dân cư, sau đó đếm xem có bao nhiêu người trong s người đau đầu b cúm. ràng vic
thng nhng ngưi đau đầu tương đối khó khăn do không phi ai đau đầu cũng thông báo
cho cơ s y tế. Ngược li, để tính P(đau đầu | cúm), ta cn đếm s người b cúm sau đó xác
)(
)()|(
BP
APABP
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
120
định xem trong s này bao nhiêu người triu chng đau đầu. Vic này được thc hin
tương đối dng hơn, chng hn bng cách phân tích bnh án nhng ngưi b cúm.
Sau đây, ta xem xét mt ví d s dng quy tc Bayes cho suy din.
d: Mt người làm xét nghim v mt căn bnh hiếm gp ( ký hiu HG) nhn
được kết qu dương tính. Biết rng thiết b xét nghim không chính xác hoàn toàn. C th,
thiết b cho kết qu dương tính đối vi 98% người có bnh. Trong trường hp người không có
bnh vn 3% kh năng xét nghim cho kết qu dương tính. Ngoài ra, ta biết rng xác sut
quan sát thy bnh này trong cng đồng 8 phn nghìn. Yêu cu đặt ra là cn xác định xem
người xét nghim vi kết qu dương tính có bnh không.
Ký hiu s kin bnh là B, xét nghim dương tính , như vy kết qu âm tính s
¬. Để kết lun ngưi khám b bnh không ta cn so sánh xác sut P (B | ) P B |
).
Theo d kin đã cho, ta có:
P(B) = 0.008 PB) = 0.992
P( | B) = 0.98 P | B) = 1-0.98 = 0.02
P | ¬B) = 0.97 P( | ¬B) = 0.03
S dng quy tc Bayes, ta có:
P(B | ) = = =
P B | ) = = =
Như vy, P B | ) > P(B | ) do đó ta kết lun người ti khám không b bnh. S
dĩ xác sut không bnh ln hơn là do c sut P(B), còn gi là xác sut tin nghim, ca bnh
rt nh. Trong trường hp như vy, để khng định b bnh cn phi kh năng xét nghim
vi đội chính xác rt cao.
Chun tc hóa (normalization)
Cn lưu ý thêm rng, để so sánh PB | ) P(B | ) ta không cn tính giá tr đúng
ca hai xác sut y do hai biu thc có chung mu s P(). Thay vào đó ta có th tính
kết lun bnh hay không bnh tùy vào giá tr trên ln hơn hay nh hơn 1 (hoc
mt giá tr ngưng nào đó).
Tuy nhiên, trong mt s trưng hp, ta th cn tính giá tr đúng ca hai c sut đó,
thay vì so sánh vi nhau. Đểnh các xác sut này, ta có th làm như sau:
do P B | ) + P(B | ) = 1
nên
)(
)()|(
P
BPBP
)(
008.0*98.0
P
)(
00784.0
P
)(
)
(~)
|~(
P
BPBP
)(
992.0*03.0
P
)(
02976.0
P
02976.0
00784.0
)|(~
)|(
=
BP
BP
1
)(
)()|(
)(
)
(~)
|~(
=
+
P
BPBP
P
BPBP
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
121
T đây suy ra
hay: P() = 0.00784 + 0.02976
Thay vào các biu thc trên, ta có P(¬ B | )=0.79 và P(B | ) = 0.21
Quá trình tính toán như trên được gi chun tc hóa do ta đã nhân các giá tr 1/ P()
để chun tc hóa các xác sut điu kin sao cho tng các xác sut này bng 1.
Kết hp quy tc Bayes vi tính độc lp xác sut
Quy tc Bayes cũng có th kết hp vi tính độc lp v xác sut. Ví d tiếp theo s minh
ha cho vic kết hp này.
Ví d 1: Tính P (A| B, C), cho biết B độc lp vi C nếu biết A:
P(A|B, C) =
! !,! !)!(!)
!(!,!)
=
! ! !)! ! ! !(!)
!(!,!)
Ví d 2: Cho 3 biến nh phân: gan BG, vàng da VD, thiếu máu TM.
- Gi s VD độc lp vi TM
- Biết P(BG) = 10
-17
- Có ngưi khám b VD
- Biết P(VD) = 2
-10
và P(VD|BG) = 2
-3
a. Xác sut người khám b bnh là bao nhiêu?
b. Cho biết thêm người đó b thiếu máu P(TM) = 2
-6
, P(TM|BG) = 2
-1
. Hãy
tính xác sut ngưi khám b bnh BG.
Gii:
a. P(BG|VD) =
! !" !")!(!")
!(!")
=
!
!!
!"
!!"
!
!!"
b. Ta cn tính c sut điu kin
P(BG | VD, TM) =
! !" !")! !" !" !(!")
!(!",!")
Mà TM và VD độc lp nên ta có:
P(BG | VD, TM) =
!
!!
!!!
!!
!"
!!"
!!!
!!
!
!!"
d trên cho thy, vic s dng tính độc lp (có điu kin) gia các biến cho phép rút
gn đáng k quá trình tính toán xác sut điu kin khi thc hin suy din.
4.4. MNG BAYES
Trong các phn trước ta đã làm quen vi vn đề suy din xác sut, trong đó cho trưc
mt s bng chng E
1
, …, E
n
, cn tính xác sut điu kin P (Q | E
1
, …, E
n
) để kết lun v câu
truy vn Q.
Xác sut điu kin tn có th tính được nếu biết toàn b xác sut đồng thi ca các biến
ngu nhiên. Tuy nhiên, trên thc tế, các bài toán thường có s lượng biến ngu nhiên ln, dn
ti s lượng xác sut đồng thi tăng theo hàm mũ. Do vy, lit s dng bng xác sut
đồng thi đầy đủ để suy din là không thc tế.
)
(~)
|~()()|()(
BPBPBPBPP
+=
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
122
Để khc phc khó khăn trên, trong phn y ta s xem xét cách s dng mng Bayes
như mt nh biu din xác sut rút gn cách thc hin suy din xác sut trên mng
Bayes.
4.4.1. Khái nim mng Bayes
Để tin cho vic trình bày khái nim mng Bayes, xét mt ví d sau
3
.
Mt người đi làm v và mun d đoán xem nhà có người không thông qua mt s du
hiu có th quan sát được. Cho biết mt s d kin sau:
- Nếu c nhà đi vng thì thường bt đèn ngoài sân. Tuy nhiên, đèn ngoài sân có th
được c trong mt s trưng hp có người nhà, ví d khi có khách đến chơi.
- Nếu c nhà đi vng thì thường buc chó sân sau.
- Tuy nhiên chó có th được buc sân sau c khi có người nhà nếu như chó b
đau bng.
- Nếu chó buc ngoài thì có th nghe tiếng sa, tuy nhiên có th nghe tiếng sa
(ca c hàng xóm) c khi chó không buc ngoài.
Để thc hin suy din xác sut cho bài toán trên, trưc tiên cn xây dng hình xác
sut. Ta s s dng năm biến ngu nhiên sau để th hin các d kin liên quan ti bài toán.
O: không ai nhà
L: đèn sáng
D: chó ngoài
B: c b m.
H: nghe thy tiếng sa.
Vic phân tích bài toán cho thy:
- Nếu biết D thì H không ph thuc o O, L, B.
- Nếu biết B thì D độc lp vi O.
- O và B độc lp vi nhau
Tiếp theo, ta xây dng mt đồ th, trong đó mi biến ngu nhiên trên được biu din
bi mt nút như trên hình v dưi đây (hình 4.1). Các nút được ni vi nhau bng nhng cung
hướng sao cho hai hai nút có quan h ph thuc được ni bi mt cung hướng ca cung
th hin chiu tác động ca nút gc ti nút đích. Vi đồ th hướng, ta có th xác định quan
h gia các t như sau: nếu tn ti cung hướng t nút A ti nút B thì nút A được gi
nút cha (m) và nút B là nút con.
3
Đây là mt ví d được s dng trong bài báo “Bayesian networks without tears” đăng trên tp chí AI Magazine
năm 1991.
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
123
nh 4.1: Mt ví d mng Bayes
Sau khi đồ th, ta thêm vào bng xác sut điu kin. Bng xác sut điu kin th hin
c sut ca biến khi biết giá tr c th ca các biến các nút cha m. Trong trưng hp nút
không có cha m, xác sut tr thành xác sut tin nghim. Để thun tin, bng c sut điu
kin được th hin ngay trên hình v cùng vi đồ th.
Đồ th va xây dng cùng vi c bng c sut điu kin to thành mng Bayes cho
i toán trong ví d trên.
Định nghĩa: Mng Bayes là mt mô hình c sut bao gm 2 phn
- Phn th nht mt đồ th có hưng không cha chu trình, trong đó mi nút
tương ng vi mt biến ngu nhiên, các cung th hin mi quan h ph thuc gia
các biến.
- Phn th hai là các bng xác sut điu kin: mi nútmt bng xác sut điu
kin cho biết xác sut các giá tr ca biến khi biết giá tr các nút cha m.
Cu trúc ca đồ th trong mng Bayes th hin mi quan h ph thuc hoc độc lp gia
các biến ngu nhiên ca bài toán. Hai nút được ni vi nhau bi mt cung khi gia hai nút
quan h trc tiếp vi nhau, trong đó giá tr nút gc nh hưởng ti giá tr nút đích.
Lưu ý rng trong cu trúc ca mng Bayes không cho phép chu trình. Hn chế này
nh hưởng ti kh năng hình hóa ca mng Bayes trong mt s trưng hp tuy nhiên cho
phép đơn gin hóa vic xây dng và suy din trên mng Bayes.
Bng xác sut điu kin xác định c th nh hưởng ca các nút cha m ti giá tr nút
con. đây ta ch xét trường hp biến ngu nhiên th nhn giá tr ri rc bng xác sut
điu kin được cho theo t hp giá tr ca các nút cha m. Mi dòng trong bng tương ng
vi mt điu kin c th, thc cht là mt t hp giá tr các nút cha. Ví d, trong mng Bayes
ca d trên, dòng th nht trong bng xác sut ca nút D ng vi điu kin trong đó O =
True B = True. Nếu nút không có cha m thì bng xác sut ch gm mt dòng duy nht như
trường hp vi nút O và nút B.
4.4.2. Tính độc lp xác sut trong mng Bayes
Mng Bayes th hin hai thông tin chính.
O
B
D
L
H
P(D|O
,B)=0.05
P(D|O,¬B)=0.1
P(D|¬O,B)=0.1
P(D|¬O,¬B)=0.2
P(H|D)=0.3
P(H|¬D)=0.8
P(L|O)=0.3
P(L|¬O)=0.6
P(O)=0.6
P(O)=0.3
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
124
Th nht, đây biu din rút gn ca toàn b xác sut đồng thi. Trong d trên ta
ch cn 10 xác sut thay 2
5
-1 xác sut đồng thi. Tùy theo kích thưc đặc đim c th
ca bài toán, hiu qu ca vic rút gn s lượng xác sut có th ln hơn rt nhiu. Chng hn,
vi mng gm 30 nút nh phân, mi nút có 5 nút cha, ta cn tt c 960 xác sut điu kin cho
mng Bayes, trong khi bng xác sut đồng thi cho 30 biến như vy phi có 2
30
-1, tc là hơn
mt t dòng.
Th hai, mng Bayes cho thy s ph thuc hoc độc lp xác sut có điu kin gia các
biến. V thc cht, chính vic độc lp vc sut dn ti kh năng biu din rút gn các xác
sut đồng thi.
Tính độc lp xác sut trong mng Bayes th hin qua tính cht sau.
Tính cht:
- Mi nút trên mng Bayes độc lp có điu kin vi tt c các nút không phi là hu du
ca nút đó nếu biết giá tr các nút cha.
- Mi nút độc lp có điu kin vi tt c các nút khác trên mng nếu biết giá tr tt c
nút cha, nút con và nút cha ca các nút con.
d: Theo mng Bayes trong ví d trên H độc lp vi O, L, B nếu biết giá tr ca D.
Tính các xác sut đng thi
S dng tính độc lp xác sut va phát biu trên, có th tính xác sut đồng thi ca tt
c các biến. Xét ví d sau
Ví d :cn tính P(H, D, L, ¬O, B)
Theo công thc chui:
P(H, D, L,¬ O, B) = P(H| D, L, ¬O, B) * P(D| L,¬ O, B) * P(L O, B) * P(¬O|B) * P(B)
Do tính độc lpc sut (có điu kin):
P (H| B, D, ¬O, L) = P(H|D)
P(D| L, ¬O, B) = P(D|¬ O, B)
P(L| ¬O, B) = P(L|¬O)
P(¬O|B)=P(O)
do vy,
P(H, D, L,¬ O, B) = P(H| D, L, ¬O, B) * P(D| L,¬ O, B) * P(L|¬ O, B) * P(¬O|B) * P(B)
= P(H|¬O) * P(D|¬ O, B) * P(L|¬O) * P(¬O) * P(B)
Mt cách tng quát, gi s mng n nút tương ng vi n biến ngu nhiên X
1
, …, X
n
ca i toán đang xét. T thông tin ca mng, có th tính mi xác sut đồng thi ca n biến,
trong đó mi xác sut đồng thi dng P (X
1
= x
1
X
2
= x
2
X
n
= x
n
) hay viết gn
P(x
1
, …,x
n
). Xác sut đồng thi được tính theo công thc tng quát sau:
hay viết gn là
))(_|(),...,(
1
1
=
=
n
i
iin
XmechaxPxxP
trong đó cha_me(X
i
) là giá tr c th các nút cha m ca nút X
i
.
))(_|(),...,(
1
11
=
====
n
i
iiinn
XmechaxXPxXxXP
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
125
Để minh ha cho công thc trên, ta s tính xác sut xy ra tình hung nhà có người,
chó b m được buc ngoài sân, đồng thi đèn không sáng và nghe tiếng chó sa. Xác sut
tình hung này chính P(B, ¬O, D, ¬L, H) được tính như sau:
P(B, ¬O, D, ¬L, H) = P(B) * P(¬O) * P(D|¬O, B) * P(H|D) * P(¬L|˥O)
= 0,3 * 0,4 * 0,05 * 0,7 * 0,3
= 0,00126
Trong mt phn trên ta đã thy rng nếu có mi xác sut đồng thi thì có th thc hin
suy din xác sut cho mi dng câu truy vn. Như vy, vi mng Bayes ta th suy din
bng cách trưc tiên tính ra mi xác sut đồng thi cn thiết. Tuy nhiên, cách này đòi hi tính
toán nhiu vì vy trên thc tế thường s dng mt s phương pháp suy din khác hiu qu
hơn. Vn đề này s được nhc ti trong mt phn sau.
4.4.3. Cách xây dng mng Bayes
Để th s dng, trưc tiên cn xây dng ra mng Bayes. Quá trình xây dng mng
Bayes bao gm vic xác định tt c các biến ngu nhiên liên quan, xác định cu trúc đồ th
ca mng, và cui cùng là xác định giá tr cho các bng xác sut điu kin. Trong phn này, ta
s coi như đãbiến ngu nhiên, vic xây dng mng ch bao gm xác định cu trúc và bng
xác sut điu kin.
hai cách tiếp cn chính để xây dng mng Bayes.
ch th nht do con ngưi (chuyên gia) thc hin da trên hiu biết ca mình
v bài toán đang xét. Vic y dng mng đưc chia thành hai bước: xác định
cu trúc đồ th và đin giá tr cho bng c sut điu kin.
ch th hai là t động c định cu trúc và xác sut điu kin t d liu. đây,
d liu có dng giá tr các biến ghi nhn đưc trong quá kh, ví d ta có th ghi
li t hp cá giá tr ca năm biến trong ví d trên trong thi gian vài năm. Quá
trình xây dng mng khi đó bao gm xác định cu trúc ca đồ th bng xác
sut điu kin sao cho phân b xác sut do mng th hin phù hp nht vi tn
sut xut hin các giá tr trong tp d liu.
Phn này ch xem xét ch xây dng mng do con người thc hin và t mt quy
trình c th cho vic xây dng mng.
c bưc y dng mng đưc thc hin như trên hình 4.2. Sau khi đã cu trúc
mng, chuyên gia s xác định giá tr cho các bng xác sut điu kin. Thông thường, vic xác
định giá tr xác sut điu kin khó hơn nhiu so vi vic xác định cu trúc mng, tc xác
định quan h gia các nút.
B1:
Xác định các biến ngu nhiên cho phép mô t min ca bài
toán.
B2: Sp xếp các biến theo mt th t nào đó. Ví d theo th t
sau: X
1
, X
2
… X
n
.
B3: For i = 1 to n do
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
126
a.
Thêm m
t nút m
i X
i
vào m
ng
b. Xác định tp Cha_M(X
i
) là tp nh nht các nút đã có
trước đó sao cho X
i
độc lp có điu kin vi tt c nút
còn li khi biết b m ca X
i
.
c. Vi mi nút thuc tp Cha_M(X
i
). Ta thêm mt cnh có
hướng t nút đó ti X
i
.
d. c đnh bng xác sut điu kin cho X
i
the các giá tr
ca b m hoc bng xác sut tin nghim nếu X
i
không có
b m.
nh 4.2: Phương pháp xây dng mng Bayes
Để minh ha, xét ví d sau. Mt người va lp h thng báo động chng trm nhà. H
thng s phát tiếng động khi có trm. Tuy nhiên, h thng có th o động (sai) nếu chn
động do động đất. Trong trường hp nghe thy h thng o động, hai ngưi hàng xóm tên
m Nam và Vit s gi đin cho ch nhà. Do nhiu nguyên nhân khác nhau, Nam và Vit có
th thông báo sai, chng hn do n n không nghe thy chuông báo động hoc ngược li,
nhm âm thanh khác là tiếng chuông.
Theo phương pháp trên, các bưc xây dng mng đưc thc hin như sau.
B1: la chn biến: s dng 5 biến sau
T (có trm), Đ (động đt), B (chuông báo động), N (Nam gi đin), V (Vit gi đin)
B2: các biến được sp xếp theo th t T, Đ, B, N, V
B3: thc hin như các bưc nh v, ta xây dng được mng th hin trên hình sau (để
đơn gin, trên hình v ch th hin cu trúc không có bng xác sut điu kin).
Hình 4.3.: Kết qu xây dng mng Bayes cho ví d chuông báo trm
nh hướng ca vic sp xếp các nút ti kết qu xây dng mng.
Trên thc tế, vic xây dng mng Bayes không đơn gin, đặc bit trong vic chn th t
các t đúng để t đây chn được tp nút cha có kích thưc nh. Để làm đim này, ta gi
s trong ví d trên, các biến được xếp theo th t khác: N, V, C, T, Đ.
c bưc thêm nút s thc hin như sau:
T
Đ
C
N
V
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
127
- Thêm nút N: không có nút cha
- Thêm nút V: nếu Nam gi đin, xác sut Vit gi đin s tăng lên do s kin Nam gi
đin nhiu kh năng do có báo động và do vy xác sut Vit nghe thy chuông và gi
đin tăng theo. Do vy N có nh hưng ti V được thêm vào tp cha ca V.
- Thêm C: Nếu Nam và Vit cùng gi thì kh năng có chuông cao hơn, do vy cn thêm
c N và V vào tp cha ca C.
- Thêm T: Nếu đã biết trng thái ca chuông thì không cn quan tâm ti Nam Vit
na, do vy ch có C là cha ca T.
- Thêm Đ: nếu có chuông, kh năng động đất tăng lên. Tuy nhiên, nếu đồng thi ta biết
trm thì vic trm gii thích phn nào nguyên nhân chuông kêu. Như vy, c
chuông và có trm nh hướng ti xác sut động đất, tc là C và T đều là cha ca Đ.
Kết qu ca mng Bayes xây dng theo th t mi được th hin trên hình dưới. So
nh vi kết qu trên, mng Bayes mi phc tp hơn, theo nghĩa nhiu cung hơn hay
trung bình c nút có nhiu nút cha hơn. Ngoài ra, ý nghĩa mt s quan h trên mng rt
không trc quan khó gii thích, chng hn vic c sut đng đất phc thuc vào chuông
o động trm. Như vy, mc c hai mng Bayes xây dng trên đều đúng theo
nghĩa đảm bo các ràng buc v xác sut và đều cho phép nh ra các xác sut đồng thi, vic
la chn không đúng th t nút s làm mng khó hiu phc tp hơn.
Hình 4.4: Kết qu xây dng mng Bayes khi s dng th t các nút khác
T ví d trên ta có th đưa ra mt s nhn xét v kết quy dng mng Bayes.
Nhn xét:
- Cùng mt tp hp biến có th xây dng nhiu mng Bayes khác nhau.
- Th t sp xếp nh hưởng ti mng Bayes. Nên sp xếp sao cho các nút đóng vai trò
nguyên nhân đứng trước nút h qu.
- Tt c các mng được xây dưng như trên đều hp l, theo nghĩa không vi phm các ràng
buc vc sut và đều cho phép thc hin suy din.
4.4.4. Tính độc lp xác sut tng quát: khái nim d-phân cách
Trong phn 4.4.2, ta đã xem xét kh năng biu din tính độc lp xác sut ca mng
Bayes, d, mi x nút độc lp vi các nút không phi hu du nếu biết giá tr tt c nút cha
N
V
C
T
Đ
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
128
ca x. Tuy nhiên, đây mi các trưng hp riêng, trong trường hp tng quát cn kh
năng xác đnh liu mt tp hp các nút X độc lp vi tp hp các nút Y khi biết các nút E
không. Các tính cht độc lp xác sut đã trình by trong phn 4.4.2 không cho phép tr li tt
c các câu hi tng quát dng này. Chng hn, trong ví d mng Bayes trên hình 4.5 dưi đây,
nếu không biết giá tr ca nút C thì theo tính cht ca mng Bayes, N V độc lp (không
điu kin) vi nhau do V không phi hu du ca N N không có cha. Tuy nhiên, nếu đã
biết gtr ca C thì N V còn độc lp vi nhau không? Hai tính cht trình by trong phn
4.4.2 không cho phép tr li câu hi này.
Hình 4.5. Ví d mng Bayes
Trong phn này, ta s xem xét cách tr li câu hi v tính độc lp ca tp các nút X vi
tp nút Y khi biết tp nút E trên mt mng Bayes bng cách s dng khái nim d-phân cách
(d-separation).
Nguyên lý chung ca d-pn cách là gn khái nim ph thuc xác sut vi tính kết ni
(tc đưng đi gia c nút), khái nim độc lp xác sut vi tính không kết ni, hay
chia ct, trên đồ th có hưng khi ta biết giá tr mt s nút E. Ch d đây viết tt ca t
“directional” tc “có hưng”. Theo đó, các nút X các nút Y d-kết ni vi nhau nếu
chúng không b d-phân cách. Nếu các t X và các nút Y b d-phân cách bi các nút E thì X
và Y là độc lp xác sut vi nhau khi biết E.
Để xác định tính d-phân cách ca tp X Y, trưc tiên ta cn xác định tính d-phân
cách gia hai nút đơn x thuc Xy thuc Y. T đây, hai tp nút s độc lp vi nhau nếu mi
nút trong tp này độc lp vi tt c các nút trong tp kia. Sau đây là các quy tc cho phép xác
định tính d-phân cách hay tính độc lp xác sut ca hai biến xy.
Quy tc 1: nút x y được gi là d-kết ni nếu tn ti đường đi không b phong ta gia
hai nút. Ngược li, nếu không tn ti đưng đi như vy thì xyd-phân cách.
Trong quy tc này, đường đi là mt chui các cung nm lin nhau, không tính ti hướng
ca các cung đó. Đường đi không b phong ta đường đi mà trên đó không có hai cung lin
k hưng vào nhau. Trong trường hp tn ti hai cung như vy thì thông tin s không th đi
qua đưc do vy các nút không th kết ni vi nhau. Nút hai cung hưng vào như vy
gi là nút xung đột.
Ví d, trong trường hp sau:
N
V
C
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
129
gia xy tn ti đường đi x - r - s - t - u - v - y, tuy nhiên t là nút xung đột do hai cung
st ut hướng vào nhau. Đưng đi x - r - s - t t - u - v - y là các đường đi không b phong
ta, do vy x t d-kết ni, t y cũng vy. Tuy vy, x y không phi d-kết ni do
không tn ti đưng đi o không qua t xung đột t. Như vy, x y d-phân cách trên
mng này và do vy độc lp xác sut (không điu kin) vi nhau.
Tính kết ni và phân cách xác định theo quy tc 1 là không điu kin và do vy tính độc
lp xác sut được xác định theo quy tc 1 là độc lp không điu kin.
Quy tc 2: nút x y d-kết ni điu kin khi biết tp nút E nếu tn ti đưng đi
không b phong ta (không cha nút xung đột) không đi qua bt c nút nào thuc E.
Ngược li, nếu không tn ti đường đi như vy thì ta nói rng xyd-phân cách bi E. Nói
cách khác, mi đưng đi gia xy (nếu có) đều b E phong ta.
Quy tc 2 cn thiết do khi ta biết giá tr mt s nút (tp nút E), tính cht độc lp hay
ph thuc gia các nút còn li có th thay đổi: mt s nút độc lp tr nên ph thuc, và ngược
li, mt ss nút ph thuc tr thành độc lp. Tính độc lp hay ph thuc trong trưng hp này
được gi là d-phân cách có điu kin theo tp biến E.
d: trên hình sau, gi s tp E gm hai nút r v được khoanh tròn. Theo quy tc 2,
không tn ti đường đi không b phong ta nào gia x y mà không đi qua E, do đó xy
d-phân ch khi biết E. Tương t như vy: x s, u y, s và u d-phân cách khi biết E do
đường đi srt đi qua nút r thuc E, đưng đi y v s đi qua nút v thuc E, còn đường đi s
tu đưng đi b phong ta ti t xung đột t theo quy tc 1. Ch có các cp nút s t, t
u là không b phong ta bi E.
Quy tc 3: nếu mt nút xung đột là tnh viên ca tp E, hoc hu du thuc tp E,
thì nút đó không còn phong ta các đưng đi qua nó na.
Quy tc này đưc s dng cho trường hp ta biết mt s kin được gây ra bi hai hay
nhiu nguyên nhân. Khi ta đã biết mt nguyên nhân đúng txác sut nhng nguyên nhân
còn li gim đi, ngược li nếu ta biết mt nguyên nhân sai thì xác sut nhng nguyên
nhân còn li tăng lên. Chng hn, xy ra tai nn máy bay vi hai nguyên nhân là trc trc k
thut hoc li ca con người. Nếu ta đã xác định đưc xy ra trc trc k thut thì xác sut li
con người s b gim đi (mc dù không loi tr hoàn toàn).
d: trên d hình sau, gi s tp E gm các nút r p được đánh du bng cách
khoanh tròn. Theo quy tc 3, nút s y là d-kết ni do nút xung đột t có hu du nút p
thuc E, do vy đã gii ta đường đi s t – u v – y. Trong khi đó x u vn là d-phân cách
do mc dù t đã được gii ta nhưng nút r vn b phong ta theo quy tc 2.
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
130
4.5. SUY DIN VI MNG BAYES
Sau khi đã xem xét khái nim mng Bayes và kh năng biu din ngn gn quan h độc
lp xác sut, cũng như kh năng tính c sut đồng thi trên mng, trong phn này ta s xem
t cách thc hin suy din xác sut trên mng. Sau khi nhc li khái nim suy din xác sut,
ta s xem xét mt s k thut suy din cho nhng trường hp đơn gin. Các k thut phc tp
hơn s được trình by cui chương. Các k thut suy din trình by trong phn này đều da
trên vic tn dng các cu trúc ca mng Bayes để đơn gin hoá quá trình tính toán.
Suy din c sut là q trình tìm c sut hu nghim hay xác sut điu kin ca mt
s biến khi biết giá tr mt s biến khác. Thông thưng, suy din xác sut được thc hin
bng cách tính
P
(
Q
|
E
=
e
)
trong đó:
Q danh sách các biến truy vn, thưng ch gm mt biến;
E là danh sách các biến quan sát đưc, còn gi là các bng chng;
e danh sách các giá tr c th ca các biến thuc tp E.
S dng định nghĩa xác sut điu kin, giá tr trên có th viết li như sau:
P(Q | E = e) =
P
(
Q
,
E
=
e
)
P
(
E
=
e
)
Chng hn, vi mng Bayes cho d đầu tiên, ta th quan sát thy đèn sáng
không nghe tiếng chó sa, t đây cn xác định trong nhà ngưi hay không bng cách tính
c sut điu kin P(¬ O | L, H).
Lưu ý: Trong công thc này, cũng như trong các phn tiếp theo, c ch hoa như E
được dùng để ký hiu các biến, các ch thường như e để ký hiu giá tr c thcác biến đó
th nhn. Trong các ví d vi biến ngu nhiên nh phân, ta dùng ký hiu ch hoa như L
ch hoa vi du ph định ¬L để th hin biến đó nhn giá tr true hay false.
Tiếp sau đây, ta s xem xét k thut suy din đơn gin nht.
4.5.1. Suy din da trên xác sut đồng thi
Trong phn này, ta s xem xét mt phương pháp suy din được thc hin bng cách lit
và tính tng các xác sut đồng thi có liên quan ti Q E. Do phương pháp này cho phép
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
131
tính chính xác xác sut P(Q | E = e) nên đưc gi là suy din xác chính xác (exact inference).
Ngoài ra, do phương pháp này đòi hi lit tính các xác sut đồng thi nên còn gi
phương pháp lit (enumeration).
Phn gii thiu v xác sut điu kin trên đã gii thích cách tính xác sut điu kin khi
biết đầy đủ xác sut đồng thi. C th là, vi các biến truy vn Q, biến bng chng E, các
biến còn li Y (tc các biến không thuc Q E, còn đưc gi là các nút n), c sut điu
kin được tính như sau:
P(Q | E = e) =
P(Q, E = e)
P(E)
=
P
(
Q
,
e
,
Y
)
Y
P(Q,e,Y )
Q,Y
Do mng Bayes cho phép xác định toàn b xác sut đồng thi cn thiết, vic suy din có
th thc hin bng cách tính xác sut đồng thi, sau đó thay vào công thc này để tính xác
sut P(Q | E).
Ví d. Xét ví d d đoán nhà có ngưi hay không trên, gi s ta biết rng chó đang
b đau bng và không nghe tiếng sa, cn xác định xác sut đèn sáng, tc xác sut P(L | B,
¬H). Theo công thc trên ta có:
P(L | B, ~ H ) =
P
(
L
,
B
, ~
H
,
O
,
D
)
O,D
P(L, B, ~ H, O, D)
L,O,D
trong đó
=
)~,,~,,(),,~,,(
DOHBLPDOHBLP
+
��
=�
)~,,~,,(),,~,,(
DOHBLPDOHBLP
+
)~,,~,,(),,~,,
(~
DOHBLPDOHBLP
++
các xác sut đồng thi được tính theo công thc c sut đồng thi cho mng Bayes
như trong phn trước.
Độ phc tp tính toán. Cách suy din thông qua xác sut đồng thi hay suy din bng
cách lit nguyên tc đơn gin tuy nhiên đòi hi tính tng ca rt nhiu xác sut đồng
thi. Vi s lượng biến ngu nhiên ln, s lượng xác sut đồng thi cn tính tăng theo hàm
mũ. C th là vi mng Bayes gm n nút tương ng vi n biến nh phân và trong trưng hp
Y gm hu hết các nút, độ phc tp tính toán s O(n2
n
) do ta cn tính tng ca gn n s,
mi s tích ca gn 2
n
xác sut điu kin. Đ phc tp như vy rt ln khi n ln do
vy không thc tế.
4.5.2. Độ phc tp ca suy din trên mng Bayes
DO
DOHBLP
,
),,~,,(
)~,~,~,,(),~,~,,(
DOHBLPDOHBLP
++
DOL
DOHBLP
,,
),,~,,(
)~,~,~,,(),~,~,,(
DOHBLPDOHBLP
++
)~,~,~,,(),~,~,,
(~
DOHBLPDOHBLP
++
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
132
Ta đã thy, vic tính chính xác giá tr P(Q | E) thông qua xác sut đồng thi đòi hi độ
phc tp tính toán hàm mũ. Vy vic suy din thông qua tính chính xác xác sut điu kin nói
chung (tm gi suy din chính xác) độ phc tp tính toán ra sao khi s dng nhng
phương pháp khác?
Đối vi mng có dng liên kết đơn hay còn gi là polytree.
Mng liên kết đơn hay mng polytree mng trong đó gia hai nút bt k ch tn ti
duy nht mt đường đi (hình 4.5.a). Trong trường hp này, tn ti thut toán cho phép suy
din chính xác vi độ phc tp tuyến tính (t l thun) vi kích thước ca mng. đây, kích
thước mng được tính bng tng s phn t ca các bng xác sut điu kin. Trong trường
hp s nút cha đưc gii hn bi hng s, độ phc tp s t l tuyến tính vi s nút.
Trong phn cui ca chương (phn 4.5.5), ta s xem xét thut toán loi tr biến
(variable elimination), mt thut toán cho phép gim đáng k độ phc tp tính toán so vi
phương pháp lit kê, đặc bit đối vi mng có cu trúc polytree.
nh 4.6: Mng Bayes dng liên kết đơn (a) và không phi liên kết đơn (b) vi hai
đưng đi t M ti T
Đối vi mng không liên kết đơn hay mng đa ln kết.
Đây nhng mng gia hai nút th nhiu hơn mt đưng đi (hình 4.5.b).
Trong trường hp này, vic tính chính xác xác sut điu kin là bài toán NP-đầy đủ và do vy
không th thc hin khi mng có kích thước ln.
Để thc hin suy din trong trường hp mng đa liên kết, có th s dng các thut toán
cho phép tính xác sut điu kin mt cách xp x, chng hn bng cách ly mu thng kê, hay
s dng các thut toán lan ta (propagation). Mt k thut khác cũng th s dng biến
đối mng đa liên kết thành mng liên kết đơn bng cách chp nhn mt mt s thông tin. Bn
thân thut toán biến đổi này cũng có độ phc tp tính toán khá ln.
4.5.3. Suy din cho trưng hp riêng đơn gin
Phn này s gii thiu cách suy din cho trường hp riêng đơn gin nht, đó trường
hp mng liên kết đơn, suy din ch thc hin cho các nút liên kết trc tiếp vi nhau.
th phân bit hai loi suy din cho trường hp đơn gin như vy.
Trong trường hp th nht, biết giá tr mt nút cha, yêu cu tính xác sut quan sát thy
giá tr nút con. Suy din dng này gi là suy din nhân qu hoc suy din t trên xung.
(a)
(b)
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
133
Trưng hp th hai ngược li, tc cho biết giá tr nút con cn tính xác sut quan
t thy giá tr nút cha. Trưng hp này được gi suy din chn đoán hoc suy din dưới
n. Suy din chn đoán thường gp trong nhng bài toán cn xác định hay chn đoán nguyên
nhân ca du hiu nào đó.
Để tin trình bày, c suy din s được minh ha trên ví d đã s dng phn đầu bài.
Như đã nói trên, ta ch xét trường hp nút truy vn nút bng chng có liên kết trc tiếp
vi nhau.
Hình 4.7: Mng Bayes
Suy din nhân qu hay suy din trên xung
Trong suy din nhân qu, cho biết E, cn tính P(Q|E), trong đó E là mt nút cha ca Q.
d: cn tính P(D|B)
P(D|B) = P(D,O|B) + P(DO|B)
= P(D|O,B)P(O|B) + P(D|¬O,B)P(¬O|B)
= P(D|O,B)P(O) + P(D|¬O,B)P(¬O)
= (.05)(.6) + (.1)(1 - .6) = 0.07
d trên cho thy, suy din nhân qu đưc thc hin theo 3 bưc.
- Bước 1: dòng 1. Trong bước này, xác sut Q cn tính được viết li dưới dng xác sut
điu kin ca Q và cha ca Q (không thuc E) điu kin theo E.
- Bước 2: dòng 2. Viết li các xác sut đồng thi dưới dng xác sut ca Q khi biết các
giá tr b m.
- Bước 3: dòng 3,4. S dng các giá tr xác sut t bng xác sut điu kin thay vào
công thc nhn đưc bước 2 để tính ra kết qu.
Suy din chn đoán hay suy din dưới lên
Đây là dng suy din yêu cu tính P(Q|E), trong đó Q là mt nút cha ca E.
Ví d: cn tính P(¬B|¬D)
S dng quy tc Bayes, ta viết li giá tr cn tính như sau
P(¬B|¬D) = P(¬D|¬B)P(¬B)/P(¬D)
Tiếp theo, tính P(¬D|¬B) như cách suy din nhân qu trên
O
B
D
L
H
P(D|O
,B)=0.05
P(D|O,¬B)=0.1
P(D|¬O,B)=0.1
P(D|¬O,¬B)=0.2
P(H|D)=0.3
P(H|¬D)=0.8
P(L|O)=0.3
P(L|¬O)=0.6
P(O)=0.6
P(O)=0.3
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
134
P(¬D|¬B) = P(¬D|O,¬B)P(O) + P(¬D|¬O,¬B)P(¬O)
= (.9)(.6) + (.8)(.4)
= 0.86
Thay giá tr P(¬D|¬B) va tính, ta được:
P(¬B|¬D) = (.86)(.7)/P(¬D) = .602/P(¬D)
Để tính P(¬D), có th tính P(B|¬D), sau đó dùng P(¬B|¬D)+P(B|¬D) = 1
P(B|¬D) = (.93)(.3)/P(¬D) = .279/P(¬D)
do đó:
0.602/P(¬D) + 0.279/P(¬D) = 1
suy ra:
P(¬D) = 0.881
thay vào trên:
P(¬B|¬D) = 0.602 / 0.881 = 0.683
Trong trường hp chung, suy din chn đoán có th thc hin qua hai bước như sau:
- Bưc 1: Biến đổi v suy din nhân qu s dng quy tc Bayes
- Bưc 2: Thc hin ging suy din nhân qu như đã trình by phn trưc.
4.5.4. Suy din bng phương pháp ly mu
Trong trường hp mng Bayes có cu trúc phc tp, vic tính chính xác các xác sut
điu kin không thc tế do độ phc tp tính tn ln. Mt phương pháp suy din thường
được s dng vic tính toán xp x c sut điu kin bng cách ly mu. Thc cht quá
trình này sinh ra các b giá tr ca các biến theo phân b xác sut trên mng, sau đó cng
li tính tn sut quan sát đưc, dùng giá tr tn sut này làm giá tr (xp x) ca xác sut
cn tính. Phương pháp suy din bng ly mu còn được gi là suy din xp x do xác sut tính
được là giá tr gn đúng ca c sut thc.
a) Phương pháp ly mu đơn gin
Phương pháp ly mu đơn gin nht cho mng Bayes được thc hin bng cách sinh ra
các b giá tr cho các biến bng cách ln lượt ly mu các biến theo th t được quy định trên
mng, tc các nút cha m được ly mu trước, nút con được ly mu sau. Mi biến được
ly mu theo xác sut điu kin tùy thuc vào giá tr nút cha m đã được gán nh bước ly
mu trước đó.
Vic ly mu đưc minh ha qua d mng Bayes trên hình dưới. Quá trình ly mu
tính xác sut điu kin da trên các mu sinh ra được trình by ln lượt dưới đây.
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
135
Hình 4.8. Ví d mng Bayes
Ly mu
T mô hình mng, ta th sp xếp các nút theo th t [S, M, L, R, T]. Th ty đảm
bo c nút cha luôn nm trước nút con (có th chn th t khác min đảm bo điu kin
nút cha nm trước nút con).
Ti mi bưc ly mu, mt b giá tr ca các biến đưc xác định bng cách ln lượt ly
mu các biến theo th t đã xác định như sau.
- Chn ngu nhiên giá tr ca S theo c sut P(S=true) = 0.3. Gi s được giá tr
S = false.
- Chn ngu nhiên giá tr M theo c sut P(M = true) = 0.6. Gi s đưc giá tr
M = true.
- Chn ngu nhiên giá tr L theo c sut P(L|S = false, M = true) = 0.1. Giá tr
ca S M đã đưc chn trên. Gi s được giá tr L là false.
- Chn ngu nhiên R theo c sut P(R | M = true) = 0.3. Gi s đưc R = true.
- Chn ngu nhiên T theo c sut P(T | L=false) = 0.8. Gi s được T = true.
Như vy, sau mt ln ly mu, ta được b giá tr (¬S, M, ¬L, R, T).
ch ly mu ti mi bước trưc tiên ly mu các nút không nút cha. Sau đó ly
mu ti các nút con. Khi ly mu nút con s s dng phn t trong bng xác sut điu kin
tương ng vi các giá tr t cha đã la chn đưc trước đó. t thut toán ly mu th
hin trên hình sau.
o
Gi
s
ta
có các bi
ế
n/nút là X
1
, … X
n
sao cho Cha_M
(X
i
) là t
p con c
a {X
1
, …,
X
i-1
} // tc nút cha luôn đứng trước con
o For i = 1 to n do
1. Tìm Cha_M(X
i
) (nếu có). Gi s có n(i) nút cha ca Xi. Gi các nút là
X
p(i,1)
, …, X
p(i,n(i)
)
2. Gi s giá tr các nút cha đã sinh ra trước đó là:x
p (i,1)
, …, x
p(i,n(i)
)
3. Tìm trong bng xác xut giá trc sut:
P(X
i
= true | X
p(i,1)
= x
p(i,1)
)
S
M
R
L
T
P(S)=0.3
P(M)=0.6
P(RM)=0.3
P(R¬M)=0.6
P(TL)=0.3
P(T
¬
L)=0.8
P(LM^S)=0.05
P(LM^¬S)=0.1
P(L¬M^S)=0.1
P(L
¬
M^¬
S)=0.2
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
136
4.
Ch
n X
i
= true v
i xác xu
t trên
Kết qu x
1
, … x
n
mt mu sinh ra t các biến X
1
, …, X
n
nh 4.9: Thut toán ly mu t mng Bayes
Tính xác sut điu kin
Tiếp theo, gi s cn tính P(R = True T = True , S = False ).
Trưc hết, ta thc hin ly mu nhiu ln theo cách trên, mi b giá tr sinh ra được
gi mt mu. Nếu s lưng mu đủ ln thì tn sut xut hin mi b giá tr s xp x c
sut đồng thi ca c giá tr đó. Xác sut đồng thi này s được s dng để tính xác sut điu
kin như dưới đây.
Tính s ln xy ra nhng s kin sau:
N
c
: s mu có T = True và S = False
N
s
: s mu có R = True, T = True và S = False
N: tng s mu
Nếu N đủ ln:
N
c
/N: (xp x) xác sut P (T = True, S = False)
N
s
/N: (xp x) c sut P (R = True , T = True , S = False )
P(R |TS) =
Như vy, bng ch ly mu đếm s ln các t hp giá tr xut hin, ta th tính
được xác sut điu kin.
Phương pháp ly mu
T ví d minh ha trên, có th mô t cách suy din xp x bng cách ly mu như sau.
Gi s cho mng Bayes và cn tính P (Q | E). Thc hin các bước dưới đây:
L
y m
u s
l
ư
ng
đủ
l
n
Tính s lượng:
N
c
: s mu có E
N
s
: s mu có QE
N: Tng s mu
Nếu N đủ ln, ta có: P(Q | E) = N
s
/ N
c
Hình 4.10: Thut toán suy din bng cách ly mu trên mng Bayes
Vn đề vi phương pháp ly mu đơn gin
Phương pháp ly mu đơn gin trình by trên mt nhược đim tính hiu qu
không cao. Trong trường hp tp E gm nhiu biến hoc tp E gm nhng giá tr ít xy ra thì
S)~P(T,
S)~
T,
P(R,
c
s
N
N
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
137
N
c
rt nh so vi N do vy phương pháp s sinh ra rt nhiu mu mà không dùng ti. Tiếp
theo đây, ta s xem xét mt phương pháp ly mu cho phép ci thin tính hiu qu ca ly
mu đơn gin.
b) Ly mu vi trng s theo kh năng (likelihood weighting)
Ly mu vi trng s theo kh năng cho phép ci thin hiu qu ly mu bng cách ch
sinh ra nhng mu có cha các giá tr ca tp quan sát E. Phương pháp này c định các giá tr
ca các biến trong tp E ch ly mu các biến không thuc E. Như vy, các mu sinh ra
luôn cha các giá tr cn thiết ca E và do vy không b b phí khi tính xác sut, tc N
c
= N
theo ký hiu như phn trên.
Phương pháp đưc thc hin như sau. Gi s trong tp E ta X
i
= v (X
i
mt biến
ngu nhiên).
Theo cách ly mu đơn gin, ta s sinh ra giá tr ca X
i
mt cách ngu nhiên vi xác sut
P(X
i
= v | cha_me_ X
i
) = p. Như vy, theo phương pháp ly mu đơn gin, ta s sinh ra X
i
= v
vi tn sut hay t lp sinh ra X
i
v vi tn sut hay t l (1 p). ràng, các mu
X
i
v b b phí. Theo ly mu vi trng s theo kh năng, ta s luôn sinh ra X
i
= v , tuy nhiên
s nhân trng s ca mu được sinh ra vi p để bù li.
Ly mu
Phương pháp ly mu này được minh ha vi ví d mng Bayes trên hình 4.10. Gi s
cn tính P(R = true T = true , S = false ), và các nút đưc sp xếp theo th t [S, M, L, R, T].
Trước tiên ta đặt giá tr cho trng s w = 1. Q trình ly mu sau đó din ra như sau:
- S biến ngu nhiên thuc E vi giá tr S = false, do vy ta thay đổi trng s
w w * P(S = false) = 0.7. // đây, ký hiu a b có nghĩa là gán giá tr b cho a
- M không thuc E, do vy chn ngu nhiên M vi xác sut P(M = true) = 0.6. Gi s ta
được M = true.
- Tương t như vy, chn ngu nhiên L vi xác sut P(L = true|S = false, M = true) =
0.1. Gi s ta đưc L = false.
- Tương t, chn ngu nhiên R vi xác sut P(R = true | M = true) = 0.3. Gi s R =
true.
- T là biến thuc E vi giá tr true, do vy ta thay đổi trng s
w w * P(T = true | L = false) = 0.7 * 0.8 = 0.56
Như vy, trong ví d ln ly mu này tr v b giá tr [S = false, M = true, L = false, R =
0.3, T = true] vi trng s 0.56.
Quá trình ly mu này được tóm tt trong thut toán sau:
L
y m
u có tr
ng s
(M
ng Bayes, t
p nút E và giá tr
e)
Input:
o Mng Bayes
o c biến/nút là X
1
, … X
n
sao cho Cha_M(X
i
) là tp con ca {X
1
, …, X
i-1
} // tc
nút cha luôn đứng trước con
o Tp các nút E và giá tr quan sát được e ca các nút đó
------------------
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
138
Kh
i t
o
:
w1; x b giá tr cho n biến vi giá tr được khi to t e
For i = 1 to n do
If Xi biến thuc tp E vi giá tr x[i] được khi to t e then
w w * P (X
i
= x[i] | Cha_m(X
i
))
Else x[i] chn ngu nhiên giá tr t phân b P (X
i
| Cha_m(X
i
))
Endif
Return: x, w.
nh 4.11. Thut toán ly mu có trng s
Tính xác sut điu kin
Sau khi thc hin ly mu vi trng s vi s mu đủ ln, ta th tính xác sut điu
kin theo công thc P(Q | E) = N
s
/ N
c
tương t trong trường hp ly mu đơn gin. Tuy
nhiên, cách tính giá tr N
s
N
c
không còn ging trưng hp ly mu đơn gin na. Nếu như
trong trưng hp ly mu đơn gin, hai giá tr y đưc tính bng tng s ln các b giá tr
tương ng xut hin, thì trong trường hp ly mu vi trng s, ta cn nh tng trng s cho
các b giá tr. C th, xác sut được tính như sau:
Input
:
o Mng Bayes
o Tp các nút E và giá tr quan sát đưc e ca các nút đó
o Tp biến truy vn Q và các giá tr ca chúng.
------------------
Khi to:
N
s
0; N
c
0
1. Sinh ra b giá tr x trng s w s dng thut toán
Ly mu có trng s
2. N
c
N
c
+ w
3. If b giá tr x có cha các giá tr ca Q then cp
nht N
s
N
s
+ w
4. Goto 1
Return: P(Q | E) = N
s
/ N
c
Hình 4.12. Tính xác sut điu kin bng ly mu có trng s
Phương pháp ly mu vi trng s theo kh năng có hiu qu tt hơn so vi ly mu đơn
gin do không sinh ra c mu tha. Tuy nhiên, hiu qu ca phương pháp này gim khi s
lượng biến trng tp E tăng lên hoc các biến này xut hin cui trong th t các biến trên
mng.
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
139
4.5.5. Phương pháp loi tr biến
Loi tr biến (variable elimination) phương pháp suy din chính xác, tc cho phép
tính chính xác xác sut P(Q | E), tuy nhiên đòi hi tính toán ít hơn nhiu so vi thut toán suy
din bng cách lit đã trình by phn 4.5.1. Phương pháp loi tr biến cho phép gim
khi lưng tính toán nh s dng k thut quy hoch động và khai thác đặc đim cu trúc ca
mng Bayes.
a) Ví d minh ho.
Để nm được nguyên lý cơ bn ca loi tr biến, trước khi đi vào tìm hiu chi tiết v
phương pháp ta s xem xét d suy din cho mt mng Bayes đơn gin vi 4 biến ngu
nhiên đưc kết ni tun t vi nhau như minh ho trên hình 4.13. d s cho thy, ngoài
vic biu din ngn gn các xác sut đồng thi, kiến trúc mng cũng giúp tiết kim các thao
c tính toán đưc s dng khi suy din.
nh 4.13. Ví d mng Bayes đơn gin
Để đơn gin, ta s gi s các biến ngu nhiên trong d đang xét các biến nh phân,
th nhn giá tr True hoc False. Theo công thc tính c sut đồng thi, xác sut P(A, B,
C, D) được tính như sau:
P
(
A
)
P
(
B
|
A
)
P
(
C
|
B
)
P
(
D
|
C
)
Gi s cn tính xác sut P(D). Xác sut y được tính riêng cho hai trưng hp D =
True (viết tt D), D = False (viết tt là ¬D) bng cách tính tng các xác sut đồng thi
vi tt c các t hp giá tr ca A, B, C cho tng giá tr ca D (đây trường hp biến nh
phân do vy ch cn tính P(D) ri tính P(¬D) = 1 – P(D), tuy nhiên vi biến nhiu hơn hai giá
tr thì cn tính riêng xác sut biến đó nhn mi giá tr). Ví d, vi D = True, ta có:
P
(
D
)
=
P
(
A
)
P
(
B
|
A
)
P
(
C
|
B
)
P
(
D
|
C
)
C
B
A
Viết chi tiết vế phi, ta được:
P
(
A
)
P
(
B
|
A
)
P
(
C
|
B
)
P
(
D
|
C
)
+
P(A)P(B | A)P(¬C | B)P(D |¬C) +
P(A)P(¬B | A)P(C |¬B)P(D | C)+
P(A)P(¬B | A)P(¬C |¬B)P(D |¬C)+
P(¬A)P(B |¬A)P(C | B)P(D | C)+
P(¬A)P(B |¬A)P(¬C | B)P(D |¬C)+
P(¬A)P(¬B |¬A)P(C |¬B)P(D | C)+
P(¬A)P(¬B |¬A)P(¬C |¬B)P(D |¬C)
A
D
C
B
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
140
Như vy, để tính được P(D) theo ch này, cn thc hin tt c 24 phép nhân 7 phép
cng. Trong trường hp tng quát vi n biến, mi biến có th nhn k giá tr, cn thc hin (n-
1)k
(n-1)
phép nhân và k
(n-1)
– 1 phép cng.
Tuy nhiên, biu thc trên cha nhiu thành phn lp li. Chng hn, dòng th nht
dòng th năm đều cha
P
(
C
|
B
)
P
(
D
|
C
)
. Do vy, thay tính đầy đủ dòng th nht th
năm, ta th tính tng
P
(
A
)
P
(
B
|
A
)
+
P
(
¬
A
)
P
(
B
|
¬
A
)
, sau đó nhân kết qu tính đưc vi
thành phn chung. Bng cách này th gim s phép tính cn thc hin cho dòng th nht
th năm xung còn 4 phép nhân 1 phép cng thay 6 phép nhân 1 phép cng như
trước. Tương t như vy, rt nhiu thành phn khác được lp li trong biu thc th
tranh th các cu trúc như vy để gim s phép tính.
Quay v biu thc ban đầu, ý tưởng rút gn vic tính toán được th hin bng cách viết
li biu thc như sau:
P
(
D
)
= P
(
A
)
P
(
B
|
A
)
P
(
C
|
B
)
P
(
D
|
C
)
C
B
A
= P(D | C) P(C | B) P(B | A)
A
B
C
P(A)
D dàng nhn thy, biu thc dưới cho giá tr ging ht biu thc ban đầu nhưng đòi hi
thc hin ít phép nhân hơn.
Tiếp theo, th rút gn hơn na s phép tính cn thc hin nếu để ý rng phn tính
A
P(A)P(B|A) đang được thc hin lp li vi tng giá tr ca C. Vic lp li như vy tha
do biu thc này không ph thuc o C. Đ rút gn, có th thc hin phép nhân mt ln
lưu kết qu li. C th, vi mi giá tr ca A, ta thc hin phép nhân nhn được ma trn
sau:
P(B | A)P(A) P(B |¬A)P(¬A)
P(¬B | A)P(A) P(¬B |¬A)P(¬A)
!
"
#
#
$
%
&
&
tiếp theo, cng giá tr theo mi ng, ta được mng sau cho tng giá tr ca B:
P(B)
(¬B)
!
"
#
#
$
%
&
&
Tp các giá tr này ch ph thuc vào giá tr ca B được gi tha s theo B. Ký
hiu tha syf
1
(B), ta có (hình 4.14.a):
f
1
(
B
)
=
P
(
B
|
A
)
P
(
A
)
A
Sau khi tính được f
1
(B), ta có th thay thế giá tr này vào ch ca
A
P(A)P(B|A), và loi
b nút A khi mng ban đầu như th hin trên hình 4.14.b. Như vy, f
1
(B) biu din phn
đóng góp ca B, đã tính ti đóng góp ca Ao công thc tính xác sut.
Tiếp theo, ta có th thc hin rút gn tương t như trên. Do phn cng theo giá tr ca C
ch ph thuc vào B, th cng các giá tr đó để to ra các tha s ch ph thuc vào C, ký
hiu f
2
(C) như minh ho trên hình 4.14.b.
Tiếp theo, thay thế f
2
(C) vào biu thc, xoá nút B khi mng, ta còn li biu thc đơn
gin, t đó có th tính giá tr ca D bng cách ly tng theo các giá tr ca C (hình 4.14.c).
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
141
nh 4.14. Ví d minh ho cách loi tr biến cho trường hp đơn gin.
b) Thut toán loi tr biến
d trên cho thy nguyên tc cơ bn ca phương pháp loi tr biến trên mt mng
Bayes đơn gin. Ý tưởng là tính tn sn và lưu các thành phn lp li, sau đó s dng các giá
tr đã lưu để tiết kim s pp tính cn thc hin theo nguyên tc quy hoch động. Tiếp theo,
ta s xem xét thut toán loi tr biến cho trường hp tng quát.
Để trình by thut toán, trước hết cn biết khái nim tha s và tha s hoá.
Tha s hoá mt phân phi xác sut đồng thi là phân tích xác sut đó thành các thành
phn, mi thành phn ph thuc vào mt hoc mt s biến ngu nhiên, sao cho tích các thành
phn đó là giá tr xác sut đồng thi. Có nhiu cách để tha s hoá mt phân b xác sut. Như
trong ví d trên, mt trong các cách tha s hoá cho ta các thành phn sau
F
=
{
P
(
A
),
P
(
B
|
A
),
P
(
C
|
B
),
P
(
D
|
C
)}
Mi thành phn sau khi tha s hoá gi là mt tha s. Như trong ví d trên, ta P(A),
P(B | A) ... P(D | C) các tha s. Lưu ý rng, mi tha s hàm ca mt s biến ngu
nhiên, chng hn P(A) m ph thuc vào A, P(D | C) hàm và ph thuc vào D, C. Giá
tr ca mi tha s là mt ma trn, chng hn nếu các biến là nh phân thì P(A) là ma trn kích
thước 2x1, trong khi P(D | C) là ma trn kích thước 2x2 do mi biến D và C có th nhn 2 giá
tr.
Thut toán loi tr biến được thc hin bng cách loi tr dn các biến khi biu thc
tính phân b xác sut đồng thi (t đây tên gi ca phương pháp “loi tr biến”).
Vic loi tr mt biến khi biu thc tính xác sut đồng thi được thc hin bng cách loi
tr các tha s cha biến đó khi biu thc như đã thy trong ví d phn trên. Lưu ý rng,
(a)
1 1 0 1 0 1 0 0 0 1 1 0
P
(
D
)
=
P
(
D
|
C
)
P
(
C
|
B
)
P
(
B
|
A
)
P
(
A
)
A
f
1
(B )
! "## $##
B
C
D
C
B
(b)
P
(
D
)
=
P
(
D
|
C
)
C
P
(
C
|
B
)
f
1
(
B
)
B
f
2
(C)
! "## $##
D
C
(c)
3
P
(
D
)
=
P
(
D
|
C
)
C
f
2
(
C
)
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
142
sau khi loi t mt biến, ta được mt danh sách các tha s khác sao cho tích các tha s đó
bng giá tr xác sut đồng thi nhưng cha ít biến ngu nhiên hơn.
Trước hết ta s xem xét th tc Eliminate() cho phép loi tr mt biến, trước khi s
dng th tc này trong thut toán loi tr biến tng quát.
Gi s xác sut đồng thi được tha s hoá thành:
P
(
1
,
X
2
,...,
m
)
=
f
1
.
f
2
....
f
n
,
tương ng vi danh sách các tha s
F
=
{
f
1
,
f
2
,...,
f
n
}
Vic loi tr mt biến đưc thc hin bng cách loi b tt c các tha s cha biến đó
khi F, nhân giá tr các tha s đó vi nhau, sau đó cng các tích nhn được theo các giá tr
khác nhau ca biến cn loi tr. Th tc loi tr mt biến Eliminate() được th hin trên hình
dưới đây.
Eliminate(
F
,
X
i
)
Input:
F: danh sách các tha s
X
i
: biến cn loi tr
Output:
Danh sách mi các tha s, danh sách y không cha X
i
-------------------------------------
1. Loi khi F tt c các tha s cha X
i
. Không mt tính tng quát, gi s c
tha s đó là f
1
, f
2
,...,f
k
.
2. Tính tích ca các tha s trên:
g
=
f
1
.
f
2
....
f
k
3. Tính tng ca g theo các giá tr ca X
i
:
h
=
g
X
i
4. Tm h như mt tha s mi o F
Return F (bây gi đã không còn tha so cha X
i
)
nh 4.15: Th tc Eliminate cho phép loi tr mt biến khi xác sut đồng thi
Trong th tc Eliminate() hình trên, g mng gm K + 1 chiu, trong đó mt chiu
ng vi X
i
và K chiu còn li ng vi các biến ngu nhiên khác cha trong f
1
, f
2
,...,f
k
. Sau khi
thc hin bước 3, ta đưc hàm h dng mt bng vi K chiu do đã gim được mt chiu
tương ng vi f
1
, f
2
,...,f
k
.
Vi th tc Eliminate() va trình by, ta th xây dng thut toán loi tr biến, theo
đó các biến không phi biến truy vn Q không phi biến bng chng E s b loi tr dn
bng cách gi Eliminate(). Sau khi đã loi tr hết các biến không thuc Q E, th tính
xác sut điu kin P(Q | E = e). Để thc hin dn vic loi tr các biến, ta cn sp xếp các
biến cn loi tr theo mt th t nào đó. Các biến s ln lưt đưc loi tr theo đúng th t
này. Sau khi đã loi tr các biến, các tha s còn li ch còn cha Q và E, t đó th tính ra
xác sut P(Q | E = e).
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
143
Thut toán loi tr biến VE() được trình by trên hình 4.16. Thut toán nhn đầu vào
biến truy vn, các biến bng chng và giá tr, danh sách các tha s ban đầu và th t các biến
cn loi tr. Lưu ý rng danh sách tha s ban đầu chính các bng xác sut điu kin cho
cùng mng Bayes.
VE(Q, E, e, F, )
Input:
Q: các biến truy vn
E: các biến bng chng
e: giá tr các biến bng chng
F: danh sách các tha s ban đầu, chính là danh sách các bng xác sut điu kin
: các biến không thuc Q và E đưc sp theo th t (th t loi trc biến)
Output: P(Q | E = e)
--------------------------------
1. Thay thế các biến bng chng bng giá tr quan sát được e trong tt c tha s
2. While không rng
a. Ly biến đầu tiên X t
b. Thc hin Eliminate (F, X)
3. End While
4. Tính h = tích các tha s còn li trong F
5. Tính
P(Q | E = e) =
h
(
Q
)
h(Q)
Q
Return P(Q | E = e)
nh 4.16. Thut toán Loi tr biến ng cho suy din trên mng Bayes
Trước hết, bước 1, thut toán thay thế các biến bng chng E bng giá tr quan sát
được e. Phn chính ca thut toán vòng lp bước 2. Ti mi bước lp, thut toán gi th
tc Eliminate() để loi b mt biến theo đúng th t quy định trong tham s đầu vào. Bưc 4
tính tích các tha s còn li ch cha các biến truy vn. Bước cui cùng thc hin chun
tc hoá để tính ra xác sut truy vn.
c) Ví d minh ho thut toán
Để minh ho thut toán, ta xét mt d khác phc tp hơn ví d trên. Cho mng
Bayes như trên hình 4.17.a vi các biến nh phân. Gi s cn tính phân phi xác sut cho D
khi biết B = false, tc là P(D | B = false). Gi s th t loi tr biến là T, X, L, A.
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
144
Hình 4.17: Ví d các bưc thc hin thut toán loi tr biến
Trước hết, xác sut đồng thi có th tha s hoá thành
Thc hin bưc 1 ca thut toán, ta thay giá tr B = true và đưc các tha s như trên
hình 4.17.b.
Tiếp theo, thc hin vòng lp chính bưc 2, ta loi tr dn các biến theo th t đã
chn. Trưc hết, theo th t, ta thc hin loi tr biến T. Trong danh sách F hin thi hai
tha s cha TP(T) P(A | T, L). Các tha s này cha A L nên ta tính tích cho mi b
F
=
{
P
(
T
),
P
(
X
|
A
),
P
(
L
),
P
(
A
|
T
,
L
),
P
(
B
|
L
),
P
(
D
|
A
,
B
)}
T
S
X
B
B
L
F
=
{
P
(
T
),
P
(
X
|
A
),
P
(
L
),
P
(
A
|
T
,
L
),
P
(
B
|
L
),
P
(
D
|
A
,
B
)}
F
=
{
P
(
T
),
P
(
X
|
A
),
P
(
L
),
P
(
A
|
T
,
L
),
P
(
B
=
false
|
L
),
P
(
D
|
A
,
B
=
false
)}
(a)
(b)
X
B
L
A
D
(c)
1
F
=
{
P
(
X
|
A
),
P
(
L
),
P
(
B
=
false
|
L
),
P
(
D
|
A
,
B
=
false
),
f
1
(
A
,
L
)}
f
1
(
A
,
L
)
=
P
(
T
)
P
(
A
|
T
,
L
)
T
B
L
A
D
(d)
F
=
{
P
(
L
),
P
(
B
=
false
|
L
),
P
(
D
|
A
,
B
=
false
),
f
1
(
A
,
L
)}
do P(X | A) =1
X
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
145
giá tr ca A L sau đó cng theo các giá tr ca T để to ra tha s mi f
1
(A, L) ph thuc
o AL như minh ho trên hình 4.17.c. Sau đó, ta có th thay thế tha s mi vào F và xoá
nút T khi mng. Lưu ý rng bây gi A L ph thuc vào nhau thông qua tha s mi f
1
(A,
L) thay vì xác quan h ph thuc như lúc đầu. Để th hin quan h mi, cnh LA đưc thay
bng đường đứt đon như trên hình v.
Biến tiếp theo cn loi tr X. Trong danh sách F hin thi mt tha s P(X | A)
cha X và c A. Do vy cn cng P(X | A) theo các giá tr ca X. Do tng các xác sut như vy
giá tr là 1 nên ta th đơn gi b tha s này khi F xoá nút X khi mng mà không
cn thêm tha s mi (hình 4.17.d).
Tiếp theo, ta loi tr biến L thêm tha s mi
f
2
(
A
,
B
=
false
)
như trên hình 4.17.e,
đồng thi xoá nút L v đưng đứt đon th hin quan h gia A B thông qua tha s
mi. Cui cùng, loi tr nút A, ta được danh sách tha s vi mt tha s f
3
duy nht cha D
B như trên hình 4.17.f. Thc hin bưc 4 và 5 ca thut toán, ta được kết qu như trên hình
4.17.g.
nh 4.17 (tiếp theo)
d) Đặc đim ca thut toán loi tr biến
Độ phc tp tính toán. Độ phc tp tính toán ca thut toán loi tr biến tăng theo hàm
mũ đối vi kích thước ca tha s ln nht, tc là s biến ca tha s đó. Tht vy, nếu tha
s k biến thì ta cn to ra bng (k+1) chiu, trong đó k chiu cho k biến chiu còn li
cho biến cn loi tr. Nếu mi biến th nhn b giá tr thì bng gm b
(k+1)
phn t. Để tính
mi phn t ca bng cn thc hin ti đa n phép nhân vi n s nút trên mng. Các thao
c này được lp li vi mi biến cn loi tr s biến cn loi tr thường gn bng n. Như
vy, độ phc tp tính toán ca thut toán loi tr biến là O(n
2
b
(k+1)
).
B
A
D
(e)
gen
F
=
{
P
(
D
|
A
,
B
=
false
),
f
2
(
A
,
B
=
false
)}
f
2
(A, B = false) = P(L)P(B = false | L) f
1
(A, L)
L
trong
đ
ó:
Nhi
m s
c th
B
D
trong
đ
ó:
F
=
{
f
3
(
D
,
B
=
false
)}
f
3
(D, B = false) = P(D | A, B = false) f
2
(A, B = false)
A
(f)
(g)
h
(
D
)
=
f
3
(
D
,
B
=
false
)
P(D | B = false) =
h(D)
h(D)
D
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
146
Kích thưc ca tha s ph thuc vào th t loi tr biến. Kích thước các tha s sinh
ra trong quá trình loi tr biến ph thuc vào th t loi tr. Vic la chn th t không tt có
th sinh ra tha s ch thước ln hơn nhiu so vi th t ti ưu. Như vy, vic la chn
th t không tt làm tăng độ phc tp tính toán ca thut toán.
Bài toán tìm th t loi tr tt nht là bài toán NP khó. T đặc đim trên, ta cn tìm th
t biến cho các tha s nh nht. Tuy nhiên, bn thân bài toán tìm th t y bài toán NP
khó và không th gii trong thi gian đa thc. Ngoài ra, k c vi th t loi tr tt nht vn
có th sinh ra các tha s kích thước ln nếu mng có cu trúc phc tp.
Có th tìm ra th t loi tr tt phương pháp heuristics. Có th s dng heuristic để tìm
th t loi tr biến tt. Thay sp xếp toàn b biến cn loi tr ngay t đầu, ta th la
chn biến tiếp theo để loi tr trong khi thc hin thut toán. Mt heuristics thường đưc
dùng là la chn biến tiếp theo để loi tr sao cho to ra tha s có kích thước nh nht. Thc
tế cho thy, heuristic đơn gin này cho kết qu khá tt.
Vi mng dng polytree, thut toán loi tr biến độ phc tp tuyến tính theo kích
thước mng. Nhc li, mng polytree mng trong đó gia hai nút bt k ch mt đưng
đi. đây, kích thước mng đưc tính bng kích thước bng xác sut điu kin ln nht trong
mng. Vi mng dng polytree, th t loi tr ti ưu là bt đầu t các nút gc và chuyn động
dn v phía nút con, luôn loi tr các nút không còn nút cha m trước.
Trong trường hp loi tr biến to ra tha s ln, dn ti độ phc tp tính toán ln,
phương pháp loi tr biến có th không áp dng đưc, cn dùng suy din xp x bng cách
ly mu như đã trình by trên.
4.6. NG DNG SUY DIN XÁC SUT
rt nhiu ng dng khác nhau ca suy din xác sut, c thng dng suy din trên
mng Bayes đưc s dng trong thc tế. Có th k ra mt s ng dng tiêu biu như chn
đoán bnh (h thng Pathfinder), h tr giúp thông minh (Microsoft Office assistant, tên là
Clippy), phương pháp xác định chc năng gen protein, h thng giúp phát hin khc
phc li. Dưới đây ta s xem xét mt d ng dng mng Bayes trong chn đoán khc
phc li (troubleshooting) và mt ví d chun đn y tế đơn gin.
a) Chn đoán và khc phc li
Chn đn khc phc li công vic tương đối phc tp, cn s tr giúp thông
minh. Mt h tr giúp thưng gp dng này h thng troubleshooting ca h điu hành
Windows. Trên hình dưới đây mt n hình giao din ca h thng này. Khi gp s c,
chng hn s c vi máy in, ngưi ng khi động h thng troubleshooting. H thng đặt ra
mt s câu hi yêu cu tr li. Tùy theo câu tr li nhn được, h thng tìm cách xác định
nguyên nhân cách gii quyết. Câu tr li càng c th càng chính xác thì nguyên nhân
cũng được xác định càng c th.
Mng Bayes th đưc s dng cho phn suy din ca h thng troubleshooting. C
th, mng Bayes cho phép biu din quan h gia ba dng biến ngu nhiên: các dng hng
hóc F ca thiết b, hành động A cho phép khc phc hng hóc, và câu hi Q cho phép thu thp
thông tin v s c.
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
147
Xét d c th sau: máy in in quá m. th rt nhiu hng hóc hay nguyên nhân
dn ti in m. Đ đơn gin, gi s bn nguyên nhân sau: F1 li hp mc, F2 còn ít
mc, F3 - lung d liu b hng, F4 chn driver không đúng. Mt s hành động cho phép
khc phc (mt phn) nguyên nhân sau là: A1 – lc ng mc, A2 – dùng ng mc khác, A3 –
tt và bt li máy in.
nh 4.18. Màn hình h thng troubleshooting ca Windows
Mi hành động cho phép khc phc mt hng hóc vi mt xác sut nào đó, ví d P(A
2
=
yes | F
1
) = P (A
2
= yes | F
2
) = 0,9, tc hành động dùng ng mc khác cho phép khc phc
li hp mc hay còn ít mc vi xác sut 90%, trong khi P(A
2
= yes | F
4
) = 0.
Trong quá trình khc phc li, h thng đặt câu hi cho ngưi ng để có thêm thông tin
v hng hóc. d, nếu người dùng tr li không” cho câu hi “Trang in th có b m
không? thì h thng th loi b nguyên nhân hng hóc liên quan ti hp mc. H thng
s dng các bng xác sut điu kin P (Q
i
= yes | F
j
) cho phn suy din này.
Gia các biến F, A, Q mt s quan h độc lp xác sut. C th, hành động A
câu hi Q độc lp vi nhau khi đã biết F. Ngoài ra, có th gi thiết ti mi thi đim ch xy ra
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
148
mt hng hóc duy nht. Quan h độc lp xác sut gia các biến được hình hóa bng mng
Bayes trên hình 4.19.
Hình 4.19. Mng Bayes dùng cho khc phc s c
Tùy thông tin có đưc, h thng có th thc hin suy din để tính xác sut la chn mt
nh động c tho đó.
b) Chn đoán y tế
Mt nhóm ng dng thưng được nhc đến khác ca mng Bayes là chn đn y tế. Sau
đây là mt ví d đơn gin minh ho cho vic chn đn mt s bnh v phi và hô hp. Trong
ví d đơn gin này cn đưa rac chn đn liên quan ti ba bnh: viêm phế qun, lao, và ung
thư phi. Các d kin có liên quan bao gm: đã ti Châu Á (bnh nhân là người Âu, M), hút
thuc, nh X-quang, khó th. Mi liên h gia các yếu t này và các bnh đưc hoá bng
mng Bayes như trên hình 4.20.
Các xác sut trên hình 4.20 là c sut cho trường hp ta không có thêm bt c thông tin
o v ngưi bnh. Thông tin t mng cho thy, xác sut mt người b lao hoc ung thư phi
nh (1.04 và 5.5%), trong khi c sut viêm phế qun là 45%.
Ly ví d mt trường hp c th. Gi s mt bnh nhân có biu hin khó th đồng thi
nghin thuc. Hình 4.21 th hin xác sut hai s kin hút thuc khó th 100% đồng thi
cp nht xác sut các bnh trong trường hp có thêm hai thông tin này. Mc c sut c ba
bnh đều tăng, nhưng tăng nhiu nht xác sut viêm phế qun, t 45% n 88.02%. Như
vy, nếu không có thêm thông tin gì, có th kết lun bnh nhân viêm phế qun.
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
149
Hình 4.20. Mng Bayes chn đn bnh hô hp
nh 4.21. Trưng hp có triu chng khó th và bnh nhân hút thuc
Hình 4.22. Trưng hp khó th, hút thuc, và nh chp X-quang dương tính
Tiếp theo, để thêm thông tin, bnh nhân được chp X-quang cho kết qu không
bình thường. Hình 4.22 th hin xác sut được cp nht khi có thêm thông tin này. th
thy xác sut ung thư phi tăng mnh và có giá tr xp x xác sut viêm phế qun.
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
150
Như vy, qua d đơn gin này, ta th thy kh năng mã hoá thông tin v quan h
gia c bnh vi các triu chng yếu t khác ca mng Bayes, cũng như s thay đổi xác
sut bnh theo mc độ xut hin các bng chng.
4.7. CÂU HI VÀ BÀI TP CHƯƠNG
1. Cho cu trúc mng Bayes như sau:
Hãy xác định các phát biu sau đúng hay sai:
a) C và D b d-phân cách
b) C và D b d-phân cách bi A
c) C và D b d-phân cách bi {A, B}
d) C và D b d-phân cách bi {A, B, J}
e) C và D b d-phân cách bi {A, B, E, J}
2. Gi s hai phương pp t nghim A và B độc lp vi nhau cho phép phát hin
cùng mt loi virus. Phương pháp A cho phép phát hin 95% trường hp nhim virus tht
nhưng li cho kết qu dương tính đối vi 10% s người không virus. Phương pháp B
ch phát hin đưc 90% trường hp nhim virus tht nhưng ch cho kết qu dương tính sai
vi 5% s người không nhim virus. Biết rng xác sut nhim virus trong cng đồng dân
cư 1%. Gi s mt người xét nghim bng mt trong hai phương pháp trên kết
qu dương tính vi virus. Trong trường hp s dng phương pháp nào thì kết qu đáng tin
cy hơn (xác sut người đó nhim virus tht cao hơn) ? Trình by phương pháp tính xác
sut c th cho câu tr li.
3. Nam báo cáo giáo đã làm bài tp nhưng quên v nhà. T kinh nghim ging dy ca
mình, giáo biết rng ch 1% s sinh viên đã làm bài tp quên vbáo cáo vi cô giáo
như vy. Trong khi đó, mt na s sinh viên chưa làm bài tp s báo cáo quên v. Thng
cũng cho thy s sinh viên làm bài tp chiếm 90% sinh viên c lp. Hãy tính xác sut
Nam nói tht.
4. Hãy chng minh công thc
P(X, Y | Z) = P(X | Z) P(Y | Z)
tương đương vi mi công thc sau
P(X | Y, Z) = P (X | Z) và P( Y | X, Z) = P(Y | Z)
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
151
5.
S dng thông tin cho trên mng Bayes, xác định xem A Cđộc lp vi nhau không
trong 4 trường hp sau
6. Gi s cn suy din v quan h gia thi tiết giao thông. Cho ba biến ngu nhiên W, A,
C biu din cho ba tình hung sau: thi tiết xu” (W), “Chuyến bay ni HCM b
chm” (A), “Quc l 1 b tc (C). Tiếp theo, gi s chuyến bay chm và đường tc không
nh hưng đến nhau trong bt c thi tiết nào. Quan sát cho thy, khi thi tiết xu có 80%
chuyến bay b chm và khi thi tiết tt ch có 40% b chm. Tương t, tn sut tc đường
1 khi thi tiết xu là 30% và khi thi tiết tt là 10%. Xác sut thi tiết xu ti Vit nam
20%.
a) V mng Bayes và bng xác sut điu kin cho ví d này.
b) Tính các xác sut P (¬A, W, C) ; P (A, C)
7. Cho mng Bayes sau, các biến có th nhn giá tr {T,F} ({true, false})
F
F
0.7
F
F
0.8
H
A
D
C
P(H)= 0.2
P(D)=0.4
Downloaded by viet jack (vietjackteam@gmail.com)
Suy din xác sut
152
F
T
0.2
F
T
0.3
T
F
0.1
T
F
0.4
T
T
0.5
T
T
0.2
a) Tính xác sut c năm biến cùng nhn giá tr F.
b) Tính P(A|C).
c) Theo mng đã cho H và B có độc lp xác sut vi nhau không ?
Downloaded by viet jack (vietjackteam@gmail.com)
CHƯƠNG 5: HC MÁY
Chương này trình by v hc máy, mt lĩnh vc nghiên cu con ca trí tu nhân to
hin đang rt nhiu ng dng trong nhn dng, phát hin tri thc t d liu, phân tích d
liu d đoán v.v. Phn đầu chương gii thiu các khái nim chung v hc máy như định
nghĩa, phân loi, mt s ng dng đánh cý. Các phn tiếp theo trình by chi tiết v hc
giám sát, đặc bit mt s k thut phân loi như câu quyết định, phân loi Bayes đơn gin,
k - láng ging gn nht, hi quy logistic máy véc tơ ta. Mt phương pháp hi quy cũng
được la chn trình by trong chương hi quy tuyến tính. Phn cui chương trình by v
cách đánh giá hiu qu hình hc máy cách la chn hình da trên hiu qu d
đoán. Mt s ng dng thc tế như phân loi văn bn được trình by cùng vi các k thut
phân loi c th.
5.1. KHÁI NIM HC MÁY
5.1.1. Hc máy là
Trong nhng chương trước ta đã xem t mt s k thut gii quyết vn đề suy din.
Đặc đim chung ca nhng k thut này là phương pháp gii quyết vn đề cùng vi tri thc
được cung cp cho chương trình máy tính t trưc chương trình không th thay đổi hoc
ci thin hot động ca mình da trên kinh nghim thu đưc trong quá trình làm vic sau đó.
Trong chương này, ta s xem xét các k thut hc máy (machine learning), k thut cho
phép gii quyết vn để hoc ra quyết đnh da trên d liu kinh nghim.
Hc máy kh năng ca chương trình máy tính s dng kinh nghim, quan sát, hoc
d liu trong quá kh đ ci thin công vic ca mình trong tương lai thay ch thc hin
theo đúng các quy tc đã đưc lp trình sn. Chng hn, máy tính th hc cách d đoán
da trên các ví d, hay hc cách to ra các hành vi phù hp da trên quan sát trong quá kh.
d. Xét mt s d sau. Ví d th nht hc cách đánh c. Chương trình th
quan sát các ván cng vi kết qu (thng hay thua) để ci thin kh năng chơi c tăng s
n thng trong tương lai. Trong trưng hp này, kinh nghim các ván c trong quá kh
(có th là ván c chương trình t chơi vi chính mình), đưc s dng để hc cách làm tt hơn
ng vic chơi c vi tiêu chí đánh giá là sn thng.
d th hai là hc nhn dng các ký t. Chương trình được cung cp d liu dưi
dng nh chp các ký t (ch cái) cùng UNICODE ca ký t đó. Sau khi hc, chương
trình cn có kh năng nhn dng các nh chp ký t mi, tc xác định được mã UNICODE
ca các nh mi chp ký t đã đưc hc.
Tương t quá trình hc thông thưng, mt h thng hc y cn kh năng ghi nh,
thích nghi, đặc bit tng quát a. Tng quát hóa kh năng ca h thng hc máy ra
quyết định chính c trong các trưng hp mi, chưa gp, da trên kinh nghim hc được t
d liu hoc các quan sát trưc đó.
Lý do cn ti hc máy
Hc máy là mt nhánh nghiên cu rt quan trng ca trí tu nhân to vi khá nhiu ng
dng thành công trong thc tế. Hin nay, hc máy mt trong nhng lĩnh vc phát trin
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
154
mnh nht ca trí tu nhân to. mt s lý do gii thích cho s cn thiết phát trin ca
hc máy:
- Th nht, rt khó y dng h thng thông minh th thc hin c công vic liên
quan đến trí tu như th giác máy, x lý ngôn ng t nhiên không s dng ti kinh
nghim quá trình hc. Thông thường, khi viết chương trình, cn thut toán
ràng để chuyn đổi đầu vào thành đầu ra. Tuy nhiên, trong nhiu bài toán, rt khó để
y dng được thut toán như vy. Như trong d v nhn dng ch trên, người
bình thưng có kh năng nhn dng các ch rt tt nhưng rt kđể gii thích sao
t đầu vào nh li kết lun được đây ký t c th nào. Hc máy cho phép tìm ra
gii pháp cho nhng trưng hp như vy da trên d liu, chng hn bng cách tìm ra
đim chung và riêng gia rt nhiu nh chp các ký t.
- Th hai, nhiu ng dng đòi hi chương trình máy tính phi kh năng thích nghi.
d, hành vi mua sm ca khách hàng có th thay đổi theo thi đim c th trong
ngày, trong năm, hoc theo tui tác. Vic xây dng thut toán c định cho nhng ng
dng cn thích nghi thay đổi không phù hp. Hc máy mang li kh năng thích
nghi nh phân tích d liu thu thp đưc.
- Th ba, vic tìm được chuyên gia thu thp đưc tri thc cn thiết cho vic thiết kế
thut toán để gii quyết các vn đề tương đối khó, trong khi d liu ngày càng nhiu
th thu thp d dàng hơn. Kh năng lưu tr tính toán ca máy tính cũng ngày
càng tăng, cho phép thc hin thut tn hc máy trên d liu có kích thước ln.
- Cui cùng, bn thân kh năng hc là mt hot động ttu quan trng ca con người,
do vy hc t động hay hc máy luôn thu t đưc s quan tâm khi xây dng h thng
thông minh.
5.1.2. ng dng ca hc máy
rt nhiu ng dng thc tế khác nhau ca hc máy. Hai lĩnh vc ng dng ln nht
ca hc máy là khai phá d liu (data mining) và nhn dng mu (pattern recognition).
Khai phá d liu ng dng k thut hc máy vào các cơ s d liu hoc các tp d
liu ln để phát hin quy lut hay tri thc trong d liu đó hoc để d đoán các thông tin quan
m trong tương lai. d, t tp hp hóa đơn bán hàng th phát hin ra quy lut “nhng
người mua bánh mì thường mua bơ”.
Nhn dng mu là ng dng các k thut hc máy để phát hin các mu có tính quy lut
trong d liu, thưng là d liu hình nh, âm thanh. Bài toán nhn dng mu c th thường là
c định nhãn cho đầu vào c th, ví d cho nh chp mt ngưi, cn xác định đó là ai.
Cn lưu ý, khai phá d liu nhn dng mu nhiu đim trùng nhau c trong phm
vi nghiên cu ng dng. Đim khác nhau ch yếu liên quan ti lĩnh vc ng dng k
thut s dng, theo đó khai phá d liu liên quan ti d liu thương mi trong khi nhn dng
mu liên quan nhiu ti d liu âm thanh, hình nh và được dùng nhiu trong k thut.
ng dng c th
Sau đây là mt s ví d ng dng c th ca hc máy:
- Nhn dng ký t: phân loi hình chp ký t thành các loi, mi loi ng vi mt
ký t tương ng.
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
155
- Phát hin và nhn dng mt người: phát hin vùng có cha mt ngưi trong nh,
c định đó mt người o trong s nhng người đã nh trước đó, tc là
phân chia nh thành nhng loi tương ng vi nhng người khác nhau.
- Lc thư rác, phân loi văn bn: da trên ni dung thư đin t, chia thư thành loi
“thư rác” hay “thư bình thường”; hoc phân chia tin tc thành các th loi khác
nhau nhưhi”, “kinh tế”, “th thao”.v.v.
- Dch t động: da trên d liu hun luyn dưới dng các văn bn song ng, h
thng dch t động hc cách dch t ngôn ng này sang ngôn ng khác. H
thng dch t động tiêu biu dng này là Google Translate.
- Chn đoán y tế: hc cách d đn người bnh mc hay không mc mt s
bnh nào đó da trên triu chng quan sát được.
- Phân loi khách hàng d đoán s thích: sp xếp khách hàng vào mt s loi,
t đây d đoán s thích tiêu dùng ca khách hàng.
- D đn ch s thí trường: căn c giá tr mt s tham s hin thi trong lch
s, đưa ra d đoán, chng hn d đn giá chng khoán, giá vàng.v.v.
- Các h khuyến ngh, hay h tư vn la chn: cung cp mt danh sách ngn các
loi hàng hóa, phim, video, tin tc v.v. mà người dùng nhiu kh năng quan tâm.
d ng dng loi này là phn khuyến ngh trên Youtube hay trên trang mua
n trc tuyến Amazon.
- ng dng lái xe t động: da trên các mu hc cha thông tin v các tình hung
trên đường, h thng hc máy cho phép t ra quyết định điu khin xe, do
vy không cn ngưi lái. Hin Google đã kế hoch thương mi hóa xe ôtô t
động lái như vy.
5.1.3. Các dng hc máy
Khi thiết kế và xây dng h thng hc máy cn quan tâm ti nhng yếu t sau.
- Th nht, kinh nghim hoc d liu cho hc máy được cho dưới dng nào?
- Th hai, la chn biu din cho hàm đích ra sao? Hàm đích th biu din
dưới dng hàm đại s thông thưng nhưng cũng th biu din dưới nhng
dng khác như dng cây, dng mng nơ ron, công thc xác sut .v.v.
Vic s dng nhng dng kinh nghim và dng biu din khác nhau dn ti nhng dng
hc máy khác nhau. Có ba dng hc máy chính như sau:
- Hc giám sát (supervised learning). dng hc máy trong đó cho trước tp d
liu hun luyn dưới dng các d cùng vi giá tr đầu ra hay giá tr đích. Da
trên d liu hun luyn, thut toán hc cn xây dng mô hình hay hàm đích để d
đoán giá tr đầu ra (giá tr đích) cho các trường hp mi.
o Nếu giá tr đầu ra ri rc thì hc giám sát được gi phân loi hay
phân lp (classification).
o Nếu đầu ra nhn giá tr liên tc, tc đầu ra s thc, thì hc giám sát
được gi hi quy (regression). Trong phn tiếp theo, ta s xem xét chi tiết
hơn v hc có giám sát.
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
156
- Hc không giám sát (un-supervised learning). dng hc máy trong đó các d
được cung cp nhưng không có giá tr đầu ra hay giá tr đích.
o Thay xác định giá tr đích, thut toán hc máy da trên độ tương t gia
các d để xếp chúng thành nhng nhóm, mi nhóm gm các d tương
t nhau. Hình thc hc không giám sát như vy gi là phân cm (clustering).
d, ch bng cách quan sát hoc đo chiu cao ca mi ngưi, dn dn ta
hc được khái nim “người cao” “ngưi thp”, th xếp mi người
o hai cm tương ng.
o Ngoài phân cm, mt dng hc không giám sát ph biến khác phát hin
lut kết hp (association rule). Lut kết hp dng P(A | B), cho thy xác
sut hai tính cht A B xut hin cùng vi nhau. d, qua phân tích d
liu mua hàng siêu th, ta có lut P(Bơ | Bánh m) =80%,nghĩa 80%
nhng người mua bánh m cũng mua bơ.
- Hc tăng cường (reinforcement learning)
4
. Đi vi dng hc này, kinh nghim
không đưc cho trc tiếp dưới dng đầu vào/đầu ra cho mi trng thái hoc mi
hành động. Thay vào đó, h thng nhn được mt giá tr khuyến khích (reward)
kết qu cho mt chui hành động nào đó. Thut toán cn hc cách hành động để cc
đại hóa giá tr khuyn khích. d ca hc khuyến khích hc đánh c, trong đó
h thng không được ch dn nưc đi nào là hp lý cho tng tình hung ch biết
kết qu toàn ván c. Như vy, các ch dn v nưc đi được cho mt cách gián tiến và
độ tr dưới dng giá tr thưng. Nưc đi tt là nước đi nm trong mt chui các
nước đi dn ti kết qu thng toàn b ván c.
Trong các dng hc máy, hc có giám sát là dng ph biến, có nhiu thut toán liên
quan nhiu ng dng nht. Phn còn li ca chương s tp trung ch yếu vào dng hc
y này.
5.1.4. Hc có giám sát
Như đã nói trên, hc có giám sát là trường hp d liu hun luyn được cho mt cách
tường minh dưới dng đầu vào đầu ra ca hàm đích, d, cho trưc tp các mu cùng
nhãn phân loi tương ng. Hc máy khi đó được gi giám sát để th hin vic thut toán
nhn được ch dn trc tiếp v li gii cho tng trường hp. Hc giám sát bao gm phân
loihi quy. Phân loi là dng hc có giám sát vi hàm đích nhn giá tr ri rc và hi quy
hc có giám sát vi hàm đích nhn giá tr liên tc. Trong phn này ta s xem xét k hơn v
dng hc thông dng này.
Phân loi. Gi s cho d liu v mt s loi ô tô con như trong bng trên hình 5.1. Mi
dòng trong bng tương ng vi mt loi xe c th gm hai thông s v xe là dung tích động
cơ và loi xe. Ngoài ra, mi xe còn đưc xếp loi “cao cp” hay “trung bình”. Đây d liu
hun luyn tiêu biu cho bài toán phân loi, trong đó mi d được gán mt giá tr đích
4
Khái nim “reinforcement” được dùng trong tâm lý hc vi nghĩa khuyến khích, kích thích, thưởng. Chúng tôi
tm dch sang tiếng Vit là tăng cưng nhưng cũng có th dch là thưởng hoc có tài liu dch reinforcement
learning là “hc khuyến khích”
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
157
th nhn giá tr t mt trong hai giá tr cao cp” hoc “trung bình”. Trong trưng hp nói
chung, s giá tr đích có th nhiu hơn hai, nhưng giá tr đích vn là ri rc và hu hn. Chng
hn, mi xe th xếp vào mt trong ba loi “cao cp”, “trung bình”, “bình dân” Nhim v
ca i toán phân loi khi đó là tng quát hóa trên d liu hun luyn đã cho. T đó xác định
phân khúc xe cho các mu xe mi nếu biết dung tích động cơ loi xe.
Dung tích động cơ Loi xe Phân khúc
3200 Sedan Cao cp
2500 Sedan Cao cp
2500 SUV Trung bình
2000 Sedan Trung bình
3500 SUV Cao cp
1800 Sedan Trung bình
Hình 5.1. D liu hun luyn cho i toán phân loi
Hi quy. Trong trường hp i tn hi quy, d liu hun luyn thường dng như
trong bng trên hình 5.2, trong đó mi dòng ng vi mt chiếc xe cũ, giá tr đích là giá n xe
được cho trong ct cui ng. Kc bit chính so vi trường hp phân loi giá tr đích
đây (giá n) s thc có th nhn các giá tr liên tc. Nhim v ca bài toán hi quy
s dng d liu hun luyn để y dng mô hình hi quy và dùng mô hình này để d đoán giá
n cho các xe khác nếu biết dung tích động cơ và tui ca xe.
Dung tích động cơ Tui ca xe Giá bán (triu đồng)
3200 1 2500
2500 2 1600
2500 4 1300
2000 5 600
1800 1 915
1800 3 725
Hình 5.2. D liu hun luyn cho trường hp hi quy
Hun luyn d đoán. Hot động ca mt h thng hc máy đin hình cho trưng
hp hc giám sát bao gm hai giai đon: giai đon hun luyn giai đon d đoán, như
th hin trên hình 5.3. Trong giai đon hun luyn, d liu hun luyn được s dng để hun
luyn các mô hình d đoán, còn gi là các hàm đích. Vic hun luyn mô hình được thc hin
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
158
nh thut toán hc máy bao gm các thut toán phân loi hoc hi quy. hình d đoán sau
đó được lưu li. Trong giai đon d đn, h thng nhn các ví d mi chưa giá tr đích và
s dng mô hình d đn đã hun luyn để xác định giá tr đích cho ví d mi.
Hình 5.3. Mt h thng hc máy tiu biu cho trưng hp hc có giám sát vi hai giai
đon: 1) Hun luyn; 2) D đn
Sau đây là mt s khái nim đưc s dng khi trình bày v hc có giám sát.
Mu hay d t ng để ch đối tưng cn phân loi. Chng hn, khi lc thư rác,
mi thư được gi là mt mu hay mt d. Trong các ví d nh 5.2, mi xe ô tô mt ví
d.
d được t bng mt tp các thuc tính, còn được gi đặc trưng hay biến.
d, trong bài toán chn đoán bnh, thuc tính nhng triu chng ca người bnh các
tham s khác: cân nng, huyết áp, v.v. Trong d trên hình 5.1, ta có hai thuc tính là dung
tích động cơ và loi xe. Thuc tính có th nhn giá tr s (như dung tích động cơ) hoc giá
tr ri rc (như loi xe) trong ví d tn hình 5.1.
Nhãn phân loi th hin loi ca đối tượng mà ta cn d đoán. Đối vi trường hp phân
loi thư rác, nhãn phân loi có th là “rác” hay “bình thưng”. Trong ví d trên hình 5.1, nhãn
phân loi cho biết phân khúc ca xe và th nhn giá tr “cao cp” hay “trung bình”. Trong
giai đon hc hay còn gi là giai đon hun luyn, thut toán hc đưc cung cp c nhãn phân
loi ca mu, trong giai đon d đoán, thut toán ch nhn đưc các mu không nhãn cn
xác định nhãn cho nhng mu này.
Trong bài toán phân loi, nếu nhãn phân loi ch có th nhn mt trong hai giá tr thì bài
toán gi phân loi hai lp hay phân loi nh phân. Nếu có nhiu hơn hai loi thì gi bài
toán phân loi đa lp.
D liu hun luyn. D liu hun luyn được cho nhưng trong hình 5.1 đối vi phân
loi, hay trên hình 5.2 đối vi hi quy. Mi tp d liu hun luyn gm nhiu ví d, mi ví d
Thut toán
hc máy
d
hu
n
luyn
có nhãn hoc
giá tr
đ
ích
Hàm đích
(quy tc d đn,
mô hình d đoán)
d
m
i
không nhãn
Nhãn phân lo
i
hoc giá tr đích
(d đoán)
H
u
n luy
n
D
đ
n
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
159
được mô t trong mt dòng. Mi ví d hun luyn được ký hiu bng mt cp (x
i
, y
i
), trong đó
x
i
là vec tơ các đặc trưng hay thuc tính, y
i
là giá tr nhãn phân loi hay giá tr đích trong hi
quy. Như vy x
i
đầu vào, n y
i
đầu ra cn d đn. Trong giai đon hun luyn, thut
toán đưc cung cp giá tr y
i
; trong giai đon d đoán, hình được s dng để d đn giá
try.
Kết qu hc thưng đưc th hin dưới dng mt ánh x t mu sang nhãn phân loi gi
hình hc. hình này đưc th hin dưới dng mt hàm gi hàm đích (target
function) dng f : X C, trong đó X không gian các d C tp các nhãn phân
loi khác nhau. Tùy vào phương pháp c th, hàm đích có th rt khác nhau. Ví d, hàm đích
th làm mt hàm tuyến tính như trong hi quy tuyến tính, hình dng cây trong hc
cây quyết định, là mng nơ ron trong mng nơ ron nhân to .v.v.
5.2. HC CÂY QUYT ĐỊNH
Sau khi làm quen vi các khái nim chung v hc máy trên, trong phn này, ta s làm
quen vi mt k thut hc máy c th: hc cây quyết định. Hc cây quyết định mt trong
phương pháp hc máy tiêu biu có nhiu ng dng trong phân loi d đoán. Mc độ
chính xác ca phương pháp này không tht cao so vi nhng phương pháp đưc nghiên cu
gn đây, hc cây quyết định vn có nhiu ưu đim như đơn gin, d lp trình, cho phép
biu din m phân loi dưới dng d hiu, d gii tch cho con người. Phương pháp này
thường đưc dùng như phương pháp m đầu để minh ha cho k thut hc b phân loi t d
liu.
Phương pháp hc cây quyết định đưc s dng cho vic hc các hàm phân loi t d
liu hun luyn, trong đó cây quyết định được s dng làm biu din xp x ca hàm phân
loi, tc là hàm có đầu ra c giá tr ri rc. Như đã nói trên, phương pháp hc này thuc
loi hc có giám sát.
Phn này s giúp người đọc làm quen vi khái nim cây quyết định, đồng thi gii thiu
mt s thut toán hc cây quyết định bao gm ID3 và C4.5.
5.2.1. Khái nim cây quyết định
y quyết định mt cu trúc ra quyết định dng cây (xem hình 5.4). Cây quyết
định nhn đầu vào mt b giá tr thuc tính mô t mt đối tượng hay mt tình hung và tr
v mt giá tr ri rc. Mi b thuc tính đầu vào đưc gi là mt mu hay mt d, đầu ra
gi là loi hay nhãn phân loi. Thuc tính đầu vào còn đưc gi đặc trưng th nhn
giá tr ri rc hoc liên tc. Đ cho đơn gin, trước tiên ta s xem xét thuc tính ri rc, sau đó
s m rng cho trường hp thuc tính nhn giá tr liên tc.
Trong các trình bày tiếp theo, tp thuc tính đầu vào được cho dưi dng véc tơ x, nhãn
phân loi đầu ra được ký hiu y, cây quyết định hàm f(x) tr li giá tr y. Đ tin minh
ha, trong phn này s s dng b d liu đưc cho trên hình 5.5.
y quyết định đưc biu din dưới dng mt cu trúc cây (xem d trên hình 5.4).
Mi nút trung gian, tc là nút không phi nút lá, tương ng vi phép kim tra mt thuc tính.
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
160
Mi nhánh phía dưới ca nút đó tương ng vi mt giá tr ca thuc tính hay mt kết qu ca
phép th. Khác vi nút trung gian, nút lá không cha thuc tính mà cha nhãn phân loi.
Để xác định nhãn phân loi cho mt ví d nào đó, ta cho d chuyn động t gc cây
v phía nút lá. Ti mi nút, thuc tính tương ng vi nút được kim tra, tùy theo giá tr ca
thuc tính đó d được chuyn xung nhánh tương ng bên dưi. Quá trình này lp li
cho đến khi ví d ti được nút lá và được nhn nhãn phân loi là nhãn ca nút lá tương ng.
Xét ví d cây quyết định trên hình 5.4 đưc xây dng cho b d liu trong hình 5.5. Cây
quyết định cho phép xác định (pn loi) các bui sáng thành (phù hp) không (phù
hp) cho vic chơi tennis tùy theo thi tiết trong ngày đó. Thi tiết mi ngày được t
thông qua bn thuc tính: Tri, Đ m, Nhit độ, Gió.
Hình 5.4. Mt d cây quyết định cho bài toán “Chơi tennis”. Nút lá cha nhãn phân
loi “có chơi” hoc không chơi. Nút trung gian cha thuc tính thi tiết.
Gi s ta ví d < Tri = nng, Nhit độ = cao, Gió = mnh, Độ m = cao>. Ví d s
được cây quyết định xếp xung t ngoài cùng bên trái do vy được xác định “không
chơi”.
Có th thy cách biu din hàm quyết định dưi dng cây rt trc quan, d hiu, d gii
thích lý do ra quyết định v nhãn cho mt ví d c tho đó.
Biu din tương đương dưới dng biu thc logic
y quyết định có th biu din tương đương dưi dng các quy tc hay biu thc logic.
y_quyết_định(x) (P
1
(x) v P
2
(x) v…v P
n
(x))
trong đó mi P
i
(x) là hi các phép th thuc tính theo đường đi t gôc ti nút lá có giá
tr dương (true). C th, cây quyết định trên hình 4.1 có th biu din tương đương dưới dng:
(Tri = nng ^ Độ m = bình_thưng)
(Tri = u_ám)
(Tri = mưa ^ Gió = yếu)
Hoc biu din dưi dng các lut suy din Nếu … Thì… như sau:
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
161
Nếu (Tri = nng) và (Độ m = bình thưng) Thì “có chơi”
Nếu (Tri = nng) và (Độ m = cao) Thì “không chơi”
Nếu (Tri = u ám) Thì “có chơi”
Nếu (Tri = mưa) và (Gió = mnh) Thì “không chơi”
Nếu (Tri = mưa) và (Gió = yếu) Thì “có chơi”.
c lut dng này rt gn gũi vi cách din đạt ca con người khi ra quyết định hay
thc hin phân loi.
5.2.2. Thut toán hc cây quyết định
Trưc khi s dng cây quyết định, ta cn xây dng hay “hc” cây quyết định t d liu
hun luyn. Có nhiu thut toán khác nhau đưc đề xut s dng để hc cây quyết định t
d liu, trong đó đa s da trên nguyên tc chung xây dng cây theo kiu tìm kiếm tham
lam t cây đơn gin ti cây phc tp hơn. Phn này s gii thiu thut toán hc cây ID3,
mt thut toán đơn gin nhưng có tính đại din cho cách xây dng cây như vy. ID3 là viết tt
ca t Iterative Dichotomiser 3 (tm dch phân chia lp hay phân chia tun t). Thut toán
y do Ross Quinlan phát trin và có mt phiên bn ci tiến gi là C4.5.
D liu hun luyn
D liu hun luyn được cho dưi dng n mu hay n d hun luyn, mi d có
dng (x
i
, y
i
), trong đó x
i
là véc tơ các thuc tính y
i
là giá tr nn phân loi, chng hn như
ví d trong hình 5.5 vi 14 d tương ng vi 14 ng. Ct đầu tiên trong bng cha s th
t không tham gia vào cây quyết định. Bn ct tiếp theo cha giá tr bn thuc tính. Ct
ngoài cùng bên phi cha nn phân loi. Đi vi d liu đang xét, nhãn phân loi là nhãn nh
phân, có th nhn mt trong hai giá tr có” hoc không”.
Ngày Tri Nhit đ Độ m Gió Chơi tennis
D1 nng Cao Cao yếu không
D2 nng Cao Cao mnh không
D3 u ám Cao Cao yếu
D4 Mưa trung bình cao yếu
D5 Mưa thp bình thường yếu có
D6 Mưa thp bình thường mnh không
D7 u ám thp bình thường mnh
D8 nng trung bình cao yếu không
D9 nng thp bình thường yếu
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
162
D10 mưa trung bình bình thường yếu
D11 nng trung bình bình thường mnh
D12 u ám trung bình cao mnh
D13 u ám Cao bình thường yếu
D14 mưa trung bình cao mnh không
Hình 5.5. B d liu hun luyn cho bài toán phân loi “Chơi tennis”.
Thut toán hc cây ID3
Nhim v ca thut toán hc y dng cây quyết định phù hp vi tp d liu hun
luyn, tc cây quyết định đầu ra ging (nhiu nht) vi nhãn phân loi cho trong tp
mu. Trong trưng hp s thuc tính nh, vic xây dng cây quyết định như vy th thc
hin bng cách lit kê tt các cây quyết định hp l kim tra để chn ra cây phù hp vi d
liu. Vi s lượng thuc tính ln, s cây quyết định như vy rt ln không th tìm kiếm
theo kiu vét cn như vy. Do đó, thut toán hc cây thưng da trên nguyên tc tham lam,
y dng dn các nút t trên xung.
Quá trình xây dng cây: Đ bt đầu, thut toán hc la chn thuc tính cho nút gc.
Thuc tính được la chn là thuc tính cho phép phân chia tt nht các ví d thành nhng tp
con, sao cho mi tp con càng đồng nht càng tt. đây, đồng nht được hiu là các ví d
cùng nhãn phân loi. Sau khi la chn đưc thuc tính cho nút gc, tp d liu ban đầu s
được chia xung các nnh con do kết qu phép kim tra thuc tính gc. Vi mi tp con
d liu, ta li có mt bài toán hc cây d liu mi và do vy có th lp li th tc trên vi ít
d liu hơn và bt đi mt thuc tính đã được s dng gc.
Quá trình xây dng cây quyết định được lp đ quy như vy cho ti khi xy ra nhng
tình hung sau:
- Sau khi phân chia ti mt nút, tp d liu con ch cha các mu cùng nhãn
phân loi (chng hn cùng dương hoc cùng âm). Trong trưng hp này ta dng
quá trình phân chia đây, to mt nút là và gán cho nút nhãn phân loi trùng vi
nhãn ca các d ti nút đó. Trong d trên hình 5.4, nhánh gia ca nút gc
bao gm các mu có nhãn “có” to thành nút lá.
- Tt c các thuc tính đã được s dng phía trên, trong khi tp d liu con còn
cha c nhãn dương nhãn âm. Đây trường hp các d cùng giá tr
thuc tính nhưng li khác nhãn phân loi xy ra do d liu hun luyn
cha nhiu hoc do các thuc tính hin không cung cp đủ thông tin để xác
định đúng nhãn phân loi. Trong trường hp này, thut toán s chn nhãn chiếm
đa s trong tp con đn cho nút.
Thut toán hc cây quyết định đưc cho trên hình 5.6.
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
163
Input: tp d liu hun luyn
Output: Cây quyết định
Khi đầu: nút hin thi là nút gc cha toàn b tp d liu hun luyn
a. Ti nút hin thi n, la chn thuc tính:
Chưa được s dng nút t tiên (tc t nm trên đường đi t gc
ti nút hin thi)
Cho phép phân chia tp d liu hin thi thành c tp con mt cách
tt nht
b. Vi mi giá tr thuc tính được chn:
Thêm mt nút con bên dưi
Chia các d nút hin thi v các nút con theo giá tr thuc tính
được chn
c. Lp (đệ quy) vi mi nút con cho ti khi:
Tt c các thuc tính đã đưc s dng các nút phía trên, hoc
Tt c d ti nút hin thi có cùng nhãn phân loi
Nhãn ca nút đưc ly theo đa s nhãn ca ví d ti nút hin thi
Hình 5.6. Thut toán xây dng cây quyết định t d liu hun luyn
Thut toán đưc lp đệ quy qua nhiu vòng. Ti mi bước lp, thut toán tìm cách la
chn mt thuc tính cho phép phân chia tp d liu ti nút hin thi mt cách tt nht. Quá
trình này được tiến hành cho ti khi đạt ti nút lá, tc khi xy ra mt trong hai tình hung
như đã nhc ti trên.
La chn thuc tính tt nht
Mt đim quan trng trong thut toán xây dng cây quyết định la chn thuc tính
tt nht ti mi nút. Trong trường hp lý tưởng, thuc tính la chn thuc nh cho phép
chia tp d liu thành các tp con cùng mt nhãn, do vy ch cn mt phép kim tra
thuc tính khi phân loi. Trong trường hp nói chung, thuc tính la chn cn cho phép to ta
nhng tp con độ đồng nht cao nht. Yêu cu đặt ra cn cách đo độ đồng nht ca
tp d liu và mc tăng độ đồng nht khi s dng mt thuc tính nào đó.
Thut toán xây dng cây ID3 s dng entropy làm mc đo độ đồng nht ca tp d liu.
Trên cơ s entropy, thut toán tính độ tăng thông tin như mc tăng độ đồng nht, t đây xác
định thuc tính tt nht ti mi nút.
Trong trường hp ch hai nhãn phân loi, ký hiu là + -, entropy H(S) ca tp d
liu S đưc tính như sau:
H (S) = -p
+
log
2
p
+
- p
-
log
2
p
-
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
164
trong đó p+ p- c sut quan sát thy nhãn phân loi + -, được tính bng tn
sut quan sát thy + trong tp d liu. Trong tp d liu trong bng trên hình 5.5, vi 9
nhãn dương và 5 nhãn âm, ký hiu [9+, 5-], ta có:
H ([9+,5-]) = -(9/14)log
2
(9/14) – (5/14)log
2
(5/14) = 0.94
Trên hình 5.7 đồ th th hin s ph thuc ca giá tr entropy H vào giá tr c sut
trong trường hp nhãn nh phân. th nhn thy, trong trường hp nhãn nh phân, entropy
đạt giá tr ti đa bng 1 khi c sut hai nhãn bng nhau bng 0.5, entropy đạt giá tr nh
nht bng 0 khi xác sut mt nhãn là 1 và nhãn còn li là 0. Nói chung, entropy càng gn 0 thì
tp đối tượng càng đồng nht.
Hình 5.7: Giá tr ca entropy H(X) trong trưng hp X có th nhn mt trong hai giá tr
{0,1}
Trong trường hp tng quát vi C nhãn phân loi có xác sut ln lượt p
1
, p
2
, …,p
C
.
entropy được tính như sau:
H (S) =
Giá tr cc đại ca entropy khi đó s bng log
2
C khi các nhãn xác sut như nhau
giá tr nh nht ca entropy bng 0 khi tt c đối tượng chung mt nhãn. Tương t trường
hp nhãn nh phân, giá tr entropy càng nh thì tp d liu càng đồng nht.
S dng entropy như độ đo mc đồng nht ca tp mu, ta th đánh giá đ tt ca
thuc tính bng cách so sánh entropy trước sau khi tp mu được phân chia thành tp con
theo giá tr ca thuc tính. S chênh lch entropy trước sau khi phân chia mt tp d liu
bng mt thuc tính nào đó được gi là độ tăng thông tin và được định nghĩa dưi đây.
Độ tăng thông tin (Information Gain), ký hiu IG, ch s đánh giá độ tt ca thuc
tính trong vic phân chia tp d liu thành nhng tp con đồng nht. IG được tính da tn
entropy theo công thc sau:
trong đó:
S là tp d liu nút hin ti
=
C
i
ii
pp
1
2
log
=
)(
)(
||
||
)(),(
Avaluesv
v
V
SH
S
S
SHASIG
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
165
A là thuc tính
values(A) là tp các giá tr ca thuc tính A.
S
v
tp các mu có giá tr thuc tính A bng v.
|S| và |S
v
| là lc lượng ca các tp hp tương ng.
V bn cht, IG là độ chênh lch gia entropy ca tp S và tng entropy ca các tp con
S
v
được to ra do phân chia S bng cách s dng thuc tính A. Do các tp con th kích
thước không bng nhau nên entropy ca tp con đưc nhân vi mt trng s |S
v
| / |S|, tc
tp con có kích thước ln hơn s đóng góp nhiu hơn vào tng entropy.
Giá tr ca IG đưc s dng làm tiêu chí để la chn thuc tính tt nht ti mi nút.
Theo thut toán ID3, thuc tính đưc la chn là thuc tính có giá tr IG ln nht.
Ví d minh ha
Để minh ho cho cách tính độ tăng thông tin IG và la chn thuc tính tt nht, ta s s
dng d liu hun luyn cho trong bng trên hình 5.5. C th, cn xác định thuc tính tt nht
ti t gc cho d liu trong bng 5.5 bng cách tính IG cho các thuc tính.
Vi thuc tính Gió:
values(Gió) = {yếu, mnh}
S = [9+, 5-], H (S) = 0.94
S
yếu
= [6+, 2-] , H (S
yếu
) = 0.811
S
mnh
= [3+, 3-], H (S
mnh
) = 1
Do vy:
IG (S, G) = H (S) (8/14) H(S
yếu
) (6/14) H(S
mnh
)
H = 0.94 –(8/14) * 0.811 (6/14) * 1
= 0.048
Tính tương t vi ba thuc tính còn li, ta đưc:
IG (S, Tri) = 0.246
IG (S, Đ m) = 0.151
IG (S, G) = 0.048
IG (S, Nhit độ) = 0.029
Trong bn thuc tính có th s dng nút gc, IG (S, Tri) có giá tr ln nht. Như vy,
thuc tính tt nht Tri đưc s dng cho nút gc. Sau khi chn nút gc Tri, ta được
các b d liu con ba nhánh tương ng ba giá tr ca thuc tính “Tri” như trên hình 5.8. Để
tin cho vic trình by, s th t các ví d được cho ngay ti c nút.
Đối vi nhánh gia, toàn b mu nhãn dương, do vy quá trình hc cây cho nhánh
này dng li, thut toán to nút lá vi nhãn “có”. Đối vi nhánh bên trái và bên phi, quá trình
hc cây đưc tiếp tc vi tp d liu con ti nhánh đó. Dưới đây minh ha vic tính IG
chn thuc tính cho nút tiếp theo bên trái.
Tính IG cho Độ m:
S
nng
= [2+, 3–], H(S
nng
) = 0.97
S
nng, cao
= [0+, 3–], H(S
nng, cao
) = 0
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
166
S
nng, bình thường
= [2+, 0–], H(S
nng, bình thường
) = 0
Do vy
IG (S
nng
, Độ m) = 0.97 – (3/5)*0 – (2/5)*0 = 0.97
Tính tương t vi hai thuc tính còn li, ta có:
IG (S
nng
, Nhit độ) = 0.97 – (2/5)*0 –(2/5)*1(1/5)*0 = 0.57
IG (S
nng
, Gió) = 0.97 – (2/5)*1 – (3/5)*0.918 = 0.019
Thuc tính Độ m IG ln nht đưc chn cho t này. Kết qu hc cây đầy đủ
được th hin trên nh 5.4.
Hình 5.8. Ví d xây dng cây quyết định
5.2.3. c đặc đim thut toán hc cây quyết định
Thut toán hc cây quyết đnh ID3 trên có mt s đặc đim sau:
d. ID3 là thut toán tìm kiếm cây quyết định phù hp vi d liu hun luyn.
e. Đây phương pháp tìm kiếm theo kiu tham lam, t trên xung, bt đầu t
cây rng. Hàm đánh giá là độ tăng thông tin. Tính cht tham lam ca thut toán
th hin ch ti mi nút, thuc tính đưc chn thuc tính có hàm mc tiêu
ln nht, thut toán không nhìn xa hơn nút hin ti khi quyết định chn thuc
tính. Không gian tìm kiếm là đầy đủ, nghĩa là theo cách xây dng cây như vy,
thut toán có th di chuyn ti mi cây hp l.
f. ID3 khuynh hướng la chn cây quyết định đơn gin tc là cây ít nút,
trong đó nhng nút tương ng vi thuc tính độ tăng thông tin ln đưc xếp
gn gc hơn.
Lưu ý: trên va nhc ti “khuynh hưng” (bias) ca thut toán. Trong hc máy, t
khuynh hướng dùng để ch nh cht thut toán ưu tiên mt phương án này hơn mt phương
án khác trong khi c hai phương án đều tha mãn yêu cu đặt ra. Trong trường hp cây quyết
định, nếu hai cây cùng phù hp vi d liu thì thut toán có khuynh hưng la chn cây ít nút
hơn.
Tr
i
{D1, D2,
, D14}
{D1, D2, D8, D9, D11}
{D3, D7, D12, D13}
{D4, D5, D6, D10, D14}
[9+, 5-]
[2+, 3-]
[4+, 0-]
[3+, 2-]
?
?
có
n
ng
u ám
m
ư
a
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
167
Vic la chn cây quyết định đơn gin phù hp vi mt nguyên tc trong triết hc được
gi là Occam’s razor (Occam là tên mt nhà triết hc) theo đó nếu có nhiu gi thiết cho phép
gii thích mt s quan sát nào đó thì ưu tiên chn gi thiết đơn gin hơn.
5.2.4. Vn đề quá va d liu
Quá va d liu (data overfitting hay đơn gin overfitting) là mt vn đề thường gp
trong hc máy và có nh hưng nhiu ti độ chính xác ca các k thut hc máy.
Trong khi xây dng cây quyết định (hay b phân loi nói chung), thut toán hc máy
thường c gng để cây phù hp vi d liu, tc phân loi đúng các mu hun luyn, mc
ti đa. Tuy nhiên, mc đích hc cây quyết định không phi để phân loi d liu mu, mà để
phân loi d liu nói chung, tc d liu mà thut toán chưa biết trong thi gian hc. th
xy ra tình hung cây quyết định có độ chính xác tt trên d liu hun luyn nhưng li cho độ
chính xác không tt trên d liu nói chung. Khi đó ta nói cây quyết định quá va vi d liu
hun luyn.
Ta nói rng cây quyết định t quá va d liu hun luyn nếu tn ti cây quyết định t’
sao cho t phân loi chính xác hơn t’ trên d liu hun luyn nhưng kém chính xác hơn t’ trên
d liu nói chung.
Lý do b phân loi làm vic tt trên d liu hun luyn nhưng không tt trên d liu nói
chung do các mu hun luyn thưng không đủ không mang tính đại din cho phân b
ca d liu nói chung. Chng hn, khi s lưng mu ti nút lá ít, vic xut hin tương quan
gia giá tr thuc tính và nhãn pn loi có th xy ra do trùng hp ngu nhiên dn ti mt s
thuc tính phân chia các mu rt tt trong khi thc tế thuc tính không quan h vi nhãn
phân loi.
Mt lý do khác dn ti quá va d liu là do d liu hun luyn có nhiu trong khi thut
toán c gng xây dng cây để phân loi đúng các ví d nhiu này.
Đối vi cây quyết định, thut tn ID3 t trên phát trin nhánh cây rt sâu cho
đến khi phân loi đúng toàn b mu, hoc khi đã hết thuc tính. Nghiên cu cho thy, vic
phát trin cây phc tp vi nhiu nút nguyên nhân chính dn ti quá va d liu. T đây,
có hai nhóm gii pháp chính để hn chế quá va d liu cho thut toán hc cây quyết định:
g. Gii pháp dng vic dng cây quyết định sm, trưc khi cây đủ phc tp để
phân loi đúng mu hun luyn.
h. Gii pháp xây dng cây đầy đủ, sau đó thc hin “ta” cây để có cây đơn gin
hơn.
Trong hai nhóm trên, nhóm gii pháp th hai đưc s dng thành công hơn trên thc tế
và do vy s được trình bày tiếp theo.
Chng quá va d liu bng cách ta cây.
Trước tiên, để thc hin ta cây, cn cách xác định độ chính xác phân loi ca cây.
Do mc đích ca cây phân loi nhng mu chưa biết trong quá trình hun luyn nên cách
tính độ chính xác thông dng nht là s dng tp hun luyn và tp kim tra riêng như sau:
i. Toàn b mu được chia thành hai tp: tp th nht gi tp hun luyn, tp
th hai gi là tp kim tra, thưng vi t l 2:1.
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
168
j. S dng tp hun luyn để xây dng cây, s dng tp kim tra để tính độ chính
c ca cây, tc xác định xem kết qu pn loi ca cây phù hp đến mc
o vi mu trong tp kim tra.
Trong trường hp ít d liu, mt phương pháp hay được s dng kim tra chéo. D
liu được chia ngu nhiên thành n phn bng nhau. Thut toán ln lưt s dng n-1 phn làm
tp hun luyn phn còn li làm tp kim tra. Độ chính xác đưc tính bng độ chính xác
trung bình cho n ln. Chi tiết v k thut kim tra chéo được trình by trong phn 5.6.2.
Th tc ta cây thc hin như sau. Trước tiên s dng tp hun luyn để xây dng cây
đầy đủ. Sau đó xem xét để ta dn các nút. Khi ta nút, toàn b các nhánh bên dưới nút b b,
nút tr thành nút vi nhãn phân loi ly theo đa s nhãn ca các d ti nút đó. Nút s
được ta nếu độ chính xác sau khi ta không gim so vi trước khi ta. Lưu ý rng độ chính
c được tính trên tp kim tra.
Quá trình ta đưc lp li, ti mi bước chn nút để ta là nút cho phép tăng độ chính
c phân loi nhiu nht. Th tc ta nút dng li khi vic b đi bt c nút nào cũng làm gim
độ chính xác.
Chng quá va bng cách ta lut
Thay ta các t như thut toán ID3 trên, mt ci tiến ca thut toán ID3 thut
toán C4.5 thc hin ta các lut như sau:
1. Xây dng cây quyết định cho pp phân loi đúng ti đa tp hun luyn.
2. Biến đổi cây thành lut suy din sao cho mi nhánh t gc đến tương ng
mt lut. d, lut có dng Nếu Tri = nng Độ m = cao Thì không
chơi”
3. Ta tng lut bng cách b bt các điu kin thành phn nếu sau khi b độ
chính c tăng lên.
4. Sp xếp các lut đã đưc ta theo độ chính xác trên tp kim tra. S dng lut
theo th t đó để phân loi ví d mi.
d: lut “Nếu Tri = nng Độ m = cao Thì không chơi” th to ra hai lut
bng cách b các điu kin “Tri = nng” và “Đ m = cao”.
Cn lưu ý rng, sau khi ta các lut, cùng mt d th trùng vi vế trái ca nhiu
hơn mt lut (điu này không xy ra vi cây do các nhánh y loi tr ln nhau). Trong
trường hp này cn xác định lut nào s được s dng. Đó là lý do cn sp xếp các lut và s
dng theo th t đó.
5.2.5. S dng thuc tính có giá tr liên tc
Thut toán trình bày trên yêu cu thuc tính nhn giá tr ri rc trong mt tp hu hn.
Trong nhiu trưng hp, thuc tính có th nhn giá tr liên tc dưới dng s thc. Chng hn,
nhit độ được cho dưi dng s đo thc như trong d sau ( đây nhit độ tính bng độ F):
Nhit độ 45 56 60 74 80 90
Chơi tennis không không không
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
169
Để s dng thuc tính như vy cn to ra nhng thuc tính ri rc mi cho phép phân
chia thuc tính ri rc thành c khong giá tr. Vi mi thuc tính liên tc A, cách thường
được s dng là to ra thuc tính ri rc Ac sao cho Ac = true nếu A > c Ac = false nếu A
c, trong đó c là giá tr ngưỡng.
Vn đề đặt ra xác định ngưỡng c như thế nào. Trước hết, c cn được chn sao cho Ac
đem li độ tăng thông tin ln nht. Để tìm được c như vy, ta sp xếp các d theo th t
tăng dn ca thuc tính A, sau đó xác định nhng trường hp hai d nm cnh nhau
nhãn khác nhau. Giá tr trung nh ca thuc tính A ca hai thuc tính như vy s đưc s
dng làm giá tr d kiến ca c, trong d trên (56+60)/2 = 58 (80+90)/2 = 85 . Sau đó
tính độ tăng thông tin cho tng giá tr d kiến chn c đem li độ thăng thông tin ln nht,
trong ví d tn là độ thăng thông tin ca Nhit_độ
58
và Nhit_độ
85
.
Phương pháp trên th m rng bng cách cha giá tr thuc tính thành nhiu khong
vi nhiu ngưng, thay vì ch s dng mt ngưng như ta va thy.
5.2.6. S dng cách đánh giá thuc tính khác
ch đánh giá thuc tính bng độ tăng thông tin IG trên không phi duy nht
th cho kết qu không tt trong mt s trưng hp. C th, vic đánh giá da trên entropy
thun túy dn ti vic ưu tiên nhng thuc tính có nhiu giá tr và do vy to ra nhiu tp con.
Trong d hình 5.5, nếu s dng c Ngày như mt thuc tính, thuc tính này s
ti 14 giá tr khác nhau, chia tp hun luyn tnh 14 tp con vi entropy = 0 do vy
Ngày có IG cao nht. Vic chn ngày như vy dn ti cây quyết định không có kh năng phân
loi nhng ny tiếp theo. Như vy, thuc tính Ny mc du có IG rt tt nhưng cn tránh ví
nhiu giá tr.
Để gii quyết vn đề này, ta có th thêm thành phn vào ng thc tính IG để pht
nhng thuc tính nhiu giá tr. Thành phn đó gi thông tin chia (Split Informatio SI) và
được tính như sau:
Tiêu chun đánh giá thuc tính (ký hiu GR Gain Ratio) khi đó được to thành
bng cách chia IG cho SI:
GR = IG (S, A) / SI (S, A)
Mt vn đề cn quan tâm khi s dng GR giá tr SI th bng không khi |S
i
| = |S|.
Để x lý trường hp này cn nhng quy tc riêng, chng hn ch tính GR khi IG ln ti
mt mc nào đó.
n cnh GR còn nhiu độ đo khác được nghiên cu đề xut s dng khi xây
dng cây quyết định.
5.3. PHÂN LOI BAYES ĐƠN GIN
=
=
C
i
ii
S
S
S
S
ASSI
1
2
||
||
log
||
||
),(
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
170
Phn này s đề cp ti phân loi Bayes đơn gin (Naïve Bayes), mt phương pháp phân
loi đơn gin nhưng có nhiu ng dng trong thc tế như phân loi văn bn, lc thư rác. Phân
loi Bayes đơn gin là trường hp riêng ca k thut hc máy Bayes, trong đó các gi thiết v
độc lp xác sut được s dng để đơn gin hóa vic tính xác sut.
5.3.1. Phương pháp phân loi Bayes đơn gin
Tương t như hc cây quyết định trên, phân loi Bayes đơn gin s dng trong trường
hp mi d được cho bng tp các thuc tính <x
1
, x
2
, …, x
n
> cn xác định nhãn phân
loi y, y có th nhn giá tr t mt tp nhãn hu hn C.
Trong giai đon hun luyn, d liu hun luyn được cung cp dưới dng các mu <x
i
,
y
i
>. Sau khi hun luyn xong, b phân loi cn d đoán nhãn cho mu mi x.
Theo lý thuyết hc Bayes, nhãn phân loi được c định bng cách tính xác sut điu
kin ca nhãn khi quan sát thy t hp giá tr thuc tính <x
1
, x
2
, …, x
n
>. Thuc tính được
chn, ký hiu c
MAP
là thuc tính có xác sut điu kin cao nht (MAP là viết tt ca maximum
a posterior), tc là:
y =
S dng quy tc Bayes, biu thc trên đưc viết li như sau
Trong vế phi ca biu thc y, mu s không ph thuc vào c
j
và vì vy không nh
hưng ti giá tr ca C
MAP
. Do đó, ta có th b mu s viết li như sau:
Hai thành phn trong biu thc trên đưc tính t d liu hun luyn. Giá tr P(c
j
) đưc
tính bng tn sut quan sát thy nhãn c
j
trên tp hun luyn, tc bng s mu nhãn c
j
chia cho tng s mu. Vic tính khó khăn hơn nhiu. Vn đề là s t hp
giá tr ca n thuc tính cùng vi nhãn phân loi là rt ln khi n ln. Để tính xác sut này đưc
chính xác, mi t hp giá tr thuc tính phi xut hin cùng nhãn phân loi đủ nhiu, trong khi
s mu hun luyn thường không đủ ln.
Để gii quyết vn đề trên, ta gi s các thuc tính độc lp v xác sut vi nhau khi
biết nhãn phân loi c
j
. Tn thc tế, các thuc tính thường không độc lp vi nhau như vy,
chng hn đối vi d chơi tennis, khi tri nng thì xác sut nhit độ cao cũng ln hơn.
Chính vì da trên gi thiết độc lp xác sut đơn gin như vy nên phương pp tên gi
“Bayes đơn gin”. Tuy nhiên, như ta thy sau đây, gi thiết như vy cho phép tính xác sut
điu kin đơn gin hơn nhiu và trên thc tế pn loi Bayes độ chính xác tt trong rt
nhiu ng dng.
Vi gi thiết v tính độc lp xác sut có điu kin, có th viết:
)
,...,,|(
max
arg
21 nj
Cc
MAP
xxxcPc
j
=
),...,,(
)()|,...,,(
maxarg
21
21
n
jjn
Cc
MAP
xxxP
cPcxxxP
c
j
=
C
MAP
=
arg max
c
j
C
P
(
x
1
,
x
2
,...,
x
n
|
c
j
)
P
(
c
j
)
)|,...,,(
21 jn
cxxxP
)|()...|()|()|,...,,(
2121 jnjjjn
cxPcxPcxPcxxxP
=
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
171
tc xác sut đồng thi quan sát thy các thuc tính bng tích xác sut điu kin ca
tng thuc tính riêng l. Thay vào biu thc trên, ta được b phân loi Bayes đơn gin (có
đầu ra ký hiu là c
NB
) như sau.
trong đó, đưc tính t d liu hun luyn bng s ln x
i
xut hin cùng vi c
j
chia cho s ln c
j
xut hin. Vic tính xác sut này đòi hi ít d liu hơn nhiu so vi tính
.
Trên hình 5.9 biu din hình phân loi Bayes đơn gin dưi dng mng Bayes.
c thuc tính không đưc ni vi nhau bi các cnh và do vy các thuc tính độc lp xác
sut vi nhau nếu biết giá tr ca nn phân loi.
nh 5.9: Mô hình Bayes đơn gin: các thuc tính Xi độc lp xác sut vi nhau nếu biết
giá tr nhãn phân loi Y.
Hun luyn.
Quá trình hun luyn hay hc Bayes đơn gin quá trình tính các xác sut P(c
j
) các
c sut điu kin bng cách đếm trên tp d liu hun luyn. Như vy, khác vi
hc cây quyết định, Hc Bayes đơn gin không đòi hi tìm kiếm trong không gian các b
phân loi. Các xác sut P(c
j
) các c sut điu kin được tính trên tp d liu
hun luyn theo công thc sau:
S mu có nhãn là c
j
Tng s mu trong tp hun luyn
S mu có giá tr thuc tính X
i
= x
i
nhãn là c
j
S mu có nhãn là c
j
Ví d.
Để minh ha cho k thut hc Bayes đơn gin, ta s dng li bài toán phân chia ngày
thành phù hp hay không php cho vic chơi tennis theo điu kin thi tiết đã được s
dng trong phn hc cây quyết định vi d liu hun luyn cho trong bng 5.1. Gi s phi
c định nhãn phân loi cho ví d sau:
< Tri = nng, Nhit độ = trung bình, Độ m = cao, Gió = mnh >
=
i
jij
Cc
NB
cxPcPc
j
)|()(
max
arg
)|(
ji
cxP
)|,...,,(
21 jn
cxxxP
)|(
ji
cxP
)|(
ji
cxP
P
(
c
j
)
=
P
(
x
i
|
c
j
)
=
Y
C
X1
B
Xn
A
X3
D
X2
F
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
172
Thay s liu ca bài toán vào công thc Bayes đơn gin, ta có:
= P (Tri=nng| c
j
)P (Nh. độ=t. bình| c
j
)P (Độ m=cao| c
j
)
P (Gió=mnh |c
j
)P (c
j
)
Do c
j
th nhn hai giá tr, ta cn nh 10 xác sut. Các xác sut P(có) P(không)
được tính bng tt sut “có” và “không” trên d liu hun luyn.
P(có) = 9/14 = 0,64
P(không) = 5/14 = 0,36
c xác sut điu kin cũng được tính t d liu hun luyn, ví d ta có:
P (Độ m = cao | có) = 3/9 = 0,33
P (Độ m = cao | không) = 4/5 = 0,8
Thay các xác sut thành phn vào công thc Bayes đơn gin, ta đưc:
P(có)P(nng| có)P(trung bình| có)P(cao| có)P(mnh| có) = 0.0053
P(không)P(nng| không)P(trung bình| không)P(cao| không)P(mnh| không) = 0.0206
Như vy, theo phân loi Bayes đơn gin, d đang t s đưc phân loi “không”.
Cn cý rng, 0.0053 và 0.0206 không phi là c sut thc ca nhãn “có” “không”. Để
tính c sut thc, ta cn chun hóa để tng hai c sut bng 1. Vic chun hoá đưc thc
hin bng cách chia mi s cho tng ca hai s. Chng hn xác sut chơi s bng
0.0053/(0.0053+0.0206) = 0.205.
5.3.2. Vn đềnh xác sut trên thc tế
Phân loi Bayes đơn gin đòi hi tính các xác sut điu kin thành phn . Xác
sut này được tính bng N
c
/ N, trong đó N
c
s ln x
i
c
j
xut hin đồng thi trong tp hun
luyn và N là s ln c
j
xut hin.
Trong nhiu trường hp, giá tr N
c
th rt nh, thm chí bng không, do vy nh
hưởng ti độ chính xác khi tính xác sut điu kin. Nếu N
c
= 0, xác sut điu kin cui cùng
s bng không, bt k các xác sut thành phn khác có giá tr thế nào.
Để khc phc vn đề này, mt k thut đưc gi là m trơn thường đưc s dng. K
thut làm trơn đơn gin nht s dng công thc tính như sau:
P(x
i
| c
j
) =
N
c
+
1
N
+
1
Như vy, k c khi n
c
= 0, xác sut vn nhn giá tr khác 0.
Trong trường hp chung, có th s dng công thc được làm trơn sau:
=
N
c
+
α
p
N
+
α
trong đó p là xác sut tin nghim ca x
i
và
α
là tham s cho phép xác định nh hưng
ca p ti công thc. Nếu không thêm thông tin khác thì xác sut tin nghim thường
=
i
jij
Cc
NB
cxPcPc
j
)|()(
max
arg
},{
max
arg
khongcoc
j
)|(
ji
cxP
)|(
ji
cxP
)|(
ji
cxP
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
173
được tính p = 1 / k, trong đó k s giá tr ca thuc tính X
i
. Ví d, nếu không có thêm thông
tin thêm thì xác sut quan sát thy Gió = mnh s 1/2 do thuc tính Gió hai giá tr.
Nếu
α
= 0, ta đưc công thc không làm trơn ban đầu. Ngược li, khi
α
, xác sut hu
nghim s bng p, bt k N
c
thế nào. Trong nhng trường hp còn li, c N
c
/ N p cùng
đóng góp o ng thc,
α
ng ln thì nh hưởng ca p ti kết qu càng ln. Ngược li,
α
càng nh thì đóng góp ca N
c
/ N vào kết qu càng tăng lên.
5.3.3. Mt s mô hình phân b xác sut
Trong trình by trên v phương pháp Bayes đơn gin, ta mi đề cp ti tính độc lp
xác sut gia các đặc trưng mà chưa t ti dng phân bc sut c th ca tng đặc trưng,
tc dng phân b ca . Ngoài ra, ta cũng chưa xét trường hp đặc trưng nhn giá
tr liên tc. Phn này s gii thiu mt s dng phân b c sut thường ng vi Bayes đơn
gin, bao gm các phân b liên tc.
D liu ln tc và Bayes đơn gin vi phân b Gauss.
Trong trường hp thuc tính nhn giá tr liên tc, người ta thường gi s giá tr đặc
trưng liên quan ti mi nhãn phân loi tuân theo phân b Gauss s dng phân b này để
biu din. hình này được gi Bayes đơn gin Gauss (Gaussian naive Bayes). C th,
vi mi thuc tính liên tc x
i
, trưc tn ta phân chia d liu thành c phn theo giá tr ca
nhãn phân loi. Tiếp theo, ta tính giá tr trung bình µ
y
phương sai
σ
y
2
cho c giá tr ca
thuc tính x
i
gn vi nhãn phân loi y. Xác sut thuc tính x
i
nhn giá tr v đưc tính bng
cách thay v vào biu thc pn b Gauss vi giá tr trung bình độ lch chun tính được
trên:
P(x
i
= v | y) =
1
2
πσ
y
2
exp
(
v
µ
y
)
2
2
σ
y
2
"
#
$
$
%
&
'
'
d: gi s cho d liu hun luyn sau vi mt thuc tính liên tc "chiu cao" (cm) và
phân loi gii tính có th nhn giá tr "nam" hoc "n".
Gii tính nam n nam nam nam n n n n
Chiu cao 175 158 168 171 166 157 161 160 164
Vi nhãn phân loi "nam" ta các giá tr chiu cao {175, 168, 171, 166}, t đây ta
µ
nam
= 170 và phương sai = 11.5.
Tương t, vi nhãn phân loi "n", giá tr chiu cao là {158, 157, 161, 160, 164}, t đây
tính được µ
n
= 160 phương sai = 6.
Như vy, vi mt người có chiu cao 165cm, ta có xác sut:
P(chiu cao = 165 | nam) =
1
2
π
11.5
exp
(165
170)
2
2 *11.5
"
#
$
%
&
'
= 0.039
)|(
ji
cxP
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
174
P(chiu cao = 165 | n) =
1
2
π
6
exp
(165
160)
2
2 * 6
"
#
$
%
&
'
= 0.020
Bayes đơn gin đa thc
Trong trường hp thuc nh nhn giá tr ri rc, chng hn các s đếm như s ln
mt t nào đó xut hin trong mt văn bn, ta th s dng phân b đa thc. Khi đó,
hình Bayes đơn gin thường được gi Bayes đơn gin đa thc (Multinomial naive Bayes).
Xác sut quan sát thy mt t hp giá tr ca thuc tính (x
1
, x
2
, ... , x
n
) được tính theo phân b
c sut đa thc vi các tham s được tính như sau:
P(x
i
| c
j
) =
N
i, j
N
j
=
N
i, j
N
i, j
i
=
1
m
trong đó N
i,j
s ln thuc tính x
i
xut hin trong mt mu có nn phân loi c
j
N
j
tng s ln xut hin ca tt c các thuc tính trong các mu có nhãn c
j
, m là s lượng thuc
tính. Ví d, trong trường hp văn bn, m là kích thước t vng (s t khác nhau), x
i
là mt t
c thN
i,j
là s ln xut hin ca t đó trong các văn bn có nhãn c
j
.
Công thc tn th làm trơn bng k thut đã trình by trong phn trước để tránh
trường hp xác sut bng không.
Bayes đơn gin Bernoulli
Mt dng phân b xác sut khác cũng hay đưc s dng là phân b Bernoulli đa tr. Khi
đó phương pháp Bayes được gi là Bayes đơn gin Bernoulli (Bernoulli naive Bayes). Trong
trường hp này, s xut hin hay không ca mi thuc tính trong mt mu được mô hình hoá
như mt phép th Bernoulli ging như khi ta tung đồng xu. Gi s ta m thuc tính {t
1
, t
2
,
..., t
m
}. Mi mu hun luyn đưc biu din bi vec tơ {x
1
, x
2
, ..., x
m
}, trong đó x
i
= 1 nếu t
i
xut hin trong mu, x
i
= 0 nếu ngưc li. Khi đó, xác sut điu kin được tính
như sau:
P
(
x
i
|
c
j
)
=
P
(
t
i
|
c
j
)
x
i
+
(1
P
(
x
i
|
c
j
))(1
x
i
)
trong đó
P(t
i
| c
j
) =
M
i, j
M
j
vi M
i,j
là s mu hun luyn vi nhãn c
j
có cha t
i
M
j
là tng s mu hun luyn vi
nhãn c
j
. (lưu ý s khác nhau gia cách tính đậy vi trưng hp đa thc trên). Trên thc tế,
ta cũng có th áp dng k thut làm trơn để tránh c sut 0.
Như vy, khác vi trường hp đa thc, phương pháp Bayes đơn gin Bernoulli hình
hoá mt cách tường minh nh hưởng ca vic mt thuc tính xut hin vic thuc tính
đó không xut hin trong mu.
5.3.4. ng dng trong phân loi văn bn t động
Phân loi văn bn t động bài toán nhiu ng dng thc tế. Trưc tiên, cho mt
tp hun luyn bao gm c văn bn. Mi văn bn th thuc o mt trong C loi khác
nhau ( đây ta không xét trường hp mi văn bn có th thuc vào nhiu loi khác nhau). Sau
)|(
ji
cxP
)|(
ji
cxP
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
175
khi hun luyn xong, thut toán phân loi nhn được văn bn mi cn c định phân loi
cho văn bn này. d, vi các văn bn ni dung thư đin t, thut toán th pn loi
thư thành “thư rác” và thư bình thưng”. Khi hun luyn, thut toán hc đưc cung cp mt
tp thư rác và mt tp thư thường. Sau đó, da trên ni dung thư mi nhn, b phân loi s t
c định đó có phi thư rác không. Mt ng dng khác là t động phân chia bn tin thành các
th loi khác nhau, ví d “chính tr”, “xã hi”, “th thao”.v.v. như trên báo đin t.
Phân loi văn bn t động dng ng dng trong đó phân loi Bayes đơn gin c
phương pháp xác sut khác được s dng rt thành công. Chương trình lc thư rác ngun
m SpamAssassin (http://
=
i
jij
khongracc
NB
cxPcPc
j
)|()(
max
arg
},{
},{
max
arg
khongracc
j
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
176
thư rác có th đạt trên 98%. Kết qu này cho thy, mcgi thiết các t độc lp vi nhau
không thc tế, độ chính xác phân loi ca Bayes đơn gin không b nh hưng đáng k.
5.4. HC DA TRÊN VÍ D: THUT TOÁN K LÁNG GING GN NHT
5.4.1. Nguyên tc chung
Trong c phương pháp hc y quyết định Bayes đơn gin, thut toán hc da trên
d liu hun luyn để hc rahình tham s cho b phân loi. hình phân loi sau đó
được s dng để d đoán nhãn cho d mi. Qtrình hc thc cht quá trình xác định
dng và tham s ca hàm đích, là hàm xp x giá tr nhãn phân loi.
Phn này s trình bày k thut hc máy da trên mt nguyên tc khác gi hc da
trên d (instance-based learning). Khác vi các phương pháp hc trên, hc da trên d
không to ra hình hay hàm đích cho d liu, thay vào đó, trong quá trình hc thut toán
ch lưu li tt c các mu hun luyn được cung cp. Khi cn phân loi hay ra quyết định cho
d mi, thut toán tìm nhng mu hun luyn tương t xác định nhãn phân loi hay giá
tr ca ví d da trên nhng mu này.
Do thut toán không làm trong quá trình hc ch lưu li c mu hun luyn,
phương pháp hc da trên d còn được gi là hc lưi (lazy learning) hay hc bng cách
nh (memory-based learning). Hc da trên d bao gm mt s k thut hc khác nhau
như thut toán k-láng ging gn nht (k-nearest neighbor viết tt k-NN), suy din theo
trường hp (case-based reasoning). Đim khác nhau cơ bn gia nhng k thut này cách
biu din tính độ tương t gia các ví d. Thut toán k-hàng xóm gn nht s dng cách
biu din d đơn gin dưi dng vec tơ trong không gian Ơclit s dng khong cách
Ơclit để tính độ tương t, trong khi suy din theo trưng hp da trên vic biu din các mu
(gi trưng hp) phc tp hơn dùng nhng k thut phc tp được xây dng riêng để
tính độ tương t cho các trưng hp.
Ưu đim. So vi phương pp hc da trên hình, hc da trên d mt s ưu
đim. Th nht, do không quy định trước hình hay dng ca hàm đích, hc da trên ví d
th xây dng nhng hàm đích rt phc tp. Th hai, thay xây dng hàm đích chung cho
toàn b d liu, hc da trên d xây dng hàm đích da trên mt s mu gn vi d
đang cn d đn, do vy có th tn dng được đặc đim mang tính cc b ca d liu để
t tt hơn giá tr ví d mi.
Nhược đim. Nhược đim th nht ca hc da trên d tc độ chm trong giai
đon phân loi. Do thut toán phi so sánh d mi vi toàn b tp mu để tìm ra nhng
mu tương t nên thi gian phân loi t l thun vi kích thưc tp mu. Để khc phc vn đề
tc độ, cách thông dng nht s dng k thut đánh ch s để tìm kiếm nhanh mu tương
t. Nhưc đim th hai ca hc da trên d vic tính độ tương t được thc hin vi
toàn b thuc tính. Nếu thuc tính không liên quan ti phân loi ca d thì khi s dng s
y nhiu, khiến nhng d cùng nhãn không tương t vi nhau. Vn đề chn s dng
nhng thuc tính tt, do vy, có nh hưởng quyết định ti độ chính xác ca phương pháp này.
5.4.2. Phương pháp k-láng ging gn nht
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
177
K-láng ging gn nht (k-nearest neighbors, viết tt k-NN) phương pháp tiêu biu
nht ca hc da trên ví d. Nguyên tc ca phương pháp này đặc đim ca mu được
quyết định da trên đặc đim ca k mu ging mu đang xét nht. Ví d, mun xác định nhãn
phân loi, ta tìm k mu gn nht và xem nhng mu này mang nhãn gì.
Phương pháp k-NN thường làm vic vi d liu trong đó các thuc tính đưc cho dưới
dng vec tơ các s thc. Như vy, mi mu tương ng vi mt đim trong không gian Ơ clit.
Gi s mu x giá tr thuc tính < a
1
(x), a
2
(x),…, a
n
(x) >. Để xác đnh các mu ging x,
cn độ đo khong cách gia các mu. Do mu tương ng vi đim trong không gian,
khong cách Ơ clit thường đưc dùng cho mc đích này. Khong cách Ơ clit gia hai mu x
i
x
j
được tính như sau:
d (x
i
, x
j
) =
Vi khong cách d (x
i
, x
j
) va được định nghĩa, phương pháp k-NN cho hai trường hp:
phân loi và hi quy (regression) được thc hin như sau.
Phân loi
Mi mu x th nhãn phân loi f(x) vi f(x) nhn mt giá tr trong tp hu hn c
phân loi C. Thut toán k-NN cho phân loi đưc cho trên hình 5.10.
Giai đon hc (hun luyn)
Lưu các mu hun luyn có dng <x, f(x)> vào cơ s d liu
Giai đon phân loi
Đầu vào: tham s k
Vi mu x cn pn loi:
1. nh khong cách d (x, x
i
) t x ti tt c mu x
i
trong cơ s d liu
2. Tìm k mu có d (x, x
i
) nh nht, gi s k mu đó là x
1
, x
2
, …, x
k
.
3. Xác đnh nhãn phân loi f’(x) là nhãn chiếm đa s trong tp { x
1
,
x
2
, …, x
k
.}
Hình 5.10. Thut toán k-NN cho bài toán phân loi
Kết qu phân loi ca thut toán k-NN được minh ha trên hình 5.11 cho trường hp
phân loi hai lp. Các hình vuông biu din các ví d hun luyn thuc mt lp, hình tam giác
biu din các ví d hun luyn thuc lp còn li. Ví d cn phân loi được biu din bi hình
tròn. Khong cách gia các dkhong cách Ơ clit trên mt phng. Vi k = 3, ví d được
phân loi thành tam giác do có 2 trong s 3 láng ging gn nht là tam giác, trong khi vi k =
5, ví d đang xét được phân loi thành hình vuông do 3 trong s 5 láng ging gn nht
hình vuông. Vi k = 1, ví d s được phân loi thành tam giác.
=
n
l
jlil
xaxa
1
2
))()((
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
178
Hình 5.11. Kết qu phân loi ca k-NN vi k = 3 k = 5.
Mc không xây dng hàm phân loi mt cách tường minh, ta vn th xét hàm
phân loi do k-NN to ra. Vi mt tp c định các d hun luyn gi s k = 1 (1-NN),
m phân loi đưc th hin như trên hình 5.12, trong đó mi đim biu din mtd hun
luyn. Vi k = 1, mi khi đa din bao quanh mt ví d hun luyn th hin vùng không gian
cùng nhãn phân loi vi d đó. Tc là tt c d nm trong đa din ca d hun
luyn nào s nhãn phân loi ging ví d hun luyn đó. Biu din này đưc gi đồ th
Voronoi.
nh 5.11. Hàm phân loi to ra t thut toán k-NN vi k = 1.
Hi quy (regression)
Thut toán k-NN th ng cho trường hp hi quy, trong đó mi mu x th nhãn
phân loi f(x) vi f(x) là mt s thc. Thut toán k-NN trên có th thay đổi d dàng cho bài
toán hi quyy bng cách thay bước đánh s 3 trong thut toán hình 5.10 như sau:
Thut toán k-NN mt tham s đầu vào k: s hàng xóm được dùng để quyết định
nhãn cho mu đang xét. Nếu k = 1, gtr hàm f ’(x) đưc chn bng giá tr hàm f ca mu
k
xf
xf
k
i
i
=
=
1
)(
)('
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
179
gn nht. Thông thưng k = 1 không cho kết qu tt do hàng xóm gn nht có nh hưởng
quyết định ti giá tr f ’(x). Trong trường hp hàng xóm gn nht nhiu s khiến kết qu b
sai. Nhiu nghiên cu cho thy giá tr k trong khong t 5 đến 10 là phù hp. Để xác định giá
tr c th ca k th s dng phương pháp kim tra chéo như đã trình y phn ta cây.
Giá tr k cho độ chính xác khi kim tra chéo tt nht s đưc la chn cho thut toán.
5.4.3. Mt s lưu ý vi thut toán k-NN
a) Các độ đo khong cách và độ tương t
Khong cách Ơ clit độ đo thông dng để tính khong cách gia các d. Bên cnh
đó có th s dng nhng độ đo khác.
a. Khong cách Mahalanobis. Khong cách Mahalanobis cho phép tính độ tương
quan gia các thuc nh đưc s dng trong trường hp các thuc tính
được biu din theo nhng thang khác nhau, chng hn khi hai thuc tính là
chiu cao cân nng. Trong trường hp đó, khong cách Mahalanobis cho
phép chun hóa khong cách, cân bng đóng góp ca hai thuc tính.
b. Khong cách Hamming. Khong cách Ơ clit không th s dng đưc nếu
thuc tính nhn gtr ri rc. Trong trưng hp này thế s dng khong
cách Hamming, đưc tính bng s thuc tính giá tr khác nhau. C th,
khong ch Hamming gia hai xâu ký t cùng độ dài đưc tính bng s v trí
ti đó hai ký t tương ng khác nhau. Ví d, khong cách Hamming gia
các xâu:
- 123456 133256 bng 2.
- intelligence intelildence bng 3.
b) S dng trng s cho các hàng xóm
Theo thut toán k-NN trình bày trên cho bài toán hi quy, mi hàng xóm có đóng góp
như nhau vào giá tr ca ví d mi. Tuy nhiên, s hp lý hơn nếu cho phép nhng hàng xóm
gn nh hưởng nhiu hơn ti giá tr d đn. Có th thc hin điu này bng cách nhân giá
tr hàng xóm vi trng s, trng s càng ln nếu hàng xóm càng gn d cn d đoán.
d, trng s th tính bng nghch đảo ca bình phương khong cách ti ví d cn d đn,
tc là:
Thêm trng s vào công thc hi quy, giá tr hàm f ‘(x) ca ví d x được tính như sau:
Trong trường hp này, mu s tng trng s cho phép chun hóa độ đóng góp ca
tng hàng xóm.
Vi vic s dng trng s, th không cn gii hn s lượng hàng xóm do nhng
d càng xa s nh hưởng càng nh ti gtr m đích ca d mi. Tuy nhiên, vic
2
),(
1
i
i
xxd
w =
=
=
=
k
i
i
k
i
ii
w
xfw
xf
1
1
)(
)('
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
180
không gii hn s lượng hàng xóm đòi hi tính toán nhiu và do vy tc độ ca thut toán s
b nh hưởng.
c) nh hưởng ca thuc tính ti thut toán
Để nh khong cách, k-NN s dng toàn b thuc tính ca d, bt k thuc tính
liên quan ti nhãn phân loi ca ví d hay không. Đây đim khác vi phương pháp hc cây
quyết định, trong đó ch nhng thuc tính liên quan được chn trên các nút, hay phương pháp
Bayes đơn gin, trong đó ch nhng thuc tính liên quan mi xác sut điu kin cao. Nếu
d liu bao gm c nhng thuc tính không liên quan ti nhãn phân loi, nhng thuc tính
y s nh hưng ti khong cách. Ví d, gi s d liu 100 thuc tính, trong đó ch có 2
thuc tính nh hưởng ti nhãn phân loi. Khi đó nhng d hai thuc tính y ging
nhau vn có th nm rt xa nhau trong không gian 100 chiu.
nh hưng ca s lượng thuc tính ln không liên quan làm gim đáng k độ chính
c ca k-NN. Để gii quyết vn đềy có th s dng hai phương pháp:
c. Đánh trng s cho thuc tính sao cho thuc tính ít liên quan có trng s nh
ngược li.
d. La chn thuc tính (hay còn gi là trích chn đặc trưng): ch nhng thuc tính
liên quan đưc gi li, trong khi nhng thuc nh không ln quan b b đi.
Đây trường hp riêng phương pháp đánh trng s cho thuc tính, trong đó
nhng thuc tính b loi có trng s bng không.
rt nhiu nghiên cu đề cp ti vic la chn đánh trng s cho thuc tính. Do
gii hn ca môn hc, các ni dung này s không đưc đề cp ti đây.
5.5. HI QUY TUYN NH VÀ HI QUY LOGISTIC
Trong phn này ta s xem xét mt s k thut phân loi và hi quy s dng các hình
tuyến tính hoc dng tng quát h ca mô hình này. C th, hàm đích cn xây dng là t hp
tuyến tính các thuc tính, tc tng các thuc tính nhân vi trng s. Mô hình dng này
th s dng trong trường hp đặc trưng các s thc. Trưc hết, ta s xem xét phương
pháp hi quy tuyến tính dùng cho bài toán hi quy. Sau đó, ta s xem xét k thut phân loi s
dng hi quy logistic – mt dng khái quát ca mô hình tuyến tính.
5.5.1. Hi quy tuyến tính
Trong phn này s trình by v k thut hi quy tuyến tính (linear regression). Đây
phương pháp hi quy đơn gin nhưng có ng dng khá rng. Ngoài ra, phương pháp này được
chn trình by do liên quan ti mt lp các phương pháp phân loi khác, đặc bit
phương pháp phân loi tên hi quy logistic (logistic regression). Cn lưu ý rng, mc
hi quy và phân loi là hai bài toán khác nhau, song có th d dàng s dng k thut hi quy
cho phân loi như s trình by trong phn tiếp sau. Chng hn, th s dng mt biến vi
giá tr s để biu din nhãn phân loi, sao cho mi giá tr ca biến này ng vi mt nhãn. Sau
đó có th s dng thut toán hi quy để d đoán giá tr cho biến này tùy thuc vào giá tr
d đn đưc mà quyết định nhãn phân loi.
Gi s ta có b d liu v din tích, s phòng tm, và giá bán nhà như trong bng sau.
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
181
Din tích (m
2
) S phòng tm Giá bán (triu đồng)
100 2 2400
80 2 2000
75 1 1900
80 1 1950
110 2 2600
90 2 2300
Hình 5.12. D liu hun luyn cho bài toán hi quy
Nhc li, d liu trên đưc cho dưới dng các cp (x
i
, y
i
), trong đó i s th t ca
d th i, vec tơ đặc trưng x
i
có hai phn t x
i1
x
i2
tương ng vi din tích s phòng tm.
Trong trường hp tng quát, d liu gm m d, mi d được biu din bi n đặc trưng
liên tc.
T d liu trên cn tìm hình cho phép c định quan h ca giá nhà vi các đặc
trưng din tích và s phòng tm, t đây d đn giá nhà nếu biếu giá tr ca hai đặc trưng này.
hình hi quy tuyến tính. Đ y dng mô nh hc giám sát, trước tiên cn la
chn dng nh, hay dng m đích, chng hn mô nh dng cây như trong phn hc
cây quyết định. Trong hi quy tuyến tính, mô nh s dng là mô hình tuyến tính có dng sau:
Trong công thc này, giá tr biến đầu ra được tính bng tng ca các thuc tính, mi
thuc tính nhân vi mt tham s . Đ cho đơn gin, ta có th b sung tham s gi x
0
= 1.
Khi đó, công thc trên có th viết li như sau:
trong đó n s đặc trưng đầu vào. Trong trường hp n = 1, công thc trên phương
trình đường thng, trong trường hp n = 2 là phương trình mt phng, trong trường hp n > 2,
công thc trên xác định mt siêu phng (hyperplane). Hình 5.13 minh ha cho đường thng
trong trưng hp có mt thuc tính đầu vào.
nn
xxxh
βββ
+++= ...)(
110
i
β
=
=
n
i
ii
xxh
0
)(
β
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
182
nh 5.13. Hi quy tuyến tính vi mt đặc trưng đầu vào
Hàm li.
Mc đích ca giai đon hun luyn xác định giá tr các tham s sao cho hình
phù hp vi d liu, tc sao cho giá tr h(x) mà mô nh tính đưc càng ít lch vi giá tr
ca y càng tt trên các d hun luyn. Đ lch gia h(x) y được tính bng .
Trên cơ s đó, ta có thế xác định mt m cho pp c định đ phù hp ca mô hình trên tt
c c d hun luyn bng ch ly tng nh phương độ lch gia h(x) và y trên toàn tp
d liu hun luyn. Hàm này đưc gi là hàm giá (cost function) hoc hàm li (error
function), và đưc tính như sau:
trong đó m s d trong tp hun luyn. Mc tiêu ca vic hun luyn hình
xác định các tham s sao cho hàm li J đạt giá tr nh nht. Dưới đây ta s xem xét hai
cách để xác định các tham s này.
Xác định tham s bng cách gii phương trình tuyến tính
ch th nht để xác định giá tr tham s làm cho hàm li J nh nht là ly đạo hàm
J theo , sau đó đặt đạo hàm bng không và gii phương trình nhn đưc. Để thun tin cho
vic trình by, ta s s dng cách biu din s dng vec tơ và ma trn. Các giá tr đích y
i
đưc
biu din bng vec tơ ct y vi m phn t. Đc trưng đầu vào x
ij
đưc biu din bng ma trn
X kích thước m x n, trong đó mi dòng ng vi mtd hun luyn, mi ct tương ng vi
mt đặc trưng. Tiếp theo, tham s được biu din dưới dng vec tơ ct vi n phn t.
S dng biu din ma trn, hàm li J được viết li như sau
i
β
2
))(( yxh
= =
=
=
=
m
i
i
n
j
ijj
m
i
ii
yx
yxhJ
1
2
0
1
2
)(
2
1
))((
2
1
)(
β
β
i
β
i
β
i
β
i
β
β
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
183
Tính đạo hàm ca J đối vi cho đạo m bng không, ta được h phương trình
tuyến tính:
Gii phương trình tuyến tính, đa được li gii như sau:
Lưu ý, ch th tìm được li gii trên nếu có th tìm được ma trn nghch đảo
ca ma trn , hay ma trn ma trn kh nghch (có định thc khác
0).
Sau khi tìm được , vi mt d mi có vec tơ đặc trưng là x, giá tr đích (d đoán)
được tính bng x
T
.
Xác định tham s bng phương pháp gim gradient
Thay gii h phương trình tuyến tính để xác định tham s như trình by trên,
th xác định tham s bng cách s dng phương pháp gim gradient (gradient descent).
Gradient ca mt hàm kh vi tp hp các đạo m riêng ca hàm đó. th coi gradient
như mt vec tơ hướng v phía giá tr thay đổi ln nht ca hàm tương ng. Như vy di chuyn
theo hưng gradient cho phép tiến nhanh nht ti cc tr ca m. Cc tr này th là cc tr
địa phương hay cc tr toàn cc da trên m c th.
Da trên tính cht y, thut tn gim gradient thc hin như sau. Bt đầu t mt giá
tr ban đầu ca tham s ( trong trưng hp này), thưng giá tr dương nh được chn
ngu nhiên. Thut toán cp nht dn tham s bng ch tr đi mt đại lưng t l vi giá tr
ca gradient, sau đó tính li giá tr m mc tiêu. Quá trình này được lp li nhiu ln cho đến
khi thut toán hi t, tc đạt ti cc tr ca hàm mc tiêu và do vy gradient bng 0.
Trong trường hp hi quy tuyến tính đang xét, ti mi bước lp, thut toán thc hin
cp nht sau vi mi tham s :
trong đó
α
tham s tên tc độ hc. Giá tr
α
cho phép thay đổi mc độ cp nht
tham s sau mi bước hc. Giá tr này càng ln thì tham s thay đổi càng nhanh, tc là càng
mau tiến ti cc tr. Tuy nhiên, đặt tc độ hc ln có th dn ti hin tượng tham s nhy qua
giá tr ti ưu khiến cho thut toán không hi t không li gii tt nht. Ngược li, đặt
tc độ hc quá nh s làm quá trình hun luyn chm li. Trong trưng hp
α
= 0, tham s s
không thay đổi.
Để thc hin thut toán, ta cn xác định đạo hàm riêng ca J theo . Để cho đơn gin,
tm gi thiết d liu hun luyn ch gm mt d duy nht (x, y). Đạo m riêng theo
khi đó đưc tính như sau:
)()(
2
1
)( yXβyXβ =
T
J
β
β
0)( = yXβX
T
yXXXβ
TT 1
)(
=
1
)(
XX
T
)( XX
T
)( XX
T
β
β
β
β
j
β
)(
β
β
αββ
J
j
jj
i
β
j
β
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
184
Như vy, vi mi ví d (x
i
, y
i
), giá tr tham s đưc cp nht theo quy tc sau:
Quy tc này đưc gi quy tc bình phương trung bình nh nht (Least Mean
Squares), viết tt LMS. Quy tc này còn tên gi khác quy tc hc Widrow-Hoff.
th thy, giá tr ca mi ln cp nht t l thun vi gtr sai s . Như vy, vi
nhng d hun luyn giá tr d đn trùng vi giá tr đích thì không xy ra cp nht.
Ngược li, nếu sai s ln, tc là giá tr d đn lch nhiu so vi giá tr thc thì
mc độ cp nht tham s s ln hơn.
Tiếp theo, cn m rng quy tc hc trên cho nhiud hun luyn. Có hai quy tc hc
cho trường hp d liu gm nhiu d. Quy tc th nht được gi quy tc gim gradient
theo m (batch gradient descent) và có dng như sau:
For (j = 0 to n) {
}
Quá trình cp nht y đưc thc hin cho ti khi hi t, tc khi không còn thay
đổi hoc thay đổi không đáng k. D ng nhn thy, đại lưng chính là giá
tr đạo hàm riêng . Theo quy tc này, ti mi bưc lp, thut toán s dng toàn b
ví d hun luyn để tính toán giá tr cp nht. Cách này thường có thi gian hc tương đối dài.
Trong trưng hp nói chung, vi mt hàm bt k, thut toán gim gradient s tìm được
cc tiu địa phương. Tuy nhiên, do hàm mc tiêu trong hi quy tuyến tính hàm bc hai vi
mt đim cc tiu duy nht, thut toán gim gradient theo m s cho phép hi t v giá tr cc
tiu toàn thy.
Quy tc cp nht th hai gi quy tc gim gradient ngu nhiên (stochastic gradient
descent) và đưc thc hin như sau:
For (i = 1 to m) {
For (j = 0 to n) {
}
}
2
))((
2
1
)( yhJ
jj
=
x
β
β
β
)())((
2
1
.2
0
yxyh
ii
n
i
j
=
=
β
β
x
j
xyh
))(( =
x
i
β
ijiijj
xhy
))((
x
+
αββ
))((
ii
hy
x
))((
ii
hy
x
=
+
m
i
ijiijj
xhy
1
))(( x
αββ
j
β
=
m
i
ijii
xhy
1
))(( x
)(
β
β
J
j
ijiijj
xhy
))((
x
+
αββ
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
185
Khác vi hc theo m, thut toán gim gradient ngu nhiên ln lưt xét tng ví d hun
luyn. Vi mi d, thut toán tiến hành cp nht ngay b tham s theo gradient tính được
theo giá tr li cho mình ví d đó. Như vy, thay vì xét toàn b ví d hun luyn trưc khi tiến
nh cp nht tham s như trong phương pháp theo m, thut toán ngu nhiên bt đầu cp
nht tham s ngay khi gp mi ví d hun luyn. Trên thc tế, phương pháp này cho phép đạt
ti giá tr tham s gn ti ưu nhanh hơn nhiu so vi gim gradient theo m. Trong nhiu
trường hp, thut toán ngu nhiên không cho phép đạt đưc giá tr tham s ti ưu do giá tr
y ch dao động gn mc ti ưu, đặc bit nếu tham s tc độ hc ln. Tuy nhiên, trên thc
tế, giá tr xp x ti ưu th chp nhn được do vy phương pháp ngu nhiên thưng
được ưu tiên la chn nếu b d liu hun luyn ln. Mt k thut khác cũng có th s dng
để đạt đưc tham s ti ưu gim dn tc độ hc
α
theo thi gian. Khi đó, tham s s đạt
được cc tiu thay vì dao động quanh đó.
5.5.2. Hi quy logistic
Mc có tên gi là hi quy, thut toán hi quy logistic thut toán phân loi và được
dùng cho bài toán phân loi hai lp. Thut ng logistic xut phát t hàm logit được dùng để
biu din mô hình phân loi và không liên quan ti t logistic có nghĩa là hu cn.
Trong bài toán phân loi hai lp, đu ra hay m đích th nhn mt trong hai nhãn
phân loi. Để cho tin ta s ký hiu hai nhãn này là 0 1, tương ng vi nhãn âm nhãn
dương (trong mt s trưng hp có th s dng giá tr 1 cho nhãn âm và +1 cho nhãn dương,
tuy nhiên trong phn này s dùng 0 và 1).
Mô hình
Để phân loi hai lp, ta có th s dng thut toán hi quy tuyến tính trình by trên nếu
coi nhãn 0 1 các s. Tuy nhiên, cách s dng hi quy tuyến tính cho phân loi cho kết
qu không tt trong nhiu trưng hp. Ngi ra, hi quy tuyến tính có th cho kết qu không
mong mun là kết qu đầu ra ln hơn 1 hoc nh hơn 0.
Để gii hn giá tr đầu ra luôn nm trong khong [0, 1], thay vì s dng mô hình tuyến
tính, hi quy logstic s dng mô hình sau:
Trong đó
vi x
0
= 1 tương t như vi hi quy tuyến tính,
hàm logit hay hàm sigmoid. Đồ th ca hàm logit g(z) có dng như sau:
x
T
T
e
xgxh
β
β
+
==
1
1
)()(
=
=
n
j
jj
T
xx
0
ββ
z
e
zg
+
=
1
1
)(
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
186
nh 5.14. Đ thm logit
Hàm logit hai tính cht quan trng, nh hưởng ti vic chn hàm này trong hi
quy logistic. Th nht, như đồ th trong hình trên cho thy, giá tr hàm logit g(z) tiến ti 1 khi
z tiến ti + g(z) tiến ti 0 khi z tiến ti . Như vy, bng cách s dng hàm logit, giá tr
m đích h(x) luôn nm trong khong [0, 1].
Th hai, ngoài vic hàm logit luôn giá tr nm trong khong [0, 1], hàm này hàm
kh vi vi công thc tính đạo hàm g’ tương đối đơn gin:
Như ta s thy, đạo hàm s đưc s dng để tính gradient trong quá trình hun luyn và
ước lượng tham s ca mô hình.
Do giá tr h(x) luôn nm trong khong [0, 1], phương pháp hi quy logistic s dng giá
try như xác sut đầu ra y = 1 khi biết giá tr đầu o x tham s
β
, tc là:
Do đầu ra chth nhn hai giá tr 0 hoc 1 và tng xác sut bng 1 nên ta xác sut
đầu ra y = 0 là:
Như vy, giá tr đầu ra d đn được xác định bng cách so sánh h(x) vi mt ngưỡng,
chng hn 0.5. Nếu h(x) > 0.5, tương đương vi xác sut y = 1 ln hơn 50% thì nhãn đầu ra
nhn giá tr bng 1. Nếu ngược li, nhãn phân loi đầu ra s nhn giá tr 0. Trong mt s
trường hp ta có th tăng hoc gim ngưỡng này. Ví d, trong bài toán phát hin thư rác, nếu
coi thư rác có nhãn 1 và thư thường có nhãn 0 thì yêu cu quan trng là không phân loi
nhm thư thường thành thư rác. Khi đó ta có th đặt ngưỡng cao hơn, chng hn bng 0.8, tc
nếu hình xác định c sut thư thư rác ln hơn 80% thì thư mi được xếp o loi
thư rác.
Hun luyn mô hình
Trong quá trình hun luyn cn xác định các tham s
β
cho phép ti ưu mt hàm mc
tiêu nào đó. Trong phương pháp hi quy tuyến tính trình by phn trên ta th chn làm
mc tiêu hàm tng bình phương li, sau đó tìm được tham s cho phép cc tiu hóa hàm
y bng phương pháp phân tích hoc phương pháp gradient gim dn. Tuy nhiên, hàm
logistic phc tp hơn không th tìm được li gii bng phương pháp tương t như trong
))(1)(()('
zgzgzg
=
)()(),|1( xgxhxyP
T
ββ
===
)(1)(1),|0( xgxhxyP
T
ββ
===
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
187
hi quy tuyến tính. Vi hi quy logistic, vic ước lưng tham s khi hun luyn mô hình được
thc hin bng th tc độ phù hp cc đại (maximum likelihood).
Độ phù hp (likelihood) L(
β
) ca tham s
β
được định nghĩa xác sut điu kin ca
các giá tr đầu ra y khi biết giá tr đầu vào X và tham s
β
.
Khi xây dng mô hình, ta cn xác định tham s
β
sao cho giá tr đầu ra d đn gn vi
giá tr đầu ra thc trên d liu hun luyn, hay xác sut giá tr nhãn đầu ra khi biết đầu vào X
tham s
β
càng ln càng tt, tc độ phù hp xác định theo công thc trên càng ln càng
tt. Nguyên tc xác định tham s cho độ phù hp ln nht được gi nguyên lý độ phù hp
cc đại.
Đểc định tham s
β
, ta s trin khai công thc tính L(
β
). Trước hết, hai công thc
có th viết gn thành
Tiếp theo, do có th coi các ví d hun luyn là độc lp c sut vi nhau, ta có:
//bng tích xác sut cho tng ví d hun luyn
Để tin cho vic tính tn, thay vì cc đại hóa L(
β
) ta th cc đại hóa log L(
β
) do
m logarit là hàm đơn điu tiến:
Để cc đại hóa làm l(
β
), ta th dùng phương pháp gradient tăng dn (gradient
ascent) vi công thc cp nht tham s như sau:
trong đó
α
tc độ hc. Công thc này tương t như trong trường hp hi quy tuyến
tính. Tuy nhiên, thay tr đi giá tr gradient nhân vi tc độ hc, trong trường hp này đại
lượng đó được cng vào giá tr tham s trước đó do ta cn cc đại hóa hàm mc tiêu ch
không phi cc tiu hóa như trong hi quy tuyến tính. Do vy, phương pháp này gi
gradient tăng dn.
Tương t k thut s dng trong hi quy tuyến tính, trưc hết, ta tính đạo hàm riêng cho
trường hp ch có mt ví d hun luyn (x, y):
)|()(
β
X,y
P
β
L
=
)(),|1(
xhxyP
==
β
)(1),|0(
xhxyP
==
β
yy
xhxhxyP
=
1
))(1())((),|(
β
)|()(
β
X,y
P
β
L
=
=
=
m
i
ii
xyP
1
),|(
β
=
=
m
i
y
i
y
i
ii
xhxh
1
1
))(1())((
)()(
β
L
β
l
=
[ ]
=
+=
m
i
iiii
xhyxhy
1
))(1log()1()(log
)(βl
j
jj
β
αββ
+
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
188
// đây b qua các bước biến đổi, người đọc có th t thc
hin
Trong trường hp d liu hun luyn gm nhiu d, công thc trên cho phép xây
dng quy tc tăng gradient ngu nhiên (stochastic gradient ascent) như sau:
Cn chú ý rng, công thc này rt ging vi công thc gim gradient ngu nhiên s
dng trong hi quy tuyến tính. Đim khác nhau duy nht là hàm h(x) không còn là hàm tuyến
tính ca x như trường hp trên.
Phương pháp phân loi s dng hi quy logistic phương pháp phân loi theo nguyên
tc xác sut độ chính c tương đối cao. Nhược đim ca phương pháp này là thi gian
hun luyn lâu hơn so vi mt s phương pháp phân loi khác. Ngoài ra, phương pháp này
cũng đòi hi la chn thuc tính đầu vào phù hp.
5.5.3. Hi quy logistic cho phân loi đa lp
Phương pháp hi quy logistic trình by trong phn trước ch dùng được trong phân loi
hai lp, vi nhãn đầu ra nhn mt trong hai giá tr. Trong phn này, ta s xem xét cách m
rng hi quy logistic cho phân loi đa lp, tc là khi nhãn đầu ra th nhn mt trong nhiu
(hơn hai) giá tr. Các trưng hp phân loi đa lp rt thưng gp trên thc tế, d mt bài
o có th phân vào mt trong các loi: cnh tr, hi, th thao, văn hóa, giáo dc, gii trí.
Tn hình 5.15 là ví d minh ha cho phân loi hai lp và ba lp. Để đơn gin cho vic
minh ha bng, các ví d trong nh y đưc biu din bng hai đặc trưng.
Sau đây ta s xem t mt phương pháp m rng hình hi quy tuyến tính cho phân
loi đa lp.
nh 5.15. Phân loi hai lp (trái) và đa lp (phi)
S dng nhiu mô hình hi quy logistic
ch đơn gin nht để thc hin phân loi đa lp kết hp nhiu hình hi quy
logistic thông thường, tc hình phân loi hai lp, để to ra nh đa lp theo sơ đồ
mt chi tt c (one vs. all).
j
i
xhyβl ))(()( x=
β
ijiijj
xhy
))((
x
+
αββ
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
189
Gi s cho bài toán phân loi vi k lp, mi lp nhãn phân loi 1, 2, k. Ta s
xây dng khình hi quy logistic như sau. T b d liu hun luyn, ta to ra k b d liu
cho ki toán phân loi hai lp như minh ha trên hình 5.16:
B d liu th 1: các d vi nhãn 1 (hình tam giác trong hình minh ha) đưc chn
m nhãn dương (1), tt c ví d còn li làm nhãn âm (0). Dùng b d liu này hun luyn mô
nh để d đoán lp 1.
B d liu th 2: các d vi nhãn 2 (hình tròn trong hình minh ha) được chn làm
nhãn dương (1) , tt c d còn li làm nhãn âm (0). Dùng b d liu này hun luyn
nh để d đoán lp 2.
….
B d liu th k: các d vi nhãn k đưc chn làm nhãn dương (1) , tt c d còn
li làm nhãn âm (0). Dùng b d liu này hun luyn mô hình để d đn lp k.
Như vy, ta có xác sut mt ví d nhn nhãn bng i, i = 1…k là: .
Vi mi ví d mi x, nhãn phân loi là nn có giá tr xác sut ln nht:
Hình 5.16. Kết hp nhiu mônh hai lp theo sơ đồ mt chi tt c (one vs all)
Phân loi đa lp s dng hi quy tuyến tính đòi hi thi gian hun luyn lâu hơn so vi
Bayes đơn gin và cũng cn nhiu d liu hun luyn hơn. Phương pháp phân loi này cho độ
)(
)1(
xh
)(
)2(
xh
)(
)(
xh
k
)()|(
)(
xhxiyP
i
==
)(maxarg
)|(
max
arg
)(
xh
xiyPy
i
i
i
=
==
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
190
chính xác tt hơn so vi Bayes đơn gin tuy nhiên đòi hi la chn đặc trưng cn thn. Trong
trường hp các đặc trưng quan h t l tuyến tính vi nhau, độ chính xác khi phân loi s
b nh hưởng.
5.6. SUPPORT VECTOR MACHINES
Support vector machines (SVM) (mt s tài liu dch máy véc tơ ta) k thut hc
giám sát tương đối mi, đưc đề xut ln đầu vào năm 1992 đưc áp dng nhiu t
khong cui nhng năm chín mươi thế k trưc. SVM đưc đề xut ban đầu cho bài toán
phân loi nh phân, và có th m rng cho phân loi đa lp tương t như hi quy logistic.
Hin nay, theo nhiu tài liu, SVM phương pháp hc giám sát ph biến nht.
Nhiu thư vin hoc gói phn mm cho phép s dng ngay SVM cho bài toán hc có giám sát
(phân loi hoc hi quy), người s dng ch cn chn rt ít tham s để th s dng các thư
vin này. SVM cũng cho độ chính xác cao, thưng trong nhóm đứng đầu trong s thut toán
phân loi, trong nhiu ng dng. Nhìn chung, khi bài toán hc giám sát, nếu không
thêm thông tin gì đặc bit thì thut toán đầu tiên nên th là SVM.
Nguyên tc chung
SVM da trên hai nguyên tc chính:
- Th nht, SVM tìm cách phân chia d có nhãn khác nhau bng mt siêu phng sao
cho khong cách t siêu phng ti nhng ví d có nhãn khác nhau ln nht.
Nguyên tc này đưc gi là nguyên tc l cc đại (max margin). Trong quá trình
hun luyn, thut toán SVM c đnh siêu phng l cc đại bng cách gii bài
toán ti ưu cho mt hàm mc tiêu bc 2.
- Th hai, để gii quyết trưng hp các d không th phân chia bng mt siêu
phng, phương pháp SVM s ánh x không gian ban đầu ca các d sang mt
không gian khác thưng là có s chiu cao hơn, sau đó tìm siêu phng vi l cc đại
trong không gian y. Đ tăng tính hiu qu khi ánh x, mt k thut đưc s dng
k thut dùng hàm nhân (kernel function) thay cho tích có hướng ca các vec tơ.
Trong các phn tiếp theo, ta s xem xét c th cách trin khai hai nguyên tc này.
5.6.1. Phân loi tuyến tính vi l cc đi
B phân loi tuyến tính
SVM được phát trin t hình phân loi tuyến tính. Do vy, trước hết ta s xem xét
mô hình phân loi dng này. Xét bài toán phân loi hai lp, trong đó mi ví d được biu din
bng d đc trưng liên tc (s thc), và có th nhn nhãn +1 (ví d dương) hoc 1 (ví d âm).
Tương t các phn trước, gi s tp d liu hun luyn gm n ví d, trong đó ví d th i được
xác định bi (x
i
, y
i
), vi x
i
vec tơ c đặc trưng y
i
nhãn phân loi. Trong d trên
nh 5.17, vec tơ x hai chiu, do vy mi mi d đưc biu din như mt đim trong
không gian hai chiu, các đim đen tương ng vi ví d +1 đim trng biu din d 1.
Trong phn tiếp theo, không gian hai chiu s đưc s dng để tin cho vic minh ho.
Tương t trưng hp hi quy tuyến tính, ta s s dng hàm phân loi có dng:
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
191
f (x) = w
i
x
i
i
=
1
d
+ b = w
T
x + b
trong đó w vec tơ trng s b là độ lch. Đ hiu ý nghĩa các đại lượng này, ta xét
trường hp b = 0 trước. Khi đó, tp các đim (hay vec tơ) x sao cho
w
T
t
=
0
mt đim
trong không gian mt chiu (d = 1), đường thng trong không gian hai chiu (d = 2), mt
phng trong không gian ba chiu, siêu phng (hyperplane) trong trường hp tng quát.
Siêu phng này đi qua gc to độ vuông góc vi vec tơ w. Vi b 0, siêu phng này s
được đẩy khi gc to độ mt khong bng |b|/||w||, trong đó ||w|| là độ dài (chun) ca vec tơ
w. Siêu phng f(x) phân chia không gian thành hai phn, phn bên phi gm nhng đim x
f(x) > 0 phn bên trái gm nhng đim f(x) < 0 (xem hình 5.17).
Như vy, mt ví d x s có nhãn phân loi y đưc xác định như sau:
y
=
sgn
(
f
(
x
))
trong đó sgn() là hàm du, nhn giá tr +1 nếu f(x) > 0 và -1 nếu f(x) < 0.
Cn lưu ý rng, trong ví d trên hình 5.17, ta có th tìm đưc siêu phng f(x) sao cho các
d dương nm v mt phía ví d âm nm v phía còn li. Trong trường hp như vy, ta
nói rng d liu th phân chia tuyến tính. Trường hp d liu không phân chia tuyến tính,
tc là không tn ti siêu phng như vy, s đưc đề cp sau.
Hình 5.17. B phân loi tuyến tính
Phân loi tuyến tính vi l cc đi
th nhn thy, trong trưng hp d liu phân chia tuyến tính, th tìm đưc nhiu
siêu phng cho phép phân cách đúng ví d dương khi d âm như th hin trên hình 5.18.
Vy nên chn siêu phng nào để làm hàm phân loi?
Gi m
+
m
-
khong ch t siêu phng f(x) ti ví d dương và ví d âm gn nht.
Các đim nm cách đu siêu phng các khong m
+
và m
-
đưc th hin bi hai đưng đt nét
trên hình 5.19 to ra mt vùng ngăn cách các d khác du. Siêu phng đưc chn nm
w
w
T
x
+b > 0
w
T
x
+b < 0
w
T
x
+b = 0
w
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
192
gia vùng phân cách, tc là m
+
= m
-
. Độ rng ca vùng pn cách cách này, tc là (m
+
+ m
-
)
được gi là “l” (“margin”) ca siêu phng phân cách.
Nguyên tc l cc đại: Trong s các siêu phng cho phép phân chia d khác du,
SVM s dng siêu phng có l ln nht làm b phân loi
nh 5.18. Tn ti nhiu su phng phân cách ví d dương và ví d âm
Hình 5.19. Su phng phân cách. Các vec tơ ta đưc khoanh tròn bên ngoài
Các d cho phép xác định ranh gii ca l (các đim được khoanh tròn trên hình v)
được gi là các vec tơ ta (support vector).
Ti sao s dng siêu phng vi l cc đại? Khi xây dng b phân loi, mc tiêu
gim ti đa s ví d b phân loi sai, gi tn tht (lost). Trong giai đon hun luyn, ta ch
th tính tn tht trên d liu hun luyn, đưc gi là tn tht thc nghim (empirical lost).
Trong khi đó, mc tiêu là tính tn tht trên d liu mi, tc tn tht thc. Da trên mt lý
thuyết v hc y, siêu phng l cc đại siêu phng cho tn tht thc nh nht trên d
liu mi. V mt trc giác, siêu phng như vy cũng siêu phng “an toàn” nht do nm
xa vùng các d dương âm nên kh năng d mi rơi vào vùng ngược du cũng nh
hơn.
Xác định siêu phng vi l cc đại
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
193
Để xác định siêu phng vi l cc đại, ta cn tìm w b tương ng. Quá trình đó được
thc hin như sau. Trước hết, có th yêu cu hàm phân loi cho phép phân chia toàn b ví d
hun luyn vi mt khong cách an toàn, chng hn phi thon:
w
T
x
i
+
b
+
1
nếu y
i
= +1
w
T
x
i
+
b
1
nếu y
i
= 1
hay viết gn li thành
y
i
(
w
T
x
i
+
b
)
1
0
vi mi i. Điu này th thc hin được,
chng hn bng cách nhân wb vi h s phù hp.
Các đim x
i
sao cho
w
T
x
i
+
b
= +
1
nm trên siêu phng song song vi siêu phng phân
cách cách gc to độ mt khong |1-b|/||w||. Tương t, các đim x
i
sao cho
w
T
x
i
+
b
=
1
nm trên siêu phng song song vi siêu phng phân cách cách gc to độ mt khong |-1-
b|/||w||. Khi đó, m
+
= m
-
= 1/||w||, giá tr ca l s bng 2/||w||. Để giá tr l cc đại, ta
cn xác định w sao cho 2/||w|| là ln nht, hay ||w||
2
/2 nh nht (cc tiu hoá ||w||
2
thun li
hơn do d tính đạo hàm hơn). Như vy, siêu phng l cc đại đưc xác định bng cách tìm
w và b sao cho:
1
2
|| w ||
2
là nh nht,
đồng thi tho mãn ràng buc:
y
i
(
w
T
x
i
+
b
)
1
0
vi mi i.
Phân loi vi l mm cho d liu không phân chia tuyến tính
Trong trường hp d liu không th phân chia tuyến tính, chng hn do mt s d
nhiu, hay thm ctrong trưng hp phân chia tuyến tính, vn có th tìm được siêu phng
vi l rng nếu chp nhn phân loi sai mt s d. Vic chp nhn mt s trưng hp sai
được th hin bng cách thay các ràng buc tnh:
y
i
(
w
T
x
i
+
b
)
1
ξ
i
trong đó
ξ
i
0
các biến ph, đưc thêm vào để cho phép các d nm trong vùng
ca l (
1
ξ
i
>
0
) hoc thm chí b phân loi sai (
ξ
i
1
). Tng ca các biến ph này s gii
hn mc độ sai khi phân loi, tng càng ln chng t càng sai nhiu, nếu tt c biến ph bng
0 thì toàn b d liu không ln vào vùng l được phân loi đúng. Do vy, ta th thêm
tng các biến ph vào hàm mc tiêu như mt thành phn pht cho các trưng hp b sai. Bài
toánm cc tr trên s tr thành:
Tìm w và b sao cho:
1
2
|| w ||
2
+C
ξ
i
i
nh nht,
đồng thi tho mãn ràng buc:
y
i
(
w
T
x
i
+
b
)
1
ξ
i
,
ξ
i
0
, vi mi i
Tham s C > 0 th hin s ưu tiên gia hai mc tiêu: 1) tìm được l ln; và 2) gim s
li. C càng ln thì mc tiêu th hai càng đưc ưu tiên ngược li. hình phân loi như
vy gi là phân loi vi l mm (soft margin).
Bài toán ti ưu trên gm yêu cu cc tiu hoá mc tiêu các ràng buc. Bài toán này
th gii bng phương pháp nhân t Lagrange (chi tiết v vic áp dng phương pháp này
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
194
không được trình by đây). S dng phương pháp nhân t Lagrange, ta đưa bài toán v
dng đối ngu như sau:
Tìm các tham s
i
sao cho hàm mc tiêu:
α
i
1
2
i=1
n
y
i
y
j
α
i
α
j
x
i
T
x
j
j=1
n
i=1
n
đạt giá tr ln nht (cc đại hoá), đồng thi thon các ràng buc:
y
i
α
i
i
=
1
n
= 0, 0
α
i
C
Sau khi xác định được
α
i
, trng s w được tính như sau:
w = y
i
α
i
i
=
1
n
x
i
để tính b, ta có th chn mt giá tr i sao cho
α
i
> 0 và tính b theo công thc sau:
b = y
i
w
T
x
i
= y
i
y
j
α
j
j=1
n
x
j
T
x
i
SVM vi vec tơ trng s w tham s b c định như trên được gi là SVM tuyến tính.
Cn lưu ý rng mi ví d đều có giá tr tham s
α
i
tương ng. Các ví d có giá tr
α
i
> 0
nm trên ranh gii ca l (hoc bên trong l nếu s dng l mm). Các ví d này to thành các
vec tơ ta (support vector) xác định gii hn l. Đây là các d quan trng trong d liu
hun luyn, cho phép xác định siêu phng phân cách ca SVM cũng nm gn siêu phng
y nht. Cácd còn li nm bên ngi vùng l có th b đi mà không nh hưng ti v
trí ca l hàm phân loi. Nói cách khác, các vec tơ ta cha toàn b thông tin cn thiết t
d liu hun luyn đểy dng m pn loi cho SVM.
Như vy, mc hàm phân loi đưc to thành t c d hun luyn, nhưng ch
nhng d tương ng vi
α
i
> 0 mi đóng gópo hàm phân loi (trng s w t hp ca
các d này), s lượng d như vy thường không ln. Đây mt trong nhng đặc
đim giúp SVM có tính khái quát hoá và kh năng d toán tt cho d liu mi.
5.6.2. K thut hàm nhân và SVM tng quát
B phân loi tuyến tính trình by trên cho kết qu tt trong trưng hp d liu th
phân chi tuyến tính. Vi d liu không phân chia tuyến tính, vic s dng hàm phân loi phi
tuyến s phù hp cho kết qu tt hơn. Trong phn này, ta s xem xét cách m rng SVM
tuyến tính cho trưng hp phi tuyến.
Vic s dng hàm phân loi tuyến tính cho trường hp không tuyến tính th thc
hin bng cách ánh x không gian d liu ban đầu X sang không gian mi F bng mt hàm
ánh x phi tuyến
φ
(x). Thông thường không gian F s chiu ln hơn s chiu trong không
gian d liu ban đầu. Trong không gian mi, hàm phân loi tr thành:
f
(
x
)
=
w
T
φ
(
x
)
+
b
nh hưởng ca vic ánh x sang không gian mi đưc minh ho qua mt s ví d sau.
d 1. Để minh ho cho vic ánh x sang không gian mi, trước tiên ta xét mt ví d
đơn gin như trên hình 5.20. D liu ban đầu (bên trái) thuc không gian 1 chiu, tc mi
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
195
ví d được biu din bi 1 thuc tính (x). Các chm đen tương ng ví d dương, chm trng là
ví d âm. Rõ ràng không th tìm được mt đim cho phép phân chia các ví d khác du. Hình
n phi th hin vic ánh x sang không gian mi vi 2 chiu (z
1
, z
2
) vi (z
1
= x, z
2
= x
2
).
th thy trong không gian mi có th tìm được đường thng cho phép phân cách d dương
khi ví d âm.
nh 5.20. Ví d ánh x t không gian mt chiu sang không gian hai chiu s dng ánh
x
(
x
)
!
(
z
1
,
z
2
)
=
(
x
,
x
2
)
. Trong không gian hai chiu, d liu có th phân chia tuyến tính.
d 2. Trên hình 5.21 d kc. T không gian 2 chiu ban đầu (x
1
, x
2
), bng ánh
x
(
x
1
,
x
2
)
!
(
z
1
,
z
2
,
z
3
)
=
(
x
1
2
, 2
x
1
x
2
,
x
2
2
)
ta đưc không gian mi ba chiu, trong đó các d
dương (du nhân) được phân chia tuyến tính khi d âm (chm trng) bng mt mt phng.
Vec tơ đặc trưng trong không gian mi bao gm tt c các tích bc hai ca các đặc trưng trong
không gian gc.
Hình 5.21. Ví d mt ánh x t không gian hai chiu sang không gian ba chiu. Trong
không gian mi, các ví d có th phân chia tuyến tính bi mt mt phng.
Ánh x bng cách dùng hàm nhân (kernel)
Các ví d trên cho thy, vic ánh x sang không gian mi (nhiu chiu hơn) làm cho d
liu tr thành phân chia tuyến tính. Khó khăn ch, vic thc hin các ánh x như vy đòi hi
tính toán các đặc trưng mi. S lưng đặc trưng như vy th rt ln. Chng hn, vi phép
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
196
ánh x trong d 2 trên, s đặc trưng mi xp x bình phương s đặc trưng cũ. Mt s
phép ánh x khác dn ti s đặc trưng ln hơn na, thm chí cùng. Vic tính s lượng
đặc trưng mi nhiu như vy là không thc tế.
Để tránh vic nh toán các đặc trưng trong không gian mi, SVM s dng các hàm
nhân (kernel function). C th, do trong không gian mi, vec tơ trng s ca SVM được tính
bi
w = y
i
α
i
i
=
1
n
φ
(x
i
)
n hàm phân loi s tr thành
f (x) = w
T
φ
(x)+ b = y
i
α
i
φ
(x
i
)
T
i
=
1
n
φ
(x) + b
Hàm mc tiêu cn cc đại hoá cũng tr thành
α
i
1
2
i=1
n
y
i
y
j
α
i
α
j
φ
(x
i
)
T
φ
(x
i
)
j=1
n
i=1
n
Do các biu thc trên cha
φ
(
x
)
T
φ
(
x
')
nên nếu ta có th tìm được hàm
K
(
x
,
x
')
=
φ
(
x
)
T
φ
(
x
')
, ta th s dng
K
(
x
,
x
')
trong các biu thc trên không cn nh
c th các ánh x
φ
(
x
)
,
φ
(
x
')
. Hàm
K
(
x
,
x
')
như vy đưc gi là hàm nhân (kernel function)
cách s dng hàm nhân như vy đưc gi là k thut nhân (kernel trick).
Ví d. Quay li ví d 2 trên vi ánh x
φ
(
x
)
=
(
x
1
2
, 2
x
1
x
2
,
x
2
2
)
. Dng chng minh
K
(
x
,
x
')
=
φ
(
x
)
T
φ
(
x
')
=
(
x
T
x
')
2
như vy, thay vì tính
φ
(
x
)
, ta s dùng
K
(
x
,
x
')
=
(
x
T
x
')
2
.
Vi k thut s dng m nhân, ta đưc SVM tng quát có dng:
Hàm phân lo
i:
f (x) = y
i
α
i
K(x
i
i
=
1
n
, x) + b
Trong đó các tham s được xác định bng cách gii bài toán ti ưu sau:
Cc đại hoá hàm mc tiêu:
α
i
1
2
i=1
n
y
i
y
j
α
i
α
j
K(x
i
, x
j
)
j=1
n
i=1
n
đồng thi tho mãn các ràng buc:
y
i
α
i
i
=
1
n
= 0, 0
α
i
C
sau đó tính b theo công thc sau:
b = y
i
w
T
x
i
= y
i
y
j
α
j
j=1
n
x
j
T
x
i
Mt s dng hàm nhân thông dng
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
197
Vi mi bài toán phù hp vi mt dng hàm nhân c th. Sau đây mt s dng hàm
nhân thưng đưc s dng vi SVM:
Hàm nhân đa thc:
K
(
x
,
x
')
=
(
x
T
x
'
+
1)
d
Trong trường hp d = 1, hàm nhân gi là hàm tuyến tính (không ánh x c) SVM
tr thành SVM tuyến tính. Trong trường hp nói chung, d là bc ca hàm nhân đa thc.
Hàm nhân Gauss:
K
(
x
,
x
')
=
exp(
γ
||
x
x
' ||
2
)
trong đó ||x|| là đội ca vec tơ x :
|| x ||= x
T
x
;
γ
tham s th hin đ rng ca nhân.
Hàm nhân sigmoid:
K
(
x
,
x
')
=
tanh(
κ
x
T
x
+
θ
)
Trong trưng hp nói chung, nếu không có thông tin gì v bài toán thì nên th hàm nhân
Gauss. Đây là dng hàm nhân thông dng nht.
5.6.3. S dng trên thc tế
Hun luyn SVM
Hun luyn SVM quá trình xác định các tham s
α
bng cách gii bài toán ti ưu đã
trình by trên. Đây bài toán ti ưu vi hàm mc tiêu bc hai th gii bng ch
phương pháp s. Trên thc tế, mt s phương pháp đã được thiết kế để gii bài toán ti ưu
y, tt c đều da trên vic chia nh bài toán ti ưu thành các bài toán con. Phương pháp
thông dng nht Sequential Minimal Optimization (SMO). Phương pháp y ln lượt c
định các giá tr
α
và ch cho phép hai giá tr thay đổi sau đó tìm giá tr ti ưu ca hai tham s.
Quá trình này đưc thc hin vi tng đôi
α
cho đến khi đạt ti giá tr ti ưu. Chi tiết v thut
toán hun luyn SMO không đưc trình by đây.
Phân loi đa lp
Trong trường hp phân loi vi nhiu nhãn, cách thường dùng kết hp nhiu SVM
nh phân vi nhau. hai cách kết hp các b phân loi nh phân như vy. ch th nht
được gi là kết hp tng đôi (Pairwise). Cách th hai được gi là mt chi tt c (one-vs-all).
Chi tiết v hai cách này hoàn tn ging như trong phn phân loi đa lp vi hi quy logistic
đã trình by trên.
La chn tham s
Tham s đầu tiên cn quan tâm khi s dng SVM dng hàm nhân tham s C. Vi
mi dng m nhân li các tham s riêng ca mình như bc d ca hàm nhân đa thc, độ
rng ca hàm nhân Gaus hay tham s ngưỡng ca nhân sigmoid.
Vic la chn hàm nhân th thc hin nếu biết các đặc đim ca bài toán. Trong
trường hp không có thông tin như vy, cn th nghim các dng nhân tham s khác nhau
bng cách s dng th tc kim tra chéo (cross-validation) s được trình by trong phn 5.7.2.
Các ưu đim ca SVM
SVM có nhiu ưu đim:
a. Đây phương pháp có cơ s lý thuyết tt da trên lý thuyết v kh năng ki
quát hóa ca b phân loi.
b. Có th làm vic tt vi d liu nhiu chiu (nhiu thuc tính).
c. Cho kết qu rt chính c so vi các phương pháp khác trong hu hết ng
dng.
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
198
d. Hin nay có nhiu thư vin và phn mm cho phép s dng SVM rt thun tin
kết hp vào các chương trình viết trên hu hết các ngôn ng lp trình thông
dng.
SVM mt trong nhng phương pháp phân loi đưc dùng ph biến nht hin nay do
độ cnh xác cao, nhiu phn mm thư vin có h tr.
5.7. ĐÁNH GIÁ VÀ LA CHN MÔ HÌNH
5.7.1.Các độ đo s dng trong đánh giá
Để đánh giá hiu qu ca mô hình, ta cn có các tiêu chí hay c độ đo s hiu qu.
nhiu độ đo khác nhau có th s dng, tùy vào ng dng c th ca thut toán phân loi hoc
hi quy trong tng trưng hp. Phn này s gii thiu mt s độ đo thông dng nht.
Độ đo dùng trong phân loi.
Trưc tiên, xét trường hp phân loi hai lp, trong đó mi d th nhn nhãn
dương hoc âm. Vi mi trường hp ví d mà mô hình d đn nhãn, có bn kh năng xy ra
như lit trên bng sau, trong đó nhãn tht là nhãn ca dnhãn d đn do mô hình
tính toán ra:
Nhãn d đn
Nhãn tht Dương Âm Tng s
Dương TP: dương đúng FN: âm sai p
Âm FP: dương sai TN: âm đúng n
Tng s p' n' N
Theo bng trên, nếu mt ví d loi dương đưc mô hình d đoán là dương thì được gi
dương đúng (true positive: TP), nếu đưc d đn âm thì gi âm sai (false negative:
FN). Mt d loi âm nếu đưc hình d đoán dương thì gi là dương sai (false
positive: FP), nếu đưc d đn là âm thì gi là âm đúng (true negative: TN).
S dng các khái nim TP, TN, FP, FN như trên, th định nghĩa mt s độ đo hiu
qu phân loi như sau (lưu ý: ta s s dng TP, TN, FP, FN để ký hiu s ví d dương đúng,
âm đúng, dương sai, âm sai, N là tng s d):
t l li: error =
FP
+
FN
N
độ chính xác accuracy: accuracy =
TP
+
TN
N
= 1 – error
t l dương đúng: tp-rate =
TP
p
t l dương sai: fp-rate =
FP
p
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
199
độ chính xác precision: precision =
TP
p'
độ thu hi: recall =
TP
p
= tp-rate
độ đo F F-measure =
precision
+
recall
2
độ nhy: sensitivity =
TP
p
= tp-rate
độ c th: specificity =
TN
n
= 1 – fp-rate
c độ đo nói trên đều có giá tr nm trong khong [0, 1].
Trong các độ đo nói trên, các độ đo accuracy, recall và precision thường được s dng
nht. Độ đo accuracy được ng khi ta ch quan tâm ti độ chính xác nói chung. Đ đo
precision recall được dùng khi ta quan tâm ti hiu sut phân loi cho mt lp c th. Ví
d, khi phân loi email thành “thư rác” “thư bình thường”, ta cn quan tâm ti t l thưc
phát hin được, tc độ đo recall, t l thư rác phát hin đúng trong s thư c được d
đn, tc độ đo precision. Cn chú ý rng, khi recall tăng thì precision thường gim
ngược li. Ví d, trong trường hp lc thư rác, ta có th d đoán tt c thư thư rác, khi đó
recall đạt giá tr cc đại bng 1. Tuy nhiên, khi đó, giá tr p’ cũng tăng lên và do vy precision
s gim đi. Độ đo F cho phép tính ti vn đề y bng cách ly trung bình ca hai giá tr
precision recall.
Trong trường hp phân loi nhiu lp, các độ đo recall, precision, sensitivity,
specificity cho mi lp đưc tính bng cách coi đó là lp dương và tt c các lp còn li được
gp chung thành lp âm.
Độ do dùng trong hi quy
Trong trưng hp hi quy, hai độ đo thường dùng li trung bình tuyt đối MAE
(Mean absolute error), và li trung bình bình phương MSE (Mean squared error).
Gi s ta N d hun luyn vi giá tr đu ra y
1
, y
2
, …, y
N
. Tiếp theo, gi s vi
các d này, mô hình hi quy đưa ra d đoán giá tr đầu ra ln lượt là f
1
, f
2
, …, f
N
. Hai độ đo
trên khi đó được định nghĩa như sau:
Độ đo MAE tính giá tr li trong mi trường hp như nhau, trong khi độ đo MSE nhn
mnh vào nhng trưng hp li ln. C th, c chênh lch tr tuyt đối ln hơn 1 s
càng ln do được bình phương. Trong khi đó, các chênh lch vi tr tuyt đối nh hơn 1 khi
được bình phương s gim đi so vi giá tr ban đầu.
=
=
N
i
ii
yf
N
MAE
1
1
=
=
N
i
ii
yf
N
MSE
1
2
)(
1
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
200
5.7.2. Đánh giá mô hình bng kim tra chéo
Khi s dng các thut toán phân loi hi quy, mt công đon quan trng đánh giá
độ chính xác ca mô hình. Vic đánh giá hình là cn thiết do hai lý do. Th nht, cn biết
hình đưc xây dng hun luyn độ chính c ra sao, đáp ng u cu ca bài
toán đặt ra không, trưc khi s dng mô hình để gii quyết bài toán. Th hai, thông thưng ta
th nhiu hình phân loi hoc hi quy và cn la chn mô hình tt nht trong s đó
cho bài toán cn gii quyết. Chng hn, cn la chn gia cây quyết định, k-NN, hay hi quy
logistic. Hoc vi mt loi hình, cn la chn tham s cho độ chính xác cao nht. d,
vi k-NN, cn chn giá tr k (s láng ging) đem li độ chính xác cao nht cho mi bài toán và
b d liu.
Mt trong nhng cách đánh giá hình là hun luyn hình trên toàn b tp d liu
hun luyn, sau đó th nghim độ chính xác trên cùng tp d liu đó bng cách dùng mô hình
đã hun luyn để d đoán giá tr đầu ra cho các d hun luyn so sánh giá tr d đn
vi giá tr thc ca đầu ra cho c d. Tuy nhiên, cách đánh giá này là không hp lý
không nên s dng. Lý do là cách đánh giá này không cho kết qu khách quan nếu mô hình b
quá va d liu, tc cho độ chính xác cao trên d liu hun luyn nhưng li cho kết qu
m chính xác trên d liu mi.
Thay đánh giá mô hình trên cùng b d liu đã dùng hun luyn hình, cách đánh
giá khách quan hơn là kim tra chéo (cross-validation). Có mt s biến th khác nhau ca th
tc kim tra chéo, s được trình by dưi đây.
Kim tra chéo vi tp kim tra tách riêng (hold-out cross validation), hay th gi
kim tra chéo đơn gin, phương pháp kim tra co đơn gin nht và được thc hin như
sau:
e. Chia tp d liu hun luyn S ban đầu mt cách ngu nhiên thành hai tp con:
tp th nht S
hl
đưc gi là tp hun luyn, và tp th hai (phn còn li) S
kt
gi
tp kim tra. Thông thưng, S
hl
gm 70% tp d liu ban đầu S
kt
gm
30% còn li.
f. Hun luyn mô hình cn đánh giá h
i
tn tp S
hl
.
g. Đánh giá độ chính xác ca mô hình h
i
tn tp kim tra S
kt
.
h. Chn mô hình độ chính xác cao nht trên tp kim tra để s dng (nếu mc
đích là la chn mô nh).
Do hình đưc đánh giá trên tp d liu kim tra S
kt
, d liu chưa đưc dùng khi
hun luyn nên độ chính xác ca mô hình trong trường hp d liu mi được ước lượng chính
c hơn. Thông thường, tp d liu hun luyn kích thưc bng 1/4 đến 1/3 tp d liu
ban đầu, hay khong 30% tp d liu ban đầu.
Trong trường hp la chn hình, hình tt nht được chn sau đó được hun
luyn li trên toàn b tp d liu ban đầu. Nói chung, vic hun luyn li mô hình trên tp d
liu ln hơn như vy cho phép tăng độ chính xác.
Mt nhưc đim ca phương pp s dng b d liu kim tra riêng phn dùng để
hun luyn (tp S
hl
) ch còn khong 70% tp ban đầu và do vy b phí quá nhiu d liu dùng
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
201
để kim tra. Dưi đây là phương pháp kim tra chéo khác cho phép s dng ít d liu kim tra
hơn.
Kim tra chéo k-fold (k-fold cross validation). Đây mt biến th tt hơn so vi kim
tra chéo đơn gin, và được thc hin như sau:
1. Chia ngu nhiên tp d liu ban đầu S thành k tp d liu có kích thưc (gn) bng
nhau S
1
, S
2
,…, S
k
.
2. Lp li th tc sau k ln vi i = 1,..,k:
i. Dùng tp Si làm tp kim tra. Gp k-1 tp còn li tnh tp hun luyn.
j. Hun luyn mô hình cn đánh giá trên tp hun luyn.
k. Đánh giá độ chính xác ca mô hình trên tp kim tra.
3. Đ chính xác ca mô hình được tính bng trung bình cng độ chính xác trên k ln
kim tra bước trên.
4. Chn mô hình độ chính xác trung bình ln nht.
Ưu đim chính ca kim tra chéo k-fold là nhiu d liu hơn được s dng cho hun
luyn. Mid được s dng để kim tra đúng 1 ln, trong khi đưc s dng trong tp hun
luyn k - 1 ln. Nhược đim ca phương pháp y là cn hun luyn đánh giá hình k
ln, do vy đòi hi nhiu thi gian.
Thông thưng, phương pháp y đưc s dng vi k = 10. Giá tr này va cho kết qu
đánh giá khách quan va không đòi hi hun luyn mô nh quá nhiu.
Kim tra chéo vi mt d kim tra (Leave one out cross validation, hay LOOCV).
Đây trường hp riêng ca kim tra co k-fold, trong đó giá tr ca k bng s d trong
tp d liu ban đầu. Như vy, trong mi ln kim tra, ch mt d được dành ra m d
kim tra, trong khi tt c các d còn li đưc dùng để hun luyn. Độ chính xác sau đó
cũng đưc tính trung bình trên tn b các d. Phương pháp này đưc dùng trong trường
hp b d liu ban đầu có kích thưc nh và do vy cn dành nhiu ví d cho tp hun luyn.
5.7.3. La chn đặc trưng
La chn đặc trưng (feature selection) mt trong nhng k thut quan trng khi xây
dng các h thng hc máy. Vic la chn được các đặc trưng hp lý để biu din các d
cho phép to ra các mô hình hc máy có độ chính xác cao. Như đã trình by đầu chương, để
phân loi hoc hi quy, mi ví d hay đối tưng cn biu din dưi dng vec tơ các đặc trưng.
Vi mi bài toán c th, ta th chn các đặc trưng khác nhau. d, trong bài toán phân
loi email thành thư rác hoc thư thưng, th s dng đặc trưng các t cha trong thư,
địa ch nơi gi, dòng tiêu đề, độ dài thư, địa ch người nhn. Trong đó, địa ch nơi gi
thông tin quan trng v vic đó là thư rác hay không, trong khi địa ch người nhn không liên
quan ti phân loi này, do vy không nên s dng đặc trưng địa ch người nhn khi phân
loi thư.
Tp đặc trưng phù hp vi bài toán phân loi phi tha mãn hai điu kin sau:
l. Giá tr các đặc trưng có quan h vi nhãn phân loi và do vy vic s dng đặc
trưng cho thêm thông tin v phân loi ca các ví d.
m. Tp đặc trưng không dư tha. Nếu giá tr mt đặc trưng có th suy ra t giá tr
mt s đặc trưng khác thì đặc trưng đang xét b coi dư tha do không cung
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
202
cp thêm thông tin cho mô hình phân loi. Vic bt các thuc tính dư tha mt
mt cho phép gim thi gian tính toán, mt khác cho phép tăng độ chính xác
ca mô hình trong mt s trưng hp.
Khi la chn đặc trưng, t tp đặc trưng ban đầu bao gm n đặc trưng ta cn la chn m
đặc trưng (m << n) tha mãn hai điu kin tn.
hai cách tiếp cn chính cho la chn đặc trưng: 1) la chn bng cách lc (filtering),
và 2) la chn bng phương pháp bao (wrapper).
Lc đặc trưng (feature filtering).
Đây dng phương pháp heuristic, theo đó ta dùng mt độ đo S(x
i
) th hin s liên
quan gia tng đặc trưng x
i
vi nhãn phân loi, hay nói cách khác, đó độ đo thông tin
đặc trưng x
i
cung cp v nhãn phân loi ca các ví d. Các đặc trưng sau đó được sp xếp theo
th t gim dn ca độ đo này và m đặc trưng có độ đo liên quan ln nht s đưc chn.
Đối vi các đặc trưng ri rc, độ đo thưng dùng nht là độ đo thông tin tương h MI
(mutual information). Độ đo thông tin tương h MI gia đặc trưng x
i
và nhãn pn loi y ca
đầu ra được định nghĩa như sau:
trong đó values(x
i
) tp các giá tr mà x
i
có th nhn, values(y) tp các giá tr
nhãn phân loi mà y có th nhn. Các giá tr c sut p(x
i
, y), p(x
i
), và p(y) được tính t tp d
liu hun luyn. Độ đo MI cho biết lưng thông tin mà ta có được v y khi biết giá tr ca x
i
.
Gi s ta đã tính được độ đo MI sp xếp đưc các đặc trưng theo th t gim dn ca
MI. Vy cn chn bao nhiêu đặc trưng trong s đó, tính t trên xung dưới? Để xác định s
đặc trưng tt nht, ta th s dng phương pp kim tra chéo đã trình by trên. C th,
ln lưt chn m = 1, 2, … đặc trưng có MI cao nht, vi mi giá tr ca m dùng kim tra chéo
để tính độ chính xác. Lp li quá trình y cho ti khi độ chính xác kim tra chéo không tăng
bt đầu gim.
Chn đặc trưng bng mô hình bc (wrapper feature selection).
Phương pháp này cho phép chn tp đặc trưng tt cho tng hình phân loi c th.
Gi s ban đầu ta có n đặc trưng. T s đặc trưng này có th sinh ra tt c 2
n
tp đặc trưng con
khác nhau. Ta th ln lưt th độ chính c ca các tp đặc trưng con này (bng kim tra
chéo) vi mt thut toán phân loi đưc chn, sau đó gi li tp đặc trưng con cho độ chính
xác cao nht và dùng tp đặc trưng đó để xây dng mô hình. Như vy, theo phương pháp này,
độ tt ca tng đặc trưng được tính xung quanh thut toán phân loi c th, do vy phương
pháp có tên là bc (wrapper), theo nghĩa bc quanh thut toán phân loi.
Nếu n ln, vic lit và so sánh toàn b 2
n
tp đặc trưng con đòi hi tính toán rt
nhiu, do vy phương pháp vét cn này không th s dng được. Thay vào đó, th s
dng tìm kiếm tham lam để tìm ra tp đặc trưng con tương đối tt.
hai cách tìm kiếm tham lam được dùng để tìm tp đặc trưng con tt: tìm kiếm tiến
(forward search) và tìm kiếm lùi (backward search).
Th tc tìm kiếm tiến được thc hin như sau:
=
)( )(
)()(
),(
log),(),(
ii
xvaluesx yvaluesy
i
i
ii
ypxp
yxp
yxpyxMI
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
203
Đầu vào: tp đặc trưng ban đầu gm n đặc trưng x
1
, x
2
, …, x
n
thut toán phân loi A
Đầu ra: tp đặc trưng tt F*
Thc hin:
1. Khi to tp đặc trưng F
2. Lp vi (i = 1 to n -1)
i. Thêm mt đặc trưng chưa thuc F vào F để to thành tp đặc trưng F
i
đánh giá độ chính xác ca A vi tp đặc trưng F
i
bng kim tra chéo.
ii. Chn tp đặc trưng F
i
cho kết qu tt nht bưc i.
iii. Gán F F
i
3. Tr v tp đặc trưng F cho độ chính xác cao nht trong n bước lp
Khi đầu t tp đặc trưng rng, thut toán trên gm n - 1 bước lp chính, mi bưc lp
b sung thêm mt đặc trưng o tp đặc trưng hin thi. C th, ti mi bước lp, thut toán
tìm mt đặc trưng sao cho khi thêm mt mình đặc trưng đó o tp đặc trưng hin thi, độ
chính xác (kim tra chéo) đạt được tt nht. Cui cùng, thut toán tr v tp đặc trưng cho
độ chính xác cao nht trong s n tp đặc trưng đưc to ra.
Ngược li vi tìm kiếm tiến, tìm kiếm lùi (backward search) khi đầu vi tp đặc trưng
gm toàn b n đặc trưng ban đầu, sau đó cũng lp vi n-1 bưc. Ti mi bước, thut toán tìm
cách loi khi tp đặc trưng hin thi mt đặc trưng, sao cho sau khi loi mt mình đặc trưng
đó, độ chính xác ca mô hình là ln nht. Cui cùng, thut toán tr v tp đặc trưng cho độ
chính xác cao nht trong s n tp đặc trưng đưc to ra.
So sánh phương pháp chn đc trưng lc và bc.
Phương pháp bc cho kết qu chn đặc trưng chính xác hơn kết qu này đặc thù
cho thut toán phân loi c th. Tuy nhiên, phương pháp này tn nhiu thi gian do cn xây
dng và th nghim nhiu mô hình phân loi vi (O(n
2
)) tp đặc trưng con.
Trong khi đó, phương pháp lc mt phương pháp dng heuristic tp đặc trưng
được chn không ph thuc thut toán phân loi c th. Tuy nhiên, phương pháp này đòi
hi tính toán ít hơn do vy có th s dng trong trưng hp tp đặc trưng ban đầu ln,
d khi phân loi văn bn.
5.8. SƠ LƯỢC V MT S PHƯƠNG PHÁP HC MÁY KHÁC
Ngoài ba phương pháp hc y dùng cho phân loi đưc trình bày trên, rt nhiu
phương pháp hc máy kc đã đưc phát trin s dng trong nhiu ng dng khác nhau.
Sau đây gii thiu sơ lược v mt s phương pháp đưc ng dng nhiu hoc và độ chính
xác tt.
Mng nơ ron nhân to
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
204
Mng nơ ron nhân to da trên nguyên lý h thng thn kinh (nơ ron) ca ngưi
động vt bc cao, trong đó s dng nhiu nút được ni vi nhau thành mt mng lưới. Tín
hiu được truyn t nút n sang nút kia tùy thuc mc tín hiu và cơ chế x lý ti mi nút.
Trên hình sau mt d t chc mng nơ ron trong đó mt s nút nhn tín hiu t
ngoài vào, mt s nút tr tín hiu ra ngoài, các nút có th truyn tín hiu ti nhng nút khác.
Hình 5.22. Ví d mng nơ ron nhân to
Ti mi nút có mt hàm cho phép tr ra kết qu theo tín hiu đầu vào. Nh vic s dng
nhiu nút vi nhng hàm x lý riêng ti tng nút, mng nơ ron cho phép xây dng nhng hàm
đích rt phc tp để ánh x t tín hiu đầu o tnh kết qu đu ra.
Quá trình hc mng nơ ron là q trình hiu chnh tham s ca hàm x lý ti các nút sao
cho ánh x đầu vào sang đầu ra phù hp nht vi d liu hun luyn.
Mng nơ ron nhân to là phương pháp hc máy đưc phát trin t sm, có th dùng cho
phân loi hoc hi quy vi độ cnh c cao, đã đang đưc s dng trong rt nhiu ng
dng khác nhau. Nhìn chung, mng nơ ron nn to là phương pháp tương đối đa năng, có th
s dng trong nhiu i tn phân loi vi nhiu dng d liu khác nhau nếu không đòi hi
mô hình hc ra phi d hiu đối vi con ngưi (như trong trưng hp cây quyết định).
Boosting
Khác vi nhng phương pháp trình bày trên, boosting mt dng meta learning, tc
làm vic da tn nhng phương pháp hc khác. Để gii quyết bài toán phân loi, boosting
kết hp nhiu b phân loi đơn gin vi nhau để to ra mt b phân loiđộ chính xác cao
hơn.
d, ta th xây dng b phân loi đơn gin bng ch s dng cây quyết định ch
mt nút nút gc, còn được gi gc cây quyết định. Cây quyết định như vy s độ
chính xác không cao. Thut toán boosting khi đó kết hp các gc cây như sau:
1. Mi ví d hun luyn được gán mt trng s, đầu tiên trng s bng nhau.
2. Thut toán lp li nhiu vòng
I. Ti mi vòng, la chn mt gc cây có độ chính xác tt nht. Gc cây chính
c nht là gc câyli nh nht vi li tính bng tng trng s nhng ví
d b phân loi sai.
II. Nhng ví d b phân loi sai được tăng trng s trong khi nhng ví d đúng
b gim trng s. Nh vic thay đổi trng s như vy, thut toán s chú ý
nhiu hơn ti ví d b phân loi sai trong nhng vòng sau.
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
205
3. B phân loi cui đưc to ra bng tng các cây quyết định xây dng ti mi
vòng lp.
Thut toán boosting có mt s ưu đim như:
Độ chính xác cao.
Ít b nh hưng bi hin tượng quá va d liu.
Có th s dng vi nhiu phương pháp phân loi đơn gin khác nhau.
5.9. CÂU HI VÀ BÀI TP CHƯƠNG
1. Cho d liu hun luyn như trong bng (f là nhãn phân loi).
X Y Z
f
1 0 1
1 1 0
0 0 0
0 1 1
1 0 1
0 0 1
0 1 1
1 1 1
1
0
0
1
1
0
1
0
a) Hãy xây dng cây quyết định s dng thut tn ID3. Trong trường hp hai thuc
tính tt tương đương t chn theo th t bng ch cái.
b) Gi s không biết nhãn phân loi ca d cui cùng, hãy xác định nhãn cho ví d đó
bng phương pháp Bayes đơn gin (ch rõ các xác sut điu kin thành phn) và k láng
ging gn nht vi k = 5.
2. Cho d liu hun luyn dưi đây vi 16 ví d.
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
C
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
S dng phân loi Bayes để tính giá tr ca C nếu biết A = 0, B = 1. Yêu cu viết chi tiết
các bước.
3. Cho d liu hun luyn như trong bng (f là nhãn phân loi).
a) Hãy xác định nhãn cho d (Màu: Trng, Hình dng: Tròn, KL: Nng) bng phương
pháp Bayes đơn gin (ch rõ các xác sut điu kin thành phn)
b) Hãy xác định nút gc cho cây quyết định s dng thut toán ID3
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
206
4. Cho d liu hun luyn như trong bng sau, trong đó mi ct (tr ct ngoài cùng bên trái)
ng vi mt mu, dòng dưi cùng (T) cha giá tr đích:
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
2
0
0
0
1
1
0
0
1
1
0
1
0
1
1
3
1
1
1
0
1
0
0
1
1
0
0
0
1
1
4
0
1
0
0
1
0
0
1
0
1
1
1
0
1
5
0
0
1
1
0
1
1
0
1
1
0
0
1
0
6
0
0
0
1
0
1
0
1
1
0
1
1
1
0
T
1
1
1
1
1
1
0
1
0
0
0
0
0
0
a) Hãy thc hin thut toán gim gradient cho hi quy tuyến tính vi d liu trên,
ghi li giá tr trng s sau mi bưc.
b) Xây dng cây quyết đnh cho d liu trong bng.
5. Hãy v cây quyết định đ biu din các biu thc logic sau:
a) A
¬
B
b) A
(B
C)
c) A
B
d) (A
B)
(C
D)
Màu Hình dng KL f
Xanh Tròn Nng +
Đỏ Tròn Nh -
Xanh Méo Nh +
Trng Méo Nng +
Đỏ Méo Nng -
Trng Tròn Nh -
Trng Méo Nh +
Downloaded by viet jack (vietjackteam@gmail.com)
Hc máy
207
TÀI LIU THAM KHO
1. S. Russell, P. Norvig. Artificial intelligence: a modern approach. 3
nd
edition. Prentice
Hall. 2010.
2. T. M. Jones. Artificial intelligence a system approach. Infinity science press. 2008.
3. Đinh Mnh Tường. Trí tu nhân to. Nhà xut bn Khoa hc k thut. 2002.
4. Nguyn Thanh Thy. Trí tu nhân to. Nhà xut bn khoa hc k thut 1999.
5. T. Mitchell. Machine learning. McGrawhill. 1997.
6. D. Koller, N. Friedman. Probabilistic Graphical Models: Principles and Techniques.
MIT Press. 2009.
7. Đỗ Trung Tun. Nhp môn trí tu nhân to. N xut bn Đại hc quc gia Ni.
2010.
8. A. Ng. Lecture notes for Machine learning. http://cs229.stanford.edu/materials.html.
9. T Minh Phương. Bài ging trí tu nhân to. Hc vin Công ngh bưu chính vin thông.
2010.
Downloaded by viet jack (vietjackteam@gmail.com)