Kích thước lô phải lớn như thế nào đối với gốc dốc ngẫu nhiên?


49

Câu trả lời:


72

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ụ.B

Để 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 ]

θt+1θtϵ(t)1Bb=0B1L(θ,mb)θ
  1. Giảm dần hàng loạt, B=|x|
  2. B=1
  3. B>1B<|x|

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.

xmxBmB=|m|

θxmE[LSGD(θ,m)]=L(θ,x)

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 .

x:RDθ0:RSL(θ,x):RSRDRSTB

C=T/B

Để đơ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ó.

M

t0while t<Mθt+1θtϵ(t)1Bb=0B1L(θ,mb)θtt+1

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à:

  1. ϵ

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 .

ϵ(t):NR

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.

  1. Kích thước hàng loạt

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:

  1. Giới thiệu về học tập dựa trên Gradient
  2. Khuyến nghị thực tế cho đào tạo dựa trên độ dốc của kiến ​​trúc sâu
  3. Đào tạo hàng loạt hiệu quả để tối ưu hóa ngẫu nhiên

1
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?
Antoine

4
và để thực sự trả lời câu hỏi của OP, bạn có thể thêm 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)
Antoine

@sabalaba Câu trả lời hay. Nhưng không phải là trong phương trình "Một thuật toán lặp cho SGD với M epoch được đưa ra dưới đây", chúng tôi sẽ cập nhật trọng số sau khi chạy qua từng lô nhỏ. Nói cách khác, không nên có một vòng lặp khác (trên các lô C nhỏ) bên trong vòng lặp qua kỷ nguyên tức là trong khi t <M
Kaushik Acharya

2
Trong thống kê, một mẫu bao gồm nhiều quan sát. Vì vậy, kích thước mẫu được giải thích chính xác bởi các nhà thống kê. Trong khoa học máy tính (đặc biệt, trong học máy), một mẫu là một quan sát duy nhất và một là một tập hợp các mẫu. Nó có thể là một chút bối rối. Một mẫu cho các nhà thống kê là một lô cho các nhà khoa học dữ liệu;) Nguồn: en.wikipedia.org/wiki/Sample_size_determination
Oleg Melnikov

nm
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.