Hướng dẫn chọn trình tối ưu hóa để đào tạo mạng lưới thần kinh


18

Tôi đã sử dụng mạng lưới thần kinh trong một thời gian. Tuy nhiên, một điều mà tôi không ngừng đấu tranh là việc lựa chọn một trình tối ưu hóa để đào tạo mạng (sử dụng backprop). Những gì tôi thường làm chỉ là bắt đầu với một (ví dụ SGD tiêu chuẩn) và sau đó thử những thứ khác khá ngẫu nhiên. Tôi đã tự hỏi nếu có một cách tiếp cận tốt hơn (và ít ngẫu nhiên hơn) để tìm một trình tối ưu hóa tốt, ví dụ từ danh sách này:

  • SGD (có hoặc không có động lượng)
  • AdaDelta
  • AdaGrad
  • RMSProp
  • Ađam

Đặc biệt, tôi quan tâm nếu có một số biện minh lý thuyết cho việc chọn cái này qua cái khác do dữ liệu đào tạo có một số tài sản, ví dụ như nó thưa thớt. Tôi cũng sẽ tưởng tượng rằng một số trình tối ưu hóa hoạt động tốt hơn những cái khác trong các miền cụ thể, ví dụ như khi đào tạo mạng tích chập so với mạng chuyển tiếp hoặc phân loại so với hồi quy.

Nếu bất kỳ ai trong số các bạn đã phát triển một số chiến lược và / hoặc trực giác về cách bạn chọn tối ưu hóa, tôi sẽ rất thích thú khi nghe nó. Hơn nữa, nếu có một số công việc cung cấp lý lẽ biện minh cho việc chọn cái này qua cái khác, điều đó sẽ còn tốt hơn nữa.

Câu trả lời:


3

1) AdaGrad phạt quá mức tốc độ học tập đối với các tham số thường xuyên được cập nhật và mang lại tỷ lệ học tập nhiều hơn cho các tham số thưa thớt, các tham số không được cập nhật thường xuyên. Trong một số vấn đề thường là thông tin quan trọng nhất có trong dữ liệu không thường xuyên nhưng thưa thớt. Vì vậy, nếu vấn đề bạn đang làm việc liên quan đến các dữ liệu thưa thớt như tf-idf, v.v. Adagrad có thể hữu ích.

2) AdaDelta, RMSProp gần như hoạt động trên các dòng tương tự với sự khác biệt duy nhất trong Adadelta bạn không yêu cầu hằng số tốc độ học tập ban đầu để bắt đầu.

3) Adam kết hợp các đặc tính tốt của Adadelta và RMSprop và do đó có xu hướng làm tốt hơn cho hầu hết các vấn đề.

4) Độ dốc dốc ngẫu nhiên là rất cơ bản và hiếm khi được sử dụng. Một vấn đề là với tỷ lệ học tập toàn cầu liên quan đến cùng. Do đó, nó không hoạt động tốt khi các tham số ở các thang đo khác nhau vì tốc độ học tập thấp sẽ khiến việc học chậm lại trong khi tốc độ học tập lớn có thể dẫn đến dao động. Ngoài ra độ dốc dốc Stochastic thường có một thời gian khó thoát khỏi các điểm yên ngựa. Adagrad, Adadelta, RMSprop và ADAM thường xử lý các điểm yên xe tốt hơn. SGD với động lượng thể hiện một số tốc độ để tối ưu hóa và cũng giúp thoát khỏi cực tiểu địa phương tốt hơn.


2

Cách tiếp cận cá nhân của tôi là chọn trình tối ưu hóa mới nhất (tức là tạp chí mới nhất được công bố trên tạp chí), bởi vì họ thường báo cáo kết quả trên các bộ dữ liệu tiêu chuẩn hoặc đánh bại trạng thái nghệ thuật hoặc cả hai. Khi tôi sử dụng Caffe chẳng hạn, tôi luôn sử dụng Adam ( http://arxiv.org/abs/1412,6980 ).


0
Nadam(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=None, schedule_decay=0.004)

Giống như Adamvề cơ bản là RMSpropvới động lượng, Nadamlà Adam RMSpropvới động lực Nesterov.

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.