Giảm tổn thất: Giảm độ dốc Stochastic

Trong phương pháp giảm độ phân giải (gradient), gói là tập hợp các ví dụ bạn dùng để tính toán độ dốc trong một vòng lặp huấn luyện. Cho đến nay, chúng tôi giả định rằng lô là toàn bộ tập dữ liệu. Khi làm việc ở quy mô của Google, các tập dữ liệu thường chứa hàng tỷ, thậm chí hàng trăm tỷ ví dụ. Hơn nữa, tập dữ liệu của Google thường chứa số lượng lớn các tính năng. Do đó, một lô có thể rất lớn. Một lô rất lớn có thể khiến chỉ một lần lặp lại mất rất nhiều thời gian để tính toán.

Một tập dữ liệu lớn với các ví dụ được lấy mẫu ngẫu nhiên có thể chứa dữ liệu dư thừa. Trên thực tế, tình trạng thừa mã sẽ xảy ra nhiều hơn khi kích thước lô tăng lên. Một số phần dư thừa có thể hữu ích để làm mịn các chuyển màu nhiễu, nhưng lô lớn có xu hướng không mang nhiều giá trị dự đoán hơn lô lớn.

Điều gì sẽ xảy ra nếu chúng ta có thể có được độ dốc phù hợp trung bình để tính toán ít hơn nhiều? Bằng cách chọn các ví dụ ngẫu nhiên trong tập dữ liệu, chúng tôi có thể ước tính (mặc dù có thể gây ồn ào) giá trị trung bình lớn so với giá trị nhỏ hơn nhiều. Phương pháp giảm độ dốc ngẫu nhiên (SGD) đưa ý tưởng này đến mức cực kỳ tốt – chỉ sử dụng một ví dụ duy nhất (kích thước lô là 1) cho mỗi vòng lặp. Nếu được lặp lại đủ số lần, SGD vẫn hoạt động nhưng rất ồn ào. Thuật ngữ "stochastic" cho biết rằng một ví dụ bao gồm mỗi lô được chọn ngẫu nhiên.

Phương pháp giảm độ dốc ngẫu nhiên theo lô nhỏ (mini-Batch SGD) là sự thoả thuận giữa vòng lặp toàn bộ lô và SGD. Một lô nhỏ thường có từ 10 đến 1.000 ví dụ, được chọn ngẫu nhiên. SGD theo lô nhỏ giúp giảm mức độ nhiễu trong SGD nhưng vẫn hiệu quả hơn so với lô đầy đủ.

Để đơn giản hoá nội dung giải thích, chúng tôi đã tập trung vào tính năng giảm độ dốc cho một tính năng duy nhất. Hãy yên tâm rằng tính năng giảm độ dốc cũng hoạt động trên các bộ tính năng có nhiều tính năng.