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.