Mengapa peneliti jaringan saraf peduli dengan zaman?

69

Sebuah zaman dalam penurunan gradien stokastik didefinisikan sebagai satu kali melewati data. Untuk setiap minibatch SGD, sampel diambil, gradien dihitung dan parameter diperbarui. Dalam pengaturan zaman, sampel diambil tanpa penggantian.k

Tapi ini sepertinya tidak perlu. Mengapa tidak menggambar setiap minibid SGD sebagai penarikan acak dari seluruh kumpulan data di setiap iterasi? Pada sejumlah besar zaman, penyimpangan kecil di mana sampel terlihat lebih atau kurang sering tampaknya tidak penting.k

Pasang kembali Monica
sumber
1
+1 untuk pertanyaan, menariknya saya memiliki pertanyaan yang hampir persis sama yang akan ditanyakan!
Haitao Du
Bukti anekdotal, tetapi saya baru-baru ini memasang jaringan saraf satu lapis menggunakan SGD pada data MNIST, yang 50.000 dalam ukuran pelatihan. Setelah satu run-through acak akurasi klasifikasi tidak jauh lebih tinggi dari 30-40%, dan kemungkinan log jelas tidak konvergen. Jadi saya ulangi prosedur untuk 30 zaman lagi yang mengarah ke akurasi lebih dari 90%. Setidaknya dengan contoh balik ini menunjukkan kepada saya mereka bisa diperlukan.
Tomka
6
@ Tomoma Itu tampaknya memberikan bukti bahwa beberapa melewati data yang diperlukan, yang konsisten dengan metode yang diusulkan di sini: terus menggambar sampel per pelatihan iterasi dan mual. k
Pasang kembali Monica
1
Pertanyaan menarik lainnya adalah: apakah pesanan batch mini juga berdampak pada overfitting?
Kh40tiK
3
@Pinocchio Praktik standar SGD adalah pengambilan sampel tanpa penggantian (sampai kumpulan sampel habis, pada saat mana zaman baru dimulai lagi dengan semua data). Pertanyaan saya adalah mengapa tidak menggunakan sampling dengan pengganti. Ternyata satu jawaban adalah pengambilan sampel tanpa penggantian meningkatkan laju konvergensi untuk model.
Pasang kembali Monica

Jawaban:

60

Selain jawaban Franck tentang kepraktisan, dan jawaban David tentang melihat subkelompok kecil - keduanya merupakan poin penting - sebenarnya ada beberapa alasan teoretis untuk memilih pengambilan sampel tanpa penggantian. Alasannya mungkin terkait dengan poin David (yang pada dasarnya adalah masalah pengumpul kupon ).

Pada tahun 2009, Léon Bottou membandingkan kinerja konvergensi pada masalah klasifikasi teks tertentu ( ).n=781,265

Bottou (2009). Anehnya Konvergensi cepat dari beberapa Algoritma Keturunan Gradien Stochastic . Prosiding simposium tentang pembelajaran dan ilmu data. ( pdf penulis )

Dia melatih mesin vektor dukungan melalui SGD dengan tiga pendekatan:

  • Acak : mengambil sampel acak dari dataset lengkap pada setiap iterasi.
  • Siklus : kocok dataset sebelum memulai proses pembelajaran, lalu berjalanlah secara berurutan, sehingga di setiap zaman Anda melihat contoh dalam urutan yang sama.
  • Acak : reshuffle dataset sebelum setiap zaman, sehingga setiap zaman berjalan dalam urutan yang berbeda.

E[C(θt)minθC(θ)]θ t tCθtt

  • Untuk Acak, konvergensi kira-kira berada pada urutan (seperti yang diharapkan oleh teori yang ada pada saat itu).t1
  • Siklus memperoleh konvergensi pada urutan (dengan tetapi bervariasi tergantung pada permutasi, misalnya untuk Gambar 1-nya). α > 1 α 1.8tαα>1α1.8
  • Shuffle lebih kacau, tetapi baris paling pas memberi , jauh lebih cepat daripada Acak.t2

Ini adalah Gambar 1 yang menggambarkan bahwa: ilustrasi konvergensi pada tingkat yang diberikan

Ini kemudian secara teoritis dikonfirmasi oleh makalah:

Gürbüzbalaban, Ozdaglar, dan Parrilo (2015). Mengapa Mengacak Ulang Secara Acak Stochastic Gradient Descent . arXiv: 1510.08560 . ( video ceramah yang diundang di NIPS 2015 )

Bukti mereka hanya berlaku untuk kasus di mana fungsi kerugian sangat cembung, yaitu tidak untuk jaringan saraf. Adalah masuk akal untuk berharap, bahwa alasan yang sama mungkin berlaku untuk kasus jaringan saraf (yang jauh lebih sulit untuk dianalisis).

Dougal
sumber
3
Ini jawaban yang sangat mendalam. Terima kasih banyak atas kontribusi Anda.
Pasang kembali Monica
1
maaf atas ketidaktahuan, tetapi apakah Anda keberatan menjelaskan lebih sedikit apa perbedaan antara ketiganya? Khususnya saya bingung tentang Acak, ketika Anda mengatakan "sampel", apa maksud Anda? Saya tahu ini bukan apa yang Anda referensikan tetapi bets mini Neural Net standar SGD biasanya sampel bets tanpa penggantian di setiap iterasi. Apakah itu yang dilakukan Random? Jika ya, apa bedanya dengan Shuffle?
Pinocchio
1
Sekarang setelah saya baca ulang ketiganya tampak algoritma yang sama, apa bedanya jika kumpulan data diacak atau tidak dan seberapa sering jika batch untuk SGD selalu acak?
Pinocchio
3
@ Pinocchio Bayangkan dataset empat-ratapan. Acak mungkin menjadi ACADBBCA; setiap entri sepenuhnya acak. Siklus mungkin menjadi BDAC BDAC BDAC; ia memilih satu pesanan untuk setiap zaman dan kemudian mengulanginya. Shuffle bisa berupa BDAC ADCB CBAD; itu berjalan di zaman, tetapi masing-masing adalah acak. Analisis ini tidak menggunakan minibatch, hanya SGD satu-elemen-pada-waktu.
Dougal
Ini jawaban yang bagus. Terima kasih!
DankMasterDan
24

Memang memang tidak perlu dari sudut pandang kinerja dengan satu set pelatihan besar, tetapi menggunakan zaman bisa nyaman, misalnya:

  • itu memberikan metrik yang cukup bagus: "jaringan saraf dilatih selama 10 zaman" adalah pernyataan yang lebih jelas daripada "jaringan saraf dilatih untuk 18942 iterasi" atau "jaringan saraf dilatih lebih dari 303072 sampel".
  • ada cukup banyak hal acak yang terjadi selama fase pelatihan: inisialisasi berat badan acak, pengocokan mini-batch, putus sekolah, dll.
  • mudah diimplementasikan
  • itu menghindari bertanya-tanya apakah set pelatihan cukup besar untuk tidak memiliki zaman

[1] memberikan satu alasan lagi, yang tidak terlalu relevan dengan konfigurasi komputer saat ini:

Adapun metode penurunan gradien stokastik (termasuk kasus mini-batch), penting untuk efisiensi estimator bahwa setiap contoh atau minibatch disampel secara mandiri. Karena akses acak ke memori (atau lebih buruk lagi, ke disk) mahal, perkiraan yang baik, yang disebut gradien inkremental (Bertsekas, 2010), adalah dengan mengunjungi contoh (atau mini-batch) dalam urutan tetap sesuai dengan urutan mereka dalam memori atau disk (mengulangi contoh dalam urutan yang sama pada zaman kedua, jika kita tidak berada dalam kasus online murni di mana setiap contoh dikunjungi hanya sekali).Dalam konteks ini, akan lebih aman jika contoh atau mini-batch dimasukkan pertama kali dalam urutan acak (untuk memastikan hal ini terjadi, mungkin berguna untuk mengocok contoh terlebih dahulu). Konvergensi yang lebih cepat telah diamati jika urutan mini-batch yang dikunjungi diubah untuk setiap zaman, yang dapat menjadi cukup efisien jika pelatihan diatur dalam memori komputer.


[1] Bengio, Yoshua. " Rekomendasi praktis untuk pelatihan arsitektur mendalam berbasis gradien. " Neural Networks: Tricks of the Trade. Springer Berlin Heidelberg, 2012. 437-478.

Franck Dernoncourt
sumber
1
k
1
@Sycorax Sampling tanpa penggantian, meskipun tentu saja tidak independen, "kira-kira independen" dalam arti dapat ditukar . Dari sudut pandang pelatihan penggolong yang tidak terlalu peduli tentang satu titik data, pertukaran ini jelas cukup dekat dengan "kira-kira independen."
Dougal
18

Saya agak tidak setuju bahwa itu jelas tidak masalah. Katakanlah ada sejuta contoh pelatihan, dan kami mengambil sepuluh juta sampel.

Di R, kita dapat dengan cepat melihat seperti apa distribusi itu

plot(dbinom(0:40, size = 10 * 1E6, prob = 1E-6), type = "h")

PMF binomial

Beberapa contoh akan dikunjungi 20+ kali, sementara 1% di antaranya akan dikunjungi 3 kali atau lebih sedikit. Jika rangkaian pelatihan dipilih dengan hati-hati untuk mewakili distribusi contoh yang diharapkan dalam data nyata, ini dapat memiliki dampak nyata di beberapa bidang kumpulan data --- terutama sekali Anda mulai mengiris data menjadi kelompok-kelompok yang lebih kecil.

Pertimbangkan kasus baru - baru ini di mana satu pemilih Illinois secara efektif mendapat oversampled 30x dan secara dramatis mengubah perkiraan model untuk kelompok demografinya (dan pada tingkat yang lebih rendah, untuk seluruh populasi AS). Jika kita secara tidak sengaja mengecoh gambar "Ruffed Grouse" yang diambil dengan latar belakang hijau pada hari-hari berawan dengan kedalaman bidang yang sempit dan meremehkan jenis gambar belibis lainnya, model mungkin mengaitkan fitur-fitur yang tidak relevan itu dengan label kategori. Semakin banyak cara untuk mengiris data, semakin banyak subkelompok ini, dan semakin banyak peluang untuk kesalahan semacam ini.

David J. Harris
sumber
1
Saya tidak berpikir itu akan membuat perbedaan besar dalam praktik untuk satu set pelatihan besar, tapi jelas saya harapkan itu akan dengan set pelatihan yang lebih kecil.
Franck Dernoncourt
5
@ FranckDernoncourt dengan baik, intinya adalah bahwa itu dapat berarti untuk dataset besar jika Anda mulai melihat sub-kelompok kecil. Yang bukan prosedur biasa dalam dataset besar,
dimpol
cukup yakin Anda seharusnya menggunakan distribusi yang seragam, bukan binomial
lahwran
2
107106samples = sample(1:1E6, size = 1E7, replace = TRUE)plot(table(table(samples)) / 1E7)
2
aha! Saya salah, kalau begitu.
lahwran