Udostępnij przez


Przerywania

Funkcja Dropout.

Dropout (x)

Parametry

  • x: dane wejściowe do zastosowania funkcji dropout do

Uwaga: współczynnik porzucania nie jest parametrem tej funkcji, ale zamiast tego został określony w SGD sekcji .

Wartość zwracana

Dropout() Funkcja zwróci wynik operacji dropout zastosowanej do danych wejściowych. Wynik ma te same wymiary tensor co dane wejściowe.

Opis

Operacja Dropout() losowo wybiera elementy danych wejściowych z danym prawdopodobieństwem nazywanym współczynnikiem porzucania i ustawia je na 0. Wykazano, że ma to na celu poprawę uogólnienia modeli.

W implementacji CNTK pozostałe wartości, które nie są ustawione na 0, zostaną pomnożone z wartością (1 / (1 — współczynnik spadku)). W ten sposób parametry modelu poznane przy użyciu dropout są bezpośrednio stosowane w wnioskowaniu. (Jeśli nie zostało to zrobione, użytkownik musiałby ręcznie je skalować przed wnioskowaniem).

Aby włączyć dropout w trenowaniu, należy również dodać parametr dropoutRate do SGD sekcji w celu zdefiniowania współczynnika dropout. Jest to wykonywane w SGD sekcji, zamiast parametru do Dropout() samego siebie, w celu umożliwienia rozpoczęcia trenowania bez listy rozwijanej, a następnie włączenia go po kilku epokach, co jest typowym scenariuszem. W tym dropoutRate celu parametr jest określony jako wektor, gdzie każda wartość jest dla określonej epoki.

Podczas uruchamiania Dropout() wnioskowania operacja przekazuje dane wejściowe niezmodyfikowane (jest to operacja bez operacji).

Przykład

Poniżej przedstawiono prostą sieć splotową z warstwą dropout pod koniec:

features = Input{...}
c = ConvolutionalLayer {32, (5:5), activation=ReLU} (features)
p = MaxPoolingLayer {(3:3), stride = (2:2)} (c)
h = DenseLayer {64, activation = ReLU} (p)
d = Dropout (h)
z = LinearLayer {10} (d)

Ponadto potrzebny jest odpowiedni wpis w SGD sekcji . W poniższym przykładzie zdefiniowano brak spadku dla pierwszych 3 epok, a następnie kontynuowanie spadku wynoszącego 50%. Dla wygody w tym przykładzie użyto składni gwiazdki (*), aby oznaczyć powtórzenie:

SGD = {
    ...
    dropoutRate = 0*3:0.5
    ...
}