Câu trả lời của Ryan Zotti giải thích động lực đằng sau việc tối đa hóa ranh giới quyết định, câu trả lời của carlosdc đưa ra một số điểm tương đồng và khác biệt đối với các phân loại khác. Tôi sẽ đưa ra câu trả lời này một tổng quan toán học ngắn gọn về cách các SVM được đào tạo và sử dụng.
Ký hiệu
Sau đây, vô hướng được biểu thị bằng chữ in nghiêng (ví dụ: y,b ), vectơ có chữ thường in đậm (ví dụ:w,x ) và ma trận với chữ hoa in nghiêng (ví dụ:W ). wT là transpose củaw , và∥w∥=wTw .
Để cho:
- x là một vectơ đặc trưng (nghĩa là đầu vào của SVM). x∈Rn , trong đón là kích thước của vectơ đặc trưng.
- y là lớp (nghĩa là đầu ra của SVM). y∈{−1,1} , tức là nhiệm vụ phân loại là nhị phân.
- w vàb là các tham số của SVM: chúng ta cần học chúng bằng cách sử dụng tập huấn luyện.
- (x(i),y(i)) làmẫu thứith trong bộ dữ liệu. Giả sử chúng ta cóN mẫu trong tập huấn luyện.
Với n=2 , người ta có thể biểu thị ranh giới quyết định của SVM như sau:
Lớp y được xác định như sau:
y(i)={−11 if wTx(i)+b≤−1 if wTx(i)+b≥1
mà có thể được chính xác hơn bằng văn bản như y(i)(wTx(i)+b)≥1 .
Mục tiêu
SVM nhằm đáp ứng hai yêu cầu:
SVM nên tối đa hóa khoảng cách giữa hai ranh giới quyết định. Về mặt toán học, điều này có nghĩa là chúng tôi muốn tối đa hóa khoảng cách giữa siêu phẳng được xác định bởi wTx+b=−1 và siêu phẳng được xác định bởi wTx+b=1 . Khoảng cách này bằng 2∥w∥ . Điều này có nghĩa chúng ta muốn giải quyếtmaxw2∥w∥ . Tương chúng tôi muốn
minw∥w∥2 .
Các SVM cũng nên phân loại một cách chính xác tất cả các x(i) , có nghĩa là y(i)(wTx(i)+b)≥1,∀i∈{1,…,N}
Điều này dẫn chúng ta đến vấn đề tối ưu hóa bậc hai sau:
minw,bs.t.∥w∥2,y(i)(wTx(i)+b)≥1∀i∈{1,…,N}
Đây là SVM lề cứng , vì bài toán tối ưu hóa bậc hai này thừa nhận một giải pháp nếu dữ liệu có thể phân tách tuyến tính.
Người ta có thể thư giãn các hạn chế bằng cách giới thiệu cái gọi là biến slack ξ(i) . Lưu ý rằng mỗi mẫu của tập huấn luyện có biến chùng riêng. Điều này cho chúng ta vấn đề tối ưu hóa bậc hai sau:
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTx(i)+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Đây là SVM lề mềm . C là một siêu tham số được gọi là hình phạt của thuật ngữ lỗi . ( Ảnh hưởng của C trong SVM với kernel tuyến tính là gì và phạm vi tìm kiếm nào để xác định tham số tối ưu SVM? ).
Người ta có thể thêm linh hoạt hơn bằng cách giới thiệu một hàm ϕ mà các bản đồ không gian đặc trưng ban đầu đến một không gian đặc trưng nhiều chiều hơn. Điều này cho phép ranh giới quyết định phi tuyến tính. Vấn đề tối ưu hóa bậc hai trở thành:
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTϕ(x(i))+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Tối ưu hóa
Vấn đề tối ưu hóa bậc hai có thể được chuyển thành một vấn đề tối ưu hóa khác có tên là bài toán kép Lagrangian (bài toán trước được gọi là số nguyên tố ):
maxαs.t.minw,b∥w∥2+C∑i=1Nα(i)(1−wTϕ(x(i))+b)),0≤α(i)≤C,∀i∈{1,…,N}
Vấn đề tối ưu hóa này có thể được đơn giản hóa (bằng cách đặt một số độ dốc thành 0 ) thành:
maxαs.t.∑i=1Nα(i)−∑i=1N∑j=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),0≤α(i)≤C,∀i∈{1,…,N}
w không xuất hiện dưới dạngw=∑Ni=1α(i)y(i)ϕ(x(i)) (như đã nêu trongđịnh lý representer).
Do đó, chúng tôi tìm hiểu các giá trị α(i) bằng cách sử dụng (x(i),y(i)) của tập huấn luyện.
(FYI: Tại sao phải bận tâm với vấn đề kép khi lắp SVM? Câu trả lời ngắn: tính toán nhanh hơn + cho phép sử dụng thủ thuật kernel, mặc dù vẫn tồn tại một số phương pháp tốt để đào tạo SVM trong primal, ví dụ, xem {1})
Dự đoán
Khi α(i) đang học, người ta có thể dự đoán lớp của một mẫu mới với các tính năng vector xtest như sau:
ytest=sign(wTϕ(xtest)+b)=sign(∑i=1Nα(i)y(i)ϕ(x(i))Tϕ(xtest)+b)
Tổng kết ∑Ni=1 có thể có vẻ áp đảo, vì nó có nghĩa là người ta phải tổng hợp trên tất cả các mẫu huấn luyện, nhưng đại đa sốα(i) là0 (xemTại sao các nhân tử Lagrange thưa thớt cho SVMs?) Nên trong thực tế nó không phải là một vấn đề (lưu ý rằngngười ta có thể xây dựng các trường hợp đặc biệt trong đó tất cả các giá trịα(i)>0 )α(i)=0 iffx(i) là mộtvectơ hỗ trợ. Hình minh họa ở trên có 3 vectơ hỗ trợ.
Thủ thuật hạt nhân
Người ta có thể quan sát rằng vấn đề tối ưu hóa sử dụng ϕ(x(i)) chỉ trong sản phẩm nội ϕ(x(i))Tϕ(x(j)) . Các chức năng mà các bản đồ(x(i),x(j)) đối với sản phẩm bên trongϕ(x(i))Tϕ(x(j))được gọi là một hạt nhân , hay còn gọi là hàm nhân, thường biểu hiện bằng k .
Người ta có thể chọn k để sản phẩm bên trong có hiệu quả để tính toán. Điều này cho phép sử dụng một không gian tính năng có khả năng cao với chi phí tính toán thấp. Đó được gọi là thủ thuật kernel . Để một hàm kernel là hợp lệ , nghĩa là có thể sử dụng được với thủ thuật kernel, nó sẽ đáp ứng hai thuộc tính chính . Có nhiều hàm kernel để lựa chọn . Là một lưu ý phụ, thủ thuật kernel có thể được áp dụng cho các mô hình học máy khác , trong trường hợp đó chúng được gọi là kernel .
Đi xa hơn
Một số QAs thú vị trên SVM:
Các liên kết khác:
Người giới thiệu: