Như câu trả lời khác cho thấy, lý do chính để sử dụng SGD là để giảm chi phí tính toán của độ dốc trong khi vẫn duy trì phần lớn hướng dốc khi lấy trung bình trên nhiều lô nhỏ hoặc mẫu - điều đó chắc chắn giúp đưa bạn đến cực tiểu địa phương.
- Tại sao xe buýt nhỏ hoạt động .
Toán học đằng sau điều này là, độ dốc "thực" của hàm chi phí (độ dốc cho lỗi tổng quát hóa hoặc cho các mẫu lớn vô hạn) là kỳ vọng của độ dốc so với phân phối tạo dữ liệu thực ; độ dốc thực tế được tính trên một lô mẫu luôn gần đúng với độ dốc thực với phân phối dữ liệu theo kinh nghiệm .
pdatap^data
g=Epdata(∂J(θ)∂θ)
Giảm dần độ dốc hàng loạt có thể mang lại cho bạn độ dốc "tối ưu" có thể có trong tất cả các mẫu dữ liệu của bạn, tuy nhiên đó không phải là độ dốc "thực". Một lô nhỏ hơn (xe buýt nhỏ) có thể không tối ưu như lô đầy đủ, nhưng cả hai đều gần đúng - vì vậy, xe buýt nhỏ mẫu đơn (SGD) cũng vậy. Sự khác biệt giữa các lỗi tiêu chuẩn của chúng tỷ lệ nghịch với kích thước của xe buýt nhỏ. Đó là,
mE p dmộttmột(g(m))=E p dmộttmột(∂J(θ)SE(g^(n))SE(g^(m))=mn−−−√
Tức là, giảm lỗi tiêu chuẩn là căn bậc hai của việc tăng kích thước mẫu. Phương trình trên dành cho độ dốc được tính toán trong một bước của độ dốc giảm dần. Khi bạn lặp lại các bước cập nhật độ dốc của xe buýt nhỏ và sử dụng tất cả các mẫu đào tạo cuối cùng trong một epoch, bạn hầu như tính toán giá trị trung bình của độ dốc dựa trên tất cả các mẫu đã cho. Đó là, đối với kích thước xe buýt nhỏ ,
Từ các phương trình trên, chúng ta có thể kết luận rằng, với một epoch, độ dốc trung bình của bạn với các kích cỡ xe buýt nhỏ khác nhau
mmEp^data(g^(m))=Ep^data(∂J(θ)∂θ)
m (từ một đến toàn bộ lô) có cùng một lỗi tiêu chuẩn và quan trọng hơn, tất cả chúng đều là các xấp xỉ trung thành với gradient "đúng", nghĩa là di chuyển sang đúng hướng của gradient "đúng".
- Tại sao xe buýt nhỏ có thể hoạt động tốt hơn .
Thứ nhất, xe buýt nhỏ làm cho một số vấn đề học tập từ kỹ thuật không thể giải quyết được có thể giải quyết được do nhu cầu tính toán giảm với quy mô lô nhỏ hơn.
Thứ hai, giảm kích thước lô không nhất thiết có nghĩa là giảm độ chính xác của gradient. Các mẫu đào tạo nhiều có rất nhiều tiếng ồn hoặc ngoại lệ hoặc sai lệch. Một xe buýt nhỏ được lấy mẫu ngẫu nhiên có thể phản ánh phân phối tạo dữ liệu thực sự tốt hơn (hoặc không tệ hơn) so với lô đầy đủ ban đầu. Nếu một số lần lặp lại của các bản cập nhật độ dốc nhỏ cho bạn ước tính tốt hơn, thì tổng thể kết quả trung bình của một epoch có thể tốt hơn so với độ dốc được tính toán từ một lô đầy đủ.
Thứ ba, xe buýt nhỏ không chỉ giúp xử lý các mẫu dữ liệu khó chịu mà còn giúp đối phó với chức năng chi phí khó chịu có nhiều cực tiểu địa phương. Như Jason_L_Bens đề cập, đôi khi các đa tạp lỗi có thể dễ dàng bẫy một gradient thông thường vào một cực tiểu cục bộ, trong khi khó khăn hơn để bẫy gradient tạm thời ngẫu nhiên được tính toán với xe buýt nhỏ.
Cuối cùng, với độ dốc giảm dần, bạn không đạt cực tiểu toàn cầu trong một bước, nhưng lặp lại trên đa tạp erro. Gradient phần lớn chỉ cung cấp cho bạn hướng để lặp lại. Với xe buýt nhỏ, bạn có thể lặp lại nhanh hơn nhiều. Trong nhiều trường hợp, càng lặp lại, điểm tốt hơn bạn có thể đạt được. Bạn không thực sự quan tâm ở mọi thời tiết, điểm này là tối ưu trên toàn cầu hoặc thậm chí là cục bộ. Bạn chỉ muốn đạt được một mô hình hợp lý mang lại cho bạn lỗi tổng quát hóa chấp nhận được. Minibatch làm cho điều đó dễ dàng hơn.
Bạn có thể tìm thấy cuốn sách "Học sâu" của Ian Goodfellow, et al, có các cuộc thảo luận khá tốt về chủ đề này nếu bạn đọc kỹ nó.