1. Konsep Dasar LSTM
LSTM adalah versi “pintar” dari RNN yang dirancang khusus untuk menangani memori jangka panjang dan mengurangi risiko Vanishing Gradient Problem.
-
Cell State (): Ini adalah inovasi utama LSTM, bertindak seperti “jalan tol” memori yang memungkinkan informasi mengalir lurus dari masa lalu ke masa depan tanpa banyak perubahan.
-
Hidden State (): Memori jangka pendek yang juga berfungsi sebagai output langkah waktu tersebut.
-
Gerbang (Gates): LSTM menggunakan mekanisme gerbang (dengan fungsi aktivasi sigmoid) untuk mengontrol arus informasi:
-
Forget Gate (): Memutuskan informasi lama mana yang akan dihapus dari Cell State.
-
Input Gate (): Memutuskan informasi baru mana yang akan ditambahkan ke Cell State.
-
Output Gate (): Memutuskan informasi apa yang akan dikeluarkan dari Cell State ke Hidden State berikutnya.
-
Catatan: Semua gerbang dalam LSTM bekerja secara independen dan tidak saling memengaruhi secara langsung.
-
2. Step-by-Step Forward Propagation LSTM
Perhitungan LSTM pada satu timestep () wajib dikerjakan secara berurutan langkah demi langkah. Jangan melompat!
Persiapan Awal:
-
Inisialisasi awal biasanya dan .
-
Matriks bobot masukan: .
-
Matriks bobot hidden: .
-
Vektor bias: .
Urutan Kalkulasi per Timestep:
-
Hitung Forget Gate (): Menggunakan dan . Aktivasi:
sigmoid. -
Hitung Input Gate (): Menggunakan dan . Aktivasi:
sigmoid. -
Hitung Kandidat Cell State (): Informasi baru yang akan diusulkan. Aktivasi:
tanh. -
Hitung Output Gate (): Menggunakan dan . Aktivasi:
sigmoid. -
Update Cell State Baru (): Kalikan memori lama dengan , lalu tambahkan usulan memori baru yang sudah dikalikan .
-
Update Hidden State Baru ():
Ambil Cell State baru, saring pakai
tanh, lalu kalikan dengan . -
Hitung Prediksi (): (Hanya jika diminta sesuai arsitektur)
3. Detail Algoritmik & Rumus Penting
1. Rumus Lengkap Forward Propagation LSTM:
(Sangat disarankan disalin ke cheat sheet secara berurutan)
f^{(t)} = \sigma(U_f \cdot x^{(t)} + W_f \cdot h^{(t-1)} + b_f)$$$$i^{(t)} = \sigma(U_i \cdot x^{(t)} + W_i \cdot h^{(t-1)} + b_i)$$$$\tilde{C}^{(t)} = \tanh(U_c \cdot x^{(t)} + W_c \cdot h^{(t-1)} + b_c)$$$$o^{(t)} = \sigma(U_o \cdot x^{(t)} + W_o \cdot h^{(t-1)} + b_o)$$$$C^{(t)} = (f^{(t)} * C^{(t-1)}) + (i^{(t)} * \tilde{C}^{(t)})$$$$h^{(t)} = o^{(t)} * \tanh(C^{(t)})
_(Catatan: Tanda _ pada rumus dan adalah perkalian elemen-per-elemen / element-wise multiplication, BUKAN dot product matriks).*
2. Rumus Menghitung Jumlah Parameter Bobot (Soal No. 9):
-
= Dimensi Input
-
= Jumlah unit LSTM (Hidden size)
-
= Jumlah unit Output (jika ada Dense Layer tambahan)
-
Angka merepresentasikan 4 komponen dalam blok LSTM ().
Contoh Perhitungan (Dari Soal No 9):
-
Input size () = 5
-
Hidden size/LSTM unit () = 10
-
Output size () = 2
-
Total Parameter =
4. Kesalahan Umum Pengerjaan Soal (⚠️ RED FLAGS LSTM)
Berdasarkan koreksi Bagian III (Soal 1-8 dan Soal 10) pada PDF, perhatikan jebakan ini:
-
“LSTM menghilangkan vanishing gradient sepenuhnya” (SALAH!).
- LSTM hanya mengurangi risiko secara signifikan melalui Cell State, BUKAN menghilangkannya hingga 0% tak mungkin terjadi.
-
Salah Menggunakan Fungsi Aktivasi (SANGAT FATAL!).
-
Sering tertukar! Ingat aturan emas ini:
-
Gerbang (Gate) yang fungsinya “membuka/menutup” rentang 0-1 () WAJIB pakai
sigmoid. -
State yang isinya nilai data () WAJIB pakai
tanh.
-
-
LSTM tidak menggunakan ReLU.
-
-
Bingung Fungsi Tiap Gerbang.
-
Input gate berfungsi menambahkan informasi baru ke cell state.
-
Forget gate berfungsi MENGHAPUS informasi lama (jangan terbalik dengan input gate).
-
-
Perhitungan Berhenti di Tengah Jalan (Soal 10).
- Banyak mahasiswa menghitung panjang-panjang hingga mendapatkan nilai , lalu merasa sudah selesai. Padahal, arsitektur di soal seringkali memiliki layer output tambahan (meminta nilai ). Pastikan baca soal sampai akhir apakah nilai prediksi juga ditanyakan!
-
Kesalahan Operasi Aljabar pada Update Cell State.
- Saat menghitung , operasinya adalah perkalian biasa antara dua skalar/vektor sejajar, bukan perkalian matriks dot product. Kesalahan hitung disini akan membuat nilai timestep berikutnya hancur total.