Liczba parametrów w modelu LSTM

43

Ile parametrów ma pojedynczy zestaw LSTM? Liczba parametrów nakłada dolną granicę na liczbę wymaganych przykładów treningu, a także wpływa na czas szkolenia. Dlatego znajomość liczby parametrów jest przydatna w modelach szkoleniowych z wykorzystaniem LSTM.

wabbit
źródło

Odpowiedzi:

29

LSTM ma zestaw 2 matryc: U i W dla każdej z (3) bramek. (.) Na schemacie wskazuje pomnożenie tych macierzy przez wejście x i wyjście h .

  • U ma wymiary n×m
  • W ma wymiary n×n
  • istnieje inny zestaw tych matryc dla każdej z trzech bram (np. Uforget dla bramy zapomnienia itp.)
  • istnieje inny zestaw tych matryc do aktualizacji stanu komórki S.
  • na wspomnianych matrycach należy policzyć uprzedzenia (nie na zdjęciu)

Stąd suma # parametrów = 4(nm+n2+n)

Blok abstrakcyjny LSTM

Wabbit
źródło
2
Samemu temu sprostałem, podejmując praktyczne decyzje dotyczące szacowania wymagań sprzętowych i planowania projektu dla projektu głębokiego uczenia. PS: Nie odpowiedziałem na własne pytanie, żeby zdobyć punkty reputacji. Chcę wiedzieć, czy moja odpowiedź pochodzi bezpośrednio od społeczności.
wabbit
1
Zignorowałeś jednostki odchylenia. Zobacz odpowiedź Adama Oudada poniżej.
arun
1
Nie ma błędów. Zredagowałem odpowiedź.
Escachator,
21

mn

4(nm+n2)

Jednak w przypadku, gdy Twój LSTM zawiera wektory odchylenia ( jest to domyślne na przykład w keras ), liczba staje się:

4(nm+n2+n)
Adam Oudad
źródło
2
To jedyna pełna odpowiedź. Każda inna odpowiedź wydaje się być zignorowana w przypadku neuronów stronniczości.
Przywróć Monikę
1
Konkretnym przykładem jest to, że jeśli twój wkład ma m = 25 wymiarów i używasz warstwy LSTM z n = 100 jednostek, to liczba parametrów = 4 * (100 * 25 + 100 ** 2 + 100) = 50400.
arun
1
Załóżmy, że używam danych pomiaru czasu, czy moje rozumienie poniżej jest prawidłowe? n = 100: oznacza, że ​​będę miał 100 timepep w każdej próbce (przykład), więc potrzebuję 100 jednostek. m = 25 oznacza za każdym razem, mam 25 cech, takich jak [waga, wzrost, wiek ...].
Jason Zhang
2
@jasonzhang Liczba znaczników czasu nie ma znaczenia, ponieważ ta sama komórka LSTM zostanie zastosowana rekurencyjnie do wektorów wejściowych (jeden wektor na każdy znacznik czasu). to, co arun nazywa „jednostkami”, jest również rozmiarem każdego wektora wyjściowego, a nie liczbą kroków czasowych.
Adam Oudad
12

Zgodnie z tym :

Struktura komórki LSTM

Struktura komórki LSTM

Równania LSTM

Równania LSTM

Wprowadzanie nieliniowości

Wprowadzanie nieliniowości

Jeśli wejściowy x_t ma rozmiar n × 1 i istnieją d komórki pamięci, to rozmiar każdego z W ∗ i U ∗ wynosi d × n , a d × d odpowiednio. Rozmiar W będzie wówczas wynosił 4d × (n + d) . Należy zauważyć, że każda z komórek pamięci dd ma własne wagi W ∗ i U ∗ oraz że jedyne wartości komórek pamięci czasu są współużytkowane z innymi jednostkami LSTM podczas produktu z U ∗ .

Dzięki Arun Mallya za świetną prezentację.

ichernob
źródło