Apa keuntungan dari menumpuk banyak LSTM?

25

Apa keuntungannya, mengapa seseorang menggunakan banyak LSTM, ditumpuk satu demi satu, dalam jaringan yang dalam? Saya menggunakan LSTM untuk mewakili urutan input sebagai input tunggal. Jadi, begitu saya memiliki representasi tunggal itu — mengapa saya harus melewatinya lagi?

Saya bertanya ini karena saya melihat ini dalam program generasi bahasa alami.

kataSmith
sumber
1
Apakah Anda benar-benar memaksudkan LSTM yang ditumpuk berdampingan seperti secara horizontal (sepanjang langkah waktu) atau apakah yang Anda maksudkan ditumpuk secara vertikal (beberapa sel LSTM untuk setiap langkah waktu)?
wabbit

Jawaban:

18

Saya pikir Anda mengacu pada lapisan LSTM yang ditumpuk secara vertikal (dengan asumsi sumbu horizontal adalah sumbu waktu.

Dalam hal itu alasan utama untuk menumpuk LSTM adalah untuk memungkinkan kompleksitas model yang lebih besar. Dalam hal feedforward net kami menumpuk lapisan untuk membuat representasi fitur hirarki dari data input untuk kemudian digunakan untuk beberapa tugas pembelajaran mesin. Hal yang sama berlaku untuk tumpukan LSTM.

Pada setiap langkah langkah LSTM, selain input berulang. Jika input sudah merupakan hasil dari lapisan LSTM (atau feedforward layer) maka LSTM saat ini dapat membuat representasi fitur yang lebih kompleks dari input saat ini.

Sekarang perbedaan antara memiliki lapisan feedforward antara input fitur dan lapisan LSTM dan memiliki lapisan LSTM lainnya adalah bahwa lapisan umpan maju (katakanlah lapisan yang terhubung penuh) tidak menerima umpan balik dari langkah waktu sebelumnya dan dengan demikian tidak dapat menjelaskan secara pasti pola. Memiliki LSTM sebagai pengganti (misalnya menggunakan representasi LSTM bertumpuk) pola input yang lebih kompleks dapat dijelaskan pada setiap lapisan

Sjoerd
sumber
4
Sel-sel LSTM dalam suatu lapisan sudah sepenuhnya, saling terhubung satu sama lain (output dari suatu lapisan memiliki koneksi ke semua input dari lapisan yang sama). Oleh karena itu, masing-masing sel sudah dapat menggabungkan fitur di atas output sel lain, semua dalam satu lapisan. Bisakah Anda menguraikan mengapa banyak lapisan menghasilkan pola yang lebih kompleks?
danijar
6

Dari {1}:

Meskipun secara teori tidak jelas apa daya tambahan yang diperoleh oleh arsitektur yang lebih dalam, itu diamati secara empiris bahwa RNN yang dalam bekerja lebih baik daripada yang lebih dangkal pada beberapa tugas. Secara khusus, Sutskever et al (2014) melaporkan bahwa arsitektur 4-lapisan sangat penting dalam mencapai kinerja terjemahan mesin yang baik dalam kerangka encoder-decoder. Irsoy dan Cardie (2014) juga melaporkan hasil yang lebih baik dari pindah dari satu-layer BI-RNN ke arsitektur dengan beberapa lapisan. Banyak karya lain melaporkan hasil menggunakan arsitektur RNN berlapis, tetapi tidak secara eksplisit dibandingkan dengan RNN 1-lapisan.

FYI:


Referensi:

Franck Dernoncourt
sumber
2

Dari bermain-main dengan LSTM untuk klasifikasi urutan memiliki efek yang sama dengan meningkatkan kapasitas model di CNN (jika Anda terbiasa dengan mereka). Jadi Anda pasti mendapatkan keuntungan terutama jika Anda kekurangan data Anda.

Tentu saja bermata dua karena Anda juga bisa terlalu bugar dan mendapatkan kinerja yang lebih buruk. Dalam kasus saya, saya beralih dari 1 LSTM ke tumpukan 2 dan mendapatkan peningkatan instan yang cukup banyak.

InKodeWeTrust
sumber