Là phương pháp tìm kiếm dòng được sử dụng trong học tập sâu? Tại sao không?


18

Rất nhiều hướng dẫn trực tuyến nói về độ dốc gốc và hầu hết tất cả chúng đều sử dụng kích thước bước cố định (tỷ lệ học tập ). Tại sao không sử dụng tìm kiếm dòng (chẳng hạn như tìm kiếm dòng quay lại hoặc tìm kiếm dòng chính xác)?α


5
"Và hầu hết tất cả đều sử dụng kích thước bước cố định" - bạn có chắc không? Các tham số siêu "tốc độ học tập" được cho là thích ứng kích thước bước với các điều kiện. Một thuật toán Adam rất phổ biến thực hiện điều chỉnh kích thước bước
Aksakal

1
hmm, các phương pháp gradient kích thước bước thực sự thích nghi đã xuất hiện từ ít nhất là năm 2011, và chúng thậm chí còn được trích dẫn trên trang giảm dần độ dốc Stochastic của Wikipedia . Đó không hẳn là tin nóng. Ngay cả vanilla SGD gần như luôn được sử dụng với tốc độ học tập thay đổi theo số lần lặp ( lịch trình ). Bây giờ, một câu hỏi rất hay sẽ là: tại sao, ngay cả khi có rất nhiều phương pháp giảm độ dốc thích ứng, SGD vẫn thống trị thế giới Deep Learning? Câu hỏi ít tầm thường hơn nhiều so với vẻ ngoài của nó.
DeltaIV

1
Quay lại tìm kiếm dòng sửa chữa một hướng và sau đó tìm cách để giảm chức năng. Vì vậy, trừ khi bạn có một cách thông minh để chọn hướng để tìm kiếm, bạn sẽ được tối ưu hóa tẻ nhạt.
Alex R.

1
Tôi không thấy rằng tìm kiếm dòng có ý nghĩa đối với SGD (trái ngược với [lô] giảm dần độ dốc) - vì vậy tôi sẽ nói đó là lý do.
seanv507

3
Tôi nghi ngờ lý do tại sao tìm kiếm dòng không phổ biến là việc tạo khối theo độ dốc. Bạn nhận được một lô, sau đó tính toán độ dốc. Sẽ không có ý nghĩa gì khi quay trở lại đường dây vì tiếng ồn trong gradient. Tốt hơn là tiếp tục với đợt tiếp theo trong khi có thể tiết lộ kích thước bước.
Aksakal

Câu trả lời:


14

Độ dốc của vani có thể được thực hiện đáng tin cậy hơn bằng cách sử dụng tìm kiếm dòng; Tôi đã viết các thuật toán thực hiện điều này và nó tạo ra một thuật toán rất ổn định (mặc dù không nhất thiết phải nhanh).

Tuy nhiên, hầu như không có ý nghĩa gì khi thực hiện tìm kiếm dòng cho các phương thức gradient ngẫu nhiên . Lý do tôi nói điều này là vì nếu chúng tôi thực hiện tìm kiếm dòng dựa trên việc giảm thiểu chức năng mất toàn bộ, chúng tôi đã ngay lập tức mất một trong những động lực chính để thực hiện các phương pháp ngẫu nhiên; bây giờ chúng ta cần tính toán hàm mất toàn bộ cho mỗi bản cập nhật, thường có chi phí tính toán tương đương với tính toán đạo hàm đầy đủ đầu tiên. Cho rằng chúng tôi muốn tránh tính toán độ dốc đầy đủ vì chi phí tính toán, có vẻ như chúng tôi không muốn ổn với việc tính toán hàm mất toàn bộ.

Ngoài ra, bạn có thể nghĩ đến việc thực hiện một cái gì đó giống như tìm kiếm dòng dựa trên điểm dữ liệu được lấy mẫu ngẫu nhiên của bạn. Tuy nhiên, đây cũng không phải là một ý tưởng tốt; điều này sẽ không cho bạn biết gì về việc bạn đã đi quá xa hay chưa (đó là lợi ích chính của tìm kiếm dòng). Ví dụ, giả sử bạn đang thực hiện hồi quy logistic. Sau đó, mỗi kết quả chỉ là 0 hoặc 1 và đối với bất kỳ mẫu đơn lẻ nào, chúng tôi có được sự phân tách hoàn hảo để giải pháp tối ưu cho các tham số hồi quy dựa trên mẫu 1 là tầm thường hoặc bởi hiệu ứng Hauck Donner. Điều đó không tốt.-

BIÊN TẬP

@DeltaIV chỉ ra rằng điều này cũng áp dụng cho các lô nhỏ, không chỉ các mẫu riêng lẻ.


4
rất hay (+1), nhưng tôi không chắc tại sao trong ví dụ trước bạn nói về một mẫu duy nhất. Tôi đồng ý rằng việc tính toán tìm kiếm dòng dựa trên một lô nhỏ không có ý nghĩa gì, nhưng một lô nhỏ vẫn chứa 512 mẫu (thông thường và khi nói về ImageNet): tất nhiên không có giá trị cố định cho số lượng mẫu trong một mini -batch, nhưng 1 lô mẫu nhỏ cảm thấy hơi cực. Bạn đã sử dụng chúng chỉ để làm cho quan điểm của bạn rõ ràng hơn, hoặc tôi đang thiếu một cái gì đó?
DeltaIV

2
@DeltaIV: mẫu đơn chủ yếu là để đưa ra quan điểm về mức độ xấu của nó đối với một vấn đề rất đơn giản. Nếu chúng tôi thực hiện lô nhỏ với 512 mẫu về hồi quy logistic với hơn 512 đồng biến, chúng tôi sẽ thấy vấn đề tương tự.
Vách đá AB

10

Các hướng dẫn nói về độ dốc giảm dần có lẽ vì đây là một trong những thuật toán đơn giản nhất được sử dụng để tối ưu hóa, vì vậy rất dễ để giải thích. Vì hầu hết các hướng dẫn như vậy khá ngắn gọn, họ tập trung vào những thứ đơn giản. Có ít nhất một số thuật toán tối ưu hóa phổ biến ngoài việc giảm độ dốc đơn giản được sử dụng để học sâu. Trên thực tế mọi người thường sử dụng các thuật toán khác nhau sau đó chuyển độ dốc vì chúng thường hội tụ nhanh hơn. Một số trong số họ có tỷ lệ học tập không liên tục (ví dụ giảm dần theo thời gian). Để xem xét các thuật toán như vậy, bạn có thể kiểm tra tổng quan về các thuật toán tối ưu hóa độ dốc được đăng bởi Sebastian Ruder (hoặc bài báo được tạo ra ).


2
@DeltaIV: Tất cả các phương thức ưa thích "khác" được xây dựng trên đầu trang của SGD. Vấn đề chính là các phương pháp khác tận dụng kiến ​​thức địa phương để thực hiện các bước nhảy hiệu quả hơn, thay vì chỉ lấy điểm ngẫu nhiên để tính toán độ dốc trên. Nhưng SGD rất đơn giản và nhanh chóng, và nó không hoàn toàn khủng khiếp.
Alex R.

2
@AlexR. điểm không phải là SGD đơn giản và / hoặc nhanh chóng. Đơn giản không thành vấn đề, vì tất cả các thư viện phong nha đều thực hiện SGD, Adam, AdaGrad và RMSProp (và hơn thế nữa, đôi khi). Tốc độ thậm chí còn ít hơn, bởi vì thời gian dành cho, ví dụ, Adam, để tính toán các cập nhật ở mức tham số là không đáng kể so với thời gian đào tạo chung của một mô hình như ResNet. Điểm duy nhất là, vì một số lý do mà chúng ta không hiểu đầy đủ ngày hôm nay, SGD khái quát tốt hơn họ. Vì vậy, về cơ bản nếu bạn muốn đánh bại SOTA, bạn thường bị buộc phải sử dụng nó, hoặc ít nhất là chuyển sang sử dụng nó sau này trong quá trình đào tạo.
DeltaIV

3
@DeltaIV Rất thú vị. Tôi đã mở bài báo mà bạn liên kết đến và nó tham khảo bản in của Wilson et al 2017 cho tuyên bố rằng SGD khái quát hóa tốt hơn Adam, v.v .; Vì vậy, khi bạn nói rằng đó là "nổi tiếng", bạn có nghĩa là nổi tiếng từ khoảng nửa năm, phải không?
amip nói rằng Phục hồi lại

2
@DeltaIV Cảm ơn. Bản thân tôi không học nhiều và tôi không nhận thức được điều đó. Trở lại năm 2012 hoặc khi tôi đang xem các bài giảng Coursera của Hinton, ông chủ yếu ủng hộ RMSprop và trong 1-2 năm gần đây, ấn tượng của tôi là mọi người đều sử dụng Adam (thay thế RMSprop, theo bài báo của Adam). Khi tôi chơi với bộ điều khiển tự động năm ngoái, tôi nhận ra rằng Adam hoạt động nhanh hơn nhiều so với SGD, và từ đó chỉ cho rằng Adam là một lựa chọn mặc định ngày nay.
amip nói rằng Phục hồi Monica

3
@CliffAB Có, có thể thấy rõ mối quan hệ giữa dừng sớm và chính quy hóa đối với các ô vuông nhỏ nhất, trong đó độ dốc hoạt động trong cơ sở giá trị riêng và các giá trị riêng nhỏ là những điểm cuối cùng hội tụ; trong khi đó hình phạt sườn núi cũng phạt các giá trị nhỏ. Bây giờ tôi chỉ lướt qua Wilson et al. được liên kết ở trên, nhưng ít nhất trong ví dụ bình phương tối thiểu SGD vs Adam khác nhau không được giải thích bằng dừng sớm so với dừng muộn. Họ tuyên bố rằng họ hội tụ đến các giải pháp khác nhau.
amip nói phục hồi Monica
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.