Apa itu LSTM (long short-term memory)?
LSTM (long short-term memory) adalah recurrent neural network dengan memori terpisah bernama cell state, plus tiga gate yang menentukan apa yang dilupakan, ditulis, dan dikeluarkan di setiap langkah. Gate adalah sigmoid layer kecil yang mengeluarkan nilai antara 0 dan 1, dan nilai itu mengalikan informasi yang mengalir di dalam sel. Karena cell state diperbarui lewat penjumlahan, LSTM bisa menyimpan informasi hingga ratusan langkah, sedangkan RNN biasa kehilangan informasi itu setelah beberapa langkah.
LSTM menjadi model sequence standar sejak akhir 2000-an sampai Transformer muncul. Model ini dipakai untuk pengenalan suara, penerjemahan mesin, pengenalan tulisan tangan, dan prediksi teks, dan masih dipakai untuk peramalan time series, data sensor, serta model kecil di perangkat. Memahami cell state juga membuat residual connection dan gated layer di arsitektur yang lebih baru lebih mudah diikuti.
Ide utama
- LSTM menambahkan cell state yang diperbarui lewat penjumlahan, bukan ditulis ulang di setiap langkah.
- Forget gate menskalakan memori lama, input gate menskalakan isi baru, dan output gate menskalakan yang ditampilkan.
- Tiap gate adalah sigmoid layer yang diterapkan pada [h_t−1, x_t], dengan satu nilai per dimensi.
- Pembaruan sel adalah C_t = f_t ⊙ C_(t−1) + i_t ⊙ c̃_t, dan output-nya h_t = o_t ⊙ tanh(C_t).
- Di sepanjang cell state, gradient hanya dikalikan dengan forget gate, jadi bisa bertahan di sequence panjang.
- LSTM punya weight empat kali lipat RNN biasa dengan hidden size yang sama.
Pertanyaan umum
Apa bedanya LSTM dan GRU?
GRU (gated recurrent unit) menggabungkan cell state dan hidden state menjadi satu vector dan memakai dua gate, update dan reset, bukan tiga. Parameternya kira-kira tiga perempat parameter LSTM berukuran sama. Dalam perbandingan, performa keduanya biasanya mirip, jadi pilihannya sering ditentukan oleh kecepatan atau dengan mencoba keduanya.
Apakah LSTM lebih baik daripada Transformer?
Untuk sebagian besar tugas bahasa dengan data melimpah, Transformer lebih akurat dan lebih cepat dilatih karena memproses semua posisi secara paralel. LSTM masih bagus pada dataset kecil, input streaming, dan perangkat dengan memori terbatas, karena setiap langkah baru memakan komputasi yang tetap. Untuk time series, keduanya dipakai.
Apa arti input size dan hidden size pada LSTM?
Input size adalah panjang tiap x_t, misalnya dimensi word embedding atau jumlah pembacaan sensor per langkah. Hidden size adalah panjang h_t dan C_t, yang menentukan seberapa banyak yang bisa diingat sel. Library seperti PyTorch menerima keduanya sebagai argumen, bersama jumlah layer yang ditumpuk.
Apa itu bidirectional LSTM?
Bidirectional LSTM menjalankan satu LSTM dari kiri ke kanan dan satu lagi dari kanan ke kiri, lalu menyambung hidden state keduanya di setiap posisi. Representasi tiap kata jadi mencerminkan konteks di kedua sisi. Model ini dipakai untuk tagging dan klasifikasi, tetapi tidak untuk menghasilkan teks, karena kata-kata berikutnya belum diketahui.
Penjelasan terkait
- Recurrent Neural Network · Cara RNN membaca dan memahami sequence
- Vanishing dan Exploding Gradient · Kenapa deep network sulit dilatih dan cara mengatasinya
- Seq2Seq & Beam Search · Lakukan encode pada input sequence, lalu decode menjadi output: arsitektur di balik penerjemahan
- Language Modeling · Memprediksi token berikutnya, tujuan yang menggerakkan GPT, BERT, dan NLP modern
- Skip Connection & ResNet · Residual learning dan alasan network yang lebih dalam bisa bekerja
- Cara Kerja Self-Attention · Query, key, dan value, inti dari self-attention
Referensi
- Hochreiter & Schmidhuber (1997), "Long Short-Term Memory", Neural Computation
- Gers, Schmidhuber & Cummins (2000), "Learning to Forget: Continual Prediction with LSTM", Neural Computation
- Greff et al. (2017), "LSTM: A Search Space Odyssey"
- Cho et al. (2014), "Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation"
- Dive into Deep Learning, "Long Short-Term Memory (LSTM)"
Terakhir diperbarui