Lựa chọn tham số SVM


9

Có phương pháp thay thế nào tốt hơn để chọn C và Gamma mang lại hiệu quả đào tạo tốt hơn không?

Câu trả lời:


5

Tìm kiếm lưới chậm vì nó dành nhiều thời gian để điều tra các cài đặt siêu tham số không ở đâu gần tối ưu. Một giải pháp tốt hơn là thuật toán đơn giản Nelder-Mead , không yêu cầu tính toán thông tin độ dốc và dễ thực hiện (cần có đủ thông tin trên trang Wikipedia). Cũng có thể có một số mã java trong hộp công cụ Weka , tuy nhiên tôi làm việc trong MATLAB và chưa xem Weka ở bất kỳ chi tiết tuyệt vời nào.

SMO là một thuật toán để tìm các tham số mô hình, thay vì các tham số siêu.


Bạn có thể cung cấp triển khai MATLAB của bạn?
Zach

1
Có một cái ở đây theoval.cmp.uea.ac.uk/matlab/#optim nhưng nếu bạn đã có hộp công cụ tối ưu hóa thì fminsearch cũng là một triển khai của phương pháp IIRC của Nelder-Mead.
Dikran Marsupial

5

Phương pháp đơn giản Nelder-Mead có thể bao gồm nhiều đánh giá chức năng như một tìm kiếm lưới đơn giản. Thông thường bề mặt lỗi đủ mịn gần với các giá trị tham số tối ưu mà tìm kiếm lưới thô theo sau là một tìm kiếm tốt hơn trong một khu vực nhỏ hơn là đủ.

Nếu bạn quan tâm đến tối ưu hóa dựa trên độ dốc của C và gamma, có các phương pháp như tối ưu hóa giới hạn biên bán kính hoặc tối ưu hóa tỷ lệ lỗi trên bộ xác thực. Việc tính toán độ dốc của hàm mục tiêu liên quan đến một thứ giống như một chuyến tàu SVM nhưng một độ dốc đơn giản có thể chỉ liên quan đến vài chục lần lặp. (Xem http://olivier.chapelle.cc/ams/ để biết bài viết và triển khai Matlab.)


Theo kinh nghiệm của tôi, nelder-delta thường nhanh hơn tìm kiếm trên lưới và độ dốc của đường chỉ nhanh hơn một chút trong khi cần ít lần lặp hơn, chi phí tính toán độ dốc cao. Vì vậy, nếu bạn có một triển khai cung cấp độ dốc gốc thì hãy sử dụng nó, nhưng Nelder-Mead có lẽ sẽ không bị bỏ lại phía sau. Tất nhiên, ngay khi bạn có nhiều hơn hai tham số siêu tốc để điều chỉnh tìm kiếm lưới ngay lập tức trở thành phương pháp chậm nhất. Sẽ rất thú vị khi xem một nghiên cứu về hiệu quả so sánh của từng phương pháp.
Dikran Marsupial

Bạn đúng rằng nếu số lượng tham số nhiều hơn một vài, tìm kiếm lưới là không khả thi. Nhưng điều tương tự cũng đúng với Nelder-Mead, bởi vì kích thước của đơn giản được xác định bởi chiều.
Innuo

chỉ ở cùng mức độ với độ dốc giảm dần, việc thêm một chiều bổ sung cho vấn đề chỉ thêm một điểm phụ vào đơn giản, do đó, giống như độ dốc giảm dần, nó có tỷ lệ tuyến tính theo số lượng siêu tham số. Tôi đã sử dụng nó với các vấn đề với hơn 40 tham số siêu tốc và nó chỉ chậm hơn một chút so với độ dốc (bạn có xu hướng phù hợp quá mức trong lựa chọn mô hình dù có nhiều tham số siêu tốc).
Dikran Marsupial

0

Đây là một mục trong blog của Alex Smola liên quan đến câu hỏi của bạn

Đây là một trích dẫn:

[...] chọn, giả sử 1000 cặp (x, x ') một cách ngẫu nhiên từ tập dữ liệu của bạn, tính khoảng cách của tất cả các cặp như vậy và lấy số trung vị, số lượng 0,1 và 0,9. Bây giờ chọn λ là nghịch đảo của bất kỳ số nào trong ba số này. Với một chút giá trị chéo, bạn sẽ tìm ra một trong ba cách tốt nhất. Trong hầu hết các trường hợp, bạn sẽ không cần phải tìm kiếm thêm nữa.

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.