You are on page 1of 4

IV.

Bài toán phân nhiều lớp tuyến tính


Với nhiều phân lớp, thuật toán SVM sẽ chia không gian chứa dữ liệu thành 2 phần,
trong hai phần đó sẽ tiếp tục được phân chia thành các lớp con. Khi đó, hàm phân
định dữ liệu vào lớp thứ i của tập n, 2 lớp là: fi ( x)  w i i .x  bi

Những phần tử support vector, giống như trong bài toán 2 lớp, sẽ phải thỏa điều kiện:
fi(x)=1 với x thuộc phân lớp i và = -1 với x thuộc các phân lớp còn lại.

Ví dụ về cách phân loại của SVM với 4 phân lớp, cách này được gọi là one- against-
one
Từ sơ đồ trên, ta nhận thấy, để phân loại n phân lớp, ta cần làm n(n-1)/2 lần bằng
phương pháp phân lớp của SVM.

V. Nhiễu trong SVM và Soft Margin


Trong các bài toán đã xét ở trên, ta xét trong trường hợp các phân lớp không nằm lẫn
lộn với nhau. Các đường biên đó được gọi là biên cứng (hard margin). Trong thực tế,
các tập dữ liệu nhiều khi nằm lộn xộn không theo thứ tự, vì vậy, để phân loại chúng,
ta sẽ sử dụng biên mềm (soft margin).
Xét 2 ví dụ:
Trong hình bên trái, dữ liệu dữ liệu vẫn có thể phân chia được, nhưng do có điểm đỏ
nằm rất gần tập dữ liệu màu xanh, nên khi phân chia thì sẽ tạo ra một biên rất nhỏ,
ngoài ta, khi phân chia được thì điểm “noise” này sẽ nằm rất xa so với những điểm đỏ
còn lại. do đó, ta chấp nhận một ngoại lệ, bỏ qua sự tồn tại của điểm đỏ này, phân chia
theo đường nét đứt để tạo ra một biên mới, tốt hơn. SVM thuần túy được coi là nhạy
cảm với nhiễu (sensitive to noise).
Còn trong hình bên phải, do các tập màu đỏ và xanh có phần nằm lẫn lộn vào nhau, ta
không thể xác định được hyperlane nếu làm theo phương pháp thông thường, do đó,
không tồn tại được biên trong trường hợp này, và bài toán này vô nghiệm. tuy nhiên,
cũng giống như trên đã nói, ta chấp nhận ngoại lệ, bỏ qua 2 điểm xanh nằm gần tập dữ
liệu đỏ và điểm đỏ nằm trong miền dữ liệu xanh, ta sẽ được một hyperlane và sẽ phân
chia được 2 tập dữ liệu. Để làm được được điều này, ta cần các đường support, là 2
đường nét đứt mảnh trong hình, với mỗi điểm nằm lấn sang đường biên (nét đứt đâm),
ta nói điểm này rơi vào vùng không an toàn.
Như vậy SVM có tính chấp nhận ngoại lệ cao nhờ vào biên mềm
Ta xét bài toán phân loại với biên mềm:
Giống như bài toán SVM thuần đã giới thiệu ở trên, ta xét trong tập điểm D {xi,yi},
với xi là vector đại điện cho phần tử thứ i và xi được đánh nhãn yi =±1
1
Kết quả của bài toán SVM biên cứng: (w, b)  min
2
w
2
Trong bài toán biên mềm, bên cạnh việc xác định được biên tối ưu, ta cũng cần phải
xác định thêm điểm kiện để số điểm nằm trong vùng không an toàn là tối thiểu. Ta sử
dụng “slack variable” ζi để mô tả độ nhiễu của phân lớp
Trong hình trên, với những điểm nằm trong vùng an toàn có ζi>1, với những điểm
nằm trong vùng không an toàn nhưng chưa vượt khỏi biên như x2, thì 0< ζi<1, còn
những điểm còn lại, nằm trong vùng không an toàn và đã vượt qua biên thì ζi>1 ví dụ
như x1 và x3
Với mỗi điểm xn trong tập dữ liệu D, với 1 điểm (xi, yi), nếu điểm này nằm trong vùng
không an toàn thì i  wT .xn  b  yi
N
1
w  C   n với C là độ ảnh hưởng
2
Tương tự như hard margin, ta có hàm mục tiêu:
2 n 1

lỗi, C càng lớn thì độ ảnh hưởng của các điểm nhiễu càng lớn, và ngược lại, C càng
nhỏ thì độ ảnh hưởng nhiễu càng nhỏ, dễ chấp nhận nhiễu hơn.
Ràng buộc mềm cho soft margin: yn (wT xn  b)  1   n
N
1
Ta đưa bài toán về dạng tối ưu: (w, b,  )  min w  C  n
2

2 n 1

Tham khảo:
https://machinelearningcoban.com/2017/04/13/softmarginsmv/
https://www.csie.ntu.edu.tw/~cjlin/libsvm/
https://viblo.asia/p/mot-chut-ve-thuat-toan-svm-support-vector-machine-algorithm-
OeVKBgGAZkW

You might also like