Ta có tập huấn luyện gồm m điểm có dạng: (x1, y1), (x2, y2), ..., (xm, ym). Trong đó mỗi xi là một vector thực p chiều, xi ∈ Rn, còn yi ∈ {1, -1} là phân lớp của xi.
Ta cần xác định một siêu phẳng mà có thể tách biệt được hai lớp trên. Có thể có nhiều siêu phẳng như vậy. Thực tế quan sát cũng như lý thuyết học thống kê (Vapnik, 1999) cho thấy rằng để phân loại tốt nhất thì các siêu phẳng nằm ở càng xa các điểm dữ liệu của tất cả các lớp (gọi là lề) càng tốt. Và như vậy ta cần tìm ra siêu phẳng nào làm cho khoảng cách Eulid giữa hai lớp trên là lớn nhất. Lúc đó các vector có khoảng cách gần siêu phẳng nhất được gọi là Support Vector.
Hình 2.5: Siêu phẳng phân chia dữ liệu
Giả sử phương trình siêu phẳng cần tìm là wx + b = 0 trong đó w là vector pháp tuyến của siêu phẳng w ∈ Rn. Chúng ta cần chọn w và b để cực đại hoá lề hay khoảng cách giữa hai siêu phẳng song song ở xa nhau nhất có thể trong khi vẫn
phân chia được dữ liệu. Các siêu phẳng ấy được xác định bằng:
wx + b = 1 wx + b = -1
Ta thấy rằng nếu dữ liệu huấn luyện có thể được chia tách một cách tuyến tính, thì ta có thể chọn hai siêu phẳng sao cho khơng có điểm nào ở giữa chúng và sau đó tăng khoảng cách giữa chúng đến tối đa có thể. Để đảm bảo khơng có dữ liệu nào trong lề, ta thêm vào các điều kiện sau, với mỗi i ta có:
wx + b ≥ 1 với yi = 1 wx + b ≤ -1 với yi = -1
Kết hợp hai bất phương trình trên:
yi (wxi + b) -1 ≥ 0
Lúc đó những support vector xi thoả mãn phương trình wx + b = 1 thì nằm trên siêu phẳng H1, những support vector xi thoả mãn phương trình wx + b = -1 thì nằm trên siêu phẳng H2.
Hình 2.6. Siêu phẳng với lề cực đại cho một SVM phân chia hai tập mẫu [16]
Khoảng cách có dấu d1 từ gốc toạ độ đến H1 là: d1 = (1 – b)/||w|| Khoảng cách có dấu d2 từ gốc toạ độ đến H2 là: d2 = (-1 – b)/||w||
Suy ra khoảng cách phân hoạch d giữa H1 và H2 là: d = | d1 - d2| = 2/||w|| Do đó để có d lớn nhất thì ||w|| phải nhỏ nhất hay nói cách khác:
Cực tiểu hố (theo w, b)
||w|| với điều kiện yi (wxi + b) -1 ≥ 0 (với mọi i = 1, 2,..., m)
Bài tốn tối ưu trên tương đối khó giải vì hàm mục tiêu phụ thuộc vào ||w|| là một hàm khó khai căn. Tuy nhiên có thể thay ||w|| bằng hàm mục tiêu mà không thay đổi lời giải (hệ số ½ để tiện cho các biến đổi tốn học sau này). Cụ thể đây là
bài toán:
Cực tiểu hoá (theo w, b) với điều kiện
yi (wxi + b) -1 ≥ 0 (với mọi i = 1, 2,..., m).
là loại bài tốn tối ưu có ràng buộc, trong đó hàm mục tiêu là một hàm lồi và miền ràng buộc cũng là một tập lồi. Chuyển qua giải bài tốn đối ngẫu sau:
Tìm cực đại của: với u ∈ Rm, u ≥ 0
Trong đó = inf{- yi (wxi + b) – 1]: w ∈ Rn, b ∈ R}
Để giải bài tốn đối ngẫu trên trước tiên ta phải tìm cực tiểu của theo w và b
Vì L là hàm hai biến w, b bậc hai không ràng buộc nên theo điều kiện Fermat, cực tiểu của L xảy ra tại w và b sao cho:
suy ra
=
Lúc đó giá trị cực tiểu của L là:
Như vậy bài toán đối ngẫu được viết lại thành:
Tìm cực đại của
Dựa trên ui ≥ 0 với i = 1, 2, ..., m
Giải bài tốn này ta tìm được u và từ đó tính được w theo cơng thức
Để tính b, vận dụng điều kiện Karush – Kuhn – Tucker (KKT) cho bài toán gốc, ta có:
ui [yi (wxi + b) – 1] = 0, i = 1, 2, ..., m
Do đó đối với một i thì có hai trường hợp:
- ui = 0: Trong trường hợp này yi (wxi + b) – 1 > 0 suy ra xi không nằm trên siêu phẳng biên H1 hay H2. Vì ui = 0 nên xi khơng tham gia vào việc cấu trúc w theo công thức . Những xi này là khơng cần thiết và có thể bỏ đi mà khơng ảnh hưởng đến w.
H2. xi được gọi là support vector và tham gia vào việc tính w.
Thường thì số lượng support vector nhỏ hơn nhiều so với số lượng mẫu. Do đó để tính b chỉ cần chọn một i mà có ui > 0, lúc đó:
yi (wxi + b) – 1 = 0 nên b = (1/yi) – wxi = yi - wxi
Vậy ta đã tính được w và b nên xác định được siêu phẳng phân hoạch.