Apa yang terjadi ketika kita memberi makan matriks 2D ke lapisan LSTM

8

Misalkan saya memberi makan matriks 2D bentuk (99,13) sebagai input ke lapisan LSTM. Saya memiliki n jumlah file, di mana masing-masing berisi vektor ukuran (99,13). Saya telah memutuskan untuk mempertimbangkan 13 sebagai jumlah fitur dan 99 sebagai catatan waktu.

(Saat menerapkan dengan Keras, saya telah menambahkan layer LSTM sebagai layer pertama. Dan saya telah menetapkan output_dim dari layer tersebut menjadi 100)

Tetapi saya tidak dapat mengetahui bagaimana hal-hal benar-benar dalam jaringan ketika kami memberikan input seperti di atas. Saya memiliki pertanyaan-pertanyaan berikut, yang tidak dapat saya jawab sendiri.

  1. Apa jenis nilai-nilai yang kita berikan sebagai masukan ke sel LSTM? ( xt , ht-1 digunakan sebagai input ke sel selalu vektor? Dalam kasus saya apakah xt memiliki bentuk [1,13]?)
  2. Ketika kita mengatakan kita memiliki lapisan LSTM sebagai lapisan pertama dari mode l, apakah itu memberi makan vektor input pertama ke semua sel di lapisan yang diberikan? (Misalnya: mengumpankan bingkai pertama ukuran 13 (dari 99 bingkai) ke semua n sel LSTM di lapisan pertama?) Demikian juga apakah ia terus memberi makan semua baris matriks input pada setiap langkah waktu?
  3. Apa jenis nilai tidak output sel LSTM di setiap timestep ? (Apakah kita menganggap keadaan sel sebagai output yang benar dari node? Apakah itu nilai tunggal atau vektor? Jika itu vektor, apa dimensi? Apakah ada cara kita dapat menebak dimensi? Saya menganggap ht sebagai vektor)
  4. Apa yang dimaksud dengan output_dim (dimensi keluaran) dari lapisan yang diberikan? Apakah harus selalu jumlah node di lapisan berikutnya?

Harap jangan menunda ini atau mengarahkan ke grup lain. Saya pikir pertanyaan-pertanyaan ini terkait dengan pembelajaran mesin dan rnn. Saya telah membaca makalah penelitian, tetapi saya belum dapat memiliki gagasan yang jelas tentang bagaimana sebenarnya pekerjaan di dalam jaringan LSTM.

Udani
sumber

Jawaban:

1

1) Xadalah input Anda, jika Anda memiliki 99 timesteps, maka Anda masing-masing memiliki 99 vektor ukuran 13. Karenanya input Anda untuk setiap catatan waktu adalah vektor yang berukuran 13. Anda akan memerlukan status tersembunyi awal, kecuali jika Anda memiliki alasan untuk melakukan hal lain, jika kondisi awal tersembunyi Anda bisa menjadi 0 semua. Ukuran vektor itu adalah hiperparameter yang Anda pilih.

2) Perlu diingat bahwa tidak ada 99 sel LSTM, hanya ada 1 sel LSTM yang digunakan kembali 99 kali untuk setiap catatan waktu. Sel LSTM mempertahankan keadaan tersembunyi dan keadaan sel di dalamnya yang diteruskan ke langkah waktu berikutnya. Tetapi hanya ada 1 set parameter yang dipelajari. Parameter tersebut harus dapat menangani semua langkah waktu, tergantung pada input saat ini, keadaan tersembunyi, dan keadaan sel.

3) Keadaan sel bukanlah output, namun diteruskan sebagai input ke catatan waktu berikutnya. Keadaan tersembunyi h_takan diteruskan ke output serta ke timestep berikutnya.

4) Saya tidak begitu yakin, saya perlu referensi untuk istilah tersebut output_dim.

Ini adalah tutorial yang sangat baik tentang LSTMs: http://colah.github.io/posts/2015-08-Understanding-LSTMs/

David Parks
sumber
0

Apa yang dimaksud dengan output_dim (dimensi keluaran) dari lapisan yang diberikan? Apakah harus selalu jumlah node di lapisan berikutnya?

output_dim = dimensi status tersembunyi LSTM.

Franck Dernoncourt
sumber