Cheatsheet + Panduan Tracing UAS IF3270 — RNN · LSTM · Attention · Transformer · RL
Forward only (tanpa BPTT/backprop). Tiap topik: Konsep (teori PG/benar-salah) → Langkah (resep) → Contoh (angka di-trace) → Param. Semua angka contoh sudah diverifikasi lewat skrip. ⚠️ = jebakan langganan. Lengkap sengaja — nanti kamu pilah ke A4.
0. Dasar
- · (kalkulator) · .
- Contoh softmax : e^0.4029=1.496, e^0.2106=1.234 → /2.730 → [0.5479, 0.4521].
- ⚠️ softmax aman: kurangi nilai max dulu sebelum eksponen (hasil sama, tak overflow).
- Dot . ⊙ = elementwise.
- ⚠️ Baris matriks bobot = bobot MENUJU neuron yang sama (baris ke-j = neuron j). Salah baca baris/kolom = fatal.
- Param (shared=True): dense · RNN layer · LSTM layer . Total = jumlah semua layer (+ output dense).
1. RNN (Recurrent Neural Network)
Konsep
- Kenapa RNN: data sekuensial (urutan/temporal penting); bobot di-share antar timestep → bisa proses panjang variabel, jumlah parameter tetap.
- ⚠️ RNN vs FFNN: FFNN tidak punya memori — memetakan input→output tanpa mengingat input sebelumnya, tak menangkap urutan walau banyak layer. RNN menyimpan konteks lewat hidden state yang mengalir antar timestep.
- Pemetaan arsitektur ↔ task (sering PG):
- one-to-one: 1 input → 1 output (biasa).
- one-to-many: 1 input → sekuens (image captioning).
- many-to-one: sekuens → 1 output (sentiment/klasifikasi teks). ⚠️ output diambil dari timestep TERAKHIR.
- many-to-many sync (input=output panjang): sequence labeling / POS tagging — output tiap timestep.
- many-to-many async / seq2seq (panjang beda): translasi → butuh encoder-decoder.
- Desain output layer: klasifikasi → softmax, neuron = kelas; regresi → 1 neuron (linear); translasi → neuron = ukuran vocabulary target.
- Bidirectional RNN (Bi-RNN): dua RNN, satu maju satu mundur, lalu digabung (umumnya concat) → tiap posisi punya konteks masa lalu dan depan. ⚠️ parameter ≈ 2× RNN; jumlah timestep TIDAK dilipat dua; cocok sequence tagging (butuh seluruh kalimat), bukan real-time/forecasting; tidak mengabaikan urutan.
Langkah forward (per timestep t, mulai h₀ = 0)
- Untuk tiap neuron hidden j: .
- .
- Output: untuk tiap neuron output o: .
- (atau sigmoid). Kelas prediksi = ; ⚠️ seri → kelas pertama.
- Bawa ke timestep berikutnya. Ulangi.
Contoh lengkap (2 input, 3 hidden tanh, 2 output softmax; 2 timestep)
Bobot (baris = neuron tujuan): , , , , , . Input , .
t=1 (h₀=0, jadi suku W_hh=0):
- neuron1: 0.1781
- neuron2: 0.1391
- neuron3: 0.2165 → h₁=[0.1781,0.1391,0.2165]
- output: ;
- [0.5479,0.4521] → kelas 0 (neuron-1)
t=2 (pakai h₁):
- neuron1: 0.4224
- neuron2: 0.3428
- neuron3: 0.4734 → h₂=[0.4224,0.3428,0.4734]
- output: → [0.5473,0.4527] → kelas 0
Param & gambar
- Param = = 26.
- Unfolded network: satu kotak hidden per timestep (tulis neuron), input vektor (tulis fitur), panah dari h_{t-1}→h_t, panah ke output tiap t (untuk m2m), sertakan bias.
2. LSTM
Konsep
- Kenapa LSTM: RNN biasa kena vanishing gradient → lupa dependensi panjang. LSTM tambah cell state C (jalur memori jangka panjang, update aditif) + gate.
- Makna gate (σ∈[0,1]: 0=buang, 1=pertahankan):
- forget f — info cell lama mana yang dipertahankan/dibuang.
- input i — berapa banyak info baru masuk ke cell.
- kandidat Ĉ (tanh∈[−1,1]) — isi info baru calon.
- output o — berapa banyak cell keluar jadi hidden.
- ⚠️ RNN vs LSTM: RNN cuma hidden state, tanpa gate; LSTM punya cell state + 3 gate → kontrol aliran info, tahan dependensi panjang.
- Sequence labeling dgn LSTM: ubah hidden state → label kelas pakai softmax layer setelah hidden state.
Langkah forward (1 unit hidden; h₀=C₀=0; W_x*=bobot input, W_h*=bobot rekuren)
- → bawa h_t, C_t ke timestep berikutnya.
Contoh lengkap (1 unit, 2 fitur; bobot Kuis-2)
; ; .
t=1, , h₀=C₀=0:
- 0.8641
- 0.9478
- 0.7163
- 0.8320
- 0.6789; 0.4916
t=2, , h₁=0.4916, C₁=0.6789 (suku W_h* tak lagi nol):
- 0.8859 · 0.9719 · 0.7394 · 0.8579
- 1.3201; 0.7437
Param
- = 16.
3. Encoder–Decoder & Attention
Konsep
- Encoder-decoder (seq2seq): encoder ringkas input → context vector; decoder bangkitkan output autoregresif (output timestep t jadi input t+1). ⚠️ decoder timestep-1 pakai start-token / context, bukan data latih langsung.
- Tanpa attention: context = 1 vektor tunggal = hidden encoder terakhir; . ⚠️ bottleneck untuk kalimat panjang.
- Dengan attention: context beda tiap timestep decoder (cₜ) → decoder bisa fokus ke bagian input berbeda tiap kata. , .
- ⚠️ “Paying attention” DIPELAJARI saat training dari parallel corpus, tanpa anotasi alignment eksplisit (bobot attention belajar lewat backprop).
- Bahdanau (additive): cₜ dihitung sebelum sₜ → jadi input untuk sₜ. Luong (multiplicative): sₜ dihitung dulu, lalu ; lebih sederhana/efisien.
- ⚠️ Task panjang-input ≠ panjang-output (translasi) → one-to-many / many-to-one tidak cocok, pakai many-to-many (enc-dec); neuron output = ukuran vocabulary.
Langkah attention (per timestep decoder t)
- Skor tiap hidden encoder hⱼ: (dot / general / concat ).
- .
- (weighted sum hidden encoder).
- ; .
Langkah hitung parameter enc-dec
- Encoder = satu layer rekuren atas dim input: RNN atau LSTM .
- Decoder = satu layer rekuren; ⚠️ asumsikan dim input decoder = dim output sebelumnya (sebut asumsi!).
- Output = dense .
- + attention: dot=0, general=, concat=.
Contoh param (encoder RNN 2 neuron atas input 4-fitur; decoder RNN 2 neuron; output FC 1; input decoder dim 1)
14; 8; 3 → total 25.
- attention general(dec_h=2,enc_h=2)= 4 → total 29.
4. Transformer
Konsep
- “Attention is All You Need” (Vaswani 2017): arsitektur berbasis attention penuh, meniadakan rekurensi & konvolusi total.
- ⚠️ Kenapa unggul vs RNN enc-dec: RNN sekuensial (token t nunggu t−1); Transformer paralel → efisien, hapus bottleneck sekuensial, kuat long-range, mendukung scaling laws (model+data lebih besar → hasil lebih baik).
- Self-attention = attention antar token sekuens yang sama (beda dgn attention RNN: decoder→encoder).
- Q/K/V: tiap input diproyeksi linear → Query (apa yang dicari), Key (label dicocokkan), Value (isi yang diagregasi).
- Multi-head: beberapa head paralel, proyeksi Q/K/V sendiri → tiap head tangkap relasi berbeda; output di-concat lalu linear.
- ⚠️ Positional encoding wajib: tanpa rekurensi, self-attention memandang sekuens sebagai himpunan tanpa orde; info posisi dijumlahkan ke embedding. (tanpa PE, “Budi memukul Andi” = “Andi memukul Budi”).
- Decoder: masked self-attention (cegah lihat token masa depan) + enc-dec attention (Q dari decoder, K/V dari encoder); tiap sublayer dibungkus residual + layer norm.
- Turunan: encoder-only = BERT (pemahaman), decoder-only = GPT (generasi), enc-dec = T5/BART (seq2seq).
Langkah self-attention (scaled dot-product)
- Proyeksi: , , tiap token.
- Skor tiap pasang: .
- Skala: bagi .
- per baris (token i atas semua j).
- .
Contoh lengkap (2 token, d_k=2; misal hasil proyeksi:)
, , .
- token1: skor ; /√2 → ; softmax → ; [1.6605, 2.6605]
- token2: skor ; /√2 → ; ; [2.3395, 3.3395]
- Positional encoding: , .
- ⚠️ √d_k menstabilkan varians skor agar softmax tak saturasi (gradien sehat). Output: Linear→logits seukuran vocab→softmax→argmax kata.
5. Reinforcement Learning
Konsep
- MDP = (States, Actions, transisi P(s’|s,a), reward R). Markov property: next state & reward hanya bergantung state+aksi sekarang, bukan riwayat.
- Return . Discount γ (0≤γ≤1): jamin konvergen (γ<1), wakili ketidakpastian masa depan, preferensi reward cepat. γ→0 myopic, γ→1 far-sighted.
- Value vs Policy: , = ekspektasi Return. Optimal policy .
- Exploration vs exploitation: coba aksi baru vs manfaatkan yang terbaik diketahui (mis. ε-greedy).
- Model-free, TD vs Monte Carlo: ⚠️ TD tak perlu menunggu episode selesai, update tiap timestep via bootstrapping, bisa dari sequence tak lengkap; MC nunggu Return penuh.
- ⚠️ On-policy SARSA (pakai aksi nyata a’ → policy aman/hati-hati) vs off-policy Q-learning (pakai max → policy optimal/agresif).
- Episode berakhir di terminal state lalu reset. DQN = Q-learning + neural net (state space besar).
- ⚠️ Supervised vs RL: SL butuh pasangan (input,label), RL butuh sinyal reward; observasi RL sekuensial; SL belajar pemetaan input→output, RL belajar policy (aksi yang memaksimalkan return).
Langkah TD Q-Learning
- Inisialisasi semua .
- Untuk tiap transisi dalam episode (urut): aksi a = arah s→s’; reward R = reward masuk s’.
- ; ⚠️ jika s’ terminal → maxQ’ = 0.
- .
- Lanjut transisi/episode berikutnya (nilai Q terbawa antar episode).
- Policy akhir = tiap ruang non-terminal (gambar panah).
- SARSA: langkah 3 diganti dengan a’ = aksi yang benar-benar dipilih policy di s’.
Contoh lengkap (Wumpus; α=0.4, γ=0.6; gold(3,2)=+10, wumpus(3,1)/pit(1,3)=−10, terminal; lainnya 0)
Episode I :
- [E]: R=0, maxQ’=0 → 0
- [E, wumpus terminal]: R=−10 → −4
Episode II :
- [N]: 0 · [E]: 0
- [E, gold terminal]: R=+10 → +4
Episode III :
- [N]: 0 · [N, pit terminal]: R=−10 → −4
Q akhir (selain 0): , , . Policy: dari (2,2) panah E (menuju gold); hindari aksi ke wumpus/pit.
Contoh Return Gₜ
Reward future , γ=0.6 → 3.6.
Lampiran: hitung parameter cepat
- RNN bertumpuk (UAS): in=10 → RNN6 → RNN5 → RNN4 → dense3 → out2: + + + + = 225.
- CNN conv layer: . Dense: .