Ile komórek LSTM powinienem użyć?

12

Czy istnieją jakieś praktyczne zasady (lub rzeczywiste zasady) dotyczące minimalnej, maksymalnej i „rozsądnej” liczby komórek LSTM, których powinienem użyć? W szczególności odnoszę się do BasicLSTMCell z TensorFlow i num_unitswłasności.

Załóżmy, że mam problem z klasyfikacją zdefiniowany przez:

t - number of time steps
n - length of input vector in each time step
m - length of output vector (number of classes)
i - number of training examples

Czy na przykład prawdą jest, że liczba przykładów szkoleń powinna być większa niż:

4*((n+1)*m + m*m)*c

gdzie cjest liczba komórek? Oparłem to na tym: jak obliczyć liczbę parametrów sieci LSTM? Jak rozumiem, powinno to dać całkowitą liczbę parametrów, która powinna być mniejsza niż liczba przykładów treningowych.

Społeczność
źródło
1
Sprawdziłbym ten artykuł, który ładnie porusza temat porównywania modeli głębokiego uczenia sekwencyjnego, a także strojenia hiperparametrów: arxiv.org/pdf/1503.04069.pdf Podsumowując, sugerują oczywiste, że zwiększenie liczby bloków LSTM na ukryty warstwa poprawia wydajność, ale zmniejsza zwroty i wydłuża czas treningu.
CubeBot88

Odpowiedzi:

4

Minimalna liczba przykładów treningowych to, co tam masz:

4(nm+n2))

Aby uzyskać więcej informacji, zapoznaj się z tym artykułem: Jeśli potrzebujesz pomocy wizualnej, skorzystaj z tego łącza: Liczba parametrów w modelu LSTM

Liczba jednostek w każdej warstwie stosu może się różnić. Na przykład w translate.py z Tensorflow można go skonfigurować na 1024, 512 lub praktycznie dowolną liczbę. Najlepszy zakres można znaleźć poprzez weryfikację krzyżową. Ale widziałem zarówno 1000, jak i 500 jednostek w każdej warstwie stosu. Osobiście testowałem również z mniejszymi liczbami.

Ali
źródło