Có ít nhất hai cách để thúc đẩy các SVM, nhưng tôi sẽ đi theo con đường đơn giản hơn ở đây.
Bây giờ, hãy quên mọi thứ bạn biết về SVM vào lúc này và chỉ tập trung vào vấn đề trong tay. Bạn được cung cấp một tập hợp các điểm cùng với một số nhãn ( ) từ . Bây giờ, chúng tôi đang cố gắng tìm một dòng trong 2D sao cho tất cả các điểm có nhãn rơi ở một bên của dòng và tất cả các điểm có nhãn rơi ở phía bên kia.y i { 1 , - 1 } 1 - 1D={(xi1,xi2,yi)}yi{1,−1}1−1
Trước hết, hãy nhận ra rằng là một dòng trong 2D và đại diện cho "một bên" của dòng và đại diện cho "bên kia" của hàng.w0+w1x1+w2x2=0w0+w1x1+w2x2>0w0+w1x1+w2x2<0
Từ những điều trên, chúng tôi có thể kết luận rằng chúng tôi muốn một số vectơ sao cho,
cho tất cả các điểm với và cho tất cả các điểm với [1].w 0 + w 1 x i 1 + w 2 x i 2 ≥ 0 x i y i = 1 w 0 + w 1 x i 1 + w 2 x i 2 < 0 x i y i = - 1[w0,w1,w2]w0+w1xi1+w2xi2≥0xiyi=1w0+w1xi1+w2xi2<0xiyi=−1
Chúng ta hãy giả sử rằng một dòng như vậy thực sự tồn tại thì tôi có thể định nghĩa một bộ phân loại theo cách sau,
min|w0|+|w1|+|w2|subject to:w0+w1xi1+w2xi2≥0,∀xi with yi=1w0+w1xi1+w2xi2<0,∀xi with yi=−1
Tôi đã sử dụng một hàm mục tiêu tùy ý ở trên, chúng tôi không thực sự quan tâm tại thời điểm mà hàm mục tiêu được sử dụng. Chúng tôi chỉ muốn một thỏa mãn các ràng buộc của chúng tôi. Vì chúng ta đã giả sử rằng một dòng tồn tại sao cho chúng ta có thể tách hai lớp với dòng đó, chúng ta sẽ tìm ra giải pháp cho vấn đề tối ưu hóa ở trên.w
Ở trên không phải là SVM nhưng nó sẽ cung cấp cho bạn một bộ phân loại :-). Tuy nhiên phân loại này có thể không tốt lắm. Nhưng làm thế nào để bạn xác định một phân loại tốt? Một bộ phân loại tốt thường là bộ phân loại tốt trong bộ kiểm tra. Tốt nhất, bạn sẽ đi qua tất cả các khả năng 's mà tách dữ liệu đào tạo của bạn và xem trong số họ làm tốt trên các dữ liệu thử nghiệm. Tuy nhiên, có vô số , nên điều này khá vô vọng. Thay vào đó, chúng tôi sẽ xem xét một số phương pháp phỏng đoán để xác định một phân loại tốt. Một heuristic là đường phân tách dữ liệu sẽ đủ xa tất cả các điểm (nghĩa là luôn có khoảng cách hoặc lề giữa các điểm và đường). Phân loại tốt nhất trong số này là phân loại có lề tối đa. Đây là những gì được sử dụng trong SVM.ww
Thay vì khăng khăng rằng cho tất cả các điểm với và cho tất cả các điểm với , nếu chúng tôi nhấn mạnh rằng cho tất cả các điểm với và cho tất cả các điểm với , sau đó chúng tôi thực sự khẳng định rằng các điểm cách xa đường. Lề hình học tương ứng với yêu cầu này xuất hiện là .w0+w1xi1+w2xi2≥0xiyi=1w0+w1xi1+w2xi2<0xiyi=−1w0+w1xi1+w2xi2≥1xiyi=1w0+w1xi1+w2xi2≤−1xiyi=−11∥w∥2
Vì vậy, chúng tôi nhận được vấn đề tối ưu hóa sau,
Một dạng viết ngắn gọn nhẹ này là,
Đây về cơ bản là công thức SVM cơ bản. Tôi đã bỏ qua khá nhiều cuộc thảo luận cho ngắn gọn. Hy vọng, tôi vẫn có hầu hết các ý tưởng thông qua.
max1∥w∥2subject to:w0+w1xi1+w2xi2≥1,∀xi with yi=1w0+w1xi1+w2xi2≤−1,∀xi with yi=−1
min∥w∥2subject to:yi(w0+w1xi1+w2xi2)≥1,∀i
Kịch bản CVX để giải quyết vấn đề mẫu:
A = [1 2 1; 3 2 1; 2 3 1; 3 3 1; 1 1 1; 2 0 1; 2 1 1; 3 1 1];
b = ones(8, 1);
y = [-1; -1; -1; -1; 1; 1; 1; 1];
Y = repmat(y, 1, 3);
cvx_begin
variable w(3)
minimize norm(w)
subject to
(Y.*A)*w >= b
cvx_end
Phụ lục - Ký quỹ hình học
Ở trên, chúng tôi đã yêu cầu chúng tôi tìm sao cho hoặc nói chung là . LHS ở đây mà bạn thấy được gọi là lề chức năng, vì vậy điều chúng tôi đã yêu cầu ở đây là lề chức năng là . Bây giờ, chúng tôi sẽ cố gắng tính toán lề hình học cho yêu cầu lề chức năng này.wyi(w0+w1x1+w2x2)≥1yi(w0+wTx)≥1≥1
Lề hình học là gì? Lề hình học là khoảng cách ngắn nhất giữa các điểm trong các ví dụ tích cực và các điểm trong các ví dụ tiêu cực. Bây giờ, các điểm có khoảng cách ngắn nhất theo yêu cầu ở trên có thể có biên chức năng lớn hơn bằng 1. Tuy nhiên, chúng ta hãy xem xét trường hợp cực đoan, khi chúng ở gần siêu phẳng nhất, lề chức năng cho các điểm ngắn nhất chính xác bằng nhau đến 1. Gọi là điểm trên ví dụ tích cực là một điểm sao cho và là điểm trên ví dụ phủ định là một điểm sao cho . Bây giờ, khoảng cách giữa và sẽ ngắn nhất khix+wTx++w0=1x−wTx−+w0=−1x+x−x+−x− vuông góc với siêu phẳng.
Bây giờ, với tất cả các thông tin trên, chúng tôi sẽ cố gắng tìm là lề hình học.
∥x+−x−∥2
wTx++w0=1
wTx−+w0=−1
wT(x+−x−)=2
|wT(x+−x−)|=2
∥w∥2∥x+−x−∥2=2
∥x+−x−∥2=2∥w∥2
[1] Việc bạn chọn bên nào cho và không thực sự quan trọng . Bạn chỉ cần kiên định với bất cứ điều gì bạn chọn.1−1