Mạng lưới thần kinh: động lượng thay đổi trọng lượng và giảm cân


41

Động lượng được sử dụng để làm giảm các dao động về thay đổi trọng lượng trong các lần lặp liên tiếp:α

nơiE(w)là hàm lỗi,w- vector của trọng lượng,η- Tỷ lệ học.

ΔωTôi(t+1)= =-ηEwTôi+αΔωTôi(t),
E(w)wη

Sâu Trọng lượng phạt những thay đổi trọng lượng:λ

ΔωTôi(t+1)= =-ηEwTôi-ληωTôi

Câu hỏi đặt ra là liệu có hợp lý khi kết hợp cả hai thủ thuật trong quá trình truyền ngược hay không và nó có ảnh hưởng gì không?

ΔωTôi(t+1)= =-ηEwTôi+αΔωTôi(t)-ληωTôi

1
Bạn có ý nói i (t + 1) = i - E / wi + αΔωi (t), thay vì Δωi (t + 1) = ωi - E / wi + αΔωi (t)?
hakunamatata

Câu trả lời:


48

Có, nó rất phổ biến để sử dụng cả hai thủ thuật. Họ giải quyết các vấn đề khác nhau và có thể làm việc tốt với nhau.

Một cách để suy nghĩ về nó là phân rã trọng lượng thay đổi chức năng đang được tối ưu hóa , trong khi động lượng thay đổi con đường bạn đi đến mức tối ưu .

Phân rã trọng lượng, bằng cách thu nhỏ các hệ số của bạn về 0, đảm bảo rằng bạn tìm thấy một tối ưu cục bộ với các tham số cường độ nhỏ. Điều này thường rất quan trọng để tránh quá mức (mặc dù các loại ràng buộc khác về trọng lượng cũng có thể hoạt động). Là một lợi ích phụ, nó cũng có thể làm cho mô hình dễ dàng tối ưu hóa hơn, bằng cách làm cho hàm mục tiêu trở nên lồi hơn.

Một khi bạn có một chức năng khách quan, bạn phải quyết định làm thế nào để di chuyển trên đó. Giảm dần rõ ràng trên gradient là cách tiếp cận đơn giản nhất, nhưng bạn đúng rằng biến động có thể là một vấn đề lớn. Thêm động lực giúp giải quyết vấn đề đó. Nếu bạn đang làm việc với các bản cập nhật hàng loạt (thường là một ý tưởng tồi với các mạng thần kinh) thì các bước kiểu Newton là một lựa chọn khác. Các cách tiếp cận "nóng" mới dựa trên độ dốc tăng tốc của Nesterov và cái gọi là tối ưu hóa "Hessian-Free".

Nhưng bất kể quy tắc cập nhật nào bạn sử dụng (động lượng, Newton, v.v.), bạn vẫn làm việc với cùng một hàm mục tiêu, được xác định bởi hàm lỗi của bạn (ví dụ: lỗi bình phương) và các ràng buộc khác (ví dụ phân rã trọng lượng) . Câu hỏi chính khi quyết định sử dụng loại nào trong số này là bạn sẽ nhanh chóng đạt được một mức tạ tốt như thế nào.


'Nó cũng có thể làm cho mô hình dễ dàng tối ưu hóa hơn, bằng cách làm cho hàm mục tiêu trở nên lồi hơn' - bạn có thể giải thích làm thế nào trọng lượng nhỏ hơn làm cho điều này có thể?
Alex

Đây là một ví dụ đơn giản minh họa điểm: nếu hàm mục tiêu ban đầu của bạn là , có vô số cực tiểu cục bộ. Nếu bạn thêm một x 2STôiviết sai rồi(x)mộtx2một

Câu trả lời tốt đẹp, cảm ơn bạn. Thế còn Adam Tối ưu hóa? Liệu nó thực hiện tốt hơn sự kết hợp của phân rã trọng lượng và động lượng?
A. Piro

Adam giống như động lực, nhưng không giống như sự suy giảm cân nặng; nó ảnh hưởng đến cách bạn điều hướng hàm mục tiêu, nhưng không ảnh hưởng đến chính hàm mục tiêu.
David J. Harris
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.