Làm thế nào để một máy Vector hỗ trợ (SVM) hoạt động?


108

Làm thế nào để Máy Vector Hỗ trợ (SVM) hoạt động và những gì khác biệt với các phân loại tuyến tính khác, chẳng hạn như Perceptionron tuyến tính , Phân tích phân biệt tuyến tính hoặc Hồi quy logistic ? *

(* Tôi đang suy nghĩ về các động lực cơ bản cho thuật toán, chiến lược tối ưu hóa, khả năng khái quát hóa và độ phức tạp của thời gian chạy )



Câu trả lời:


126

Các máy vectơ hỗ trợ chỉ tập trung vào các điểm khó phân biệt nhất, trong khi các phân loại khác chú ý đến tất cả các điểm.

Trực giác đằng sau cách tiếp cận máy vectơ hỗ trợ là nếu một trình phân loại tốt trong các phép so sánh thách thức nhất (các điểm trong B và A gần nhau nhất trong Hình 2), thì trình phân loại sẽ còn tốt hơn khi so sánh dễ dàng ( so sánh các điểm trong B và A cách xa nhau).

Perceptionron và các phân loại khác:

Perceptionron được xây dựng bằng cách lấy một điểm tại một thời điểm và điều chỉnh đường phân chia cho phù hợp. Ngay khi tất cả các điểm được tách ra, thuật toán perceptron dừng lại. Nhưng nó có thể dừng ở bất cứ đâu. Hình 1 cho thấy có một loạt các đường phân chia khác nhau phân tách dữ liệu. Tiêu chí dừng của perceptron rất đơn giản: "tách các điểm và ngừng cải thiện đường khi bạn tách 100%". Các perceptron không được nói rõ ràng để tìm dòng tách tốt nhất. Hồi quy logistic và mô hình phân biệt tuyến tính được xây dựng tương tự như perceptionron.

Đường phân chia tốt nhất tối đa hóa khoảng cách giữa các điểm B gần nhất với A và các điểm A gần nhất với B. Không cần thiết phải xem xét tất cả các điểm để thực hiện việc này. Trong thực tế, việc kết hợp thông tin phản hồi từ các điểm ở xa có thể vượt quá giới hạn một chút, như được thấy dưới đây.

nhập mô tả hình ảnh ở đây

Hỗ trợ máy Vector:

Không giống như các phân loại khác, máy vectơ hỗ trợ được thông báo rõ ràng để tìm dòng phân tách tốt nhất. Làm sao? Máy vectơ hỗ trợ tìm kiếm các điểm gần nhất (Hình 2), được gọi là "vectơ hỗ trợ" (tên "máy vectơ hỗ trợ" là do thực tế là các điểm giống như vectơ và dòng tốt nhất "phụ thuộc vào" hoặc được "hỗ trợ bởi" các điểm gần nhất).

Khi đã tìm thấy các điểm gần nhất, SVM vẽ một đường nối chúng (xem dòng có nhãn 'w' trong Hình 2). Nó vẽ đường kết nối này bằng cách thực hiện phép trừ vector (điểm A - điểm B). Sau đó, máy vectơ hỗ trợ khai báo đường phân cách tốt nhất là đường chia đôi - và vuông góc với - đường kết nối.

Máy vectơ hỗ trợ tốt hơn bởi vì khi bạn lấy một mẫu mới (điểm mới), bạn sẽ tạo một dòng giữ B và A càng xa nhau càng tốt, và do đó ít có khả năng một người sẽ tràn qua dòng vào lãnh thổ của người khác.

nhập mô tả hình ảnh ở đây

Tôi coi mình là một người học trực quan và tôi đã vật lộn với trực giác đằng sau các máy vectơ hỗ trợ trong một thời gian dài. Bài báo có tên Duality và Geometry trong SVM Classifier cuối cùng đã giúp tôi nhìn thấy ánh sáng; đó là nơi tôi có được những hình ảnh từ đó


4
+1 từ một người học trực quan khác! Đối với người đọc, tôi muốn lưu ý rằng những ranh giới rõ ràng trong hình trên được dựa trên một tập dữ liệu đã được chuyển đổi. Không phải tập dữ liệu thô.
Kingz

Đọc svm trong hơn hai năm, hôm nay đã hiểu cách phân tách dòng và vài điều nữa. Cảm ơn câu trả lời sạch sẽ.
user123

53

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). xRn , 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.
  • wb 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:

enter image description here

Lớp y được xác định như sau:

y(i)={1 if wTx(i)+b11 if wTx(i)+b1

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:

  1. 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 2w . Điều này có nghĩa chúng ta muốn giải quyếtmaxw2w . Tương chúng tôi muốn minww2 .

  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,bw2,s.t.y(i)(wTx(i)+b)1i{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,bw2+Ci=1Nξ(i),s.t.y(i)(wTx(i)+b)1ξ(i),i{1,,N}ξ(i)0,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ì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,bw2+Ci=1Nξ(i),s.t.y(i)(wTϕ(x(i))+b)1ξ(i),i{1,,N}ξ(i)0,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αminw,bw2+Ci=1Nα(i)(1wTϕ(x(i))+b)),s.t.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αi=1Nα(i)i=1Nj=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),s.t.0α(i)C,i{1,,N}

w không xuất hiện dưới dạngw=i=1Nα(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 i=1N 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)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:


2
w2w

3
Ngoài câu trả lời tuyệt vời này, tôi muốn giới thiệu video này đi qua toán học đằng sau SVM và đặc biệt làm rõ câu hỏi @tosik đã nhận xét youtube.com/watch?v=_PwhiWxHK8o
Nikolas Rieble

Câu trả lời rất hay. Chỉ cần một nhận xét về phần này: iff xα(i)=0x(i)α(i)0

13

Tôi sẽ tập trung vào những điểm tương đồng và khác biệt so với các phân loại khác:

  • Từ một perceptron: SVM sử dụng mất bản lề và chính quy L2, perceptron sử dụng mất perceptron và có thể sử dụng dừng sớm (hoặc trong số các kỹ thuật khác) để chuẩn hóa, thực sự không có thuật ngữ chính quy trong perceptron. Vì nó không có thuật ngữ chính quy hóa, perceptron chắc chắn bị tập trung quá mức, do đó khả năng khái quát hóa có thể bị tùy tiện xấu. Việc tối ưu hóa được thực hiện bằng cách sử dụng độ dốc dốc ngẫu nhiên và do đó rất nhanh. Về mặt tích cực , bài báo này cho thấy rằng bằng cách dừng sớm với chức năng mất sửa đổi một chút, hiệu suất có thể ngang bằng với một SVM.

  • Từ hồi quy logistic: hồi quy logistic sử dụng thuật ngữ mất logistic và có thể sử dụng chính quy L1 hoặc L2. Bạn có thể nghĩ về hồi quy logistic như người anh em kỳ thị của người ngây thơ hào phóng - Bayes.

  • Từ LDA: LDA cũng có thể được xem như là một thuật toán tổng quát, nó giả định rằng các hàm mật độ xác suất (p (x | y = 0) và p (x | y = 1) thường được phân phối. Điều này lý tưởng khi dữ liệu ở trong Tuy nhiên, có một nhược điểm là "đào tạo" đòi hỏi sự đảo ngược của một ma trận có thể lớn (khi bạn có nhiều tính năng). Theo homocedasticity LDA trở thành QDA là Bayes tối ưu cho dữ liệu được phân phối thông thường. các giả định được thỏa mãn bạn thực sự không thể làm tốt hơn thế này.

Trong thời gian chạy (thời gian thử nghiệm), một khi mô hình đã được đào tạo, độ phức tạp của tất cả các phương thức này là như nhau, nó chỉ là một sản phẩm chấm giữa siêu phẳng, quy trình đào tạo được tìm thấy và điểm dữ liệu.


1
Vì bạn có vẻ rất thành thạo về SVM, hãy để tôi yêu cầu bạn làm rõ nghi ngờ của mình: một khi chúng tôi tìm thấy siêu phẳng tách biệt tốt nhất, chúng tôi sử dụng nó để làm gì? Chúng ta có thể định nghĩa SVM là một phương thức, trước tiên, chọn siêu phẳng tốt nhất để phân loại chính xác các điểm dữ liệu và thứ hai, nó sử dụng siêu phẳng này để cắt các điểm dữ liệu mới trong hai lớp. Đúng? (Tôi có một số nghi ngờ về phần thứ hai)
DavideChicco.it

1
@ DavideChicco.it Có, chúng tôi có thể sử dụng chức năng chỉ báo để phân loại dữ liệu mới, thường là mục đích chính của phân loại. (Đừng tin lời tôi về bất cứ điều gì trong số này, tôi mới biết tất cả về nó).
keyer

12

Kỹ thuật này được xác định khi vẽ một đường ranh giới quyết định để lại càng nhiều lề cho các ví dụ tích cực và tiêu cực đầu tiên càng tốt:

enter image description here

Như trong hình minh họa ở trên, nếu chúng ta chọn một vector trực giao mà w= =1bạn

wbạnC

wbạn= =bạnw

Một điều kiện tương đương cho một mẫu dương tính sẽ là:

(1)wbạn+b0

C=b.

bw

x+,wx++b1wx-+b-101-1

enter image description here

wb


yTôiyTôi= =+1yTôi= =-1

yTôi(xTôiw+b)-10.

Vì vậy, chúng tôi xác định rằng giá trị này phải lớn hơn 0, nhưng nếu ví dụ trên hyperplanes ("máng xối") tối đa hóa biên độ phân tách giữa siêu phẳng quyết định và các mẹo của vectơ hỗ trợ, trong trường hợp này là dòng) sau đó:

(2)yTôi(xTôiw+b)-1= =0

yTôi(xTôiw+b)= =1.

enter image description here


Ràng buộc thứ hai : khoảng cách của siêu phẳng quyết định đến các đầu của vectơ hỗ trợ sẽ được tối đa hóa. Nói cách khác, lề của sự phân tách ("đường phố") sẽ được tối đa hóa:

enter image description here

Giả sử một vectơ đơn vị vuông góc với ranh giới quyết định, w , sản phẩm chấm có sự khác biệt giữa hai ví dụ "giáp" cộng và trừ là chiều rộng của "đường phố" :

chiều rộng= =(x+-x-)ww

x+x- (xTôiw+b)-1= =0x+w= =1-bx-w= =-1-b . Vì vậy, cải cách chiều rộng của đường phố:

chiều rộng= =(x+-x-)ww= =x+w-x-ww= =1-b-(-1-b)w(3)= =2w

2w,w

(4)12w2

đó là thuận tiện về mặt toán học.


Vì vậy, chúng tôi muốn:

  1. x2

  2. yTôi(wxTôi+b)-1= =0


Vì chúng tôi muốn giảm thiểu biểu thức này dựa trên một số ràng buộc, chúng tôi cần một số nhân Lagrange (quay lại phương trình 2 và 4):

(5)L=12w2λi[yi(xiw+b)1]

Khác biệt

Lw=wλiyixi=0
.

Vì thế,

(6)w=λiyixi

b:

Lb=λiyi=0,

điều đó có nghĩa là chúng ta có tổng sản phẩm bằng 0 và bội số:

(7)λiyi=0

Cắm phương trình Eq (6) trở lại vào phương trình (5),

L=12(λiyixi)(λjyjxj)(λiyixi)(λjyjxj)λiyib+λi

Thuật ngữ áp chót bằng 0 theo phương trình Eq (7).

Vì thế,

(8)L=λi12ijλiλjyiyjxixj

Phương trình (8) là Lagrangian cuối cùng.

Do đó, việc tối ưu hóa phụ thuộc vào sản phẩm chấm của các cặp ví dụ.

Quay trở lại "quy tắc quyết định" trong biểu thức (1) ở trên và sử dụng phương trình (6):

(9)λiyixiu+b0

u.


Không có gì nguyên bản ... Chỉ là ghi chú của riêng tôi ở cấp nhập cảnh hơn. Về cơ bản từ video này từ MIT với hình minh họa của riêng tôi. Đối với các lỗi, xin vui lòng cho tôi biết. Để có câu trả lời sâu sắc và biết thêm chi tiết, hãy chuyển đến cấp chuyên gia (bài của Franck và những người khác).
Antoni Parellada

Và làm thế nào để tôi tính b ?
mike

1
b= =yS-ΣmSαmymxmxSS(αTôi>0).

@AntoniParellada trả lời tuyệt vời Antoni cảm ơn rất nhiều - nhưng bạn không thiếu một phần nào trong vấn đề kép và điều kiện KTT?
Xavier Bourret Sicotte

@XavierBourretSicotte Tôi sẽ không thể làm việc với nó trong một thời gian. Vui lòng xem xét việc viết một câu trả lời thay thế liên quan đến những vấn đề này, và nếu bạn làm như vậy, xin vui lòng cho tôi biết để tôi biết về nó và có thể nâng cao nó.
Antoni Parellada

3

Một số ý kiến ​​về điều kiện Duality và KTT

Vấn đề cơ bản

(4)(5)

tối thiểuw,bđụ(w,b)= =tối thiểuw,b 12||w||2S.t.  gTôi(w,b)= =-y(Tôi)(wTx(Tôi)+b)+1= =0

Phương pháp Lagrange

Phương pháp nhân số Lagrange cho phép chúng ta biến một vấn đề tối ưu hóa bị ràng buộc thành một trong những hình thức không bị ràng buộc

L(w,b,α)= =12||w||2-ΣTôimαTôi[y(Tôi)(wTx(Tôi)+b)-1]

L(w,b,α)αTôi .

Vấn đề tối ưu hóa nguyên thủy của chúng tôi với Lagrangian trở thành như sau: (lưu ý rằng việc sử dụngmTôiviết sai rồi, mmộtx không phải là nghiêm ngặt nhất vì chúng ta cũng nên sử dụng thông tinbữa tối đây...)

tối thiểuw,b(tối đaαL(w,b,α))

Vấn đề kép

Những gì @Antoni và Giáo sư Patrick Winston đã làm trong công cụ phái sinh của họ là giả định rằng chức năng tối ưu hóa và các ràng buộc đáp ứng một số điều kiện kỹ thuật để chúng tôi có thể làm như sau:

tối thiểuw,b(tối đaαL(w,b,α))= =tối đaα(tối thiểuw,bL(w,b,α))

Điều này cho phép chúng tôi lấy các dẫn xuất một phần của L(w,b,α) đối với wb, bằng 0 và sau đó cắm các kết quả trở lại vào phương trình ban đầu của Lagrangian, do đó tạo ra một vấn đề tối ưu hóa kép tương đương của biểu mẫu

tối đaαtối thiểuw,bL(w,b,α)tối đaαΣTôimαTôi-12ΣTôi,jmy(Tôi)y(j)αTôiαj<x(Tôi)x(j)>S.t. αTôi0S.t. ΣTôimαTôiy(Tôi)= =0

Nhị nguyên và KTT

Không đi sâu vào các kỹ thuật toán học quá mức, các điều kiện này là sự kết hợp của các điều kiện Nhị nguyên và Karush Kuhn Tucker (KTT) và cho phép chúng tôi giải quyết vấn đề kép thay vì nguyên tắc , trong khi đảm bảo rằng giải pháp tối ưu là như nhau. Trong trường hợp của chúng tôi, các điều kiện như sau:

  • Các hàm ràng buộc mục tiêu và bất đẳng thức nguyên thủy phải là lồi
  • Hàm ràng buộc đẳng thức phải là affine
  • Các ràng buộc phải hoàn toàn khả thi

Sau đó tồn tại w*,α*đó là giải pháp cho các vấn đề nguyên thủy và kép. Hơn nữa, các tham sốw*,α* Đáp ứng các điều kiện KTT dưới đây:

wTôiL(w*,α*,β*)= =0(Một)βTôiL(w*,α*,β*)= =0(B)αTôi*gTôi(w*)= =0(C)gTôi(w*)0(CƯỜI MỞ MIỆNG)αTôi*0(E)

Hơn nữa, nếu một số w*,α* Đáp ứng các giải pháp KTT thì chúng cũng là giải pháp cho vấn đề nguyên thủy và kép.

Phương trình (C)ở trên có tầm quan trọng đặc biệt và được gọi là điều kiện bổ sung kép . Nó ngụ ý rằng nếuαTôi*>0 sau đó gTôi(w*)= =0 có nghĩa là các ràng buộc gTôi(w)0là hoạt động, tức là nó giữ bằng bình đẳng hơn là bất bình đẳng. Đây là lời giải thích đằng sau phương trình(2) trong đạo hàm của Antoni, nơi ràng buộc bất bình đẳng được biến thành ràng buộc bình đẳng.

Một sơ đồ trực quan nhưng không chính thức

enter image description here

Nguồn


2
Cảm ơn rât nhiều. Tôi đọc nó một cách nhanh chóng và quay lại với nó sau nhiều thời gian hơn, nhưng nghe có vẻ hay và chạm vào những điểm còn thiếu trong câu trả lời của tôi.
Antoni Parellada
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.