Memahami topologi LSTM

9

Seperti banyak orang lain, saya menemukan sumber daya di sini dan di sini sangat berguna untuk memahami sel-sel LSTM. Saya yakin saya mengerti bagaimana nilai mengalir dan diperbarui, dan saya cukup percaya diri untuk menambahkan "koneksi lubang intip" yang disebutkan, dll.

Dalam contoh saya, saya punya setiap langkah langkah vektor input panjang idan vektor output panjang o, di mana o < i.

Apa yang tidak dicakup oleh kedua halaman tersebut adalah bagaimana hal ini diatur dan dilatih.

Saya punya 2 pertanyaan:

  1. Dalam data pelatihan saya, saya memiliki banyak pasangan vektor input / output yang sesuai dengan banyak, banyak unit waktu. Misalkan saya melatih LSTM dengan semua data. Bisakah saya menjalankan input panjang sewenang-wenang yang melewatinya? Maksud saya adalah, jika saya memiliki data pelatihan untuk, katakanlah, sepanjang tahun 2015 dan 2016, dapatkah saya menjalankan data melalui jaringan untuk 2017? Atau mungkin 2017 hingga 2020?
  2. Menurut apa yang saya baca, rasanya saya memiliki satu sel LSTM per unit waktu, jadi jika saya memiliki banyak unit waktu maka saya memiliki banyak sel LSTM yang dirantai. Karena panjang rantai bergantung pada panjang data yang ingin saya jalankan melalui jaringan, dan itu mungkin sewenang-wenang, saya tidak bisa melihat bagaimana saya akan melatih ini, kecuali saya hanya melatih satu sel LSTM yang kemudian digandakan angka waktu. Jadi sepertinya saya akan melatih sel LSTM tunggal, dan kemudian rantai nmereka bersama-sama untuk daftar panjang vektor input yang diberikan n? Meskipun sel LSTM tunggal berisi sejumlah elemen dan fungsi, rasanya tidak cukup untuk menangkap begitu banyak informasi dalam sesuatu yang begitu kecil?

Terima kasih. Adakah sumber daya lain yang dapat saya konsumsi (relatif cepat) yang akan membantu saya memahami detail implementasi? 2 tautan di atas memberikan gambaran fantastis tingkat tinggi tentang apa yang terjadi tetapi gagal menangkap detail yang lebih halus ini.

AKrip4k
sumber

Jawaban:

1

Misalkan saya melatih LSTM dengan semua data. Bisakah saya menjalankan input panjang sewenang-wenang yang melewatinya?

Secara abstrak, ya. Namun, beberapa implementasi perangkat lunak memiliki aturan keras tentang apakah variabel perlu ukuran tetap atau tidak, atau jika mereka bisa ukuran variabel, jadi dalam hal pemrograman, Anda harus memeriksa apakah Anda menerapkan sesuatu dengan benar.

Jadi sepertinya saya akan melatih sel LSTM tunggal, dan kemudian rantai n dari mereka bersama-sama untuk daftar vektor input panjang n yang diberikan?

xtxt+1

Sycorax berkata Reinstate Monica
sumber