Phương pháp hiệu quả nhất để tối ưu hóa siêu tham số trong scikit-learn là gì?


10

Tổng quan về quá trình tối ưu hóa siêu tham số trong scikit-learn có ở đây .

Tìm kiếm lưới đầy đủ sẽ tìm thấy bộ siêu đường kính tối ưu cho một mô hình. Nhược điểm là tìm kiếm lưới đầy đủ là chậm.

Tìm kiếm ngẫu nhiên nhanh hơn tìm kiếm lưới nhưng có phương sai cao không cần thiết.

Ngoài ra còn có các chiến lược bổ sung trong các gói khác, bao gồm tối ưu hóa scikit , tự động sklearnscikit-hyperband .

Phương pháp hiệu quả nhất (nhanh chóng tìm ra các tham số hiệu suất hợp lý) để tối ưu hóa siêu tham số trong scikit-learn là gì?

Lý tưởng nhất, tôi muốn các ví dụ mã làm việc với điểm chuẩn.


Tôi nghi ngờ câu trả lời sẽ phụ thuộc một chút vào loại mô hình. Bạn đã có một cái cụ thể trong tâm trí?
Ben Reiniger

Trong scikit-learn, bạn cũng có thể thử scikit-hyperband. Xin lỗi tôi không có mã để điểm chuẩn vào lúc này. Các phương pháp khác tồn tại tuy nhiên không được thực hiện trong scikit learn.
Ethan

1
Hyperopt hoặc sử dụng Phương pháp tiếp cận Bayes dường như chiếm ưu thế kaggle .. Và rõ ràng Trải nghiệm sau đó vì người ta không thể thực sự làm điều đó :)
Aditya

Trong scikit-learn, tôi thường sử dụng các nhóm cây. Quần thể cây sẽ là một nơi tốt để bắt đầu nếu chúng có xu hướng hoạt động tốt và có nhiều nút để xoay.
Brian Spiering

1
Thật thú vị, một số điểm chuẩn gần đây đã chỉ ra rằng x2 ngẫu nhiên có thể vượt trội hơn một số phương pháp "fancier". Tôi có thể liên kết đến một bài viết / bài báo thực sự tốt để bạn đọc. Ngoài ra, nếu tôi tìm thấy một thời gian vào tuần tới, tôi có thể trả lời câu hỏi của bạn đầy đủ hơn.
Ethan

Câu trả lời:


6

Tối ưu hóa không phải là lĩnh vực của tôi, nhưng theo tôi biết, tối ưu hóa siêu tham số hiệu quả và hiệu quả ngày nay xoay quanh việc xây dựng một mô hình thay thế. Khi các mô hình tăng độ phức tạp, chúng trở thành một hộp đen mờ hơn. Đây là trường hợp đối với lưới thần kinh sâu và có lẽ là cây phức tạp. Một mô hình thay thế cố gắng hồi quy không gian bên dưới trong hộp đen đó. Dựa trên nhiều kỹ thuật lấy mẫu khác nhau, họ thăm dò không gian siêu tham số và cố gắng xây dựng một hàm đại diện cho không gian siêu tham số cơ bản thực sự.

Tối ưu hóa Bayes tập trung vào mô hình thay thế và cách xây dựng mô hình này là rất quan trọng đối với BO. Cũng rất quan trọng đối với BO là chọn một chức năng mất tốt.

Tôi nghĩ hiệu suất giữa tìm kiếm ngẫu nhiên và tìm kiếm Bayes thay đổi từ tập dữ liệu đến tập dữ liệu và mô hình sang mô hình. Bergstra & Bengio (2012) đã đưa ra một lập luận mạnh mẽ cho tìm kiếm ngẫu nhiên trên tìm kiếm lưới. Shahriari et al. (2016) tạo ra một trường hợp mạnh mẽ cho BO. Các chiến lược Hyperband dựa trên mô hình có thể có khả năng thực hiện tốt hơn BO, đặc biệt đối với các kích thước cao, tuy nhiên đó hoàn toàn là thăm dò chứ không phải khai thác. Điều này có thể dễ dàng dẫn đến quá sớm dừng lại. Tuy nhiên, đã có những nỗ lực để kết hợp Hyperband và BO .

Tôi đã tối ưu hóa thành công scikit, mặc dù có khá nhiều điều chưa được thực hiện. Thật dễ dàng để tạo nguyên mẫu với và có thể dễ dàng giao tiếp với scikit-learn.


Bergstra, J., & Bengio, Y. (2012). Tìm kiếm ngẫu nhiên để tối ưu hóa siêu tham số. Tạp chí Nghiên cứu Máy học, 13 (Tháng 2), 281-305.

Shahriari, B., Swersky, K., Wang, Z., Adams, RP, & De Freitas, N. (2016). Đưa con người ra khỏi vòng lặp: Một đánh giá về tối ưu hóa bayes. Thủ tục tố tụng của IEEE, 104 (1), 148-175.


2

Bạn có thể xem tự động sklearn . Đó là một bộ công cụ học máy tự động, là phần mở rộng trực tiếp của scikit-learn.


2
Rất thú vị. Điều này sử dụng phương pháp Bayes để tối ưu hóa siêu tham số dưới mui xe @Aditya.
Esmailian
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.