Làm thế nào để chọn kernel cho SVM?


95

Khi sử dụng SVM, chúng ta cần chọn kernel.

Tôi tự hỏi làm thế nào để chọn một hạt nhân. Bất kỳ tiêu chí về lựa chọn hạt nhân?


kích thước của vấn đề là gì? (#variabled, quan sát)?
user603

Tôi chỉ yêu cầu một giải pháp tổng quát, không có vấn đề cụ thể nào được chỉ định
xiaohan2012

Câu trả lời:


54

Hạt nhân thực sự là một thước đo tương tự, vì vậy, chọn hạt nhân theo kiến ​​thức trước đây về bất biến theo đề xuất của Robin (+1) là một ý tưởng tốt.

Trong trường hợp không có kiến ​​thức chuyên môn, hạt nhân Radial Basis Function tạo ra một hạt nhân mặc định tốt (một khi bạn đã thiết lập thì đó là một vấn đề đòi hỏi một mô hình phi tuyến tính).

Việc lựa chọn các tham số kernel và kernel / chính quy có thể được tự động hóa bằng cách tối ưu hóa lựa chọn mô hình dựa trên giá trị chéo (hoặc sử dụng giới hạn bán kính hoặc giới hạn nhịp). Điều đơn giản nhất cần làm là giảm thiểu tiêu chí lựa chọn mô hình liên tục bằng phương pháp đơn giản Nelder-Mead, không yêu cầu tính toán độ dốc và hoạt động tốt đối với số lượng siêu tham số hợp lý. Nếu bạn có nhiều hơn một vài tham số để điều chỉnh, lựa chọn mô hình tự động có thể dẫn đến sự phù hợp quá mức nghiêm trọng, do sự khác biệt của tiêu chí lựa chọn mô hình. Có thể sử dụng tối ưu hóa dựa trên độ dốc, nhưng hiệu suất đạt được thường không xứng đáng với nỗ lực mã hóa nó).

Tự động lựa chọn các hạt nhân và các tham số kernel / chính quy là một vấn đề khó khăn, vì nó rất dễ phù hợp với tiêu chí lựa chọn mô hình (thường dựa trên xác thực chéo) và bạn có thể kết thúc với một mô hình tồi tệ hơn bạn đã bắt đầu. Lựa chọn mô hình tự động cũng có thể đánh giá hiệu suất thiên vị, vì vậy hãy đảm bảo đánh giá hiệu suất của bạn đánh giá toàn bộ quá trình điều chỉnh mô hình (đào tạo và lựa chọn mô hình), để biết chi tiết, xem

GC Cawley và NLC Talbot, Ngăn chặn sự phù hợp quá mức trong việc lựa chọn mô hình thông qua việc chuẩn hóa siêu tham số Bayes, Tạp chí Nghiên cứu Máy học, tập 8, trang 841-861, tháng 4 năm 2007 (pdf)

GC Cawley và NLC Talbot, Quá phù hợp trong lựa chọn mô hình và sai lệch lựa chọn tiếp theo trong đánh giá hiệu suất, Tạp chí Nghiên cứu Máy học, tập. 11, trang 2079-2107, tháng 7 năm 2010 (pdf)


Tôi hiểu làm thế nào cơ sở xuyên tâm là một phép đo tương tự vì nó gần 0 đối với các vectơ cách xa nhau và đạt cực đại trên các vectơ giống hệt nhau. Tuy nhiên, tôi không thấy ý tưởng đó áp dụng cho thuật toán tuyến tính (sử dụng sản phẩm chấm làm hạt nhân). Làm thế nào chúng ta có thể giải thích sản phẩm chấm là một biện pháp tương tự?
Tunin

@Bananin sản phẩm chấm có thể được viết là tích của độ lớn của hai vectơ nhân với cosin của góc giữa chúng, vì vậy bạn có thể nghĩ về nó như đo độ tương tự về hướng của vectơ (nhưng rõ ràng cũng phụ thuộc về tầm quan trọng của họ)
Dikran Marsupial

34

Nếu bạn không chắc chắn điều gì là tốt nhất, bạn có thể sử dụng các kỹ thuật lựa chọn tự động (ví dụ: xác thực chéo, ...). Trong trường hợp này, bạn thậm chí có thể sử dụng kết hợp các phân loại (nếu vấn đề của bạn là phân loại) thu được với các kernel khác nhau.

Tuy nhiên , "lợi thế" khi làm việc với kernel là bạn thay đổi hình dạng "Euclide" thông thường để nó phù hợp với vấn đề của chính bạn. Ngoài ra, bạn thực sự nên cố gắng hiểu sự quan tâm của hạt nhân đối với vấn đề của bạn là gì, cụ thể là gì đối với hình dạng của vấn đề của bạn . Điều này có thể bao gồm:

  • Bất biến : nếu có một biến đổi gia đình không thay đổi vấn đề của bạn một cách cơ bản, hạt nhân sẽ phản ánh điều đó. Bất biến bằng cách xoay được chứa trong nhân gaussian, nhưng bạn có thể nghĩ ra rất nhiều thứ khác: dịch thuật, homothetie, bất kỳ đại diện nhóm nào, ....
  • Một phân cách tốt là gì? nếu bạn có ý tưởng về phân tách tốt là gì (tức là quy tắc phân loại tốt) trong vấn đề phân loại của bạn, thì điều này nên được đưa vào lựa chọn kernel. Remmeber rằng SVM sẽ cung cấp cho bạn các phân loại của biểu mẫu

f^(x)=i=1nλiK(x,xi)

K(x,xi)=x,Axi+c


Trong câu trả lời của bạn, bạn đã đề cập rằng "" lợi thế "khi làm việc với kernel là bạn thay đổi hình học" Euclidian "thông thường để nó phù hợp với vấn đề của chính bạn. Ngoài ra, bạn thực sự nên cố gắng hiểu sở thích của kernel là gì đối với vấn đề của bạn, điều gì đặc biệt đối với hình học của vấn đề của bạn. " Bạn có thể cho một vài tài liệu tham khảo để bắt đầu với. Cảm ơn.
Raihana

11

Tôi luôn có cảm giác rằng bất kỳ lựa chọn siêu tham số nào cho các SVM đều được thực hiện thông qua xác thực chéo kết hợp với tìm kiếm dạng lưới.


2
Tôi có cùng cảm giác
xiaohan2012

2
tìm kiếm lưới là một ý tưởng tồi, bạn dành nhiều thời gian để tìm kiếm trong các lĩnh vực mà hiệu suất là xấu. Sử dụng các thuật toán tối ưu hóa miễn phí độ dốc, như phương pháp đơn giản Nelder-Mead, hiệu quả hơn nhiều trong thực tế (ví dụ: fminsearch () trong MATLAB).
Dikran Marsupial

Không, sử dụng các mô hình đồ họa hoặc các quy trình Gaussian để tối ưu hóa toàn cầu kết hợp với thông tin dự kiến. (Xem 'Thuật toán để tối ưu hóa tham số siêu tốc', Bergstra et al, sắp tới NIPS)
bayerj

2

Nói chung, hạt nhân RBF là lựa chọn đầu tiên hợp lý. Ngoài ra, hạt nhân tuyến tính là trường hợp đặc biệt của RBF, Đặc biệt, khi số lượng tính năng rất lớn, người ta có thể chỉ sử dụng hạt nhân tuyến tính.


1
Nó phụ thuộc vào việc dữ liệu của bạn có thể phân tách tuyến tính hay không, chứ không phải bạn có bao nhiêu kích thước. Khi số lượng tính năng rất lớn, (một lần nữa tùy thuộc vào dữ liệu), trước tiên bạn sẽ áp dụng giảm kích thước, PCA hoặc LDA (biến thể nhân tuyến tính hoặc phi tuyến)
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.