Tôi hiểu rằng việc giảm độ dốc ngẫu nhiên có thể được sử dụng để tối ưu hóa mạng thần kinh bằng cách sử dụng backpropagation bằng cách cập nhật mỗi lần lặp với một mẫu khác nhau của tập dữ liệu huấn luyện. Kích thước lô phải lớn như thế nào?
Tôi hiểu rằng việc giảm độ dốc ngẫu nhiên có thể được sử dụng để tối ưu hóa mạng thần kinh bằng cách sử dụng backpropagation bằng cách cập nhật mỗi lần lặp với một mẫu khác nhau của tập dữ liệu huấn luyện. Kích thước lô phải lớn như thế nào?
Câu trả lời:
Các "cỡ mẫu" bạn đang nói về được gọi là kích thước hàng loạt , . Tham số kích thước lô chỉ là một trong những siêu tham số bạn sẽ điều chỉnh khi bạn huấn luyện mạng thần kinh với Stochastic Gradient Descent (SGD) theo lô nhỏ và phụ thuộc vào dữ liệu. Phương pháp cơ bản nhất của tìm kiếm siêu tham số là thực hiện tìm kiếm dạng lưới theo tỷ lệ học tập và kích thước lô để tìm một cặp làm cho mạng hội tụ.
Để hiểu kích thước lô phải là bao nhiêu, điều quan trọng là phải xem mối quan hệ giữa độ dốc của lô, SGD trực tuyến và SGD lô nhỏ. Đây là công thức chung cho bước cập nhật trọng lượng trong SGD mini-batch, đây là một khái quát của cả ba loại. [ 2 ]
Lưu ý rằng với 1, hàm mất không còn là biến ngẫu nhiên và không phải là xấp xỉ ngẫu nhiên.
Mỗi lần chúng tôi lấy một mẫu và cập nhật trọng lượng của mình, nó được gọi là một lô nhỏ . Mỗi lần chúng tôi chạy qua toàn bộ tập dữ liệu, nó được gọi là epoch .
Để đơn giản, chúng ta có thể giả sử rằng T chia hết cho B. Mặc dù, khi không phải như vậy, vì nó thường không phải, trọng lượng phù hợp nên được gán cho mỗi lô nhỏ như một hàm có kích thước của nó.
Lưu ý: trong thực tế, chúng tôi đang đọc các dữ liệu ví dụ đào tạo này từ bộ nhớ và do tìm nạp trước bộ đệm và các thủ thuật bộ nhớ khác được thực hiện bởi máy tính của bạn, thuật toán của bạn sẽ chạy nhanh hơn nếu truy cập bộ nhớ được kết hợp lại , tức là khi bạn đọc bộ nhớ theo thứ tự và không nhảy xung quanh ngẫu nhiên. Vì vậy, hầu hết các triển khai SGD trộn dữ liệu và sau đó tải các ví dụ vào bộ nhớ theo thứ tự chúng sẽ được đọc.
Các thông số chính cho vanilla (không có động lượng) SGD được mô tả ở trên là:
Tôi thích nghĩ về epsilon như là một chức năng từ số lượng kỷ nguyên đến tỷ lệ học tập. Chức năng này được gọi là lịch biểu tỷ lệ học tập .
Nếu bạn muốn cố định tốc độ học tập, chỉ cần định nghĩa epsilon là một hàm hằng.
Kích thước hàng loạt xác định có bao nhiêu ví dụ bạn nhìn vào trước khi thực hiện cập nhật trọng lượng. Nó càng thấp, tín hiệu đào tạo sẽ càng ồn, càng cao, sẽ mất nhiều thời gian hơn để tính toán độ dốc cho mỗi bước.
Trích dẫn và đọc thêm:
For simplicity we can assume that D is evenly divisible by B
. Bạn không có nghĩa là T nên chia đều cho B?
B is typically chosen between 1 and a few hundreds, e.g. B = 32 is a good default value, with values above 10 taking advantage of the speed-up of matrix-matrix products over matrix-vector products.
(từ bài viết năm 2012 của Bengio)