Toplu Normalleştirme, modelin eğitilirken doğruluğunu izlemek için hareketli ortalamaları nasıl ve neden kullanır?


21

Toplu normalizasyon (BN) kağıdını (1) okuyordum ve modelin doğruluğunu izlemek için hareketli ortalamalar kullanma ihtiyacını anlamadım ve bunun doğru bir şey olduğunu kabul etsem bile anlamıyorum tam olarak ne yaptıklarını.

Anladığım kadarıyla (ki bu benim yanlışım) makalede, modelin eğitimi bittikten sonra istatistiklerini mini parti yerine nüfus istatistiklerini kullandığından bahsediliyor. Tarafsız tahminlerin tartışılmasından sonra (bu bana teğet gibi geliyor ve neden bunun hakkında konuştuğunu anlamıyor) gider ve derler:

Bunun yerine hareketli ortalamaları kullanarak, modelin eğitilirken doğruluğunu izliyoruz.

Bu benim için kafa karıştırıcı olan kısım. Modelin doğruluğunu ve hangi veri kümesinin üzerinde olduğunu tahmin etmek için neden hareketli ortalamalar yapıyorlar?

Genellikle insanların modellerinin genellemesini tahmin etmek için yaptıkları, sadece modellerinin doğrulama hatasını izler (ve düzenli olarak gradyan inişlerini potansiyel olarak erken durdururlar). Ancak, parti normalleşmesinin tamamen farklı bir şey yaptığı görülüyor. Birisi neyi ve neden farklı bir şey yaptığını netleştirebilir mi?


1 : Ioffe S. ve Szegedy C. (2015),
"Parti Normalizasyonu: İç Ortak Değişimi Azaltarak Derin Ağ Eğitimini Hızlandırma",
32. Uluslararası Makine Öğrenimi Konferansı Bildirileri , Lille, Fransa, 2015.
Makine Öğrenimi Araştırmaları Dergisi: W&CP hacmi 37


Güncel cevaptan memnun musunuz? Bana sorarsanız bu bir "cevap" değildir; eğer hala alakalı ise daha iyi bir cevap verebilirim.
OverLordGoldDragon

@OverLordGoldDragon kendi cevabını ver :)
Pinokyo

Yanıtlar:


8

Batch_normalization kullanırken anlamamız gereken ilk şey, Eğitim ve Test sırasında iki farklı şekilde çalışmasıdır .

  1. Eğitimde, partiyi normalleştirmek için mini parti ortalamasını hesaplamamız gerekir

  2. Çıkarımda sadece önceden hesaplanmış mini parti istatistiklerini uyguluyoruz

Peki 2. şeyde bu mini toplu statiklerin nasıl hesaplanacağı

İşte hareketli ortalama geliyor

running_mean = momentum * running_mean + (1 - momentum) * sample_mean
running_var = momentum * running_var + (1 - momentum) * sample_var

Bu soruya cevap vermez; "neden" ve "nasıl" istendi ve yüzeysel bir "ne" verildi. Onaylanmamalıdır.
OverLordGoldDragon

1

Eğitim prosedürü için tanımladıkları, ancak çıkarım için değil, parti normalizasyonu hakkında konuşuyorlar.

Bu, gizli birimlerin örnek araçlar vb. Kullanılarak normalleştirilmesi işlemidir.

Bu bölümde, sadece tahmin yaparken (yani eğitim tamamlandıktan sonra) çıkarım aşaması için ne yapılacağını açıklarlar.

Ancak, durdurulmuş doğrulamada, doğrulama hatasını tahmin etmek için eğitim ile belirlenen doğrulama seti tahminini serpiştirirsiniz.

Bu nedenle bu işlem sırasında bir nüfus ortalamanız yok (antrenman yaparken ortalamalar hala değişiyor), bu nedenle doğrulama kümesindeki performansı hesaplamak için toplu norm parametrelerini hesaplamak için bir çalışma ortalaması kullanırsınız.

Bu anlamda

Bunun yerine hareketli ortalamaları kullanarak, modelin eğitilirken doğruluğunu izliyoruz.

tam anlamıyla sinir ağının performansı için bir metrik olarak çalışan araçların kullanılmasıyla ilgisi yoktur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.