Học Máy
(IT 4862)
Nguyễn
ễ Nhật
hậ Quang
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
CuuDuongThanCong.com
/>
Nội dung
d
môn
ô học:
h
Giới thiệu chung
g
Đánh giá hiệu năng hệ thống học máy
Các phương pháp học dựa trên xác suất
Các phương pháp học có giám sát
Máy vectơ hỗ trợ (Support vector machine)
Các phương pháp học không giám sát
L cộng
Lọc
ộ tác
tá
Học tăng cường
Học Máy – IT 4862
CuuDuongThanCong.com
2
/>
Máy vectơ hỗ trợ - Giới thiệu (1)
Máy vectơ hỗ trợ (Support vector machine - SVM) được
đề cử bởi V
V. Vapnik và các đồng nghiệp của ông vào
những năm 1970s ở Nga, và sau đó đã trở nên nổi tiếng
và phổ biến vào những năm 1990s
SVM là một phương pháp phân lớp tuyến tính (linear
classifier), với mục đích xác định một siêu phẳng
(hyperplane) để phân tách hai lớp của dữ liệu – ví dụ:
lớp các ví dụ có nhãn dương (positive) và lớp các ví dụ
có nhãn âm (negative)
Các hàm nhân (kernel functions), cũng được gọi là các
hàm biến đổi (transformation functions), được dùng cho
các trường hợp phân lớp phi tuyến
Học Máy – IT 4862
CuuDuongThanCong.com
3
/>
Máy vectơ hỗ trợ - Giới thiệu (2)
SVM có một nền tảng lý thuyết chặt chẽ – dựa trên nhiều
định lý toán học
SVM là một phương pháp tốt (phù hợp) đối với những bài
tốn phân lớp có khơng gian biểu diễn thuộc tính lớn –
các đối tượng cần phân lớp được biểu diễn bởi một tập
rất lớn các thuộc tính
SVM đã được biết
ế đến
ế là một trong số
ố các phương pháp
phân lớp tốt nhất đối với các bài toán phân lớp văn bản
(text/document classification)
Học Máy – IT 4862
CuuDuongThanCong.com
4
/>
Máy vectơ hỗ trợ - Giới thiệu (3)
Các vectơ được ký hiệu bởi các chữ đậm nét!
Biểu
Biể diễn
diễ tập
tậ r các
á víí dụ
d huấn
h ấ luyện
l ệ (training
(t i i examples)
l )
{(x1, y1), (x2, y2), …, (xr, yr)},
xi là một vectơ đầu vào được biểu diễn trong không gian X ⊆ Rn
yi là một nhãn lớp (giá trị đầu ra), yi ∈ {1,-1}
yi=1: lớp dương (positive); yi=-1: lớp âm (negative)
⎧ 1 nêu 〈 w ⋅ x i 〉 + b ≥ 0
Đối với một ví dụ xi: yi = ⎨
⎩− 1 nêu 〈 w ⋅ x i 〉 + b < 0
SVM xác định một hàm phân tách tuyến tính
f(x) = 〈w ⋅ x〉 + b
[Eq.1]
[Eq.2]
w là vectơ trọng số
ố các thuộc tính; b là một giá trị số
ố thực
Học Máy – IT 4862
CuuDuongThanCong.com
5
/>
Mặt siêu phẳng phân tách
Mặt siêu phẳng phân tách các ví dụ huấn luyện lớp
dương và các ví dụ huấn luyện lớp âm: 〈w ⋅ x〉 + b = 0
Còn được gọi là ranh giới (bề mặt) quyết định
Tồn tại nhiều mặt siêu phẳng phân tách
tách. Chọn cái nào?
[Liu, 2006]
CuuDuongThanCong.com
Học Máy – IT 4862
6
/>
Mặt siêu phẳng có lề cực đại
SVM lựa chọn mặt siêu phẳng phân tách có lề (margin) lớn nhất
Lý thuyết học máy đã chỉ ra rằng một mặt siêu phẳng phân tách như
thế sẽ tối thiểu hóa giới hạn lỗi (phân lớp) mắc phải
[Liu, 2006]
CuuDuongThanCong.com
Học Máy – IT 4862
7
/>
SVM – Dữ liệu phân tách được tuyến tính
Giả sử rằng tập dữ liệu (tập các ví dụ huấn luyện) có thể phân
tách được
ợ một
ộ cách tuyến
y tính
Xét một ví dụ của lớp dương (x+,1) và một ví dụ của lớp âm
(x-,-1) gần nhất đối với siêu phẳng phân tách H0 (<w⋅x>+b=0)
Định nghĩa 2 siêu phẳng lề song song với nhau
H+ đi qua x+, và song song với H0
H- đi q
qua
a x-, và
à song song với
ới H0
H+: <w⋅x+>+b = 1
[[Eq.3]
q ]
H-: <
<w⋅x->+b = -1
1
sao cho:
<w⋅xi>+b ≥ 1,
nếu yi = 1
<w⋅xi>+b ≤ -1,, nếu yi = -1
Học Máy – IT 4862
CuuDuongThanCong.com
8
/>
Tính tốn mức lề (1)
Mức lề (margin) là khoảng cách giữa 2 siêu phẳng lề H+
và H-. Trong hình vẽ nêu trên:
d+ là khoảng cách giữa H+ và H0
d- là khoảng cách giữa H- và H0
(d+ + d−) là mức lề
Theo lý thuyết đại số vectơ, khoảng cách (trực giao) từ
một
ột điểm
điể xi đến
đế mặt
ặt siêu
iê phẳng
hẳ (〈w
(〈 ⋅ x〉〉 + b = 0) là:
là
| 〈w ⋅ xi 〉 + b |
|| w ||
trong đó ||w|| là độ dài của w:
2
2
|| w ||= < w ⋅ w > = w1 + w2 + ... + wn
2
Học Máy – IT 4862
CuuDuongThanCong.com
[Eq.4]
[[Eq.5]
q ]
9
/>
Tính tốn mức lề (2)
Tính tốn d+ – khoảng cách từ x+ đến (〈w ⋅ x〉 + b = 0)
Áp dụng
d ng các biểu
biể thức [Eq.3-4]:
[Eq 3 4]
| 〈w ⋅ x+ 〉 + b |
|1|
1
d+ =
=
=
|| w ||
|| w || || w ||
Tính tốn d- – khoảng cách từ x- đến (〈w ⋅ x〉 + b = 0)
[Eq.6]
Áp dụng các biểu thức [Eq.3-4]:
| 〈 w ⋅ x − 〉 + b | | −1 |
1
=
=
d− =
|| w ||
|| w || || w ||
Tí h tốn
Tính
t á mức
ứ lề
[Eq.7]
2
margin = d + + d − =
|| w ||
[Eq.8]
Học Máy – IT 4862
CuuDuongThanCong.com
10
/>
Học SVM – Cực đại hóa mức lề
Định nghĩa (Linear SVM – Trường hợp phân tách được)
Tập
Tậ gồm
ồ r víí dụ
d huấn
h ấ luyện
l ệ có
ó thể phân
hâ tách
tá h tuyến
t ế tính
tí h
D = {(x1,y1), (x2,y2), …, (xr,yr)}
SVM học một phân lớp nhằm
ằ cực đại hóa mức lề
ề
Tương đương với việc giải quyết bài toán tối ưu bậc
hai sau đây
Tìm w và b sao cho: margin =
Với điều kiện:
ệ
2
w
đạt cực đại
⎧〈 w ⋅ x i 〉 + b ≥ 1, nêu y i = 1
; với mọi ví dụ huấn luyện xi (i=1..r)
⎨
⎩〈 w ⋅ x i 〉 + b ≤ −1, nêu y i = -1
Học Máy – IT 4862
CuuDuongThanCong.com
11
/>
Cực đại hóa mức lề – Bài tốn tối ưu
Học SVM tương đương với giải quyết bài tốn cực tiểu
hóa có ràng buộc sau đây
Cực tiểu hóa:
Với điều kiện:
〈 w ⋅ w〉
[Eq.9]
2
⎧ 〈 w ⋅ x i 〉 + b ≥ 1, if yi = 1
⎨
⎩〈 w ⋅ x i 〉 + b ≤ −1, if yi = −1
…tương đương với
Cực tiểu hóa:
Với điều kiện:
〈 w ⋅ w〉
2
yi (〈 w ⋅ x i 〉 + b) ≥ 1, ∀i = 1..r
Học Máy – IT 4862
CuuDuongThanCong.com
[Eq 10]
[Eq.10]
12
/>
Lý thuyết tối ưu có ràng buộc (1)
Bài tốn cực tiểu hóa có ràng buộc đẳng thức:
Cực tiểu hóa f(x),
f(x) với điều kiện g(x)=0
Điều kiện cần để x0 là một lời giải:
⎧∂
=0
⎪ ( f(x) + αg (x))
; với α là một hệ số nhân
⎨ ∂x
x=x0
⎪ g(x) = 0
(multiplier) Lagrange
⎩
Trong trường hợp có nhiều ràng buộc đẳng thức gi(x)=0
(i=1..r), cần một hệ số nhân Lagrange cho mỗi ràng buộc:
r
⎧∂ ⎛
⎞
=0
f(
x
)
α
g
(
x
)
+
⎜
⎟
⎪
∑
i i
;
⎨ ∂x ⎝
i =1
⎠ x=x0
⎪ g (x) = 0
⎩ i
với αi là một hệ số nhân
Lagrange
g g
Học Máy – IT 4862
CuuDuongThanCong.com
13
/>
Lý thuyết tối ưu có ràng buộc (2)
Bài tốn cực tiểu hóa có các ràng buộc bất đẳng thức:
Cực tiểu hóa f(x),
f(x) với các điều kiện gi(x)≤0
Điều kiện cần để x0 là một lời giải:
r
⎧∂ ⎛
⎞
f(
x
)
α
g
(
x
)
=0
+
⎜
⎟
⎪
∑
i i
;
⎨ ∂x ⎝
i =1
⎠ x=x0
⎪ g (x) ≤ 0
⎩ i
với αi ≥ 0
Hàm
r
L = f(x) + ∑ αi g i(x)
i =1
được gọi là hàm Lagrange
Học Máy – IT 4862
CuuDuongThanCong.com
14
/>
Giải bài tốn cực tiểu hóa có ràng buộc
Biểu thức Lagrange
r
1
LP (w, b, α ) = 〈 w ⋅ w〉 − ∑ α i [ yi (〈 w ⋅ x i 〉 + b) − 1]
2
i =1
[Eq.11]
trong đó αi (≥0) là các hệ số nhân Lagrange
Lý thuyết tối ưu chỉ ra rằng một lời giải tối ưu cho [Eq.11]
phải thỏa mãn các điều kiện nhất định
định, được gọi là các
điều kiện Karush-Kuhn-Tucker – là các điều kiện cần
(nhưng không phải là các điều kiện đủ)
Các điều kiện Karush-Kuhn-Tucker đóng vai trò trung
tâm trong cả lý thuyết và ứng dụng của lĩnh vực tối ưu
có ràng buộc
Học Máy – IT 4862
CuuDuongThanCong.com
15
/>
Tập điều kiện Karush-Kuhn-Tucker
r
∂LP
= w − ∑ αi y i x i = 0
∂w
i =1
r
∂LP
= − ∑ αi y i = 0
∂b
i =1
[Eq.12]
[Eq.13]
yi ( w ⋅ x i + b ) − 1 ≥ 0, ∀x i (i = 1..r )
[E 14]
[Eq.14]
αi ≥ 0
αi ( yi ( w ⋅ x i + b ) − 1) = 0
[Eq.15]
[Eq 16]
[Eq.16]
[Eq.14] chính là tập các ràng buộc ban đầu
Điều kiện bổ sung [Eq.16] chỉ ra rằng chỉ những ví dụ (điểm dữ liệu)
thuộc các mặt siêu phẳng lề (H+ và H-) mới có αi>0 – bởi vì với
những ví đụ đó thì yi(〈w⋅xi〉+b)-1=0
→Những ví dụ (điểm dữ liệu) này được gọi là các vectơ hỗ trợ!
Đối
ố với các ví dụ khác (khơng phải là các vectơ hỗ trợ) thì αi=0
Học Máy – IT 4862
CuuDuongThanCong.com
16
/>
Giải bài tốn cực tiểu hóa có ràng buộc
Trong trường hợp tổng quát, các điều kiện Karush-KuhnTucker là cần đối với một lời giải tối ưu,
ưu nhưng chưa đủ
Tuy nhiên, đối với bài tốn cực tiểu hóa đang xét có hàm
mục tiêu lồi (convex) và các ràng buộc tuyến tính, thì các
điề kiện
điều
kiệ Karush-Kuhn-Tucker
K
h K h T k là cần
ầ và
à đủ đối với
ới một
ột lời
giải tối ưu
Giải quyết bài tốn tối ưu này vẫn là một nhiệm vụ khó
khăn – do sự tồn tại của các ràng buộc bất đẳng thức!
Phương pháp Lagrange giải quyết bài toán tối ưu hàm lồi
dẫn
ẫ đến
ế một biểu
ể thức đối
ố ngẫu
ẫ (dual) của bài toán tối
ố ưu
→ Dễ giải quyết hơn so với biểu thức cần tối ưu ban đầu
(primal)
Học Máy – IT 4862
CuuDuongThanCong.com
17
/>
Biểu thức đối ngẫu
Để thu được biểu thức đối ngẫu từ biểu thức ban đầu:
→Gán giá trị bằng 0 đối với các đạo hàm bộ phận của biểu thức
Lagrange trong [Eq.11] đối với các biến ban đầu (w và b)
→Sau đó, áp dụng các quan hệ thu được đối với biểu thức Lagrange
Tức là: áp dụng các biểu
ể thức [Eq.12-13] vào biểu
ể thức Lagrange
ban đầu ([Eq.11]) để loại bỏ các biến ban đầu (w và b)
Biểu thức đối ngẫu LD
r
1 r
LD (α ) = ∑ α i − ∑ α iα j yi y j 〈 x i ⋅ x j 〉
2 i , j =1
i =1
[Eq.17]
Cả hai biểu thức LP và LD đều là các biểu thức Lagrange
Dựa trên cùng một hàm một tiêu – nhưng với các ràng buộc khác nhau
Lời giải
iải tì
tìm được,
đ
bằng
bằ cách
á h cực tiểu
tiể hóa
hó LP hoặc
h ặ cực đại
đ i hó
hóa LD
Học Máy – IT 4862
CuuDuongThanCong.com
18
/>
Bài tốn tối ưu đối ngẫu
r
1 r
Cực đại hóa: LD (α ) = ∑ α i − ∑ α iα j yi y j 〈 x i ⋅ x j 〉
2 i , j =1
i =1
⎧ r
⎪∑ α i yi = 0
Với điều kiện:
⎨ i =1
⎪⎩α i ≥ 0, ∀i = 1..
1 r
[Eq.18]
Đối với hàm mục tiêu là hàm lồi và các ràng buộc tuyến tính, giá trị
cực đại của LD xảy ra tại cùng các giá trị của w, b và αi giúp đạt được
giá trị cực tiểu của LP
Giải quyết biểu thức [Eq.18], ta thu được các hệ số nhân Lagrange αi
(các hệ số αi này sẽ được dùng để tính w và b)
Giải quyết biểu thức [Eq.18] cần đến các phương pháp số học (để giải
quyết bài toán tối ưu hàm lồi bậc hai có các ràng buộc tuyến tính)
→ Chi tiết các phương pháp này nằm ngoài phạm vi của bài giảng!
Học Máy – IT 4862
CuuDuongThanCong.com
19
/>
Tính các giá trị w* và b*
Gọi SV là tập các vectơ hỗ trợ
SV là tập con của tập r các ví dụ huấn luyện ban đầu
→αi>0 đối với các vectơ hỗ trợ xi
→αi=0 đối với các vectơ không phải là vectơ hỗ trợ xi
Sử dụng biểu
ể thức [Eq.12], ta có thể
ể tính được giá trị w*
r
w* = ∑ α i yi x i =
i =1
∑α y x ;
x i ∈SV
i
i
i
bởi vì ∀xi ∉ SV: αi=0
Sử dụng biểu thức [Eq.16] và (bất kỳ) một vectơ hỗ trợ xk, ta có
αk(yk(
(
w .xk>+b*)-1)=0
b ) 1) 0
Nhớ rằng αk>0 đối với mọi vectơ hỗ trợ xk
Vì vậy: (yk(<w*.xk>+b*)-1)=0
Từ đây, ta tính được giá trị b*= yk-<w*.xk>
Học Máy – IT 4862
CuuDuongThanCong.com
20
/>
Ranh g
giới quyết
y định phân lớp
Ranh giới quyết định phân lớp được xác định bởi siêu phẳng:
f(x) = 〈 w * ⋅x〉 + bb* =
∑ α y 〈 x ⋅ x〉 + bb* = 0
x i ∈SV
i
i
i
[Eq.19]
Đối với một ví dụ cần phân lớp z, cần tính giá trị:
⎛
⎞
sign( 〈 w * ⋅z〉 + b*) = sign⎜⎜ ∑ αi yi 〈 x i ⋅ z〉 + b* ⎟⎟
⎝ x i ∈SV
⎠
[Eq.20]
→ Nếu biểu thức [Eq.20]
[Eq 20] trả về giá trị 1,
1 thì ví dụ z được phân vào lớp
có nhãn dương (positive); ngược lại, được phân vào lớp có nhãn
âm (negative)
Việc phân lớp này:
Chỉ phụ thuộc vào các vectơ hỗ trợ
Chỉ cần g
giá trịị tích vơ hướng
g ((tích trong)
g) của 2 vectơ ((chứ không
g
cần biết giá trị của 2 vectơ đấy)
Học Máy – IT 4862
CuuDuongThanCong.com
21
/>
Linear SVM: Khôngg phân
p
tách được(1)
Phương pháp SVM trong trường hợp các ví dụ phân lớp tuyến
tính nhưng khơng thể phân tách được?
Trường hợp phân lớp tuyến tính và phân tách được là lý tưởng (ít
xảy ra)
Tập
ập dữ liệu
ệ có thể chứa nhiễu,, lỗi ((vd: một
ộ số ví dụ
ụ được
ợ g
gán nhãn
lớp sai)
Đối với trường hợp phân tách được, bài toán tối ưu:
Cực tiểu hóa:
Với điều kiện:
〈 w ⋅ w〉
2
yi (〈 w ⋅ x i 〉 + b) ≥ 1, i = 1, 2, ..., r
Nếu tập dữ liệu chứa nhiễu, các điều kiện có thể khơng được
thỏa mãn
→ Khơng
Khơ tìm
tì được
đ
lời giải
iải (w*
( * và
à b*)!
Học Máy – IT 4862
CuuDuongThanCong.com
22
/>
Linear SVM: Khơngg phân
p
tách được (2)
Hai ví dụ nhiều xa và xb được gán nhãn lớp sai
[Liu, 2006]
Học Máy – IT 4862
CuuDuongThanCong.com
23
/>
Nới lỏngg các điều kiện
Để làm việc với các dữ liệu chứa nhiễu, cần nới lỏng các điều
kiện
ệ lề ((margin
g constraints)) bằng
g cách sử dụng
ụ g các biến slack
ξi (≥ 0)
〈w⋅xi〉+b ≥ 1−ξi đối với các ví dụ có giá trị yi = 1
〈w⋅xi〉+b ≤ −1+ξi
đối
ố với các ví dụ có giá trị yi = -1
Đối với một ví dụ nhiễu/lỗi: ξi >1
(Σiξi) là giới hạn trên của lỗi của các ví dụ huấn luyện
Các điều kiện mới đối với trường hợp (phân lớp tuyến tính)
khơng thể
ể phân tách được:
yi(〈w⋅xi〉+b) ≥ 1−ξi, ∀i =1..r
ξi ≥ 0,
0 ∀i =1..r
1
Học Máy – IT 4862
CuuDuongThanCong.com
24
/>
Tích hợp lỗi trong hàm mục tiêu
Cần phải tích hợp lỗi trong hàm tối ưu mục tiêu
Bằng cách
Bằ
á h gán
á giá
iá trị
t ị chi
hi phí
hí (cost)
(
t) cho
h các
á lỗi,
lỗi và
à tích
tí h
hợp chi phí này trong hàm mục tiêu mới:
Cực tiểu hóa:
r
〈w ⋅ w 〉
+ C (∑ ξ i ) k
2
i =1
trong
g đó C ((>0)) là tham số xác định mức độ chi phí ((penalty
y
degree) đối với các lỗi
→ Giá trị C càng lớn, thì mức độ chi phí càng cao đối với các lỗi
k =1 thường được sử dụng
Lý do (ưu điểm): Thu được biểu thức đối ngẫu (dual formulation)
đơn giản hơn – không chứa ξi và các hệ số nhân Lagrange của
chúng
Học Máy – IT 4862
CuuDuongThanCong.com
25
/>