Back to IF3270 Pembelajaran Mesin
1. Konsep Dasar RNN
Berbeda dengan CNN yang memproses gambar statis, RNN dirancang khusus untuk memproses data sekuensial (data yang urutannya penting, seperti teks, deret waktu, atau suara).
-
Timestep (): Langkah waktu. Input dimasukkan satu per satu (, dst).
-
Hidden State (): “Memori” RNN. Nilai dipengaruhi oleh input saat ini () DAN memori sebelumnya ().
-
Parameter Sharing: Matriks bobot () dan bias SELALU SAMA untuk setiap timestep. RNN tidak membuat bobot baru saat waktu bergeser.
2. Variasi Arsitektur & Logika Forward Propagation
Berikut adalah logika forward propagation untuk kelima variasi arsitektur RNN.
(Catatan: Rumus dasar untuk update hidden state di setiap arsitektur selalu sama, yaitu: )
A. One-to-One
-
Karakteristik: Tidak ada perulangan waktu ( maksimal cuma 1). Mirip Neural Network biasa.
-
Kasus: Klasifikasi gambar tunggal.
-
Logika:
-
Hitung dari .
-
Langsung hitung output . Selesai.
-
B. One-to-Many
-
Karakteristik: Menerima 1 input di awal (), lalu menghasilkan output beruntun ().
-
Kasus: Image Captioning (1 gambar deretan teks deskripsi).
-
Logika:
-
Timestep 1: Input adalah . Hitung , lalu hasilkan output .
-
Timestep 2: Input biasanya berupa “kosong” atau mengambil hasil . Hitung (pakai ), hasilkan .
-
Lanjut terus sampai menghasilkan token “selesai”.
-
C. Many-to-One ⚠️ (Sering Keluar!)
-
Karakteristik: Menerima banyak input berurutan, tapi hanya menghasilkan 1 output di akhir.
-
Kasus: Klasifikasi Sentimen (Deretan kata “Positif/Negatif”).
-
Logika:
-
Terus update hidden state dari sampai menggunakan sampai .
-
JANGAN hitung output di tengah jalan!
-
Setelah input terakhir () selesai diproses dan didapat, barulah hitung output tunggal: .
-
D. Many-to-Many (Equal) ⚠️ (Sering Keluar!)
-
Karakteristik: Jumlah langkah input sama persis dengan jumlah langkah output.
-
Kasus: Named Entity Recognition (Setiap kata dalam kalimat diberi label “Nama”, “Tempat”, dll).
-
Logika:
-
Di setiap timestep , hitung dari input .
-
Langsung hitung dan keluarkan pada timestep tersebut juga.
-
Berulang terus di setiap langkah sampai sequence habis.
-
E. Many-to-Many (Encoder-Decoder / Seq2Seq)
-
Karakteristik: Membaca semua input sampai habis (Encoder), baru kemudian mulai mencetak output berurutan (Decoder).
-
Kasus: Google Translate (Inggris Indonesia).
-
Logika:
-
Fase Encoder: Proses seperti Many-to-One. Masukkan sampai , update terus, tanpa mengeluarkan .
-
Transfer Memori (KRUSIAL): Hidden state terakhir dari Encoder () akan DIOPER menjadi nilai inisialisasi awal () untuk Decoder.
-
Fase Decoder: Proses seperti One-to-Many. Decoder mulai mencetak , dst berbekal “sari pati memori” () dari Encoder.
-
3. Detail Algoritmik & Rumus Penting
1. Rumus Menghitung Jumlah Parameter Bobot (Trainable Parameters):
(Sering keluar sebagai soal hitungan Bagian II No. 1 & 2).
-
Untuk Layer Simple RNN:
(Angka +1 adalah untuk Bias)
-
Untuk Layer Dense (Fully Connected) biasa:
-
Contoh Kasus Many-to-One (Soal Kuis No 2):
Input (2 fitur) RNN (5 neuron) Output (1 neuron)
-
Layer RNN:
-
Layer Output (Dense):
-
Total Parameter = 46
-
4. Kesalahan Umum Pengerjaan Soal (⚠️ RED FLAGS RNN)
-
“Jumlah parameter tergantung pada banyaknya timestep” (SALAH BESAR!).
- Banyaknya timestep TIDAK MEMPENGARUHI banyaknya parameter bobot. Parameter RNN selalu sharing parameter berapapun panjang langkah waktunya.
-
“Bobot antar timestep berbeda dan perlu dipelajari” (SALAH!).
- Karena sharing parameter, bobot antar timestep adalah SAMA.
-
“Fungsi aktivasi tanh mencegah Vanishing Gradient” (SALAH!).
- Turunan
tanhmemiliki maksimal bernilai 1. Jika dikalikan berulang-ulang pada timestep yang sangat panjang, gradien akan tetap mengecil. Vanishing gradient tetap bisa terjadi di Simple RNN.
- Turunan
-
Salah Menggambar Arsitektur Many-to-One.
- Saat menggambar unfolded network, pastikan node Output () HANYA DIGAMBAR menyambung ke hidden state () yang posisinya paling akhir. Jika kamu menggambar panah ke di setiap timestep, itu menjadi Many-to-Many!
-
Kesalahan Operasi Matriks / Lupa Menambah Hidden State Sebelumnya.
- Terkadang mahasiswa terburu-buru dan hanya mengalikan tanpa menjumlahkannya dengan sisa memori (). Hati-hati!