You are on page 1of 11

HỌC MÁY

1 Giới thiệu học máy


Hai phần trước ñã giới thiệu những nội dung giải quyết bài toán trên máy tính bằng phương
pháp tìm kiếm và biểu diễn tri thức trên máy tính bằng logic tính toán. Với những công cụ
trên, máy tính ñã trở thành công cụ ñắc lực hỗ trợ con người giải quyết nhiều vấn ñề thực tế.
Tuy nhiên, việc giải quyết những vấn ñề vẫn còn ñòi hỏi những can thiệp của con người: ta
cần phát biểu những bài toán về dạng tìm kiếm hoặc dưới dạng logic trước khi sử dụng máy
tính làm công cụ giải quyết. Việc phát biểu tri thức cho vấn ñề thông thường ñòi hỏi chi phí
lớn hoặc không thể thực hiện ñầy ñủ. ðiểm khó khăn này xuất phát từ ngay trong bản chất tri
thức của con người: con người vốn vẫn chưa hiểu biết ñầy ñủ về các lĩnh vực liên quan ñến
mình.
Học máy là hướng tiếp cận trong ñó thay vì con người phải chỉ ra những tri thức cần thiết
ñể giải quyết bài toán, máy tính sẽ tự ñộng rút trích tri thức này một cách từ những dữ liệu
ñược cung cấp. Học máy mô phỏng quá trình học của con người qua các mức từ ñơn giản
ñến phức tạp: ñầu tiên máy tính ghi nhớ những trường hợp ñã xuất hiện và cuối cùng học
những trường hợp tổng quát chưa từng xuất hiện.
Trong một bài toán học máy, ñầu vào là một tập dữ liệu huấn luyện bao gồm các mẫu dữ
liệu. Mỗi mẫu dữ liệu bao gồm một tập giá trị ứng với các thuộc tính. Tập thuộc tính ñược
chia làm hai phần: thuộc tính quan sát và thuộc tính kết quả. Mục tiêu của học máy là tìm một
ánh xạ từ thuộc tính quan sát vào thuộc tính kết quả (tìm mối quan hệ giữa thuộc tính quan
sát và thuộc tính kết quả) ứng với tập dữ liệu huấn luyện. Ánh xạ này sẽ ñược áp dụng lên
những mẫu quan sát mới ñể rút ra kết quả tương ứng.
Bảng dưới ñây trình bày một ví dụ của học máy, bài toán dự ñoán việc có chơi tennis hay
không.
# Outlook Temperature Hudmidity Wind Target
1 Sunny Hot High Weak No
2 Sunny Hot High Strong No
3 Overcast Hot High Weak Yes
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
6 Rain Cool Normal Strong No
7 Overcast Cool Normal Strong Yes
8 Sunny Mild High Weak No
9 Sunny Cool Normal Weak Yes
10 Rain Mild Normal Weak Yes
11 Sunny Mild Normal Strong Yes
12 Overcast Mild High Strong Yes
13 Overcast Hot Normal Weak Yes
14 Rain Mild High Strong No
Trong bài toán này, học máy sẽ tìm một mối quan hệ giữa các thuộc tính quan sát: Outlook
(quang cảnh), Temperature (Nhiệt ñộ), Humidity (ðộ ẩm), Wind (Sức gió) với thuộc tính kết

1
quả Target. Kết quả này sẽ dùng dự ñoán giá trị Target khi nhập vào thuộc tính quan sát cho
các mẫu mới ví dụ:
# Outlook Temperature Hudmidity Wind Target
15 Sunny Mild Normal Strong ?
16 Rain Cool High Strong ?
Việc dự ñoán cho mẫu 15 có thể tương ñối dễ dàng, vì mẫu này có các giá trị quan sát
tương tự mẫu số 11 nên giá trị Target cũng tương tự là Yes (trường hợp học máy ñơn giản –
ghi nhớ). Tuy nhiên việc dự ñoán cho mẫu 16 sẽ khó khăn hơn vì mẫu này không giống bất
kỳ một trong những mẫu ñã biết. ðây là trường hợp tổng quát của học máy – gặp những
trường hợp chưa từng xuất hiện. Các phương pháp học máy ñưa ra nhằm giải quyết bài toán
trong trường hợp tổng quát.

2 Thuật toán cây ñịnh danh (ID3)


2.1 Cây quy
t ñ nh
Một số thuật toán học máy biểu diễn mối quan hệ nhân quả dưới dạng cây quyết ñịnh. Trong
cây quyết ñịnh, các nút nhánh và nút gốc ñại diện những thuộc tính quan sát còn nút lá ñại
diện thuộc tính quyết ñịnh. Hình bên dưới biểu diễn một cây quyết ñịnh cho bài toán chơi
tennis ở trên.

Outlook
Rain Sunny
Overcast
Wind Yes Humidity

Weak Strong Normal High

Yes No Yes No

Với cây quyết ñịnh, ta có thể dự ñoán giá trị kết quả cho những mẫu mới bằng cách duyệt
cây quyết ñịnh, bắt ñầu từ nút gốc. Với thuộc tính ghi trên nút gốc, ta kiểm tra giá trị tương
ứng trong mẫu dữ liệu và ñi theo nhánh tương ứng. Quá trình dự ñoán kết thúc ở nút lá hoặc
lặp lại bước tương tự tại các nút nhánh trên ñường ñi ñến nút lá. Ví dụ với mẫu số 16, giá trị
Target ñược tính theo các bước như sau:
- Kiểm tra Outlook, thấy Outlook = Rain
- Kiểm tra _______, thấy ______________. Vậy Target = ____________.

Một cây quyết ñịnh tốt cần thoả các tính chất:
ðầy ñủ: cây quyết ñịnh cần khớp với mọi trường hợp trong tập huấn luyện.
ðơn giản (nguyên tắc dao cạo Occam): cây càng ñơn giản thì càng tổng quát (không
quá khớp với dữ liệu huấn luyện).

2
2. Với bảng Yes: các giá trị sau không xuất hiện trong bảng No:
• Tổ hợp 1 thuộc tính:
o __________________, các mẫu: __________________

⇒ Luật L1: Nếu ___________________ thì Target = Yes (xoá các mẫu___________)
• Tổ hợp 2 thuộc tính:

# Outlook Temperature Hudmidity Wind Target


4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
9 Sunny Cool Normal Weak Yes
10 Rain Mild Normal Weak Yes
11 Sunny Mild Normal Strong Yes
o O = S ∧ T= C, mẫu: 9
o _______________, mẫu: ________
o _______________, mẫu: ________
o _______________, mẫu: ________
o _______________, mẫu: ________

⇒ Luật L2: Nếu ________________ thì Target = Yes (xoá các mẫu________)
còn lại
o _______________, mẫu: ________
o _______________, mẫu: ________
o _______________, mẫu: ________
o _______________, mẫu: ________

⇒ Luật L3: Nếu ________________ thì Target = Yes (xoá các mẫu________)
Với bảng No:
• Tổ hợp 1 thuộc tính: không có
• Tổ hợp 2 thuộc tính:
o O = S ∧ T= H, mẫu: 1, 2
o ______________, mẫu: ___________
o ______________, mẫu: ___________
o ______________, mẫu: ___________

⇒ Luật L4: Nếu ________________ thì Target = Yes (xoá các mẫu________)
còn lại
8
Outlook
Rain Sunny
Overcast
4 5 6 10 14

HRain = ____________________________________________________________
HOvercast = ____________________________________________________________
HSunny = ____________________________________________________________
AE (Outlook) = _________________________________________________________

Temperature

HMild = ____________________________________________________________
HCool = ____________________________________________________________
HHot = ____________________________________________________________
AE (Temperature) = ______________________________________________________

Humidity

H = ____________________________________________________________
H = ____________________________________________________________
AE (Humidity) = ________________________________________________________

Wind

H = ____________________________________________________________
H = ____________________________________________________________
AE (Wind) =____________________________________________________________
So sánh ta thấy thuộc tính ______________ có entropy trung bình thấp nhất nên chọn
thuộc tính này làm nút gốc.

4
• Lặp lần 2: xét nhánh ____________________

Xét các thuộc tính Entropy trung bình

Thuộc tính _____________ có entropy trung bình thấp nhất nên chọn làm nút nhánh.

• Lặp lần 3: xét nhánh ____________________

Xét các thuộc tính Entropy trung bình

5
Thuộc tính _____________ có entropy trung bình thấp nhất nên chọn làm nút nhánh.

• Cây quyết ñịnh kết quả

• Sau khi xây dựng cây, ta có thể rút ra các luật tương ứng bằng cách duyệt các ñường
ñi trên cây từ nút gốc ñến nút lá, mỗi ñường ñi ứng với một luật:

o L1:
o L2:
o L3:
o L4:
o L5:
Lưu ý: Một phiên bản khác của thuật toán ID3 sử dụng Informatic Gain thay cho
entropy ñể chọn thuộc tính quyết ñịnh. Công thức tính Informatic Gain như sau:
Gain(A) = Entropy(S) – Entropy(A)
Trong ñó: S là tập mẫu và A là một thuộc tính. Entropy(S): ñộ hỗn loạn của tập S.
Entropy(A): ñộ hỗn loạn trung bình của thuộc tính A (cách tính như trên)
Nguyên tắc thực hiện: tương tự trên ngoại trừ _______________________________

__________________________________________________________________________

3 Thuật toán học quy nạp (ILA)


Thuật toán học quy nạp ILA ñưa ra hướng tiếp cận ngược lại so với thuật toán ID3. Trong
toán ID3, quá trình rút tri thức từ dữ liệu ñược xuất phát từ các thuộc tính quan sát của tập
6
dữ liệu. Từ việc kiểm tra trên các thuộc tính quan sát, ID3 chọn những thuộc tính có các giá
trị mà chúng chia tập huấn luyện thành những tập con một cách tốt nhất. Các thuộc tính này
sẽ ñược chọn ñể rút ra luật cho dữ liệu.
Ngược lại, trong ILA, quá trình học xuất phát từ các thuộc tính quyết ñịnh. ILA chia tập
dữ liệu huấn luyện thành các tập con rời nhau, mỗi tập con là một phân lớp dựa trên thuộc
tính quyết ñịnh. Tiếp ñến ILA sẽ xem xét trong từng phân lớp xem có thuộc tính nào (hoặc tổ
hợp thuộc tính nào) có giá trị chỉ xuất hiện trong lớp ñó mà không xuất hiện trong các lớp
khác hay không. Nếu có, những (tổ hợp) thuộc tính và giá trị ñó sẽ ñược chọn làm ñặc trưng
phân lớp cho lớp ñó.

Thuật toán ILA


1. Chia tập mẫu thành các bảng con ứng với thuộc tính quyết ñịnh
2. Với mỗi bảng con
3. Với mỗi tổ hợp thuộc tính có thể có (bắt ñầu với số lượng = 1)
4. Tìm các giá trị chỉ xuất hiện ở bảng con này mà không xuất hiện ở các bảng con khác
5. (Nếu có nhiều tổ hợp thì chọn tổ hợp có số lượng mẫu tin nhiều nhất)
6. Sử dụng tổ hợp thuộc tính, giá trị vừa tìm ñược ñể tạo luật
7. ðánh dấu các dòng ñã xét
8. Nếu còn dòng chưa xét, lặp lại bước 3
9. Lặp lại từ bước 2 với các bảng còn lại

Áp dụng ILA cho bảng bài toán tennis:


1. Chia tập dữ liệu ban ñầu thành 2 bảng con:
# Outlook Temperature Hudmidity Wind Target
3 Overcast Hot High Weak Yes
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
7 Overcast Cool Normal Strong Yes
9 Sunny Cool Normal Weak Yes
10 Rain Mild Normal Weak Yes
11 Sunny Mild Normal Strong Yes
12 Overcast Mild High Strong Yes
13 Overcast Hot Normal Weak Yes

# Outlook Temperature Hudmidity Wind Target


1 Sunny Hot High Weak No
2 Sunny Hot High Strong No
6 Rain Cool Normal Strong No
8 Sunny Mild High Weak No
14 Rain Mild High Strong No

7
2. Với bảng Yes: các giá trị sau không xuất hiện trong bảng No:
• Tổ hợp 1 thuộc tính:
o __________________, các mẫu: __________________

⇒ Luật L1: Nếu ___________________ thì Target = Yes (xoá các mẫu___________)
• Tổ hợp 2 thuộc tính:

# Outlook Temperature Hudmidity Wind Target


4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
9 Sunny Cool Normal Weak Yes
10 Rain Mild Normal Weak Yes
11 Sunny Mild Normal Strong Yes
o O = S ∧ T= C, mẫu: 9
o _______________, mẫu: ________
o _______________, mẫu: ________
o _______________, mẫu: ________
o _______________, mẫu: ________

⇒ Luật L2: Nếu ________________ thì Target = Yes (xoá các mẫu________)
còn lại
o _______________, mẫu: ________
o _______________, mẫu: ________
o _______________, mẫu: ________
o _______________, mẫu: ________

⇒ Luật L3: Nếu ________________ thì Target = Yes (xoá các mẫu________)
Với bảng No:
• Tổ hợp 1 thuộc tính: không có
• Tổ hợp 2 thuộc tính:
o O = S ∧ T= H, mẫu: 1, 2
o ______________, mẫu: ___________
o ______________, mẫu: ___________
o ______________, mẫu: ___________

⇒ Luật L4: Nếu ________________ thì Target = Yes (xoá các mẫu________)
còn lại
8
o ______________, mẫu: ___________

⇒ Luật L5: Nếu ________________ thì Target = Yes (xoá các mẫu________)

Kết luận: vậy các luật phân lớp là L1 L5.

4 Thuật toán Naïve Bayes


4.1 Ti
p cn thng kê và Lut Bayes
Trong cách tiếp cận thống kê, lý thuyết quyết ñịnh ñược sử dụng ñể chọn giá trị kết xuất cho
mẫu mới. Theo lý thuyết quyết ñịnh, khi một mẫu mới x ñược cung cấp, giá trị của thuộc tính
quyết ñịnh y là giá trị yk sao cho xác suất P(y=yk|x) là lớn nhất. Ví dụ trong bài toán tennis,
với mẫu #16 ta cần xác ñịnh hai giá trị xác suất P(Target=Yes|#16) và P(Target=No|#16) và
chọn phân lớp ứng với giá trị lớn nhất trong hai giá trị này.
Giá trị P(y=yk|x) thường khó tính ñược (do phải có “rất rất” nhiều mẫu huấn luyện mới có
thể xấp xỉ chính xác). Công thức Bayes giúp ñưa giá trị trên về dạng dễ tính hơn:

Giá trị P(x) là như nhau ñối với mọi phân lớp nên ta chỉ cần so sánh tử số của phân số trên.
Một lần nữa, giá trị P(x|y=yk) (gọi là phân bố của dữ liệu trong phân lớp) cũng khó tính toán.
Giả ñịnh ñộc lập có ñiều kiện giữa các thuộc tính (Naïve) cho phép ta tính phân bố xác suất
của mẫu dữ liệu thông qua phân bố xác suất của từng giá trị thuộc tính thành phần:

Ví dụ với #16, ta có thể tính:


P(#16| Target=Yes)= P(Outlook=Rain| Target=Yes) x P(Temp=Cool| Target=Yes) x
P(Humidity=High| Target=Yes) x P(Wind=Strong| Target=Yes)
và tính tương tự cho mẫu P(#16| Target=No).

4.2 Thut toán h&c máy Naïve Bayes


Thuật toán học máy Naïve Bayes biểu diễn ánh xạ học dưới dạng một tập các giá trị phân bố
xác suất. Các giá trị phân bố xác xuất ñược tính trong giai ñoạn huấn luyện và ñược sử dụng
ñể xác ñịnh giá trị quyết ñịnh cho những mẫu mới.

Thuật toán Naïve Bayes


1. Huấn luyện
Thống kê (ñếm) xác suất của các lớp yk P(yk) và các giá trị phân bố xác suất
P(Ai=vij|yk). ðể ñơn giản ta ký hiệu RAi(vij, yk) là tỷ lệ các mẫu có thuộc tính Ai = vij thuộc
phân lớp yk:

9
2. Sử dụng
Với mỗi mẫu mới x, tính khả năng x rơi vào các phân lớp yk

và chọn phân lớp có giá trị S lớn nhất.


Sửa lỗi Laplace: khi dữ liệu ít, một trong những giá trị R có thể = 0 do bị nhiễu. Nếu
R = 0 các thì giá trị S tương ứng cũng = 0. ðể tránh trường hợp ñó, phép sửa lỗi ñược
ñưa ra nhằm ñảm bảo các giá trị xác suất luôn > 0. Sửa lỗi Laplace thực hiện như sau:

Các giá trị P và R sau khi sửa lỗi ñược sử dụng như bình thường.

Áp dụng thuật toán Naïve Bayes vào ví dụ tennis, ta thực hiện các bước sau:
# Outlook Temperature Hudmidity Wind Target
1 Sunny Hot High Weak No
2 Sunny Hot High Strong No
3 Overcast Hot High Weak Yes
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
6 Rain Cool Normal Strong No
7 Overcast Cool Normal Strong Yes
8 Sunny Mild High Weak No
9 Sunny Cool Normal Weak Yes
10 Rain Mild Normal Weak Yes
11 Sunny Mild Normal Strong Yes
12 Overcast Mild High Strong Yes
13 Overcast Hot Normal Weak Yes
14 Rain Mild High Strong No
• Huấn luyện:
P(Yes) = 9/14 sửa lỗi: P(Yes) = 10/16
P(No) = _____ sửa lỗi: P(No) = _____
ROverlook(Sunny, Yes) = 2/9, (sửa lỗi) = 2 + 1/9 + 3 = 3/12
ROverlook(Overcast, Yes) = ___, (sửa lỗi) = ____________ =____

10
ROverlook(Rain, Yes) = ____________=_____ (sửa lỗi)
ROverlook(Sunny, No) = ____________=_____ (sửa lỗi)
ROverlook(Overcast, No) = ____________=_____ (sửa lỗi)
ROverlook(Rain, No) = ____________=_____ (sửa lỗi)

RTemperature (sửa lỗi) RHumidity (sửa lỗi) RWind (sửa lỗi)

Hot Mild Cool Normal High Weak Strong

Yes Yes Yes

No No No

Dự ñoán cho mẫu #16:

S(Yes) = ________________________________________________________________

S(No) = ________________________________________________________________

Vậy #16 thuộc về lớp ______________

11