Hướng dẫn chọn siêu âm trong Deep Learning


38

Tôi đang tìm một bài báo có thể giúp đưa ra một hướng dẫn về cách chọn các siêu đường kính của một kiến ​​trúc sâu, như các bộ mã hóa tự động xếp chồng hoặc các mạng tin sâu. Có rất nhiều siêu âm và tôi rất bối rối về cách chọn chúng. Ngoài ra sử dụng xác nhận chéo không phải là một lựa chọn vì đào tạo thực sự tốn rất nhiều thời gian!


Tôi giới thiệu Cuốn sách học tập sâu của Ian Goodfellow: deeplearningbook.org
Vadim Smolyakov

Câu trả lời:


24

Về cơ bản có bốn phương pháp:

  1. Tìm kiếm thủ công: Sử dụng kiến ​​thức bạn có về các tham số đoán vấn đề và quan sát kết quả. Dựa trên kết quả đó, điều chỉnh các tham số. Lặp lại quy trình này cho đến khi bạn tìm thấy các tham số hoạt động tốt hoặc bạn hết thời gian.
  2. Tìm kiếm lưới: Sử dụng kiến ​​thức bạn có về vấn đề xác định phạm vi cho các siêu đường kính. Sau đó chọn một số điểm từ các phạm vi đó, thường được phân phối đồng đều. Huấn luyện mạng của bạn bằng cách sử dụng mọi kết hợp tham số và chọn kết hợp hoạt động tốt nhất. Ngoài ra, bạn có thể lặp lại tìm kiếm của mình trên một miền hẹp hơn tập trung vào các tham số hoạt động tốt nhất.
  3. Tìm kiếm ngẫu nhiên: Giống như tìm kiếm dạng lưới, bạn sử dụng kiến ​​thức về vấn đề để xác định phạm vi cho các siêu đường kính. Tuy nhiên, thay vì chọn các giá trị từ các phạm vi đó một cách có phương pháp, thay vào đó bạn chọn chúng một cách ngẫu nhiên. Lặp lại quy trình này cho đến khi bạn tìm thấy các tham số hoạt động tốt hoặc sử dụng những gì bạn học được để thu hẹp tìm kiếm của mình. Trong bài viết Tìm kiếm ngẫu nhiên để tối ưu hóa siêu tham số, Tiến sĩ Bengio đề xuất đây là phương pháp cơ bản để so sánh tất cả các phương pháp khác và cho thấy rằng nó có xu hướng hoạt động tốt hơn các phương pháp khác.
  4. Tối ưu hóa Bayes: Công việc gần đây đã tập trung vào việc cải thiện các phương pháp khác bằng cách sử dụng thông tin thu được từ bất kỳ thử nghiệm cụ thể nào để quyết định cách điều chỉnh các tham số siêu cho thử nghiệm tiếp theo. Một ví dụ về công việc này sẽ là Tối ưu hóa Bayes thực tế cho các thuật toán học máy của Adams và cộng sự.

14

Một loạt các phương pháp tồn tại. Chúng có thể được phân vùng phần lớn trong các phương pháp tìm kiếm ngẫu nhiên / không mong muốn (như tìm kiếm lưới hoặc tìm kiếm ngẫu nhiên) và phương pháp trực tiếp. Tuy nhiên, hãy lưu ý rằng tất cả chúng đều yêu cầu thử nghiệm một số lượng đáng kể các cài đặt siêu tham số trừ khi bạn gặp may mắn (ít nhất là hàng trăm, tùy thuộc vào số lượng tham số).

Trong lớp phương pháp trực tiếp, một số cách tiếp cận khác nhau có thể được xác định:

  • phương pháp miễn phí phái sinh, ví dụ đơn giản Nelder-Mead hoặc TRỰC TIẾP
  • phương pháp tiến hóa, như CMA-ES và bầy hạt
  • phương pháp tiếp cận dựa trên mô hình, ví dụ như EGO và Kriging tuần tự

Bạn có thể muốn xem xét Optunity , gói Python cung cấp nhiều bộ giải để điều chỉnh siêu tham số (mọi thứ tôi đã đề cập ngoại trừ EGO và Kriging, bây giờ). Optunity sẽ có sẵn cho MATLAB và R sớm. Tuyên bố miễn trừ trách nhiệm: Tôi là nhà phát triển chính của gói này.

Dựa trên kinh nghiệm cá nhân của tôi, các phương pháp tiến hóa rất mạnh mẽ cho các loại vấn đề này.


10

Đừng tìm đâu xa! Yoshua Bengio đã xuất bản một trong những bài báo ứng dụng yêu thích của tôi, một bài mà tôi đề xuất cho tất cả các kỹ sư máy học mới khi họ bắt đầu đào tạo mạng lưới thần kinh: Khuyến nghị thực tế cho việc đào tạo kiến ​​trúc sâu dựa trên độ dốc. Để có được quan điểm của anh ấy về việc chuyển siêu tham số: bao gồm tốc độ học tập, lịch biểu tỷ lệ học tập, dừng sớm, kích thước xe buýt nhỏ, số lớp ẩn, v.v., xem Phần 3.

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.