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 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)

  1. Untuk tiap neuron hidden j: .
  2. .
  3. Output: untuk tiap neuron output o: .
  4. (atau sigmoid). Kelas prediksi = ; ⚠️ seri → kelas pertama.
  5. 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)

  1. → 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)

  1. Skor tiap hidden encoder hⱼ: (dot / general / concat ).
  2. .
  3. (weighted sum hidden encoder).
  4. ; .

Langkah hitung parameter enc-dec

  1. Encoder = satu layer rekuren atas dim input: RNN atau LSTM .
  2. Decoder = satu layer rekuren; ⚠️ asumsikan dim input decoder = dim output sebelumnya (sebut asumsi!).
  3. Output = dense .
  4. + 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)

  1. Proyeksi: , , tiap token.
  2. Skor tiap pasang: .
  3. Skala: bagi .
  4. per baris (token i atas semua j).
  5. .

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

  1. Inisialisasi semua .
  2. Untuk tiap transisi dalam episode (urut): aksi a = arah s→s’; reward R = reward masuk s’.
  3. ; ⚠️ jika s’ terminal → maxQ’ = 0.
  4. .
  5. Lanjut transisi/episode berikutnya (nilai Q terbawa antar episode).
  6. 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: .