2 Support Vector Machine
2.2 Support vector machine phi tuyến
2.2.2 Thủ thuật Kernel
Thủ thuật Kernel là một ý tưởng tuyệt vời mà được sử dụng rộng rãi trong các thuật tốn để tính các tích hφ(xi), φ(xj)i trong khơng gian đặc trưng H. Thủ thuật ở đây là thay vì tính các tích trong H rất tốn kém tính tốn vì số chiều cao, chúng ta sẽ tính tốn chúng bằng cách sử dụng một hàm kernel khơng tuyến tínhK(xi,xj) = hφ(xi), φ(xj)i, trong khơng gian đầu vào mà tăng được tốc độ tính tốn. Khi đó chúng ta chỉ cần tính tốn một SVM tuyến tính nhưng các phép toán được thực hiện trên một khơng gian khác.
Kernel và tính chất
Định nghĩa 2.2.1. Một kernel K là một hàmK : Rr×Rr −→Rmà∀x,y ∈Rr
thì
K(x,y) =hφ(x), φ(y)i. (2.51)
Ví dụ 2.2.1. Xét phép biến đổi dữ liệu từ không gian đầu vào X = R2 vào không gian đặc trưng H= R3 được cho bởi
φ :R2 −→R3
x = (x1, x2) 7→φ(x) = (φ1(x), φ2(x), φ3(x)) = (x21,√
2x1x2, x22)
Ánh xạ trên cũng có thể được lý giải như sau. Cho x = (x1, x2) và z= (z1, z2)
ta có: hx,zi2 = ( 2 X i=1 xizi)2 = (x1z1+x2z2)2 =x21z12+ 2x1z1x2z2+x22z22 =D (x21,√ 2x1x2, x22),(z12,√ 2z1z2, z22)E =hφ(x), φ(z)i.
Khi đó, chúng ta sẽ lấy K(x,z) = hφ(x), φ(z)i=hx,zi2. Như vậy, khi sử dụng kernel chúng ta khơng cần phải tính ánh xạ φ.
Nhận xét 2.2.1. • Hàm kernel được thiết kế để tính tốn các tích trongH bằng cách chỉ sử dụng dữ liệu đầu vào gốc. Do đó, bất cứ chỗ nào chúng ta thấy tích hφ(x), φ(y)i chúng ta sẽ thay thế bằng hàm kernel K(x,y).
• Việc lựa chọn K ngầm xác định cả φ và H.
• Tiến bộ lớn khi sử dụng kernel cho các tích vơ hướng đó là nếu chúng ta cho trước hàm kernel K thì chúng ta khơng cần biết dạng rõ ràng của φ. • Chúng ta địi hỏi rằng hàm kernel là đối xứng K(x,y) = K(y,x) và thỏa mãn bất đẳng thức [K(x,y)]2 ≤ K(x,x)K(y,y) được suy ra từ bất đẳng thức Cauchy-Schward. Nếu K(x,x) = 1,∀x ∈ Rr thì ngụ ý rằng
kφ(x)kH = 1.
Tính chất 2.2.1. Một kernel K được gọi là có tính chất tái tạo nếu ∀f ∈ H, hf(·), K(x,·)i= f(x). (2.52)
Nếu K có tính chất này, chúng ta gọi K là kernel tái tạo.
Trong trường hợp cụ thể, nếu f(·) =K(·,x) thì
hK(x,·), K(y,·)i= K(x,y). (2.53)
Định nghĩa 2.2.2. Cho x1, ...,xn là tập bất kỳ của n điểm trong Rr thì ma trận vng cấp n K = (Kij), trong đó Kij =K(xi,xj);i, j = 1,2, ..., n được gọi là ma trận Gram của K đối với x1, ...,xn.
Định nghĩa 2.2.3. Nếu ma trận Gram K thỏa mãn uTKu ≥ 0 với mọi n vector u thì nó được gọi là xác định không âm với các giá trị riêng khơng âm. Khi đó chúng ta nói rằng K là 1 kernel xác định khơng âm hay kernel Mercer.
Tính chất 2.2.2. Nếu K là một kernel Mercer trên Rr ×Rr thì chúng ta có thể xây dựng một khơng gian Hilbert duy nhất HK của các hàm giá trị thực mà K là kernel tái tạo. Khi đó chúng ta gọi HK là một không gian Hilbert kernel tái tạo (thực).
Một số hàm kernel thường gặp
• Kernel đa thức khơng thuần nhất bậc d,
K(x,y) = (hx,yi+c)d,x,y∈ Rr (2.54) trong đó, c và d là các tham số.
Khi c = 0 chúng ta có dạng thuần nhất của kernel. Nếu d= 1 và c = 0, ánh xạ
đặc trưng là đồng nhất. Thông thường, chúng ta lấy c >0. Một ánh xạ khơng
tuyến tính đơn giản được cho bởi trường hợpr = 2 vàd = 2. Nếux = (x1, x2)T
và y = (y1, y2)T thì
K(x,y) = (hx,yi+c)2 = (x1y1+x2y2+c)2 = hφ(x), φ(y)i,
trong đó, φ(x) = (x2 1, x2
2,√
2x1x2,√
2cx1,√
2x2, c)T và tương tự cho φ(y).
Trong ví dụ này, hàm φ(x) bao gồm 6 đặc trưng (H=R6), bao gồm tất cả các đơn thức có bậc cao nhất bằng 2. Với kernel này, chúng ta thấy rằng c điều khiển độ lớn của số hạng hằng số và số hạng có bậc 1. Tổng quát, có dim(H) = r+d d
các đặc trưng khác nhau, bao gồm tất cả đơn thức có bậc lớn nhất là d. Số chiều của H nhanh chóng có thể trở nên rất lớn. Ví dụ, về bài tốn nhận diện trực quan, dữ liệu có thể bao gồm các bức ảnh 16 × 16 pixel (vì vậy, mỗi bức ảnh chuyển thành 1 vector có chiều
r = 256). Nếu d= 2 thì dim(H) = 33.670 trong khi nếu d = 4 thì chúng ta sẽ có dim(H) = 186.043.585.
• Một số kernel phổ biến khác được cho bởi bảng dưới đây
Trong đó, kernel sigmoid khơng là 1 kernel. Nó chỉ thỏa mãn điều kiện Mer- cer với các giá trị chắc chắn củaavàb. Nhưng nó trở nên rất phổ biến trong vai
trị đó trong các tình huống nhất định (mạng neural 2 lớp). Kernel Gaussian RBF, Laplacian và thin-plate spline là ví dụ của kernel biến đổi bất biến (hoặc đứng im) có dạng tổng quát K(x,y) = k(x−y) trong đó k : Rr −→R. Kernel đa thức là 1 ví dụ của kernel khơng bất biến. Một kernel bất biến K(x,y) là đẳng hướng nếu nó chỉ phụ thuộc vào khoảng cách δ = kx−yk nghĩa là nếu
Bảng 2.1: Các hàm kernel K(x, y), trong đó σ >0 là tham số, a, b, c≥0, và d là một số nguyên. Chuẩn Euclid là kxk2
=xTx.
Kernel K(x, y)
Polynomial of degree d (hx, yi+c)d
Gaussian radial basis function expn−kx−yk2
2σ2
o
Laplacian expn−kx−yk
σ
o
Thin-plate spline kx−yk
σ 2 logenkx−yk σ o Sigmoid tanh(ahx, yi+b) K(x,y) = k(δ) thì mở rộng để k(0) = 1.
Nhận xét 2.2.2. Không phải việc lựa chọn kernel là rõ ràng trong bất kỳ ứng dụng nào. Các thông tin trước hoặc 1 nghiên cứu thông qua thuật ngữ có thể hữu dụng. Nếu khơng có thơng tin như vậy khả dụng, cách tiếp cận tốt nhất là thử kernel Gaussian RBF mà chỉ có 1 tham số đơn σ để xác định hoặc 1 kernel đa thức có bậc thấp (d = 1 hoặc 2). Nếu cần thiết, các kernel phức tạp hơn có thể được sử dụng để so sánh kết quả.
Xâu kernel cho phân loại văn bản
Định nghĩa 2.2.4. Cho A là một hữu hạn alphabet. Một "xâu" s =s1s2· · ·s|s|
là một dãy hữu hạn các phần tử của A, bao gồm cả dãy rỗng, trong đó |s| là độ dài của s.
Định nghĩa 2.2.5. Chúng ta gọiu là một dãy con của s (được viết là u= s(i))
uj = sij, j = 1,2, ...,|u|.
Nếu chỉ số i là tiếp liên, chúng ta nói rằng u là một xâu con của s.
Định nghĩa 2.2.6. Độ dài của u trong s được cho bởi
ℓ(i) = i|u|−i1+ 1. (2.55)
là số phần tử của s overlaid bởi dãy con u.
Ví dụ 2.2.2. Cho S là xâu "cat". Tìm tất cả các xâu con 2 ký tự có thể của
s và tìm độ dài của nó.
Ta có s1 =c, s2 =a, s3 =t. Các dãy 2 ký tự có thể có "ca", "ct" và "at".
Với xâu u =ca, chúng ta có u1 =c= s1, u2 =a= s2, do đó u = s(i) với i= (i1, i2) = (1,2). Do đó ℓ(i) = 2. Tương tự cho xâu con u ="ct":u1 =c= s1, u2 =t=s3, từ đó i = (i1, i2) = (1,3) và ℓ(i) = 3 và xâu u="at" có u1 =a= s2, u2 =t= s3, từ đó i = (i1, i2) = (2,3) và ℓ(i) = 2.
Gọi D = Am là tập tất cả các xâu hữu hạn có độ dài lớn nhất bằng m từ
A thì không gian đặc trưng của 1 xâu kernel là RD. Ánh xạ đặc trưng φu lấy trên 1 xâu s ∈ Am được mô tả trong các số hạng của xâu cho trước u ∈ Am. Với các dãy con không tiếp liên, định nghĩa λ ∈(0; 1) là tỷ lệ "drop -off" (hoặc nhân tố "decay").
Giá trị φu(s) được tính như sau: Đồng nhất tất cả các dãy con (được đánh chỉ số i) của s mà giống u: với mỗi dãy con như vậy, nâng λ lên lũy thừa ℓ(i); và
sau đó lấy tổng các kết quả trên toàn bộ dãy con. Do λ < 1 nên giá trị càng lớn ℓ(i) thì mang ít trọng trọng lượng hơn các giá trị càng nhỏ. Chúng ta viết
φu(s) = X i:u=s(i)
λℓ(i), u∈ Am. (2.56) Như vậy, trong ví dụ trên chúng ta có
φca(cat) = λ2, φct(cat) = λ3, φat(cat) = λ2.
Định nghĩa 2.2.7. Cho s, t là hai xâu. Kernel liên kết với ánh xạ đặc trưng tương ứng với s và t được cho bởi tổng các tích vơ hướng trên tất cả các xâu con chung có độ dài m,
Km(s, t) =X u∈D hφu(s), φu(t)i =X u∈D X i:u=s(i) X j:u=s(j) λℓ(i)+ℓ(j). (2.57)
Khi đó, kernel (2.57) được gọi là một xâu kernel.
Ví dụ 2.2.3. Cho t là xâu "car" (t1=c,t2=a, t3=r, |t| = 3). Ta thấy xâu "cat"
và "car" đều là các xâu con của xâu "cart". Các xâu con 2 ký tự của t là "ca", "cr" và "ar". Với các xâu con này, chúng ta có
φca(car) = λ2, φcr(car) = λ3, φar(car) = λ2.
Tích vô hướng (2.51) được cho bởi
K2(cat,car) = hφca(cat), φca(car)i= λ4.
Các ánh xạ đặc trưng trong không gian đặc trưng thường được chuẩn hóa để loại bỏ bất kỳ độ chệch nào do độ dài tài liệu. Điều này tương đương với chuẩn hóa kernel (2.57)
Km∗(s, t) = p Km(s, t)
Km(s, s)Km(t, t). (2.58)
Ví dụ 2.2.4. Tiếp tục ví dụ trên, chúng ta có
K2(cat,cat) = hφca(cat), φca(cat)i+hφct(cat), φct(cat)i+hφat(cat), φat(cat)i=λ6+2λ4.
Tương tự, ta cũng có K2(car,car) = λ6+ 2λ4. Từ đó, suy ra K2∗(cat,car) = λ4 (λ6+ 2λ4) = 1 λ2+ 2.
2.2.3 Tối ưu hóa trong khơng gian đặc trưng
Cho K là một kernel. Giả sử rằng, các quan sát trong L là được tách tuyến tính trong khơng gian đặc trưng tương ứng với kernek K. Khi đó, bài tốn tối ưu đối ngẫu là tìm α và β0 để
cực đại FD(α) =1T
nα− 1
2α
THα (2.59) với ràng buộc α ≥ 0, αTy = 0, (2.60) trong đó, y= (y1, ..., yn)T,H = (Hij) và
Hij = yiyjK(xi,xj) = yiyjKij, i, j = 1,2, ..., n. (2.61) Bởi vì K là một kernel, ma trận Gram K = (Kij) là xác định không âm và như vậy cũng là ma trận H với các phần tử được xác định trong (2.61). Do đó, hàm FD(α) là lồi. Vì vậy, chúng ta sẽ có lời giải duy nhất với bài toán tối ưu ràng buộc. Nếu αb và β0b giải bài tốn này thì quy tắc quyết định SVM là sign{fb(x)}, trong đó b f(x) = β0b +X i∈sv b αiyiK(x,xi) (2.62)
là siêu phẳng tách tối ưu trong không gian đặc trưng tương ứng với kernel K.
Trong trường hợp không tách được, sử dụng kernel K, bài toán đối ngẫu của bài toán tối ưu 1 norm soft-margin là tìm α để
cực đại FD∗(α) =1Tnα− 1
2α
THα (2.63) với ràng buộc 0≤ α ≤C1n, αTy= 0, (2.64) trong đó y và H được xác định phía trên. Với 1 lời giải tối ưu, các điều kiện Karush- Kuhn- Tucker (2.41) - (2.46) vẫn đúng cho bài tốn gốc. Vì vậy một lời giảiα cho bài toán này phải thỏa mãn tất cả các điều kiện. May mắn là việc kiểm tra một tập các điều kiện đơn giản hơn cũng thỏa mãn: chúng ta phải kiểm tra rằng α thỏa mãn (2.64) và (2.41) đúng cho tất cả các điểm trong đó
2.2.4 SVM là một phương pháp quy chuẩn
Phương pháp SVM cũng có thể được coi là một giải pháp cho bài toán quy chuẩn cụ thể. Cho f ∈ HK là không gian Hilbert kernel tái tạo tương ứng với kernekK với chuẩn bình phươngkfk2
HK trong HK.
Xét sai số phân loại yi−f(xi), trong đó yi ∈ {−1,+1}. Khi đó
|yi−f(xi)|= |yi(1−yif(xi))| = |1−yif(xi)| = (1−yif(xi))+, i = 1,2, ..., n
(2.65) trong đó (x)+ = max{x,0}.
Định nghĩa 2.2.8. Đại lượng (1−yif(xi))+ mà có thể bằng 0 nếu tất cả các
xi được phân loại đúng thì được gọi là hàm tổn thất hinge.
Hình 2.5: Hàm tổn thất Hinge (1−yf(x))+ cho y=−1và y= +1.
Chúng ta mong muốn tìm f ∈ HK để cực tiểu phiên bản phạt của tổn thất
hinge. Cụ thể chúng ta muốn tìm f ∈ HK để cực tiểu 1 2 n X i=1 (1−yif(xi))++λkfk2HK, λ > 0. (2.66) Sau khi cực tiểu f được tìm thấy thì quy tắc phân loại SVM là C(x) =
Tiêu chuẩn tối ưu (2.66) khơng khả vi do hình dạng của hàm tổn thất hinge. May mắn là, chúng ta có thể viết lại bài tốn dưới 1 dạng khác và giải quyết nó. Chúng ta bắt đầu từ thực tế rằng mỗi f ∈ H có thể được viết một cách không duy nhất dưới dạng tổng của 2 số hạng
f(·) =fk(·) +f⊥(·) =
n
X
i=1
αiK(xi,·) +f⊥(·), (2.67) trong đó fk ∈ HK là phép chiếu của f lên không gian con HK của H và f⊥ là thuộc khơng gian con vng góc với HK; nghĩa là f⊥(·), K(xi,·)
H = 0, i = 1,2, ..., n. Chúng ta có thể viết f(xi) thơng qua tính chất tái tạo như sau
f(xi) = hf(·), K(xi,·)i=D
fk(·), K(xi,·)E
+
f⊥(·), K(xi,·)
. (2.68) Bởi vì số hạng thứ 2 trên khơng gian Hilbert tái tạo bằng 0 nên
f(x) =
n
X
i=1
αiK(xi,x), (2.69) độc lập vớif⊥, trong đó chúng ta đã sử dụng (2.67) và hK(xi,·), K(xj,·)iHK =
K(xi,xj). Bây giờ từ (2.67), ta có
kfk2HK = kX i αiK(xi,·) +f⊥k2HK = kX i αiK(xi,·)k2HK +kf⊥k2HK ≥ kX i αiK(xi,·)k2HK, (2.70) với dấu bằng xảy ra khi và chỉ khif⊥ = 0, trong trường hợp đó bất kỳf ∈ HK
mà cực tiểu (2.66) sẽ thừa nhận 1 biểu diễn dạng (2.69). Từ (2.70), chúng ta có kfk2
HK = P
i
P
jαiαjK(xi,xj) = kβk2, trong đó
β = Pn
i=1αφ(xi). Nếu khơng gian HK bao gồm các hàm tuyến tính có dạng
f(x) = β0 +φ(x)Tβ với kfk2
HK = kβk2 thì bài tốn tìm f trong (2.66) tương đương với tìm β0, β để cực tiểu 1 n n X i=1 (1−yi(β0+φ(xi)Tβ))++λkβk2. (2.71)
Do đó, ở (2.66) mà khơng khả vi do hàm tổn thất hinge sẽ có thể được tính tốn lại trong thuật ngữ của việc giải quyết bài toán tối ưu lề mềm chuẩn 1 (1 - norm soft - margin) (2.33) - (2.34).
2.3 Support vector đa lớp
Thông thường, dữ liệu được chia vào lớn hơn 2 lớp (đa lớp). Trong trường hợp đó, chúng ta có x ∈ Rr là một r vector ngẫu nhiên được chọn để phân lớp và Y ∈ {1,2, ..., K} là lớp nhãn, trong đó K là số lớp. Do quy tắc SVM được tính tốn chỉ cho 2 lớp nên chúng ta cần biết liệu có thể mở rộng để phân biệt trong trường hợp đa lớp hay khơng và phân biệt như thế nào. Chúng ta có một vài ý tưởng để xác định một SVM đa lớp như vậy.
2.3.1 SVM đa lớp là một chuỗi bài toán nhị phân
Ý tưởng chuẩn cho bài toán phân loại đa lớp (trên K lớp) được quy thành một chuỗi các bài tốn nhị phân. Có hai cách tiếp khác nhau đối với ý tưởng này
• One-versus-rest (một so với phần cịn lại): Chia bài toán K lớp thành K
bài toán phân loại nhị phân nhỏ kiểu "lớp thứk" với "không phải lớp thứ k", k = 1, ..., K. Tương ứng với bài toán nhỏ thứ k, một quy tắc phân
loại fkb được xây dựng trong đó lớp thứ k được mặc định dương và hợp của các lớp khác được mã hóa là âm. Khi đó, mộtx mới sẽ được gán vào lớp với giá trịfk(x), kb = 1, ..., K trong đó fk(x)b là lời giải SVM tối ưu cho bài toán nhị phân của lớp thứ k và phần cịn lại.
• One - versus-one (một so với một): Chia bài toán K lớp thành
K
2
cặp so sánh của các lớp. Một quy tắc phân loại fjkb được xây dựng bằng cách mã hóa lớp thứ j là dương và lớp thứ k là âm, j, k = 1, ..., K;j 6= k.
Do đó với một x mới, chúng ta tổng hợp số phiếu cho mỗi lớp và gán x
2.3.2 Một SVM đa lớp đúng
Để xây dựng một quy tắc phân loại SVM đa lớp đúng, chúng ta cần xét đồng thời tất cả K lớpΠ1, ...,ΠK và quy tắc phân loại này phải trở thành quy tắc phân loại nhị phân nếu K = 2. Ở đây, chúng ta sẽ tìm hiểu một quy tắc
phân loại SVM do Lee, Lin và Wahba(2004).
Cho v1, ...,vK là một dãy K vector xác định như sau
v1 = (1,− 1 K −1, ...,− 1 K −1) T v2 = (− 1 K −1,1, ...,− 1 K −1) T ... vK = (− 1 K −1,− 1 K −1, ...,1) T
NếuK = 2 thìv1 = (1,−1)T và v2 = (−1,1)T. Mỗi xi có thể được gán nhãn là một trong K vector; nghĩa là, xi có nhãn yi = vk nếu xi ∈ Πk;i= 1, ..., n;k =