Thuật toán SVM là sự tổng quát hóa phi tuyến của thuật toán hình tượng tổng quát (generalized portrait) được phát triển ở Liên Xô vào những năm 60 (Vapnik và Lerner 1963, Vapnik và Chervonenkis 1964). Thuật toán này có nền tảng dựa trên lý thuyết học thống kê hay lý thuyết VC (Vapnik – Chervonenkis) đã được phát triển quaVapnik và Chervonenkis 3 thập kỉ bởi Vapnik và Chervonenkis (1974) và Vapnik (1982, 1995) [50]. Một cách sơ lược, lý thuyết VC mô tả được những tính chất của máy học làm cho chúng có sự tổng quát tốt cho những dữ liệu chưa biết. Trong khoảng 10 năm trở lại đây, SVM được phát triển rộng rãi trên toàn thế giới bắt đầu từ phòng thí nghiệm AT&T Bell bởi Vapnik và các cộng sự. Ứng dụng đầu tiên của SVM vào công nghiệp chính là OCR (Optical Character Recognition) - nhận dạng chữ viết tay. Trong khoảng một thời gian ngắn, SVM chứng tỏ được ưu thế so với hệ thống tốt nhất lúc bấy giờ trong cả OCR lẫn nhận dạng đối tượng (Object Recognition). Ngoài ra, áp dụng vào hồi quy và dự đoán chuỗi thời gian SVM cũng cho những kết quả rất tốt. Mặc dù trên thế giới SVM là một lĩnh vực nghiên cứu rất sôi động, ở nước ta SVM vẫn chưa được quan tâm nhiều. Sau đây ta xét một số khái niệm trong kiến trúc của SVM và xét thuật toán học SVM.
a) Siêu phẳng tách .
Giả sử ta có không gian véctơ H có tích vô hướng và tập các véctơ mẫu x1,...,xm H. Các siêu phẳng trong H được biểu diễn dưới dạng:
{xH| <w,x> + b = 0}, w H , b R. (3.1) Trong công thức trên w là véctơ vuông góc với siêu phẳng: nếu w có độ dài đơn vị thì <w,x> là độ dài của x theo hướng w (độ dài hình chiếu của véctơ x xuống véctơ w). Như vậy, tập (3.1) bao gồm các véctơ có cùng độ dài theo hướng w.
Trong công thức trên, ta có thể tự do nhân w và b với một số khác không bất kỳ. Để hạn chế sự tự do này ta đưa ra định nghĩa sau:
Định nghĩa 3.1 ( Siêu phẳng chuẩn) Cặp (w,b) HxR được gọi là dạng chuẩn của siêu phẳng (3.1) tương ứng với x1,...,xm H nếu nó được co dãn (scale) sao cho
1 | , | min ,.., 1 m w x b i , (3.2)
hay nói cách khác điểm gần siêu phẳng nhất có khoảng cách đến siêu phẳng là 1/||w||
Đối với bài toán nhận dạng mẫu, mỗi vectơ xi được kết hợp với một nhãn yi {-1,1}. Hàm quyết định tuyến tính được xác định như sau:
fw,b: H {-1,1}
x fw,b(x) = sign(<w,x> +b)
và <w,x>+b=0 được gọi là siêu phẳng tách biệt. Đối chiếu với định nghĩa 3.1 ta thấy có tương ứng 2 siêu phẳng chuẩn khác nhau được phân biệt bởi hướng của nó ứng với cặp (w,b) và (-w,-b), ta sẽ xột kỹ bài toỏn này trong phần sau.
b) Khái niệm Biên và Lề
Không gian giả thuyết của SVM là không gian các siêu phẳng, trong không gian hai chiều R2 thì siêu phẳng là một đường thẳng. Cho trước dữ liệu huấn luyện, một siêu phẳng tách biệt là một siêu phẳng tách (phân chia) được thực sự các mẫu huấn luyện âm và các mẫu huấn luyện dương, lỗi huấn luyện bằng 0. Hình 13 dưới đây biểu diễn 2 siêu phẳng tách biệt trong không gian hai chiều.
Hình 13. Hai siêu phẳng tách biệt và lề của chúng.
Gọi d+ (d-) là khoảng cách ngắn nhất từ siêu phẳng tới một mẫu dương (âm). Ta giới thiệu một thuật ngữ mới gọi là lề (margin), đượcđịnh nghĩa là khoảng cách từ
điểm gần nhất tới siêu phẳng tách biệt, lề của siêu phẳng chính là tổng d+ + d-. Trong hình trên ta thấy 2 siêu phẳng 1 và 2, trong đó siêu phẳng 1 có lề lớn hơn siêu phẳng 2.
c) Vai trò của lề
Lề đóng một vai trò quyết định trong thiết kế thuật toán học SVM. Ta hãy định nghĩa lại nó một cách hình thức
Định nghĩa 3.2 (Lề hình học) Cho siêu phẳng {xH | <w.x> + b = 0} , ta gọi
(w,b)(x,y) := y(<w,x> + b)/||w|| (3.3) là lề hình họccủa điểm (x,y) Hx{-1,1}. Giá trị nhỏ nhất
(w,b) :=
m i 1,...,
min
(w,b)(xi,yi) (3.4)
gọi là lề hình học của (x1,y1),...,(xm,ym) Từ đây nếu không có chú thích gì ta coi (w,b)
là lề hình học của tập luyện và để ngắn gọn ta bỏ luôn cả chữ hình học mà không sợ mất ý nghĩa.
Với mỗi điểm (x,y) được phân lớp đúng, lề đơn giản là khoảng cách từ điểm x đến siêu phẳng (dễ thấy bằng kiến thức hình học thông thường). Ngược lại nếu điểm đó bị phân lớp sai thì lề ứng với khoảng cách âm từ điểm đó đến siêu phẳng. Cuối cùng để ý rằng, với siêu phẳng chuẩn, lề là 1/||w|| (hình 12). Định nghĩa của siêu phẳng chuẩn làm cho độ dài của w tương ứng với một đại lượng hình học có ý nghĩa.
Có nhiều cách lý giải việc ta tin rằng phân chia dữ liệu huấn luyện với lề lớn sẽ tốt cho dữ liệu kiểm tra, đi từ đơn giản đến phức tạp. Đánh giá đơn giản nhất có thể được trình bày như sau. Bởi vì các dữ liệu huấn luyện và các dữ liệu kiểm tra đều được sinh ra từ cùng một phân bố, nên khá hợp lý khi giả sử rằng hầu hết các mẫu kiểm tra đều nằm gần (trong H) ít nhất là một mẫu huấn luyện. Với mục tiêu là sự đơn giản, ta hãy giả sử trường hợp tất cả các điểm kiểm tra đều được sinh ra bằng cách thêm nhiễu vào mẫu luyện. Cụ thể hơn, cho 1 điểm luyện (x,y), ta sinh ra điểm kiểm tra có dạng (x+x,y), trong đó x H có chuẩn bị chặn bởi r>0. Rõ ràng, nếu ta cố phân chia tập luyện với lề > r thì ta sẽ phân lớp đúng trên toàn bộ tập kiểm tra (xem hình 10)
Hình 14. Thờm nhiễu vào cỏc mẫu
Bài toán phân lớp 2 chiều: phân chia „o‟ và „+‟ bằng siêu phẳng. Siêu phẳng tối ưu có lề > nhiều r sẽ phân lớp đúng với mẫu có nhiễu. Ngược lại, nếu ta dùng thuật toán perceptron (cũng xây dựng hàm tách biệt tuyến tính nhưng không tối ưu) trên dữ liệu có nhiễu thì ta sẽ thu được siêu phẳng tối ưu ở giới hạn limr
d) Huấn luyện SVM tuyến tính. SVM tuyến tính là SVM có thể tìm được siêu phẳng tuyến tính tối ưu.
Hình 15. Siêu phẳng tách biệt tuyến tính
Từ ví dụ về siêu phẳng tối ưu trong hình 15, với các mẫu dương là các chấm đen (phía phải siêu phẳng) và các mẫu âm là các khoanh tròn trắng nhỏ (phía trái siêu phẳng). Phương trình của siêu phẳng tuyến tính là: w.x +b =0. Siêu phẳng đi qua gốc tọa độ khi b= 0. Cho trước phương trình trên và một hằng số dương a, thì các mẫu dương xi được xác định bởi bắt đẳng thức: w.xi+ b ≥ a và các mẫu âm xi được xác định bởi bất đẳng thức: w.xi+ b ≤ -a.
Trên hình 15 các mẫu thử nằm trên 2 siêu phẳng H1 và H2 được gọi là các vector hỗ trợ. Các vector này quyết định vị trí của siêu phẳng tối ưu. Khi đã tìm được hai tham số w và b thích hợp thì một mẫu mới x được xác định nằm trong lớp y bởi siêu phẳng tối ưu SVM nhờ xác định :
y= sgn(w.x +b) (3.5) Bài toán quy về bài toán đi tìm siêu phẳng tối ưu hay tìm pháp tuyến w.
Hình 16 dưới đây biểu diễn siêu phẳng tách biệt chuẩn khi hằng số a=1. Rõ ràng để lề là lớn nhất thì ||w|| phải nhỏ nhất
Hình 16. Siêu phẳng tách biệt chuẩn.
Như vậy ta lập được bài toán tối ưu để tìm siêu phẳng tốt nhất
2 b , w || w || 2 / 1 ) w ( min
Bài toán này gọi là bài toán tối ưu hoá gốc. Để giải bài toán tối ưu trên, ta dùng phương pháp nhân tử Lagarăng để chuyển nó về bài toán đối ngẫu.
Với các nhân tử Lagrang dương i , i=1,...,lta xây dựng hàm Lagrang
l i i l i i i iy w x b w b w L 1 1 2 ) , ( || || 2 / 1 ) , , ( trong đó =(1,...,l)
Theo lý thuyết tối ưu hoá, ta cần cực tiểu hàm Lagrang L(w,b,) theo biến w và b, cực đại theo i. Như vậy sau khi giải bài toỏn tối ưu trên ta công thức húa bài toỏn tỡm siờu phẳng tuyến tớnh tối ưu bằng việc tớnh biểu thức (3.6) sau:
Trong đó C là một hằng số quyết định sự đánh đổi giữa độ lớn của lề và số lỗi huấn luyện của siêu phẳng SVM. Khi C tăng thì lề giảm và lỗi phân lớp cũng giảm theo. Người ta chứng minh được rằng 10<=C<=100 là khoảng giá trị tốt nhất của C.
(2.2) (3.6)
Thay vào 3.5 trở thành : y= sign( l i i i i x x b y 1 ) , ) trong đó b được xác định nhờ điều kiện Karush-Kuhn-Tucker (KKT) như sau:
0 ) , , ( L w b w i iyixi w =1,...,d (1) 0 ) , , ( i i iy b w L b (2) yi(w.xi + b) - 1 0 (3) i 0 (4) i(yi(<w,xi>+ b) - 1 ) = 0 i (5) Mặt khác, vì bài toán của ta là bài toán quy hoạch lồi nên điều kiện KKT ((1)- (5)) sẽ là điều kiện cần và đủ để w, b, là nghiệm tối ưu.
e) Huấn luyện SVM phi tuyến.
Trong bài toán phân lớp khi tập dữ liệu huấn luyện không được phân tách một cách tuyến tính thì cái hay của SVM là nó có thể tổng quát hoá cho trường hợp hàm quyết định phi tuyến bằng cách dùng một mẹo mà người ta hay gọi là “mẹo hàm nhân (kernel-trick)”. Ý tưởng là ta sẽ ánh xạ dữ liệu vào không gian khác, thường là có số chiều cao hơn thậm chí là vô hạn chiều và áp dụng SVM trên không gian đó (xem hình 17). Điều này nghe có vẻ vô lý vì thực hiện tính toán trên không gian có số chiều cao hơn chắc chắn là sẽ khó khăn hơn, nhưng may thay ta có thể sử dụng hàm nhân (kernel function) để tính tích vô hướng của 2 vectơ trong không gian mới bằng phép toán của 2 véctơ trong không gian cũ (k(xi, xj) = (xi).(xj)). Như vậy, thậm chí ta không cần quan tâm đến ánh xạ của ta là cái gì, mà chỉ cần quan tâm đến hàm nhân (có một số điều kiện cho hàm nhân để có tính chất trên). Nhờ có kĩ thuật này mà SVM chứa đựng một lớp lớn các thủ tục phân lớp như đa thức, mạng RBF (Radial Basis Function), mạng nơron như là một trường hợp riêng. Bên cạnh những ưu điểm, SVM còn một số những hạn chế đó là: mở rộng cho trường hợp nhiều lớp; lựa chọn hàm nhân và tham số thích hợp cho nó.
Áp dụng ánh xạ trên ta có 3.6 trở thành:
Hai hàm nhân được sử dụng rộng rãi nhất là hàm RBF và hàm mũ : + Hàm RBF :
+ Hàm mũ: ((x.y)+θ)E
Trong hàm mũ θ thường được chọn giá trị là 1 do đó 2 tham số còn lại trong các hàm nhân trên γ và E được gọi chung là tham số hàm nhân p. Quy về bài toán ban đầu, bài toán đi tìm giả thuyết tốt nhất phân lớp đúng mọi mẫu x (chưa biết) trong X ta có giả thuyết h được xác định bởi 3.7 sau:
3.1.3. Không gian tƣờng thuật
Không gian tường thuật được xây dựng nhằm hỗ trợ cho bài toán phân lớp. Phần định nghĩa được giới thiệu trong mục a, luật phân lớp được giới thiệu trong mục b.
a) Định nghĩa
Một giả thuyết h H là phù hợp với tập dữ liệu huấn luyện I+ và I- (kí hiệu là cons(h,<I+,I- >) nếu và chỉ nếu nó thỏa mãn điều kiện ràng buộc sau:
cons(h,<I+,I- >) ↔ ( xi )(yi = h(xi)) (3.8)
Hay nói cách khác một giả thuyết phù hợp với tập dữ liệu huấn luyện nếu nó phân lớp đúng tất cả các mẫu. Chú ý rằng nó không có nghĩa rằng tất các các mẫu đều được phân lớp đúng bởi vì còn tồn tại các mẫu không nhìn thấy trong tập đầu không
được xét đến ở đây. Không gian giả thuyết tương ứng với không gian giả thuyết H và dữ liệu huấn luyện <I+,I- > được định nghĩa là:
VS(I+,I-) = {h H| cons(h,<I+,I- >) } (3.9)
b) Luật phân lớp
Luật phân lớp trong không gian tường thuật là luật đa số. Cho trước một không gian giả thuyết VS(I+,I- ) và một mẫu x có thể nhận các lớp thuộc tập Y được phân lớp theo luật sau:
Ví dụ: Hình sau biểu diễn phép phân lớp đúng các mẫu theo luật, riêng với mẫu đỏ nằm giữa 2 siêu phẳng (2 giả thuyết ) thì không được phân lớp đúng (nhập nhằng).
Hình 18. Nhập nhằng trong phân lớp khi mẫu nằm giữa hai siêu phẳng
Vùng màu nâu (vùng đậm hơn) được gọi là vùng nhập nhằng của không gian tường thuật. Những điểm rơi vào vùng này không được phân lớp hoặc được phân lớp sai.
Từ luật phân lớp trên ta có 2 định lý sau:
Định lý 1: Nếu không gian giả thuyết VS(I+,I-)khác rỗng thì ta có:
Định lý 2: Nếu không gian giả thuyết VS(I+,I-)khác rỗng thì ta có:
h2 h1 h2 h1
3.1.4. Version Space Support Vector Machines (VSSVM)
VSSVM là một hướng tiếp cận trong phân lớp đáng tin, đây là sự kết hợp giữa SVM và VS nhằm tăng miền bao phủ miền nghiệm đúng trong quá trình phân lớp. Ví dụ trên hình 18 ta thấy một mẫu rơi đúng giữa hai siêu phẳng h1 và h2, theo h1 nó được mang nhãn lớp là âm, nhưng với h2 nó mang nhãn lớp dương, chính vì vậy mà cuối cùng mẫu thử này không được gán nhãn hoặc có thể bị gán nhãn sai. Chính vì lý do đó mà VSSVM là một giải pháp nhằm hạn chế tối đa số mẫu không được phân lớp hoặc bị phân lớp sai.
*Định nghĩa:
VSSVMs là các không gian tường thuật có thể được kiểm tra thất bại bằng SVMs. Không gian giả thuyết của VSSVMs là không gian giả thuyết H(p) của SVMs. VSSVMs được định nghĩa như sau: Cho trước không gian giả thuyết H(p), một hằng số C và tập dữ liệu huấn luyện <I+, I->, VSSVMs kí hiệu là là:
Hình 19 dưới đây biểu diễn sơ đồ của luật phân lớp trong thuật toán phân lớp của VSSVM.
Hình 19. Sơ đồ của luật phân lớp VSSVM
Trong các ứng dụng thực tế thì việc cực đại vùng bao phủ của VSSVMs là vô cùng quan trọng. Điều này có thể thực hiện bằng hai cách; cách một là tìm giá trị thích hợp của tham số hàm nhân (p) và hằng số C, sai số cho phép chấp nhận được, cách hai là sử dụng kỹ thuật đồng diễn (Ensemble techniques). Co-training chính là một trong các kỹ thuật đồng diễn quan trọng nhất. .
3.1.5. Co-training trong bài toán VSSVM
Phần này được dành giới thiệu các mô hình dùng co-training trong máy học VSSVM. Đầu tiên là sự kết hợp của co-training trong VSSVM được thể hiện trong mô hình thứ nhất, ở đây hai bộ học VSSVM1 và VSSVM2 được xây dựng trong hai không gian giả thuyết khác nhau. Trong mô hình thứ hai hai bộ học VSSVM1 và VSSVM2 được xây dựng dựa trên hai hàm nhân khác nhau. Mỗi bộ học với tập dữ liệu huấn luyện riêng L1 và L2, nhưng ban đầu cùng được khởi tạo bằng tập dữ liệu huấn luyện L, tập dữ liệu đã được gán nhãn.
Input: Một mẫu x để phân lớp,
Tập dữ liệu huấn luyện I+, I- ,
Hàm nhân và tham số nhân của hàm nhân p, Tham số C của SVM.
Output: Phân lớp cho x.
Xây dựng một siêu phẳng Nếu ⌐cons( ), ) thì
trả về 0; Xây dựng một siêu phẳng ; Xây dựng một siêu phẳng ; Nếu ⌐cons( ) và cons( thì trả về giá trị +1; Nếu cons( ) và ⌐cons( thì trả về giá trị -1;
Mô hình thứ nhất
Hình 20. Mô hình thứ nhất co-training trong VSSVM
Rõ ràng quá trình học sẽ không thể tiến hành được nếu một trong hai bộ phân lớp VSSVM rỗng, hay không còn giả thuyết nào thỏa mãn phân tách đúng tất cả các mẫu . Nếu điều kiện cả hai bộ phân lớp cùng không rỗng được thỏa mãn thì quá trình học còn được duy trì. Lúc đầu quá trình huấn luyện hai bộ học này là quá trình học có giám sát (học trên tập huấn luyện đã gán nhãn).
Tư tưởng của mô hình thứ nhất là thử quá trình học trên tập các mẫu giàu thông tin I1 (Infomative instances) của bộ học VSSVM1 và tập các mẫu giàu thông I2 của bộ học VSSVM2. Dùng bộ học một VSSVM
1 phân lớp tập I2 dựa trên phân bố Dl và Dùng bộ học hai VSSVM
2 phân lớp tập I1 dựa trên phân bố Dl. Sau đó