Các ví dụ về học máy 2Bài toán phân loại các trang Web theo các chủ đề ◼T: Phân loại các trang Web theo các chủ đề đã định trước ◼P: Tỷ lệ % các trang Web được phân loại chính xác ◼E: Mộ
Trang 1Chương 5 - Học máy
Lê Thanh Hương Viện CNTT & TT - ĐHBK HN
Trang 2Nội dung môn học
Chương 1 Tổng quan
Chương 2 Tác tử thông minh
Chương 3 Giải quyết vấn đề
Chương 4 Tri thức và suy diễn
Trang 3Giới thiệu về Học máy
“Học đề cập đến các thay đổi của hệ thống theo hướng thích
nghi : chúng cho phép hệ thống thực hiện các công việc trong cùng một môi trường hiệu quả hơn từ lần thực hiện thứ 2”
1997]
Học máy = Cải thiện hiệu quả một công việc thông qua kinh
nghiệm
• Một công việc (nhiệm vụ) T
• Đối với các tiêu chí đánh giá hiệu suất P
• Thông qua (sử dụng) kinh nghiệm E
Trang 5Các ví dụ về học máy (2)
Bài toán phân loại các trang Web theo các chủ đề
◼T: Phân loại các trang Web theo các chủ đề đã định trước
◼P: Tỷ lệ (%) các trang Web được phân loại chính xác
◼E: Một tập các trang Web, trong đó mỗi trang Web gắn với
một chủ đề
Which cat.?
Trang 6tay, trong đó mỗi ảnh được gắn
với một định danh của một từ
we do in the right way
6
Trang 7Which steering command?
Go straight
Move left
Move right
Slow Speed down up
Bài toán robot lái xe tự động
◼T: Robot (được trang bị các
camera quan sát) lái xe tự động
trên đường cao tốc
◼P: Khoảng cách trung bình
mà robot có thể lái xe tự động
trước khi xảy ra lỗi (tai nạn)
◼E: Một tập các ví dụ được
ghi lại khi quan sát một người lái
xe trên đường cao tốc, trong đó
mỗi ví dụ gồm một chuỗi các
ảnh và các lệnh điều khiển xe
Trang 8Các phương pháp học
• Học có giám sát : biết trước câu trả lời đúng
• Học không giám sát : không biết trước câu trả lời đúng
• Học tăng cường : đôi khi có thưởng/phạt cho các hành động
Trang 9Quá trình học máy
Tập học (Training set)
Tối ưu hóa
các tham số của hệ thống
Tập thử nghiệm (Test set)
Thử nghiệm
hệ thống
đã học
Trang 10Học có vs không có giám sát
◼ Học có giám sát (supervised learning)
❑ Mỗi ví dụ học gồm 2 phần: mô tả (biểu diễn) của ví dụ học, và
nhãn lớp (hoặc giá trị đầu ra mong muốn) của ví dụ học đó
❑ Bài toán học phân lớp (classification problem)
D_train = {(<Biểu_diễn_của_x>, <Nhãn_lớp_của_x>)}
❑ Bài toán học dự đoán/hồi quy (prediction/regression problem)
D_train = {(<Biểu_diễn_của_x>, <Giá_trị_đầu_ra_của_x>)}
◼ Học không có giám sát (unsupervised learning)
❑ Mỗi ví dụ học chỉ chứa mô tả (biểu diễn) của ví dụ học đó - mà
không có bất kỳ thông tin nào về nhãn lớp hay giá trị đầu ra mong muốn của ví dụ học đó
❑ Bài toán học phân cụm (Clustering problem)
Tập học D_train = {(<Biểu_diễn_của_x>)}
10
Trang 11Các thành phần chính (1)
◼ Lựa chọn các ví dụ học (training/learning examples)
• Các thông tin hướng dẫn quá trình học (training feedback) được chứa
ngay trong các ví dụ học, hay là được cung cấp gián tiếp (vd: từ môi
trường hoạt động)
• Các ví dụ học theo kiểu có giám sát (supervised) hay không có giám sát
(unsupervised)
• Các ví dụ học phải tương thích với các ví dụ sẽ được sử dụng bởi hệ
thống trong tương lai (future test examples)
◼ Xác định hàm mục tiêu (giả thiết, khái niệm) cần học
• F: X → {0,1}
• F: X → {Một tập các nhãn lớp}
• F: X → R + (miền các giá tri số thực dương)
• …
Trang 12Các thành phần chính (2)
◼ Lựa chọn cách biểu diễn cho hàm mục tiêu cần học
• Hàm đa thức (a polynomial function)
• Một tập các luật (a set of rules)
• Một cây quyết định (a decision tree)
• Một mạng nơ-ron nhân tạo (an artificial neural network)
• …
◼ Lựa chọn một giải thuật học máy có thể học (xấp xỉ)
được hàm mục tiêu
• Phương pháp học hồi quy (Regression-based)
• Phương pháp học quy nạp luật (Rule induction)
• Phương pháp học cây quyết định (ID3 hoặc C4.5)
• Phương pháp học lan truyền ngược (Back-propagation)
• …
12
Trang 13Các vấn đề trong Học máy (1)
• Những giải thuật học máy nào có thể học (xấp xỉ) một hàm mục tiêu cần học?
• Với những điều kiện nào, một giải thuật học
máy đã chọn sẽ hội tụ (tiệm cận) hàm mục tiêu cần học?
• Đối với một lĩnh vực bài toán cụ thể và đối với
một cách biểu diễn các ví dụ (đối tượng) cụ
thể, giải thuật học máy nào thực hiện tốt nhất?
Trang 14Các vấn đề trong Học máy (2)
• Bao nhiêu ví dụ học là đủ?
• Kích thước của tập học (tập huấn luyện) ảnh
hưởng thế nào đối với độ chính xác của
• Các ví dụ lỗi (nhiễu) và/hoặc các ví dụ thiếu
giá trị thuộc tính (missing-value) ảnh hưởng
thế nào đối với độ chính xác?
14
Trang 15Các vấn đề trong Học máy (3)
• Chiến lược tối ưu cho việc lựa chọn thứ tự sử
dụng (khai thác) các ví dụ học?
• Các chiến lược lựa chọn này làm thay đổi
mức độ phức tạp của bài toán học máy như
thế nào?
• Các tri thức cụ thể của bài toán (ngoài các ví
dụ học) có thể đóng góp thế nào đối với quá
trình học?
Trang 16Các vấn đề trong Học máy (4)
• Hàm mục tiêu nào mà hệ thống cần học?
❑ Biểu diễn hàm mục tiêu: Khả năng biểu diễn (vd: hàm
phưc tạp của giải thuật và quá trình học
• Các giới hạn đối với khả năng học của các giải thuật học máy?
• Khả năng khái quát hóa của hệ thống từ các ví dụ học?
❑ Để tránh vấn đề “over-fitting” (đạt độ chính xác cao trên tập học, nhưng đạt độ chính xác thấp trên tập thử nghiệm)
• Khả năng hệ thống tự động thay đổi (thích nghi) biểu diễn
cấu trúc bên trong của nó?
16
Trang 17Vấn đề over-fitting (1)
◼ Một hàm mục tiêu học được h sẽ được gọi là quá khớp
(over-fit) với một tập học nếu tồn tại một hàm mục tiêukhác h’ sao cho:
học, nhưng
cả những ví dụ được sử dụng sau quá trình huấn luyện)
◼ Vấn đề over-fitting thường do các nguyên nhân:
• Lỗi trong tập huấn luyện
• Số lượng các ví dụ học quá nhỏ, không đại diện cho toàn bộ
tập của các ví dụ của bài toán học
Trang 18sinh ra đối với tập D_train
◼ Giả thiết h quá khớp (quá phù hợp) tập học D_train
nếu tồn tại một giả thiết khác h’:
• ErrD_train(h) < ErrD_train(h’), và
• ErrD(h) > ErrD(h’)
18
Trang 19Vấn đề over-fitting (3)
Lưu ý: Mục tiêu của học máy là để đạt được độ chính xác
cao trong dự đoán đối với các ví dụ sau này, không phải đối
với các ví dụ học
f(x)
◼ Occam’s razor: Ưu tiên chọn hàm mục tiêu
đơn giản nhất phù hợp (không nhất thiết
hoàn hảo) với các ví dụ học
→ Khái quát hóa tốt hơn
→ Dễ giải thích/diễn giải hơn
→ Độ phức tạp tính toán íthơn
x
Trong số các hàm mục tiêu học được, hàm mục tiêu nào
khái quát hóa tốt nhất từ các ví dụ học?
Trang 20Vấn đề over-fitting – Ví dụ
Tiếp tục quá trình học cây quyết định sẽ làm giảm độ chính xác đối
với tập thử nghiệm mặc dù tăng độ chính xác đối với tập học
[Mitchell, 1997]
20
Trang 21Nội dung môn học
Chương 1 Tổng quan
Chương 2 Tác tử thông minh
Chương 3 Giải quyết vấn đề
Chương 4 Tri thức và suy diễn
Trang 22Học cây quyết định
Bài toán: quyết định có đợi 1 bàn ở quán ăn không, dựa trên các
thông tin sau:
1 Lựa chọn khác : có quán ăn nào khác gần đó không?
2 Quán rượu : có khu vực phục vụ đồ uống gần đó không?
3 Fri/Sat : hôm nay là thứ sáu hay thứ bảy?
5 Khách hàng : số khách trong quán (không có, vài người,
đầy)
6 Giá c ả : khoảng giá ($,$$,$$$)
8 Đặt chỗ : chúng ta đã đặt trước chưa?
10 Thời gian đợi : 0-10, 10-30, 30-60, >60
Trang 23Phép biểu diễn dựa trên thuộc tính
(logic, rời rạc, liên tục)
• Ví dụ, tình huống khi đợi 1 bàn ăn
Trang 24Patrons, WaitEstimates, Alternative, Hungry, Rain
Trang 25Cây quyết định
… là cách biểu diễn các giả thiết
Trang 26Không gian giả thiết
Khi có n thuộc tính Boolean, số lượng các cây quyết định là?
Trang 27Thuật toán ID3
Mục đích: tìm cây thoả mãn tập mẫu
Ý tưởng: (lặp) chọn thuộc tính quan trọng nhất làm gốc của cây/cây con
ID3(Examples, Target_attribute, Attributes)
/* Examples: các mẫu luyện
Target_attribute : thuộc tính cần đoán giá trị
Attributes : các thuộc tính có thể được kiểm tra qua phép học cây quyết định */
• Tạo 1 nút gốc Root cho cây
• If Examples +, trả về cây chỉ có 1 nút Root, với nhãn +
• If Examples -, trả về cây chỉ có 1 nút Root, với nhãn –
• If Attributes rỗng, trả về cây chỉ có 1 nút Root, với nhãn = giá trị thường xuất hiện nhất của Target_attribute trong Examples
Trang 28– Thuộc tính quyết định của nút gốc A
tính A = vi
– Then, dưới nhánh mới này, thêm 1 lá với nhãn = giá trị
thường xuất hiện nhất của Target_attribute trong
Examples
– Else, dưới nhánh mới này thêm cây con
ID3(Examplesvi, Target_attribute, Attributes - {A}))
• End
• Return Root
Trang 29Thuộc tính nào tốt nhất?
Sử dụng lượng thông tin đạt được Information Gain
xác định thông qua độ đo Entropy
Trang 30•Entropy đo độ nhiễu của S = số các bit cần thiết để
mã hoá lớp + hoặc - của các thành viên ngẫu nhiên
của S
•Entropy(S) = - p+*log2p+ - p-*log2p
-•S là một tập mẫu của tập luyện
•p+ là tỷ lệ các mẫu dương trong S
•p- là tỷ lệ các mẫu âm trong S
Trang 31Entropy H(X) của biến ngẫu nhiên X:
Ví dụ, với S gồm 9 mẫu dương và 5 mẫu âm, kí hiệu S([9+,5-])
Entropy([9+,5-])
= - (9/14)log2(9/14) – (5/14)log2(5/14)
= 0.940
Trang 32Entropy S
Sv
A Values
Trang 33Ví dụ: tập luyện
Day Outlook Temperature Humidity Wind PlayTennis
D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D6 Rain Cool Normal Strong No
D7 Overcast Cool Normal Strong Yes
D8 Sunny Mild High Weak No
D9 Sunny Cool Normal Weak Yes
D11 Sunny Mild Normal Strong Yes
D12 Overcast Mild High Strong Yes
Trang 34) (
Sv
Entropy S
Sv
A Values
Trang 36Cây quyết định sử dụng khi nào?
Các bài toán với các đặc tính sau thích hợp với học cây quyết định:
• Các mẫu mô tả được bởi các cặp thuộc tính-giá trị
• Hàm đích có giá trị rời rạc
• Cần có các giả thiết rời rạc
• Các dữ liệu luyện có thể có nhiễu
• Dữ liệu luyện có thể thiếu giá trị thuộc tính
Ví dụ:
• Chẩn đoán y tế
• Phân tích các nguy cơ về tín dụng
• Mô hình hoá việc lập lịch
Trang 37Đánh giá và lựa chọn mô hình
Trang 38Đo độ chính xác
• Làm sao để biết h ≈ f ?
• Sử dụng lý thuyết tính toán
1 Thử giả thiết h trên 1 tập các ví dụ mới (tập thử) (sử dụng
cùng 1 mức độ phân bố các mẫu như tập luyện)
Learning curve = % chính xác trên tập thử, sử dụng hàm xây dựng
trên tập luyện
Trang 39Nội dung môn học
Chương 1 Tổng quan
Chương 2 Tác tử thông minh
Chương 3 Giải quyết vấn đề
Chương 4 Tri thức và suy diễn
Trang 40Học dựa trên các láng giềng gần nhất
• Một số tên gọi khác của phương pháp học dựa trên các láng
giềng gần nhất (Nearest neighbor learning)
─ (Đơn giản là) lưu lại các ví dụ học
─ Không cần xây dựng một mô hình (mô tả) rõ ràng và tổng quát của hàm mục tiêu cần học
• Đối với một ví dụ cần phân loại/dự đoán
─ Xét quan hệ giữa ví dụ đó với các ví dụ học để gán giá trị của hàm mục tiêu (một nhãn lớp, hoặc một giá trị thực)
Trang 41Học dựa trên các láng giềng gần nhất
• Biểu diễn đầu vào của bài toán
• Mỗi ví dụ x được biểu diễn là một vectơ n chiều trong không gian các vectơ XRn
• x = (x1,x2,…,xn), trong đó xi (R) là một số thực
• Có thể áp dụng được với cả 2 kiểu bài toán học
• Bài toán phân lớp (classification)
─Hàm mục tiêu có giá trị rời rạc (a discrete-valued target function)
─Đầu ra của hệ thống là một trong số các giá trị rời rạc đã xác định trước (một trong các nhãn lớp)
• Bài toán dự đoán/hồi quy (prediction/regression)
─Hàm mục tiêu có giá trị liên tục (a continuous-valued target function)
─Đầu ra của hệ thống là một giá trị số thực
Trang 42Ví dụ bài toán phân lớp
Lớp c1 Lớp c2
Trang 43Ví dụ:
kNN
S1 S2 S3
Trang 45• Để định nghĩa độ tương tự giữa 2 TH, ta dùng
ma trận
• Giả sử các mẫu là các điểm trong không gian n
j
X
Trang 46Giải thuật phân lớp k-NN
• Mỗi ví dụ học x được biểu diễn bởi 2 thành phần:
• Mô tả của ví dụ: x=(x1,x2,…,xn), trong đó xiR
• Nhãn lớp : c (C, với C là tập các nhãn lớp được xác định trước)
• Giai đoạn học
• Đơn giản là lưu lại các ví dụ học trong tập học: D = {x}
• Giai đoạn phân lớp: Để phân lớp cho một ví dụ (mới) z
• Với mỗi ví dụ học xD, tính khoảng cách giữa x và z
Trang 47Giải thuật kNN cho các giá trị rời rạc
Thuật toán (tham số k)
tập luyện
yz = lớp của đa số các thành viên trong k láng giềng gần nhất của z
với δ(a,b) = 1 nếu a = b và 0 nếu ngược lại
v
f(Xi)) (v,
argmax
(Xq)
Trang 48Giải thuật dự đoán k-NN
• Mỗi ví dụ học x được biểu diễn bởi 2 thành phần:
• Mô tả của ví dụ: x=(x1,x2,…,xn), trong đó xiR
• Giá trị đầu ra mong muốn: yxR (là một số thực)
• Giai đoạn học
• Đơn giản là lưu lại các ví dụ học trong tập học D
• Giai đoạn dự đoán: Để dự đoán giá trị đầu ra cho ví dụ z
• Đối với mỗi ví dụ học xD, tính khoảng cách giữa x và z
Trang 49Một hay nhiều láng giềng gần nhất?
• Việc phân lớp (hay dự đoán) chỉ dựa trên duy nhất một láng giềng gần nhất (là ví dụ học gần nhất với ví dụ cần phân
lớp/dự đoán) thường không chính xác
• Nếu ví dụ học này là một ví dụ bất thường, không điển hình (an outlier) – rất khác so với các ví dụ khác
• Nếu ví dụ học này có nhãn lớp (giá trị đầu ra) sai – do lỗi trong quá trình thu thập (xây dựng) tập dữ liệu
• Thường xét k (>1) các ví dụ học (các láng giềng) gần nhất với
ví dụ cần phân lớp/dự đoán
• Đối với bài toán phân lớp có 2 lớp, k thường được chọn là
một số lẻ, để tránh cân bằng về tỷ lệ các ví dụ giữa 2 lớp
• Ví dụ: k= 3, 5, 7,…
Trang 50• Các hàm khoảng cách hình học: Dành cho các bài toán có các
thuộc tính đầu vào là kiểu số thực (xiR)
• Hàm khoảng cách Hamming: Dành cho các bài toán có các
thuộc tính đầu vào là kiểu nhị phân (xi{0,1})
• Hàm tính độ tương tự Cosine: Dành cho các bài toán phân lớp
văn bản (xi là giá trị trọng số TF/IDF của từ khóa thứ i)
Trang 51x d
1
),(
x d
1
2
) , (
p n
i
p i
i z x z
x d
/ 1
1
),
i x − z
= max
p n
i
p i i
z x d
/ 1
1
lim)
Trang 52Hàm tính khoảng cách (3)
Hamming
• Đối với các thuộc tính đầu
vào là kiểu nhị phân ({0,1})
x d
1
) , ( )
, (
, 0
) (
, 1 )
,
(
b a if
b a if b
a Difference
z x
z x z
x
z
x z
x d
1
2 1
2
1
)
, (
Trang 53Chuẩn hóa miền giá trị thuộc tính
• Hàm tính khoảng cách Euclid:
• Giả sử mỗi ví dụ được biểu diễn bởi 3 thuộc tính: Age, Income (cho mỗi tháng), và Height (đo theo mét)
• x = (Age=20, Income=12000, Height=1.68)
• z = (Age=40, Income=1300, Height=1.75)
• Khoảng cách giữa x và z
• d(x,z) = [(20-40) 2 + (12000-1300) 2 + (1.68-1.75) 2 ] 1/2
• Giá trị khoảng cách bị quyết định chủ yếu bởi giá trị khoảng cách (sự khác biệt) giữa 2 ví dụ đối với thuộc tính Income
→ Vì: Thuộc tính Income có miền giá trị rất lớn so với các thuộc tính khác
• Cần phải chuẩn hóa miền giá trị (đưa về cùng một khoảng giá trị)
• Khoảng giá trị [0,1] thường được sử dụng
• Đối với mỗi thuộc tính i: x = x /max(f )
x d
1
2
) , (
Trang 54Trọng số của các thuộc tính
• Hàm khoảng cách Euclid:
• Tất cả các thuộc tính có cùng (như nhau) ảnh hưởng đối với giá trị khoảng cách
• Các thuộc tính khác nhau có thể (nên) có mức độ ảnh hưởng
khác nhau đối với giá trị khoảng cách
• Cần phải tích hợp (đưa vào) các giá trị trọng số của các thuộc tính trong hàm tính khoảng cách
• wi là trọng số của thuộc tính i:
• Làm sao để xác định các giá trị trọng số của các thuộc tính?
• Dựa trên các tri thức cụ thể của bài toán (vd: được chỉ định bởi các chuyên gia trong lĩnh vực của bài toán đang xét)
• Bằng một quá trình tối ưu hóa các giá trị trọng số (vd: sử dụng một tập học để học một bộ các giá trị trọng số tối ưu)
x d
1
2
) , (
w z
x d
1
2
) , (
Trang 55Khoảng cách của các láng giềng (1)
• Xét tập NB(z) – gồm k ví dụ học gần
nhất với ví dụ cần phân lớp/dự đoán z
• Mỗi ví dụ (láng giềng gần nhất) này có
khoảng cách khác nhau đến z
• Các láng giềng này có ảnh hưởng như
nhau đối với việc phân lớp/dự đoáncho
• Cần gán các mức độ ảnh hưởng (đóng
góp) của mỗi láng giềng gần nhất tùy
theo khoảng cách của nó đến z
• Mức độ ảnh hưởng cao hơn cho các
láng giềng gần hơn!
Test instance z
Trang 56Khoảng cách của các láng giềng (2)
• Đối với một giá trị d(x,z) – khoảng cách giữa x và z
• v(x,z) tỷ lệ nghịch với d(x,z)
)) ( , ( ).
, ( max
arg )
(
z NB x
j C
c
x c c Identical z
x v z
, 0
) (
, 1 )
, (
b a if
b a if b
a Identical
) (
),(
)()
,()
(
z NB x
z NB x
z x v
x f z x v z
f
) , (
1 )
,
(
z x d
z x
1 )
,
(
z x d
z x v
) ,
z x d
e z
x v
−
=