Nhân tuyến tính và nhân phi tuyến tính cho máy vectơ hỗ trợ?


45

Khi sử dụng máy vectơ hỗ trợ, có hướng dẫn nào về cách chọn kernel tuyến tính so với kernel phi tuyến, như RBF không? Tôi đã từng nghe nói rằng hạt nhân phi tuyến tính có xu hướng không hoạt động tốt một khi số lượng tính năng lớn. Có bất kỳ tài liệu tham khảo về vấn đề này?


1
Theo trí tuệ của tôi, điều này dựa trên vấn đề trong tay và thật nguy hiểm khi sử dụng những chiếc máy tính như vậy trong thực tế.
htrahdis

Câu trả lời:


66

Thông thường, quyết định là sử dụng hạt nhân tuyến tính hay hạt nhân RBF (hay còn gọi là Gaussian). Có hai yếu tố chính cần xem xét:

  1. Việc giải quyết vấn đề tối ưu hóa cho kernel tuyến tính nhanh hơn nhiều , xem ví dụ LIBLINEAR.
  2. Thông thường, hiệu suất dự đoán tốt nhất có thể là tốt hơn cho hạt nhân phi tuyến (hoặc ít nhất là tốt như hạt nhân tuyến tính).

Người ta đã chứng minh rằng kernel tuyến tính là phiên bản suy biến của RBF , do đó kernel tuyến tính không bao giờ chính xác hơn kernel RBF được điều chỉnh đúng. Trích dẫn tóm tắt từ bài báo tôi liên kết:

Phân tích cũng chỉ ra rằng nếu lựa chọn mô hình hoàn chỉnh sử dụng hạt nhân Gaussian đã được tiến hành, thì không cần phải xem xét SVM tuyến tính.

Một quy tắc cơ bản của ngón tay cái được trình bày ngắn gọn trong hướng dẫn thực tế của NTU để hỗ trợ phân loại vectơ (Phụ lục C).

Nếu số lượng tính năng lớn, người ta có thể không cần ánh xạ dữ liệu lên không gian chiều cao hơn. Đó là, ánh xạ phi tuyến không cải thiện hiệu suất. Sử dụng kernel tuyến tính là đủ tốt và người ta chỉ tìm kiếm tham số C.

Kết luận của bạn ít nhiều đúng nhưng bạn có lập luận ngược. Trong thực tế, hạt nhân tuyến tính có xu hướng hoạt động rất tốt khi số lượng tính năng lớn (ví dụ: không cần ánh xạ tới không gian tính năng chiều cao hơn nữa). Một ví dụ điển hình của việc này là phân loại tài liệu, với hàng ngàn kích thước trong không gian đầu vào.

Trong những trường hợp đó, hạt nhân phi tuyến không nhất thiết phải chính xác hơn đáng kể so với hạt nhân tuyến tính. Điều này về cơ bản có nghĩa là các hạt nhân phi tuyến mất đi sự hấp dẫn của chúng: chúng đòi hỏi nhiều nguồn lực hơn để đào tạo với ít hoặc không đạt được hiệu suất dự đoán, vậy tại sao phải bận tâm.

TL; DR

Luôn luôn thử tuyến tính trước vì nó là cách nhanh hơn để đào tạo (AND test). Nếu độ chính xác đủ, hãy vỗ nhẹ vào lưng để hoàn thành tốt công việc và chuyển sang vấn đề tiếp theo. Nếu không, hãy thử một hạt nhân phi tuyến.


1
Tôi có lời giải thích này cho thủ thuật kernel: stats.stackexchange.com/questions/131138/NH

37

Andrew Ng đưa ra một quy tắc tốt về giải thích ngón tay cái trong video này bắt đầu từ 14:46, mặc dù toàn bộ video rất đáng xem.

Những điểm chính

  • Sử dụng kernel tuyến tính khi số lượng tính năng lớn hơn số lượng quan sát.
  • Sử dụng nhân gaussian khi số lượng quan sát lớn hơn số lượng tính năng.
  • Nếu số lượng quan sát lớn hơn 50.000 tốc độ có thể là một vấn đề khi sử dụng nhân gaussian; do đó, người ta có thể muốn sử dụng kernel tuyến tính.

đã đồng ý ................
datmannz

1
liên kết đã chết: Tôi nghĩ rằng đây là cùng một video: youtube.com/watch?v=hDh7jmEGoY0
ihebiheb
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.