Học Máy (IT 4862)
quangnn-fit@mail.hut.edu.vn
Trường Đại học Bách Khoa Hà Nội Viện Công nghệ thông tin và truyền thông
Năm học 2011-2012
Nguyễn Nhật Quang hậ ễ
Nội dung môn học: Nội d
ô h
(cid:132) Giới thiệu chungg
(cid:132) Đánh giá hiệu năng hệ thống học máy
(cid:132) Các phương pháp học dựa trên xác suất (cid:132) Các phương pháp học dựa trên xác suất
(cid:132) Các phương pháp học có giám sát
(cid:132) Học dựa trên các láng giềng gần nhất (Nearest (cid:132) Học dựa trên các láng giềng gần nhất (Nearest
(cid:132) Các phương pháp học không giám sát
g p p
g g
p
(cid:132) Lọc cộng tác
(cid:132) Học tăng cường (cid:132) Học tăng cường
Học Máy – IT 4862
2
neighbors learning)
Học dựa trên các láng giềng gần nhất
(cid:132) 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 neighbors learning) • Instance-based learning • Lazy learning • Memory-based learning Memory based learning
(cid:132) Ý tưởng của phương pháp học dựa trên các láng giềng gần nhất
ộ ập
ụ ọ • Với một tập các ví dụ học
─ (Đơn giản là) lưu lại các ví dụ học ─ Chưa xây dựng một mô hình (mô tả) rõ ràng và tổng quát của
• Đố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 cần học hàm mục tiêu cần học
Học Máy – IT 4862
3
hàm mục tiêu (một nhãn lớp, hoặc một giá trị thực)
Học dựa trên các láng giềng gần nhất
(cid:132) Biểu diễn đầu vào của bài toán
g g g • Mỗi ví dụ x được biểu diễn là một vectơ n chiều trong không gian
các vectơ X∈Rn
(cid:132) Có thể áp dụng được với cả 2 kiểu bài toán học
C
ể
ả
ể
• x = (x1,x2,…,xn), trong đó xi (∈R) là một số thực
ụ
ạ (
g
g
ị
) ─ 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 phân lớp (classification)
─ 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
Học Máy – IT 4862
4
• Bài toán dự đoán/hồi quy (prediction/regression) • Bài toán dự đoán/hồi quy (prediction/regression)
Ví dụ bài toán phân lớp p
p
Lớp c1
Lớp c2
(cid:132) Xét 1 láng giềng gần
nhất
Ví dụ cần phân lớp z
→ Gán z vào lớp c2
(cid:132) Xét 3 láng giềng gần
nhất
→ Gán z vào lớp c1 → Gán z vào lớp c1
(cid:132) Xét 5 láng giềng gần
nhấtnhất
→ Gán z vào lớp c1
Học Máy – IT 4862
5
Giải thuật phân lớp k-NN
(cid:132) Mỗi ví dụ học x được biểu diễn bởi 2 thành phần:
2
i
ụ g
(cid:132) Giai đoạn học
• Mô tả của ví dụ: x=(x1,x2,…,xn), trong đó xi∈R 1 n • Nhãn lớp : c (∈C, với C là tập các nhãn lớp được xác định trước)
(cid:132) Giai đoạn phân lớp: Để phân lớp cho một ví dụ (mới) z
• Đơn giản là lưu lại các ví dụ học trong tập học: D = {x}
• Với mỗi ví dụ học x∈D, tính khoảng cách giữa x và z
• Xác định tập NB(z) – các láng giềng gần nhất của z
→Gồm kví dụ học trong D gần nhất với z tính theo một hàm →Gồm kví dụ học trong D gần nhất với z tính theo một hàm
khoảng cách d
• Phân z vào lớp chiếm số đông (the majority class) trong số các lớp
Học Máy – IT 4862
6
í d h á t của các ví dụ học trong NB(z) ủ NB( )
Giải thuật dự đoán k-NN
(cid:132) Mỗi ví dụ học x được biểu diễn bởi 2 thành phần:
2
n
i
g ụ
(cid:132) Giai đoạn học
• Mô tả của ví dụ: x=(x1,x2,…,xn), trong đó xi∈R 1 • Giá trị đầu ra mong muốn: yx∈R (là một số thực)
(cid:132) Giai đoạn dự đoán: Để dự đoán giá trị đầu ra cho ví dụ z
• Đơn giản là lưu lại các ví dụ học trong tập học D
• Đối với mỗi ví dụ học x∈D, tính khoảng cách giữa x và z
→ Gồm kví dụ học trong D gần nhất với z tính theo một hàm khoảng → Gồm kví dụ học trong D gần nhất với z tính theo một hàm khoảng
cách d
• Xác định tập NB(z) – các láng giềng gần nhất của z
y y
y y
z z
x x
x
)( zNB )( NB
∑ ∈
1 ∑= k
Học Máy – IT 4862 Machine Learning: Algorithms and Applications
7 7
• Dự đoán giá trị đầu ra đối với z:
Một hay nhiều láng giềng gần nhất?
(cid:132) 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
ầ
ấ
ề
(cid:132) 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
(cid:132) Đối với bài toán phân lớp có 2 lớp, k thường được chọn là Đố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
quá trình thu thập (xây dựng) tập dữ liệu
Học Máy – IT 4862
8
• Ví dụ: k= 3, 5, 7,…
( ) Hàm tính khoảng cách (1)
g
(cid:132) Hàm tính khoảng cách d ọ g
• Đóng vai trò rất quan trọng trong phương pháp học dựa trên các g p p ọ ự g p q g
láng giềng gần nhất
• Thường được xác định trước, và không thay đổi trong suốt quá
(cid:132) Lựa chọn hàm khoảng cách d
trình học và phân loại/dự đoán trình học và phân loại/dự đoán
• Các hàm khoảng cách hình học: Dành cho các bài toán có các á bài t á á h hì h h ó á
Dà h h Cá hà kh ả thuộc tính đầu vào là kiểu số thực (xi∈R)
• 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
Học Máy – IT 4862
9
văn bản (xi là giá trị trọng số TF/IDF của từ khóa thứ i)
( ) Hàm tính khoảng cách (2)
g
(cid:132) Các hàm tính khoảng cách hình học (Geometry distance
) functions)
n
),( zxd
z
=
−
• Hàm Minkowski (p-norm):
x i
i
∑
i
1 =
n n
2
),( zxd
z
=
−
• Hàm Manhattan (p=1):
(
)
x i
i
∑
i
1 =
p
n
p p
),( zxd
z
−
x i
i
• Hàm Euclid (p=2):
i
1 =
⎛ ⎛∑ = ∑ ⎜ ⎜ ⎝
/1 ⎞ ⎞ ⎟ ⎟ ⎠
p
n
p p
• Hàm Chebyshev (p=∞): Hàm Chebyshev (p=∞):
z
( d ) ),( zxd
=
−
x i
i
li lim p ∞→
i
1 =
⎛∑ ∑ ⎜ ⎜ ⎝
/1 ⎞ ⎟ ⎟ ⎠
z
x − i
i
= max i i
Học Máy – IT 4862
10
( ) Hàm tính khoảng cách (3)
g
(cid:132) Hàm khoảng cách
),( zxd ),(
Difference
ff
( (
) )
, i zx , i
i i
Hamming Hamming
n ∑ ∑= 1 =i
)
( aif
b
≠
Difference
),( ba
=
b
aif , f ,0 ( (
) )
=
,1 ⎧ ⎨ ⎩ ⎩
• Đối với các thuộc tính đầu vào là kiểu nhị phân ({0,1})
n
zx i
i
∑ ∑
(cid:132) Hàm tính độ tương tự
i
1 =
),( zxd
=
=
n
n
Cosine
. zx zx
2
2
z z
i
∑∑ ∑∑ x x i
• Ví dụ: x=(0,1,0,1,1)
i
i
1 =
1 =
ố ầ
Học Máy – IT 4862
11
• Đối với đầu vào là một vectơ các giá trị trọng số (TF/IDF) của các từ khóa
Chuẩn hóa miền giá trị thuộc tính
n
2
(cid:132) Hàm tính khoảng cách Euclid:
),( zxd
z
=
−
(
)
x i
i
∑
i
1 =
(cid:132) Giả sử mỗi ví dụ được biểu diễn bởi 3 thuộc tính: Age, Income (cho
( g
• x = (Age=20, Income=12000, Height=1.68) ) • z = (Age=40, Income=1300, Height=1.75)
(cid:132) 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 • d(x,z) = [(20-40) + (12000-1300) + (1.68-1.75) ] • 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 → 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
(cid:132) Cần phải chuẩn hóa miền giá trị (đưa về cùng một khoảng giá trị)
Đối ới ỗi th ộ tí h i
/
• Khoảng giá trị [0,1] thường được sử dụng • Đối với mỗi thuộc tính i: xi = xi/max_val(fi) l(f )
Học Máy – IT 4862
1212
mỗi tháng), và Height (đo theo mét) g
Trọng số của các thuộc tính
n
(cid:132) Hàm khoảng cách Euclid:
2
),( zxd
z
=
−
(
)
x i
i
∑
i
1 =
• 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
(cid:132) Các thuộc tính khác nhau có thể (nên) có mức độ ảnh hưởng
(cid:132) 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
n
khác nhau đối với giá trị khoảng cách
2
),( zxd
z
=
−
)
( xw i i
i
∑
• wi là trọng số của thuộc tính i:
i
1 =
(cid:132) Làm sao để xác định các giá trị trọng số của các thuộc tính?
trong hàm tính khoảng cách g g
g ộ ị
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)
ố ố
ể
Học Máy – IT 4862
13
ị ọ g • 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
Khoảng cách của các láng giềng (1)
ầ
Ví dụ cần Ví d phân loại z
(cid:132) 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 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 ở ả ề
(cid:132) 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 theo khoảng cách của nó đế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 z? → KHÔNG!
• Mức độ ảnh hưởng cao hơn cho các
Học Máy – IT 4862
14
láng giềng gần hơn!
Khoảng cách của các láng giềng (2)
hị h ới
tỷ lệ
(cid:132) Gọi v là hàm xác định trọng số theo khoảng cách • Đố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)
zc )(
).
Identical
(
c
xc (,
))
=
(cid:132) Đối với bài toán phân lớp:
j
∑ zxv ,( )( zNB
x ∈
max arg Cc ∈ j
Identical
),( ba
=
baif ( ) aif b ( )
= ≠
,1 ⎧ ⎧ ⎨ ,0 ⎩
). ).
xf xf )( )(
∑ ∑
xv ,( ,( zxv zNB )(
x
(cid:132) Đối với bài toán dự đoán (hồi quy):
zf )(
∈=
∑
zxv ),( )( zNB
x ∈
(cid:132) Lựa chọn một hàm xác định trọng số theo khoảng cách:
−
2),( zxd 2 σ
),( zxv
),( zxv
=
=
zxv ),(
e
=
2)] )]
1 zxd+α ),( ( zxd ) α
+
1 zxd+α ,([ ([ zxd α
+
Học Máy – IT 4862
15
Lazy learning vs. Eager learning (cid:132) Lazy learning. Việc đánh giá hàm mục tiêu (target function) được hoãn lại cho đến khi xét ví dụ cần phân loại/dự đoán
• Đánh giá (xấp xỉ) hàm mục tiêu một cách cục bộ (locally) và riêng rẽ (diferrently) cho mỗi ví dụ cần phân loại/dự đoán (tại thời điểm phân loại/dự đoán của hệ thống) ấ Tí h t á
bộ ủ hà
hiề lầ
tiê
á
ỉ
• Tính toán nhiều lần các xấp xỉ cục bộ của hàm mục tiêu • Thường mất thời gian lâu hơn để đưa ra kết luận (phân lớp/dự đoán), và
cần nhiều không gian nhớ hơn
• Ví dụ: Nearest neighbor learner, Locally weighted regression • Ví dụ: Nearest neighbor learner Locally weighted regression
(cid:132) Eager learning. Việc đánh giá hàm mục tiêu được hoàn thành
trước khi xét đến bất kỳ ví dụ cần phân loại/dự đoán
• Đánh giá (xấp xỉ) hàm mục tiêu một cách tổng thể (globally) đối với toàn
bộ không gian các ví dự (tại thời điểm học của hệ thống)
• Tính toán một xấp xỉ duy nhất (ở mức tổng thể) của hàm mục tiêu • Ví dụ: Linear regression, Support vector machines, Neural networks, ...
Học Máy – IT 4862
16
k-NN – Khi nào?
(cid:132) Các ví dụ được biểu diễn trong không gian vectơ Rn (cid:132) Số lượng các thuộc tính (để biểu diễn ví dụ) là không nhiều (cid:132) Một tập học có kích thước lớn
(cid:132) Các ưu điểm Chi hí thấ
á t ì h h ấ l ệ ( hỉ iệ l i á h l
→ Không cần phải học n bộ phân loại cho n lớp
• Chi phí thấp cho quá trình huấn luyện (chỉ việc lưu lại các ví dụ học) í d h ) • Hoạt động tốt với các bài toán phân loại gồm nhiều lớp
→ Phân loại/dự đoán được thực hiện dựa trên k láng giềng gần nhất
(cid:132) Các nhược điểm (cid:132) Các nhược điểm
• Phải lựa chọn hàm tính khoảng cách (sự khác biệt) thích hợp với bài toán • Chi phí tính toán (thời gian, bộ nhớ) cao tại thời điểm phân loại/dự đoán • Có thể cho kết quả kém/sai với các thuộc tính không liên quan • Có thể cho kết quả kém/sai với các thuộc tính không liên quan
Học Máy – IT 4862
17
• Phương pháp học k-NN (k >>1) có khả năng xử lý nhiễu cao