Zgodnie z moją najlepszą wiedzą, najbliższy element, który może być tym, czego możesz potrzebować, to ten najnowszy artykuł badaczy Google: Normalizacja partii: przyspieszenie głębokiego szkolenia w sieci poprzez ograniczenie wewnętrznej zmiany współzmiennej .
Normalizacja partii
Rozważmy wynik aktywacji warstwy gdzie jest nieliniowością (ReLU, tanh itp.), są odpowiednio wagami i odchyłkami, a jest minibatchem danych.lyl= f( W.x + b )faW., bx
Normalizacja partii (BN) jest następująca:
- Standaryzuj aby uzyskać średnią zero i wariancję jeden. Robimy to przez całą minibatch. Niech oznacza znormalizowane pośrednie wartości aktywacyjne, tj. jest znormalizowaną wersją .W.x + bx^x^Wx+b
- Zastosuj sparametryzowaną (uczącą się) transformację afinicznąx^→γx^+β.
- Zastosuj nieliniowość: .y^l=f(γx^+β)
Tak więc BN standaryzuje wyjścia aktywacyjne „surowe” (czytaj: zanim zastosujemy nieliniowość), aby miały średnie zero, wariancję 1, a następnie zastosujemy wyuczoną transformację afiniczną, a następnie ostatecznie zastosujemy nieliniowość. W pewnym sensie możemy to interpretować jako umożliwienie sieci neuronowej nauczenie się odpowiedniego sparametryzowanego rozkładu wejściowego do nieliniowości.
Ponieważ każda operacja jest różna, możemy nauczyć się parametrów poprzez propagację wsteczną.γ,β
Motywacja transformacji afinicznej
Gdybyśmy nie przeprowadzili sparametryzowanej transformacji afinicznej, każda nieliniowość miałaby jako rozkład wejściowy średnie zero i wariancję 1. To może, ale nie musi być optymalne. Należy zauważyć, że jeśli średni rozkład wejściowy wariancji 1 jest optymalny, to transformacja afiniczna może teoretycznie go odzyskać, ustawiając równe średniej serii i równe standardowemu odchyleniu partii. Posiadanie tej sparametryzowanej transformacji afinicznej ma również dodatkową zaletę polegającą na zwiększeniu zdolności reprezentacyjnej sieci (więcej możliwych do nauczenia się parametrów).βγ
Najpierw standaryzacja
Po co najpierw standaryzować? Dlaczego po prostu nie zastosować afinicznej transformacji? Teoretycznie nie ma różnicy. Jednak może tu występować problem warunkowy. Najpierw ujednolicając wartości aktywacyjne, być może łatwiej będzie nauczyć się parametrów optymalnych . Z mojej strony jest to wyłącznie przypuszczenie, ale w innych najnowszych architekturach konwergentnych istnieją podobne analogi. Na przykład w ostatnim raporcie technicznym Microsoft Research Deep Residual Learning for Image Recognitionγ,β, w efekcie nauczyli się transformacji, w której wykorzystali transformację tożsamości jako odniesienie lub punkt odniesienia do porównania. Współautorzy Microsoft wierzyli, że posiadanie tego odniesienia lub linii bazowej pomogło w przygotowaniu tego problemu. Nie wierzę, że zbyt daleko idące jest zastanawianie się, czy coś podobnego dzieje się tutaj z BN i początkowym etapem standaryzacji.
Aplikacje BN
Szczególnie interesujący wynik polega na tym, że dzięki usłudze Batch Normalization zespół Google był w stanie uzyskać tanią sieć Inception do szkolenia w ImageNet i uzyskiwania całkiem konkurencyjnych wyników. Tanh jest nasycającą nieliniowością i trudno było nauczyć się tego rodzaju sieci z powodu problemu nasycenia / zanikania gradientów. Jednak stosując normalizację wsadową można założyć, że sieć była w stanie nauczyć się transformacji, która odwzorowuje wartości wyjściowe aktywacji na nienasycony reżim nieliniowości tanh.
Uwagi końcowe
Odwołują się nawet do tego samego faktoidu Yann LeCun, o którym wspomniałeś jako motywacji do normalizacji partii.