Sự khác biệt giữa một SVM và một tri giác


29

Tôi hơi bối rối với sự khác biệt giữa một SVM và một tri giác. Hãy để tôi thử tóm tắt sự hiểu biết của tôi ở đây, và xin vui lòng sửa chữa những gì tôi sai và điền vào những gì tôi đã bỏ lỡ.

  1. Perceptron không cố gắng tối ưu hóa "khoảng cách" phân tách. Miễn là nó tìm thấy một siêu phẳng ngăn cách hai bộ, thì tốt. Mặt khác, SVM cố gắng tối đa hóa "vectơ hỗ trợ", tức là khoảng cách giữa hai điểm mẫu đối diện gần nhất.

  2. SVM thường cố gắng sử dụng "hàm nhân" để chiếu các điểm mẫu lên không gian kích thước cao để làm cho chúng có thể phân tách tuyến tính, trong khi perceptron giả định các điểm mẫu có thể phân tách tuyến tính.


Câu trả lời:


18

Nghe có vẻ đúng với tôi. Mọi người đôi khi cũng sử dụng từ "Perceptron" để chỉ thuật toán đào tạo cùng với trình phân loại. Ví dụ, ai đó đã giải thích điều này cho tôi trong câu trả lời cho câu hỏi này . Ngoài ra, không có gì ngăn bạn sử dụng kernel với perceptron và đây thường là một trình phân loại tốt hơn. Xem ở đây để biết một số slide (pdf) về cách triển khai perceptron kernel.

Sự khác biệt thực tế chính giữa perceptron (kernel) và SVM là perceptionron có thể được đào tạo trực tuyến (nghĩa là trọng lượng của chúng có thể được cập nhật khi các ví dụ mới xuất hiện cùng một lúc) trong khi SVM không thể. Xem câu hỏi này để biết thông tin về việc liệu SVM có thể được đào tạo trực tuyến hay không. Vì vậy, mặc dù một SVM thường là một bộ phân loại tốt hơn, các tri giác vẫn có thể hữu ích vì chúng rẻ và dễ dàng đào tạo lại trong tình huống mà dữ liệu đào tạo mới liên tục xuất hiện.


3
SVM có thể được đào tạo trực tuyến. Từ một giải pháp kép, bạn có thể có được số nguyên tố tương ứng và từ giải pháp này, bạn cập nhật các trọng số theo kiểu ngẫu nhiên.
Firebug


4

SVM: Perceptron

minw2+Ci=1n(1yi(wxi+w0))+
mini=1n(yi(wxi+w0))+

Chúng ta có thể thấy rằng SVM có mục tiêu gần như tương tự như perceptionron được chuẩn hóa L2.

Vì mục tiêu là khác nhau, chúng tôi cũng có các sơ đồ tối ưu hóa khác nhau cho hai thuật toán này, từ , chúng tôi thấy rằng đó là lý do chính để sử dụng lập trình bậc hai để tối ưu hóa SVM.w2

Tại sao perceptron cho phép cập nhật trực tuyến? Nếu bạn thấy quy tắc cập nhật giảm dần độ dốc cho mất bản lề (mất bản lề được sử dụng bởi cả SVM và perceptron),

wt=wt1+η1Ni=1NyixiI(yiwtxi0)

Vì tất cả các thuật toán học máy có thể được xem là sự kết hợp giữa hàm mất và thuật toán tối ưu hóa.

Perceptron không hơn mất bản lề (chức năng mất) + giảm độ dốc ngẫu nhiên (tối ưu hóa)

wt=wt1+yy+1xt+1I(yt+1wtxt+10)

Và SVM có thể được xem là mất bản lề + chính quy hóa l2 (mất + chính quy) + lập trình bậc hai hoặc các thuật toán tối ưu hóa fancier khác như SMO (tối ưu hóa).


-1

Perceptron là sự khái quát hóa của SVM trong đó SVM là perceptron với độ ổn định tối ưu. Vì vậy, bạn đã đúng khi bạn nói perceptron không cố gắng tối ưu hóa khoảng cách phân tách.

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.