Sự khác biệt giữa giảm cân thần kinh và tốc độ học tập


94

Trong bối cảnh của các mạng lưới thần kinh, sự khác biệt giữa tốc độ học tập và giảm cân là gì?

Câu trả lời:


161

Tốc độ học tập là một tham số xác định mức độ bước cập nhật ảnh hưởng đến giá trị hiện tại của các trọng số. Trong khi phân rã trọng lượng là một thuật ngữ bổ sung trong quy tắc cập nhật trọng lượng làm cho các trọng số phân rã theo cấp số nhân về 0, nếu không có cập nhật nào khác được lên lịch.

Vì vậy, giả sử rằng chúng ta có hàm chi phí hoặc lỗi mà chúng ta muốn giảm thiểu. Giảm dần độ dốc cho chúng ta sửa đổi các trọng số theo hướng đi xuống dốc nhất trong : trong đó là tốc độ học tập và nếu nó lớn, bạn sẽ có một sự điều chỉnh lớn tương ứng của các trọng số (nói chung nó không nên quá lớn, nếu không bạn sẽ vượt quá mức tối thiểu cục bộ trong hàm chi phí của bạn).E(w)wE

wiwiηEwi,
ηwi

Để hạn chế hiệu quả số lượng tham số miễn phí trong mô hình của bạn để tránh phù hợp quá mức, có thể thường xuyên hóa hàm chi phí. Một cách dễ dàng để làm điều đó là bằng cách đưa ra một Gaussian trung bình bằng 0 trước các trọng số, tương đương với việc thay đổi hàm chi phí thành . Trong thực tế, điều này phạt trọng lượng lớn và hạn chế hiệu quả sự tự do trong mô hình của bạn. Tham số chính quy xác định cách bạn đánh đổi chi phí ban đầu với hình phạt trọng số lớn.E~(w)=E(w)+λ2w2λE

Áp dụng độ dốc giảm dần cho hàm chi phí mới này, chúng tôi có được: Thuật ngữ mới xuất phát từ chính quy làm cho trọng lượng phân rã tỷ lệ với kích thước của nó.

wiwiηEwiηλwi.
ηλwi

2
Cảm ơn lời giải thích hữu ích. Một câu hỏi: trong gói R "nnet" có một tham số được sử dụng trong quá trình huấn luyện mạng thần kinh gọi là "phân rã". Bạn có biết nếu sâu răng tương ứng với lambda của bạn hoặc eta * lambda của bạn?
Andrea Ianni

3
Tôi cũng sẽ thêm rằng phân rã trọng lượng là điều tương tự như chính quy L2 cho những người quen thuộc sau này.
Sergei

2
@Sergei xin vui lòng không, ngừng lan truyền thông tin sai lệch này! Điều này chỉ đúng trong trường hợp rất đặc biệt của vani SGD. Xem phần giảm trọng lượng sửa chữa cho giấy Adam .
LucasB

Để làm rõ: tại thời điểm viết, các tài liệu PyTorch cho Adam sử dụng thuật ngữ "phân rã trọng lượng" (gọi là "hình phạt L2") để chỉ những gì tôi nghĩ rằng các tác giả gọi là quy định L2. Nếu tôi hiểu chính xác, câu trả lời này đề cập đến SGD không có động lượng, trong đó hai câu tương đương.
Dylan F

14

Ngoài câu trả lời của @ mrig (+1), đối với nhiều ứng dụng thực tế của mạng nơ-ron, tốt hơn là sử dụng thuật toán tối ưu hóa tiên tiến hơn, chẳng hạn như Levenberg-Marquest (mạng cỡ nhỏ) hoặc giảm độ dốc liên hợp tỷ lệ (trung bình lớn mạng), vì các mạng này sẽ nhanh hơn nhiều và không cần thiết lập tốc độ học (cả hai thuật toán về cơ bản điều chỉnh tốc độ học bằng cách sử dụng độ cong cũng như độ dốc). Bất kỳ gói hoặc thư viện mạng thần kinh phong nha nào cũng sẽ có triển khai một trong những phương pháp này, bất kỳ gói nào không có lẽ đã lỗi thời. Tôi sử dụng NETLAB libary cho MATLAB, đây là một bộ công cụ tuyệt vời.


Điều gì về các thuật toán tối ưu hóa dựa trên Rprop? Làm thế nào để họ xếp chồng lên nhau?
sức mạnh

4
Tôi nghĩ rằng hầu hết mọi người đang sử dụng các biến thể của rprop + đà như RMSProp, adagrad, SGD + nesterov đà. Xem lớp cs231 .
facuq

1
Vâng, tất nhiên nó phụ thuộc vào ứng dụng của bạn. Nhưng đối với các bộ dữ liệu / mạng lớn đang là xu hướng hiện nay, tôi nghĩ mọi người đang tìm những thuật toán mà tôi đề cập phù hợp hơn.
facuq

6
@DikranMarsupial có thể là vì ngày nay (gần năm năm sau câu trả lời của bạn) mọi người có xu hướng sử dụng Adam thay thế?
ComputerSellectist

2
Quả thực câu trả lời này rất lỗi thời. Các thuật toán này không thực tế với quy mô của các mô hình và bộ dữ liệu điển hình hiện nay và các gói được sử dụng rộng rãi nhất, chắc chắn không bị lỗi thời, thiếu các thuật toán này.
LucasB

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.