Jumlah parameter dalam model LSTM

43

Berapa banyak parameter yang dimiliki oleh satu LSTM bertumpuk? Jumlah parameter memaksakan batas bawah pada jumlah contoh pelatihan yang diperlukan dan juga mempengaruhi waktu pelatihan. Karenanya mengetahui jumlah parameter berguna untuk model pelatihan menggunakan LSTM.

wabbit
sumber

Jawaban:

29

LSTM memiliki satu set 2 matriks: U dan W untuk masing-masing (3) gerbang. The (.) Pada diagram menunjukkan multiplikasi dari matriks-matriks ini dengan input x dan output h .

  • U memiliki dimensi n×m
  • W memiliki dimensi n×n
  • ada satu set yang berbeda dari matriks ini untuk masing-masing dari tiga gerbang (seperti Uforget untuk gerbang lupa dll)
  • ada satu set matriks ini untuk memperbarui status sel S
  • di atas matriks yang disebutkan, Anda perlu menghitung bias (tidak dalam gambar)

Karenanya total parameter # = 4(nm+n2+n)

Blok abstrak LSTM

wabbit
sumber
2
Saya menghadapi pertanyaan ini sendiri ketika mengambil keputusan praktis tentang memperkirakan persyaratan perangkat keras dan perencanaan proyek untuk proyek pembelajaran yang mendalam. PS: Saya tidak menjawab pertanyaan saya sendiri hanya untuk mendapatkan poin reputasi. Saya ingin tahu apakah jawaban saya benar dari masyarakat.
wabbit
1
Anda telah mengabaikan unit bias. Lihat jawaban Adam Oudad di bawah ini.
arun
1
Bias tidak ada. Saya telah mengedit jawabannya.
Escachator
21

mn

4(nm+n2)

Namun jika LSTM Anda termasuk vektor bias, ( ini adalah default dalam keras misalnya ), jumlahnya menjadi:

4(nm+n2+n)
Adam Oudad
sumber
2
Ini satu-satunya jawaban yang lengkap. Setiap jawaban lain muncul konten untuk mengabaikan kasus neuron bias.
Pasang kembali Monica
1
Untuk memberikan contoh nyata, jika input Anda memiliki m = 25 dimensi dan Anda menggunakan lapisan LSTM dengan n = 100 unit, maka jumlah params = 4 * (100 * 25 + 100 ** 2 + 100) = 50400.
arun
1
Misalkan saya menggunakan data timestep, apakah pemahaman saya di bawah ini benar? n = 100: berarti saya akan memiliki 100 timestep di setiap sampel (contoh) jadi saya perlu 100 unit. m = 25 berarti pada setiap catatan waktu, saya memiliki 25 fitur seperti [berat, tinggi, usia ...].
jason zhang
2
@jasonzhang Jumlah tanda waktu tidak relevan, karena sel LSTM yang sama akan diterapkan secara rekursif ke vektor input Anda (satu vektor untuk setiap tanda waktu). apa yang disebut "unit" arun juga ukuran masing-masing vektor output, bukan jumlah timesteps.
Adam Oudad
12

Menurut ini :

Struktur sel LSTM

Struktur sel LSTM

Persamaan LSTM

Persamaan LSTM

Ingoring non-linearitas

Ingoring non-linearitas

Jika input x_t adalah ukuran n × 1, dan ada sel memori d , maka ukuran masing-masing W ∗ dan U ∗ adalah d × n , dan d × d resp. Ukuran W kemudian akan menjadi 4d × (n + d) . Perhatikan bahwa masing-masing sel memori dd memiliki bobot sendiri W ∗ dan U ∗ , dan bahwa satu-satunya waktu nilai sel memori dibagi dengan unit LSTM lainnya selama produk dengan U ∗ .

Terima kasih kepada Arun Mallya untuk presentasi yang luar biasa.

ichernob
sumber