2 Support Vector Machine
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 toỏ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 toỏn vỡ số chiều cao, chỳng ta sẽ tớnh toỏ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 toỏn. Khi đú chỳng ta chỉ cần tớnh toỏ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 toỏ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 vuụng 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 toỏ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)) nếu cú cỏc chỉ số i = (i1, i2,ã ã ã , i|u|) với 1 ≤ i1 < ã ã ã < i|u| ≤ |s|, thỏa món
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.