Apa perbedaan antara 'epoch', 'batch', dan 'minibatch'?

38

Sejauh yang saya tahu, ketika mengadopsi Stochastic Gradient Descent sebagai algoritma pembelajaran, seseorang menggunakan 'epoch' untuk dataset lengkap, dan 'batch' untuk data yang digunakan dalam langkah pembaruan tunggal, sementara yang lain menggunakan 'batch' dan 'minibatch' masing-masing, dan yang lain menggunakan 'zaman' dan 'minibatch'. Ini membawa banyak kebingungan saat berdiskusi.

Jadi, apa kata yang benar? Atau mereka hanya dialek yang semuanya dapat diterima?

Tim
sumber

Jawaban:

25
  • Zaman berarti satu melewati set pelatihan penuh
  • Batch berarti Anda menggunakan semua data Anda untuk menghitung gradien selama satu iterasi.
  • Mini-batch berarti Anda hanya mengambil sebagian dari semua data Anda selama satu iterasi.
Ini
sumber
15

n

n

bbnn/b

nn

pengguna1036719
sumber
4

"Epoch" biasanya berarti mengekspos algoritma pembelajaran untuk seluruh rangkaian data pelatihan. Ini tidak selalu masuk akal karena kami terkadang menghasilkan data.

"Batch" dan "Minibatch" bisa membingungkan.

Contoh-contoh pelatihan kadang-kadang perlu "batched" karena tidak semua data dapat dengan sendirinya terkena algoritma sekaligus (karena kendala memori biasanya).

Dalam konteks SGD, "Minibatch" berarti bahwa gradien dihitung di seluruh batch sebelum memperbarui bobot. Jika Anda tidak menggunakan "minibatch", setiap contoh pelatihan dalam "batch" memperbarui parameter algoritma pembelajaran secara mandiri.

ferrouswheel
sumber
Apakah Anda yakin tentang paragraf terakhir? Saya berpikir bahwa "batch" SGD menggunakan semua data dalam suatu zaman untuk secara perlahan menghitung gradien yang sangat tepat. Kalimat terakhir Anda terdengar seperti kumpulan mini ukuran 1.
Matt Krause
Juga, selamat datang di Cross Divalidasi!
Matt Krause
Yup, SGD asli memiliki mini-batch ukuran 1. Saya pikir itu pada akhirnya tergantung pada interpretasi dari pembuat perangkat lunak. Sangat sering batch == mini-batch, tanpa dokumentasi yang pernah menyebutkan "mini-batch".
ferrouswheel
Err, saya kira maksud saya batch GD menggunakan semua data. Saya biasanya menggunakan batch dan minibatch secara bergantian, tetapi "mini-batch" ketika saya ingin menunjukkan bahwa itu sangat kecil ...
Matt Krause