Bagaimana dan mengapa Normalisasi Batch menggunakan rata-rata bergerak untuk melacak keakuratan model saat melatih?

21

Saya membaca makalah normalisasi batch (BN) (1) dan tidak mengerti perlunya menggunakan moving average untuk melacak akurasi model dan bahkan jika saya menerima bahwa itu adalah hal yang benar untuk dilakukan, saya tidak mengerti apa yang sebenarnya mereka lakukan.

Menurut pemahaman saya (yang salah saya), makalah ini menyebutkan bahwa itu menggunakan statistik populasi daripada mini-batch, statistik setelah model selesai pelatihan. Setelah beberapa diskusi tentang perkiraan yang tidak bias (yang tampaknya bersinggungan dengan saya dan tidak mengerti mengapa itu berbicara tentang itu) mereka pergi dan berkata:

Sebagai gantinya menggunakan rata-rata bergerak, kami melacak akurasi model saat ia berlatih.

Itu adalah bagian yang membingungkan saya. Mengapa mereka melakukan rata-rata bergerak untuk memperkirakan keakuratan model dan atas kumpulan data apa?

Biasanya apa yang dilakukan orang untuk memperkirakan generalisasi model mereka, mereka hanya melacak kesalahan validasi model mereka (dan berpotensi menghentikan penurunan gradien mereka untuk mengatur). Namun, tampaknya normalisasi batch melakukan sesuatu yang sama sekali berbeda. Dapatkah seseorang mengklarifikasi apa dan mengapa melakukan sesuatu yang berbeda?


1 : Ioffe S. dan Szegedy C. (2015),
"Normalisasi Batch: Mempercepat Pelatihan Jaringan Dalam dengan Mengurangi Pergeseran Kovarian Internal",
Prosiding Konferensi Internasional ke-32 tentang Pembelajaran Mesin , Lille, Prancis, 2015.
Jurnal Penelitian Pembelajaran Mesin: Volume W&CP 37

Pinokio
sumber
Apakah Anda puas dengan jawaban yang dipilih? Sama sekali bukan "jawaban", jika Anda bertanya kepada saya; jika masih relevan, saya bisa memberikan jawaban yang lebih baik.
OverLordGoldDragon
@OverLordGoldDragon memberikan jawaban Anda sendiri :)
Pinocchio

Jawaban:

8

Ketika menggunakan batch_normalisasi hal pertama yang harus kita pahami adalah ini bekerja pada dua cara berbeda saat dalam Pelatihan dan Pengujian .

  1. Dalam Pelatihan kita perlu menghitung rata-rata batch mini untuk menormalkan batch

  2. Dalam kesimpulan kami hanya menerapkan statistik batch mini pra-dihitung

Jadi dalam hal ke-2 bagaimana menghitung statika batch mini ini

Di sinilah rata-rata bergerak

running_mean = momentum * running_mean + (1 - momentum) * sample_mean
running_var = momentum * running_var + (1 - momentum) * sample_var
Shamane Siriwardhana
sumber
Ini tidak menjawab pertanyaan apa pun; "mengapa" dan "bagaimana" ditanya, dan "apa" yang dangkal diberikan. Seharusnya tidak dibatalkan.
OverLordGoldDragon
1

Mereka berbicara tentang normalisasi batch, yang telah mereka gambarkan untuk prosedur pelatihan tetapi tidak untuk inferensi.

Ini adalah proses normalisasi unit tersembunyi menggunakan sarana sampel dll.

Di bagian ini mereka menjelaskan apa yang harus dilakukan untuk tahap inferensi, ketika Anda baru membuat prediksi (yaitu setelah pelatihan selesai).

Namun, dalam penghentian validasi, Anda menyelaraskan prediksi validasi yang diatur dengan pelatihan untuk memperkirakan kesalahan validasi Anda.

Jadi selama proses ini Anda tidak memiliki rata-rata populasi (rata-rata masih berubah saat Anda berlatih), jadi Anda menggunakan rata-rata berjalan untuk menghitung parameter norma batch untuk menghitung kinerja pada set validasi.

Dalam pengertian inilah

Sebagai gantinya menggunakan rata-rata bergerak, kami melacak akurasi model saat ia berlatih.

tidak ada hubungannya dengan menggunakan sarana yang berjalan sebagai metrik untuk kinerja jaringan saraf.

seanv507
sumber