Optymalizator implementujący algorytm Adadelta.
Optymalizacja Adadelta to stochastyczna metoda opadania w gradiencie, która opiera się na adaptacyjnej szybkości uczenia się na wymiar, aby wyeliminować dwie wady:
- ciągły spadek szybkości uczenia się w trakcie szkolenia
- potrzeba ręcznie wybranego globalnego tempa uczenia się
Adadelta to solidniejsze rozszerzenie Adagradu, które dostosowuje tempo uczenia się w oparciu o ruchome okno aktualizacji gradientów, zamiast gromadzić wszystkie przeszłe gradienty. W ten sposób Adadelta kontynuuje naukę nawet po dokonaniu wielu aktualizacji. W porównaniu do Adagradu, w oryginalnej wersji Adadelty nie musisz ustawiać początkowego tempa uczenia się. W tej wersji można ustawić początkową szybkość uczenia się, jak w większości innych optymalizatorów.
Zgodnie z sekcją 4.3 („Efektywne współczynniki uczenia się”), pod koniec etapu uczenia rozmiary kroków zbiegają się do 1, co w rzeczywistości oznacza wysoki współczynnik uczenia się, który mógłby powodować rozbieżności. Dzieje się tak dopiero pod koniec uczenia, ponieważ gradienty i rozmiary kroków są małe, a stała epsilon w liczniku i mianowniku dominuje w poprzednich gradientach i aktualizacjach parametrów, które zbiegają szybkość uczenia się do 1.
Zgodnie z sekcją 4.4 („Dane mowy”), gdzie na korpusie danych w języku angielskim (USA) uczono dużą sieć neuronową z 4 warstwami ukrytymi, ADADELTA została użyta w 100 replikach sieci. Zastosowany epsilon to 1e-6 z rho = 0,95, co oznacza zbiegał się szybciej niż ADAGRAD, dzięki następującej konstrukcji: new AdaDelta(graph, 1.0f, 0.95f, 1e-6f);
Stałe
Strunowy | AKUMULATOR | |
Strunowy | AKTUALIZACJA_AKUMULATORA | |
platforma | EPSILON_DEFAULT | |
platforma | LEARNING_RATE_DEFAULT | |
platforma | RHO_DEFAULT |
Dziedziczone stałe
Konstruktorzy publiczni
Metody publiczne
Strunowy | getOptimizerName () Uzyskaj nazwę optymalizatora. |
Strunowy | doString () |
Metody dziedziczone
Stałe
publiczny statyczny końcowy akumulator AKUMULATORA
publiczny statyczny końcowy ciąg znaków ACCUMULATOR_UPDATE
publiczny statyczny końcowy float EPSILON_DEFAULT
publiczny statyczny końcowy float LEARNING_RATE_DEFAULT
publiczny statyczny końcowy float RHO_DEFAULT
Konstruktorzy publiczni
public AdaDelta (wykres graficzny , float learningRate)
Tworzy optymalizator AdaDelta
Parametry
wykres | wykres TensorFlow |
---|---|
Szybkość uczenia się | tempo uczenia się |
public AdaDelta (wykres wykresu , float learningRate, float rho, float epsilon)
Tworzy optymalizator AdaDelta
Parametry
wykres | wykres TensorFlow |
---|---|
Szybkość uczenia się | tempo uczenia się |
rho | Czynnik zaniku |
epsilon | Stały epsilon używany do lepszego kondycjonowania aktualizacji stopni |
public AdaDelta (wykres wykresu , nazwa ciągu, współczynnik uczenia się typu float)
Tworzy optymalizator AdaDelta
Parametry
wykres | wykres TensorFlow |
---|---|
nazwa | nazwa tego Optymalizatora (domyślnie „Adadelta”) |
Szybkość uczenia się | tempo uczenia się |
public AdaDelta (wykres wykresu , nazwa ciągu, nauka floatRate, float rho, float epsilon)
Tworzy optymalizator AdaDelta
Parametry
wykres | wykres TensorFlow |
---|---|
nazwa | nazwa tego Optymalizatora (domyślnie „Adadelta”) |
Szybkość uczenia się | tempo uczenia się |
rho | Czynnik zaniku |
epsilon | Stały epsilon używany do lepszego kondycjonowania aktualizacji stopni |
Metody publiczne
public String getOptimizerName ()
Uzyskaj nazwę optymalizatora.
Zwroty
- Nazwa optymalizatora.