Nó sẽ giúp ích nếu bạn cung cấp một bối cảnh cho tuyên bố rằng việc giảm độ dốc là không hiệu quả. Không hiệu quả so với cái gì?
Tôi đoán rằng bối cảnh còn thiếu ở đây là so sánh với độ dốc ngẫu nhiên hoặc giảm dần hàng loạt trong học máy. Đây là cách trả lời câu hỏi trong bối cảnh này. Bạn đang tối ưu hóa các tham số của mô hình, thậm chí siêu đường kính. Vì vậy, bạn có hàm chi phí , trong đó x i - dữ liệu của bạn và Θ - vectơ của tham số và hàm L ( ) - mất. Để giảm thiểu chi phí này, bạn sử dụng gradient descent so với thông số θ j :
∂∑ni=1L(xi|Θ)xiΘL() θj
∂∂θj∑i=1nL(Θ|xi)
Vì vậy, bạn thấy rằng bạn cần lấy tổng trên tất cả dữ liệu . Điều này thật đáng tiếc, vì điều đó có nghĩa là bạn tiếp tục lặp qua dữ liệu cho từng bước của độ dốc của bạn. Đó là cách mà độ dốc giảm dần theo lô và ngẫu nhiên xuất hiện: điều gì xảy ra nếu chúng ta lấy mẫu từ tập dữ liệu và tính toán độ dốc trên một mẫu chứ không phải toàn bộ?
∂xi=1,…,n
Ở đây,nslà số quan sát trong mẫus. Vì vậy, nếu mẫu của bạn là 1/100 của tổng số bộ, bạn sẽ tăng tốc các phép tính của mình lên gấp 100 lần! Rõ ràng, giới thiệu này, tiếng ồn, mà kéo dài việc học tập, nhưng tiếng ồn là giảm với tốc độ của√
∂∂θj∑k=1nsL(Θ|xk)
nss trong khi số lượng tính toán tăng ở
n, vì vậy thủ thuật này có thể hoạt động.
n−−√n
Ngoài ra, insteado chờ đợi cho đến khi đầy đủ tổng được tính toán, bạn có thể chia này vào lô, và làm một bước cho từng lô Σ M s = 1 Σ n s i s = 1 . Bằng cách này, bạn sẽ thực hiện các bước M theo thời gian tính tổng trên toàn bộ tập dữ liệu. Đây sẽ là những bước ồn ào hơn, nhưng tiếng ồn sẽ biến mất theo thời gian.∑ni=1∑Ms=1∑nsis=1