Soal + Pembahasan Lengkap UAS IF3270 Pembelajaran Mesin 2024-2025
Bagian I - Pilihan Berganda (Nilai 30, @2.5)
Petunjuk Soal Beri tanda O pada pilihan yang tepat, dan tanda X pada pilihan yang salah. Pilihan yang tidak diberi tanda tidak mendapat nilai.
Soal 1
Soal: Terdapat spesifikasi arsitektur neural network “many-to-one” yang menerima input terdiri atas 3 fitur, sebuah hidden layer berupa RNN yang terdiri atas 4 neuron dengan 5 time-step, dan sebuah output layer yang terdiri atas dua neuron. Jika digambarkan dalam ‘unfolded network’ tanpa mengilustrasikan bias, maka arsitekturnya adalah sebagai berikut.


Analisis setiap pilihan (berdasarkan gambar soal):
-
a - 5 blok
h(4), setiap blok menerimax(3), outputy1&y2muncul dari dua timestep terakhir (t=4 dan t=5). → X ❌ - many-to-one seharusnya output hanya dari 1 timestep terakhir saja, bukan dua. -
b - 5 blok
h(4), tetapi input-nya adalah “Fitur 1 x1”, “Fitur 2 x1”, “Fitur 3 x1” (masing-masing 1 fitur per timestep berbeda), outputy1&y2dari dua timestep terakhir. → X ❌ - Interpretasi fitur salah: seharusnya tiap timestep menerima vektor 3 fitur (), bukan 1 fitur per timestep. Lagi pula output dari 2 timestep. -
c - Hanya 3 blok
h(4), inputx(3)tiap timestep, outputy(2)dari timestep terakhir saja. → X ❌ - Jumlah timestep hanya 3, seharusnya 5. -
d - 4 blok (
h1, h2, h3, h4) dengan input masing-masing “Fitur 1”, “Fitur 2”, “Fitur 3” sebagai 3 timestep terpisah, outputy(2)dari timestep terakhir. → X ❌ - 3 fitur diinterpretasikan sebagai 3 timestep (bukan vektor fitur dalam 1 timestep), dan hanya 4 blok hidden. Tidak sesuai. -
e - 5 blok
h(4), setiap blok menerimax(3)(vektor 3 fitur), outputy(2)hanya dari timestep t=5 (terakhir) via bobot V. → O ✅ - Sesuai spesifikasi: 5 timestep, 4 neuron hidden, 3 fitur input, output hanya dari timestep terakhir = many-to-one.
| Pilihan | Jawaban |
|---|---|
| a | X |
| b | X |
| c | X |
| d | X |
| e | O |
Soal 2
Soal: Terdapat arsitektur neural network “many-to-many (equal input-output)” yang menerima dataset pasangan input-output sebagai berikut; sebuah hidden layer berupa RNN dengan 2 neuron dan 3 time-steps dengan fungsi aktivasi tanh, dan sebuah output layer dengan 1 neuron dan fungsi aktivasi sigmoid. Timestep dimulai dari t=1. Tabel pasangan input-output:
| t | x1 | x2 | x3 | y |
|---|---|---|---|---|
| 1 | 0.1 | 0.2 | 0.3 | 0.4 |
| 2 | 0.4 | 0.5 | 0.6 | 0.5 |
| 3 | 0.7 | 0.8 | 0.9 | 0.6 |
Kunci InterpretasiMany-to-many equal: setiap baris = satu time-step. Tiga kolom input = 3 fitur yang diterima sekaligus pada timestep tersebut.
a. Untuk t=1, maka data inputnya adalah: ⟨0.1, 0.2, 0.3⟩. → O ✅ - Baris pertama, kolom x1 x2 x3.
b. Untuk t=2, maka data inputnya adalah: ⟨0.2, 0.5, 0.8⟩. → X ❌ - Input t=2 adalah baris kedua = ⟨0.4, 0.5, 0.6⟩. Pilihan ⟨0.2, 0.5, 0.8⟩ adalah nilai kolom x1 di t=1,2,3 dibaca ke bawah (interpretasi columnar yang salah untuk many-to-many equal).
c. Nilai neuron pertama di hidden layer t=2 adalah: → O ✅ - Input t=2 = ⟨0.4, 0.5, 0.6⟩, tiap fitur × bobot 0.1, plus kontribusi hidden sebelumnya , plus bias 0.1.
d. Nilai neuron pertama di hidden layer t=2 adalah: → X ❌ - Nilai 0.2 dan 0.8 adalah data kolom x1 di t=1 dan t=3, bukan input t=2 yang benar ⟨0.4, 0.5, 0.6⟩.
e. Jika nilai hidden t=2 adalah , nilai output t=2 adalah: → O ✅ - 2 hidden neuron masing-masing berbobot 0.3, bias 0.3, ke 1 neuron output.
| Pilihan | Jawaban |
|---|---|
| a | O |
| b | X |
| c | O |
| d | X |
| e | O |
Soal 3
Soal: Terdapat spesifikasi arsitektur neural network sebagai berikut. Input terdiri atas 10 fitur. Hidden layer pertama adalah Simple RNN dengan enam neuron, hidden layer kedua adalah Simple RNN dengan lima neuron, hidden layer ketiga adalah Simple RNN dengan empat neuron, hidden layer keempat adalah dense layer dengan tiga neuron, dan sebuah output layer dengan dua neuron. Banyaknya parameter yang perlu dipelajari adalah:
- a. 234
- b. 225
- c. 831
- d. 148
- e. 200
Formula Jumlah ParameterSimple RNN dengan neuron, menerima input dari dimensi :
Dense layer dengan neuron, input dari dimensi :
Layer 1 - Simple RNN, 6 neuron, input :
Layer 2 - Simple RNN, 5 neuron, input dari 6 neuron ():
Layer 3 - Simple RNN, 4 neuron, input dari 5 neuron ():
Layer 4 - Dense, 3 neuron, input dari 4 neuron ():
Output Layer - Dense, 2 neuron, input dari 3 neuron ():
Total:
Jawaban: b. 225 ✅
Soal 4
Soal: Tentukan pernyataan yang benar dari pernyataan-pernyataan berikut ini.
a. Context Vector berusaha menangkap informasi dari hidden unit timestep terakhir pada Encoder, jadi kita tidak bisa memanfaatkannya pada arsitektur “one-to-many”. → X ❌ - Benar bahwa context vector berasal dari hidden state terakhir encoder, namun tidak benar bahwa ia tidak bisa dipakai untuk one-to-many. Context vector bisa menjadi initial hidden state decoder untuk berbagai konfigurasi arsitektur.
b. Context Vector hasil dari tahap encoder hanya digunakan oleh bagian Decoder timestep pertama saja. → X ❌ - Pada arsitektur standar (tanpa attention), context vector digunakan sebagai initial hidden state decoder dan biasanya juga disertakan sebagai input di setiap timestep decoder, bukan hanya timestep pertama.
c. Dalam arsitektur Encoder-Decoder, tidak ada input dari dataset pelatihan yang menjadi masukan untuk tahap Decoder. → X ❌ - Selama training (dengan teacher forcing), output target dari data pelatihan () digunakan sebagai input decoder timestep berikutnya.
d. Dalam arsitektur Encoder-Decoder “many-to-many” di mana panjang input mungkin berbeda dengan panjang output, output dari timestep sebelumnya menjadi masukan untuk Decoder. → O ✅ - Inilah mekanisme decoder autoregresif: dan .
e. Salah satu contoh pemanfaatan Encoder-Decoder dengan arsitektur “many-to-one” adalah menerima masukan berupa video dan menghasilkan teks kalimat penjelasannya (video captioning). → X ❌ - Video captioning menghasilkan kalimat = sequence token, bukan satu nilai. Arsitekturnya adalah many-to-many (encoder memproses sequence frame video, decoder menghasilkan sequence kata). Bukan many-to-one.
| Pilihan | Jawaban |
|---|---|
| a | X |
| b | X |
| c | X |
| d | O |
| e | X |
Soal 5
Soal: Model estimasi jumlah penumpang satu bulan berikutnya dari suatu perusahaan transportasi dikembangkan berdasarkan time series data 10 tahun terakhir. Model dapat dikembangkan dengan model RNN berdasarkan data 3 bulan sebelumnya, tentukan kebenaran pernyataan berikut ini.
a. Arsitektur one-to-many tidak dapat digunakan. → O ✅ - Input adalah sequence 3 nilai (3 bulan sebelumnya) → arsitektur many-to-one yang tepat. One-to-many mengasumsikan input tunggal, tidak cocok.
b. Output layer dari model RNN ini memiliki satu neuron, sesuai untuk task regresi. → O ✅ - Prediksi jumlah penumpang (nilai kontinu) = regresi → 1 neuron output, aktivasi linear.
c. Jumlah timestep dari model RNN ini adalah 10. → X ❌ - Jumlah timestep = panjang input sequence = 3 (3 bulan sebelumnya). Data 10 tahun = ukuran dataset, bukan timestep.
d. Output akhir model berupa sequence 3 nilai. → X ❌ - Output adalah 1 nilai (prediksi 1 bulan berikutnya).
| Pilihan | Jawaban |
|---|---|
| a | O |
| b | O |
| c | X |
| d | X |
Soal 6
Soal: Mesin penerjemah mampu menerima teks bahasa sumber dan menghasilkan teks bahasa target. Jika mesin penerjemah dikembangkan dengan model RNN, tentukan kebenaran pernyataan berikut ini.
a. Arsitektur one-to-many atau many-to-one tidak dapat digunakan. → O ✅ - Machine translation memerlukan many-to-many (seq2seq) karena baik input maupun output adalah sequence.
b. Output layer dari model RNN memiliki jumlah neuron sebanyak jumlah vocabulary unik bahasa sumber dari data latih. → X ❌ - Output layer berukuran vocabulary bahasa target, karena model memprediksi token dalam bahasa target.
c. Karena panjang input ≠ panjang output, model RNN tersebut dirancang untuk melakukan task sequence labeling. → X ❌ - Sequence labeling = input dan output sama panjang (misal NER). Machine translation adalah seq2seq / sequence generation, bukan sequence labeling.
d. Karena panjang input ≠ panjang output, diperlukan arsitektur many-to-many dengan output akhir berupa sequence vocabulary sesuai indeks nilai dari output layer setiap timestep. → O ✅ - Encoder-Decoder many-to-many; decoder menghasilkan distribusi softmax atas vocabulary di tiap timestep, dan token dipilih via argmax.
| Pilihan | Jawaban |
|---|---|
| a | O |
| b | X |
| c | X |
| d | O |
Soal 7
Soal: Model analisis sentimen teks dikembangkan berdasarkan kumpulan review teks yang telah berlabel positif atau negatif. Model dapat dikembangkan dengan model RNN, tentukan kebenaran pernyataan berikut ini.
a. Arsitektur many-to-one tidak dapat digunakan. → X ❌ - Justru many-to-one adalah arsitektur yang paling sesuai: banyak token → 1 label sentimen.
b. Output layer dari model RNN memiliki dua neuron sigmoid. → X ❌ - Untuk klasifikasi biner standar, cukup 1 neuron sigmoid. Dua neuron sigmoid bukan pendekatan yang umum (yang umum adalah 2 neuron + softmax, atau 1 sigmoid).
c. Model RNN ini termasuk melakukan task regresi. → X ❌ - Analisis sentimen adalah klasifikasi, bukan regresi.
d. Output akhir dari model diambil dari output layer timestep terakhir. → O ✅ - Pada many-to-one, hanya hidden state timestep terakhir yang diumpankan ke output layer.
| Pilihan | Jawaban |
|---|---|
| a | X |
| b | X |
| c | X |
| d | O |
Soal 8
Soal: Manakah dari pernyataan berikut yang benar mengenai perbedaan memori antara RNN dan FFNN?
a. FFNN dapat menyimpan konteks waktu jika jumlah layer cukup banyak. → X ❌ - Menambah layer FFNN tidak memberikan kemampuan memori temporal; FFNN tidak punya recurrent connection.
b. RNN mampu mempelajari hubungan temporal dalam data. → O ✅ - Hidden state membawa informasi dari timestep sebelumnya.
c. FFNN hanya mampu memetakan input ke output tanpa mengingat input sebelumnya. → O ✅ - FFNN bersifat stateless; setiap forward pass independen.
d. RNN dapat menyimpan informasi jangka pendek atau panjang tergantung arsitekturnya. → O ✅ - Simple RNN: short-term memory (vanishing gradient). LSTM/GRU: long-term memory.
| Pilihan | Jawaban |
|---|---|
| a | X |
| b | O |
| c | O |
| d | O |
Soal 9
Soal: Bidirectional RNN (Bi-RNN) dibandingkan dengan RNN untuk ukuran arsitektur yang setara.
a. Bi-RNN menghasilkan keluaran pada output layer sejumlah dua kali keluaran RNN. → X ❌ - Jumlah output layer tidak berubah; yang berbeda adalah representasi hidden (digabung dari 2 arah), bukan ukuran output layer.
b. Bi-RNN memerlukan jumlah time step setengah kali lipat jumlah time step RNN. → X ❌ - Jumlah timestep sama; Bi-RNN memproses sequence yang sama, dua kali (forward + backward).
c. RNN dan Bi-RNN keduanya memproses data masukan dari masa lalu ke masa depan. → X ❌ - RNN hanya forward. Bi-RNN memproses dua arah: forward (kiri→kanan) dan backward (kanan→kiri).
d. Bi-RNN memiliki jumlah parameter lebih banyak daripada RNN. → O ✅ - Bi-RNN = 2 RNN (forward + backward) → parameternya ~2× RNN dengan ukuran setara.
| Pilihan | Jawaban |
|---|---|
| a | X |
| b | X |
| c | X |
| d | O |
Soal 10
Soal: Manakah pernyataan yang benar mengenai Bi-RNN?
a. Bi-RNN hanya cocok untuk data teks. → X ❌ - Bi-RNN dapat digunakan untuk semua data sekuensial: audio, time series, sinyal biologis, dll.
b. Hasil dari dua arah forward state dan backward state pada Bi-RNN digabungkan dengan cara penjumlahan. → X ❌ - Penggabungan yang paling umum adalah concatenation , bukan penjumlahan.
c. Bi-RNN banyak digunakan pada persoalan sequence tagging, seperti sentiment analysis. → O ✅ - Klaim umumnya benar: sequence tagging (NER, POS tagging, dll.) memang use case utama Bi-RNN karena butuh konteks dari dua arah.
Tapi contohnya kurang tepatSentiment analysis bukan contoh sequence tagging - ia adalah many-to-one classification (satu label untuk seluruh sequence), seperti yang sudah dibahas di Soal 7. Contoh sequence tagging yang lebih tepat: NER atau POS tagging (keduanya many-to-many, satu label per token). Pernyataan ini tetap dinilai O karena klaim utamanya (Bi-RNN untuk sequence tagging) benar, namun contoh yang diberikan di soal sebenarnya keliru/menyesatkan.
d. Bi-RNN mengabaikan urutan data masukan. → X ❌ - Bi-RNN justru sangat bergantung urutan; ia memproses sequence secara berurutan dari dua arah.
| Pilihan | Jawaban |
|---|---|
| a | X |
| b | X |
| c | O |
| d | X |
Soal 11
Soal: Dalam sequence labeling dengan LSTM, bagaimana cara umum mengonversi output hidden state menjadi label kelas?
- a. Dengan membandingkan hidden state dengan semua input
- b. Dengan menggunakan softmax layer setelah hidden state ✅
- c. Dengan menghitung rata-rata semua hidden state
- d. Dengan fungsi aktivasi sigmoid di input
Jawaban: b ✅
Pada setiap timestep , hidden state diproyeksikan ke dimensi jumlah kelas:
Soal 12
Soal: Diberikan input sequence yang merepresentasikan token: X = [0.5, 0.3], [0.2, 0.1], [0.6, 0.8], dan target label sequence: Y = [B, A, C]. Digunakan model prediksi LSTM yang menghasilkan output berupa probabilitas per kelas seperti tabel berikut:
| Token | Target | P(A) | P(B) | P(C) | Prediksi (argmax) | Benar? |
|---|---|---|---|---|---|---|
| T1 | B | 0.2 | 0.7 | 0.1 | B | ✅ |
| T2 | A | 0.3 | 0.1 | 0.6 | C | ❌ |
| T3 | C | 0.6 | 0.2 | 0.2 | A | ❌ |
- Prediksi akhir: [B, C, A]
- Token benar: hanya T1 → 1 token benar
- Akurasi:
a. Banyaknya token yang diprediksi benar adalah dua token. → X ❌ (hanya 1) b. Akurasi hasil prediksi adalah 100%. → X ❌ c. Prediksi kelas akhir untuk input sequence tersebut adalah [B, C, A]. → O ✅ d. Semua jawaban salah → X ❌ (karena c benar)
| Pilihan | Jawaban |
|---|---|
| a | X |
| b | X |
| c | O |
| d | X |
Bagian II - LSTM Forward & Backward Pass (Nilai 20)
Setup Soal
Soal: Diketahui LSTM sederhana dengan arsitektur input dan hidden layer seperti gambar. Perhatikan input matriks X dengan 2 fitur, nilai matriks weight U, W, dan bias b. Untuk penyederhanaan, target yang tercantum pada input matriks adalah untuk target pada hidden unit. Fungsi aktivasi yang digunakan sesuai default pada unit LSTM.
a. [Nilai 10] Lakukan 1 kali forward pass, tuliskan nilai output pada hidden unit dari 2 time step. Hitung nilai error total dari tahap ini. Sertakan cara (formula) perhitungan lengkap untuk setiap gate dan neuron.
b. [Nilai 10] Lakukan 1 kali backward pass (BPTT) dengan menggunakan hasil forward pass pada bagian a. Gunakan nilai learning rate 0.5. Tuliskan nilai matriks weight terbaru. Sertakan cara (formula) perhitungan lengkap untuk setiap gate dan neuron.
Catatan: untuk semua perhitungan, gunakan ketelitian tiga angka di belakang koma.

Matriks Input:
| id | X1 | X2 | Target |
|---|---|---|---|
| id1 | 0.5 | 1.2 | 0.5 |
| id2 | 1.5 | 1.0 | 0.75 |
→ id1 = timestep , id2 = timestep .
Initial state: ,
Matriks Weight:
| Gate | (input→hidden) | (hidden→hidden) | (bias) |
|---|---|---|---|
| Forget | |||
| Input | |||
| Candidate | |||
| Output |
Fungsi Aktivasi LSTM Default
- Gate (forget, input, output): sigmoid
- Candidate cell state: tanh
- Hidden output:
[!abstract] Legenda Notasi (Bagian II)
Simbol Arti di sini ⚠️ Beda makna di bagian lain hidden state - short-term memory - cell state - long-term memory di Bagian III, / = context vector (beda total!) bobot input → hidden (per gate) - bobot hidden → hidden / recurrent (per gate) beda dari di Bagian III bias (per gate) - nilai gate forget / input / candidate / output - learning rate di Bagian IV ditulis - simbol beda, konsep sama local gradient di suatu gate, -
Formula LSTM (notasi skalar, 1 neuron):
2.a Forward Pass
Timestep : , ,
Forget gate :
Input gate :
Candidate cell :
Cell state :
Output gate :
Hidden state :
Timestep : , ,
Forget gate :
Input gate :
Candidate cell :
Cell state :
Output gate :
Hidden state :
Hitung Error Total
Target: , . Gunakan MSE:
Ringkasan Forward Pass:
| Variabel | t=1 | t=2 |
|---|---|---|
| 0.937 | 0.973 | |
| 0.378 | 0.633 | |
| 0.762 | 0.792 | |
| 0.288 | 0.781 | |
| 0.550 | 0.512 | |
| 0.154 | 0.334 | |
| 0.280 | 0.653 |
2.b Backward Pass (BPTT),
Tidak Keluar di Ujian Menurut info terbaru, BPTT tidak akan keluar di ujian - bagian ini boleh dilewati/tidak perlu dipelajari lagi.
Notasi & Turunan
- , sehingga
- , sehingga
- Dari MSE:
- Update rule:
Backward t=2
Gradient dL/dh₂:
Gradient ke gate output :
Gradient ke cell state :
Gradient ke candidate :
Gradient ke input gate :
Gradient ke forget gate :
Gradient weight dari t=2 (bobot terhubung ke ; bobot ke ; bias ke 1):
Backward t=1
Total gradient ke (dari langsung + backprop dari t=2 melalui recurrent connection):
Dari langsung:
Dari t=2, gradient mengalir balik ke melalui semua gate di t=2 yang bergantung pada :
Total:
Gradient ke gate output :
Gradient ke cell state (dari langsung + dari ):
Gradient ke candidate :
Gradient ke input gate :
Gradient ke forget gate :
Gradient weight dari t=1 (bobot terhubung ke ; semua kontribusi ):
Total Gradient (akumulasi t=1 dan t=2)
Update Weight (, )
Ringkasan Matriks Weight Baru:
| Gate | |||
|---|---|---|---|
| [1.001, 1.001] | 0.500 | 1.001 | |
| [1.031, 0.045] | 0.302 | -0.960 | |
| [0.034, 0.044] | 0.502 | 1.040 | |
| [0.058, 1.050] | 0.305 | -0.953 |
Bagian III - Encoder-Decoder & Attention (Nilai 25)
Setup Soal
Soal: Diberikan arsitektur encoder decoder untuk prediksi sekuens 2 elemen deret, encoder menerima input berupa sekuens dengan panjang 3 timestep dari vektor 4 nilai fitur dan menghasilkan hidden vector e1, e2, dan e3. Decoder menerima input context vector untuk menghasilkan sequence 2 timestep yaitu y1 dan y2.
a. [Nilai 5] Tentukanlah jumlah parameter dari model tersebut jika encoder berupa satu layer RNN dengan 2 neuron dan decoder berupa satu layer RNN dengan 2 neuron dan satu layer output Fully Connected 1 neuron.
b. [Nilai 5] Tentukanlah jumlah parameter dari model tersebut jika encoder berupa satu layer LSTM dengan 2 neuron dan decoder berupa satu layer LSTM dengan 2 neuron dan satu layer output Fully Connected 1 neuron.
c. [Nilai 5] Berikanlah formula untuk tahapan inferensi pada decoder dari model soal a. Gunakanlah f sebagai fungsi aktivasi untuk neuron pada hidden layer dan g sebagai fungsi aktivasi untuk neuron pada output layer.
d. [Nilai 5] Tentukanlah jumlah parameter dari model tersebut jika encoder berupa satu layer RNN dengan 2 neuron dan decoder berupa satu layer RNN dengan 2 neuron dan satu layer output Fully Connected 1 neuron, dan dilengkapi dengan satu attention unit.
e. [Nilai 5] Berikanlah formula untuk tahapan inferensi pada decoder dengan satu attention unit dari model soal d; ⍺t menyatakan attention weights pada timestep t. Gunakanlah f sebagai fungsi aktivasi untuk neuron pada hidden layer dan g sebagai fungsi aktivasi untuk neuron pada output layer.
[!abstract] Legenda Notasi (Bagian III)
Simbol Arti di sini ⚠️ Catatan = hidden state encoder pada timestep dua notasi untuk hal yang sama: dipakai di setup soal, dipakai di formula attention §3.e - keduanya = output encoder, jangan tertukar dengan alignment score di bawah / context vector (ringkasan info encoder utk decoder) di Bagian II, = cell state LSTM (beda total!) hidden state decoder di Bagian IV, = state lingkungan RL (beda total!) bobot input→hidden, hidden→hidden, bias decoder - input decoder = context vector ( tanpa attention, dengan attention), bobot ini sama persis dipakai di kedua versi (3.c & 3.e) analog Bagian II tapi unit terpisah dari encoder bobot & bias proyeksi hidden decoder → output, dipakai di kedua versi (3.c tanpa attention maupun 3.e dengan attention) hanya fungsi dari - attention tidak menambah bobot baru di sini, ia hanya mengubah pada input fungsi aktivasi hidden layer / output layer decoder - alignment score antara (decoder) dan (encoder) subscript ganda - jangan disamakan dengan (hidden state encoder) di atas! attention weight = softmax dari di Bagian IV, = learning rate (beda total - perhatikan konteks!) parameter alignment Bahdanau beda dari (decoder) maupun LSTM Bagian II dimensi hidden layer attention/alignment (hyperparameter desain - tidak diberi soal, diasumsikan di §3.d) jangan disamakan dengan / (ukuran hidden encoder-decoder) - “satu attention unit” di soal ""!
3.a Jumlah Parameter - Encoder RNN(2) + Decoder RNN(2) + FC(1)

Formula ParameterSimple RNN ( neuron, input dimensi):
Dense/FC ( neuron, input dimensi):
Encoder RNN: neuron, input fitur
[!important] Patokan Utama: Teks Soal Eksplisit Soal asli menyatakan: “Decoder menerima input context vector untuk menghasilkan sequence 2 timestep yaitu y1 dan y2.” Ini adalah definisi arsitektur, bukan deskripsi longgar - artinya input decoder = context vector, berdimensi . Semua perhitungan & formula di bawah mengikuti definisi ini secara konsisten.
[!info] Catatan: Konvensi Context Vector Ini Berbeda dari “Standar Buku Teks” Wajar jika konvensi ini terasa janggal - biasanya context vector dipakai untuk menginisialisasi hidden state decoder, bukan jadi input di setiap timestep. Berikut tiga konvensi yang umum dijumpai, supaya jelas di mana posisi soal ini:
- Sutskever et al. (2014) - “standar buku teks/textbook”: context vector hanya dipakai untuk inisialisasi (); input riil decoder di tiap timestep adalah token output sebelumnya (autoregresif).
- Cho et al. (2014), “RNN Encoder-Decoder”: ditambahkan sebagai sinyal kondisi di setiap timestep, berdampingan dengan dan : .
- Konvensi soal ini (dinyatakan eksplisit di teks soal): versi yang disederhanakan - diumpankan sebagai satu-satunya input decoder di setiap timestep, dihilangkan sama sekali. Kemungkinan besar ini dipilih agar dimensi input decoder tetap konstan & bersih untuk keperluan latihan menghitung parameter.
Karena teks soal mendefinisikan arsitekturnya secara eksplisit, kita ikuti definisi soal - bukan konvensi buku teks - demi konsistensi jawaban.
Decoder RNN: neuron, input = context vector (dari encoder) = dimensi
FC Output: neuron, input dari hidden decoder
Side-by-side: Interpretasi 1 vs Interpretasi 2 untuk 3.a (kenapa bisa 25 vs 27?)
[!question] Sumber Perbedaannya Cuma Satu: Apa “Input Decoder” Itu? Semua perbedaan angka (25 / 27 / 29) berakar dari satu pertanyaan: apa yang sebetulnya diumpankan ke decoder RNN di tiap timestep, dan berapa dimensinya ()? Begitu ditentukan, sisanya tinggal substitusi ke . Dua pembacaan yang paling sering muncul:
Interpretasi 1 - Context Vector Hanya untuk Inisialisasi (→ 25)
Asumsi arsitektur (gaya Sutskever et al., 2014 - “textbook standard”): hanya dipakai untuk menginisialisasi hidden state decoder (), lalu “dibuang”. Input riil yang diumpankan ke decoder di setiap timestep adalah prediksi token sebelumnya (autoregresif/AR) - berdimensi 1 karena FC output cuma 1 neuron.

Encoder RNN (sama seperti sebelumnya):
Decoder RNN: neuron, input , dimensi (bukan !)
FC Output (sama seperti sebelumnya):
Syarat Tersembunyi di Interpretasi Ini Supaya valid, dimensi harus sama dengan - di soal ini kebetulan , jadi syaratnya otomatis terpenuhi tanpa perlu matriks proyeksi tambahan. Ini bukan bukti bahwa interpretasi ini “benar”, hanya kebetulan numerik yang membuatnya tetap valid untuk dihitung.
Interpretasi 2 - Context Vector Jadi Input Eksplisit Tiap Timestep, Tanpa AR (→ 27)
Asumsi arsitektur (gaya Cho et al., 2014, disederhanakan - ini yang dipakai sebagai jawaban utama di atas): bukan sekadar inisialisasi, melainkan diumpankan langsung sebagai input decoder di setiap timestep ( pada formula ); tidak dipakai sama sekali (tanpa AR/teacher forcing) - persis seperti yang dinyatakan literal di teks soal: “decoder menerima input context vector”. Karena itu diinisialisasi (bukan - kalau juga, “masuk dua kali”).
Diagramnya sudah ditampilkan di awal §3.a (lihat gambar di atas) - input decoder , dimensi :
Kenapa Catatan Ini Memilih Interpretasi 2 Dua alasan, sekaligus argumen kenapa Interpretasi 1 - walau valid sebagai pembacaan independen untuk 3.a - jadi sulit dipertahankan begitu dipasangkan dengan 3.d–3.e:
- Kecocokan literal dengan teks soal: kalimat “decoder menerima input context vector” paling natural dibaca sebagai ” = input decoder”, bukan ” = nilai inisialisasi”. Kalau yang dimaksud inisialisasi, kalimat yang lebih wajar adalah “decoder diinisialisasi dengan context vector”.
- Konsistensi struktural dengan 3.d/3.e: attention butuh “slot” input yang menerima context vector dinamis di tiap timestep (itulah esensi attention - berubah-ubah, bukan dihitung sekali lalu dibuang). Interpretasi 2 sudah menyediakan slot ini sejak 3.a, sehingga 3.d tinggal “mengganti isi slot” () tanpa mengubah struktur ataupun bobot - persis seperti framing soal “model dari soal a … dilengkapi attention”. Interpretasi 1 tidak punya slot semacam itu (karena “dibuang” setelah inisialisasi), sehingga 3.d terpaksa membangun jalur input baru yang tidak ada di 3.a - itu sudah mengubah arsitektur decoder, bukan sekadar “menambah attention unit”.
3.b Jumlah Parameter - Encoder LSTM(2) + Decoder LSTM(2) + FC(1)

Formula Parameter LSTMLSTM ( neuron, input dimensi): terdapat 4 gate, masing-masing punya set weight sendiri:
Encoder LSTM: neuron, input fitur
Decoder LSTM: neuron, input = context vector = dimensi (konsisten dengan 3.a)
FC Output: neuron, input
3.c Formula Inferensi Decoder (RNN, tanpa Attention)

Konteks: Sesuai definisi di soal, context vector (hidden state terakhir encoder) menjadi input decoder yang diumpankan di setiap timestep (bukan - soal eksplisit bilang “decoder menerima input context vector”, dan ini juga konsisten dengan dimensi yang dipakai pada perhitungan parameter 3.a/3.b).
Inisialisasi:
vs - bukan “dua pilihan bebas”, tapi dua arsitektur berbeda! Versi sebelumnya catatan ini menulis ” (atau dapat pula , sesuai konvensi)” - kalimat itu menyesatkan karena terdengar seolah boleh diisi salah satu dari dua nilai secara bebas/tertukar dalam arsitektur yang sama. Padahal keduanya adalah dua desain seq2seq yang berbeda dan tidak bisa dicampur:
Konvensi soal ini (dipakai di §3.c–3.e) Konvensi Sutskever et al. (2014) Peran input decoder di setiap timestep ( dalam formula ) hanya untuk inisialisasi, lalu dibuang Inisialisasi - netral, karena toh sudah masuk lewat pada ; mengisi di sini berarti “masuk dua kali” (redundan, dan tidak konsisten dengan dimensi yang dipakai pada hitungan parameter §3.a/3.b) - di sinilah satu-satunya cara info encoder masuk ke decoder Input riil tiap timestep (konstan/dinamis tergantung dengan/tanpa attention) token output sebelumnya (autoregresif) - lihat baris 698 di atas Jadi untuk soal ini, jawabannya hanya - bukan “boleh pilih salah satu”. disebut semata sebagai perbandingan supaya kamu tidak bingung kalau menjumpai konvensi itu di soal/sumber lain (mis. Kuis 2 yang memakai gaya Sutskever). Jangan menulis kedua opsi itu sebagai jawaban yang setara di lembar ujian - pilih satu yang konsisten dengan definisi arsitektur yang diberikan soal, dan di sini definisinya eksplisit menyebut “decoder menerima input context vector” konvensi kolom kiri .
Timestep :
Timestep :
Formula umum untuk timestep :
dimana = fungsi aktivasi hidden layer decoder, = fungsi aktivasi output layer, dan = context vector (konstan, sama di semua timestep - ini yang membedakannya dari versi attention di 3.e di mana context vector berubah tiap timestep).
3.d Jumlah Parameter - Encoder RNN(2) + Decoder RNN(2) + FC(1) + 1 Attention Unit
Kenapa Tinggal Tambah, Bukan Rombak Ulang? Karena slot input decoder sudah berupa context vector (dim 2) sejak versi tanpa-attention (3.a), menambahkan attention tidak mengubah struktur decoder maupun FC - ia hanya mengganti context vector yang tadinya konstan () menjadi dinamis (, dihitung ulang tiap timestep). Dimensinya tetap sama (2), jadi memakai matriks yang sama persis, tidak perlu bobot baru. Yang benar-benar baru hanyalah alignment network yang menghitung .
Dari soal a: Total parameter (tanpa attention)
Parameter Attention Unit (Bahdanau-style):
[!question] Apa itu , dan kenapa ? = dimensi hidden layer attention/alignment network - banyak neuron pada lapisan tersembunyi yang menampung representasi gabungan , sebelum diproyeksikan oleh menjadi skalar alignment score . Persis seperti menentukan ukuran hidden state RNN/LSTM, menentukan “lebar” jaringan attention - murni hyperparameter desain, bukan sesuatu yang bisa diturunkan dari , atau .
Jujur saja: soal TIDAK memberikan nilai , dan tidak ada cara untuk “menurunkannya” dari , , atau yang sudah diketahui - beda dengan yang eksplisit disebut (“RNN dengan 2 neuron”). Ini murni celah informasi di soal, jadi alasan di balik angka manapun yang dipilih hanyalah konvensi/asumsi, bukan fakta matematis yang bisa dibuktikan. Dua pembacaan yang sama-sama masuk akal:
Pembacaan Total ”Satu attention unit” dibaca harfiah = lapisan attention berisi 1 neuron (mengikuti pola “RNN dengan 2 neuron”, “FC 1 neuron” di soal yang sama persis) disamakan dengan - konvensi umum ketika ukuran attention tak disebutkan eksplisit, supaya ketiga ruang vektor selaras Catatan ini memilih (baris kedua) dengan pertimbangan: kata “unit” - bukan “neuron” seperti di kalimat-kalimat lain pada soal yang sama - kemungkinan besar merujuk ke modul/mekanisme attention secara keseluruhan (istilah umum “attention unit/attention layer” di literatur), bukan spesifikasi lebar layer-nya. Tapi ini tetap dugaan berbasis konteks linguistik, bukan kepastian matematis - baris pertama () sama validnya kalau dibaca harfiah. Yang sebenarnya lebih menentukan nilai ujian: tuliskan asumsimu secara eksplisit (“karena soal tidak menyebutkan , saya asumsikan karena ”) lalu substitusi ke formula umum - itulah yang biasanya dinilai pemeriksa, bukan kecocokan angka semata.
Setiap matriks memetakan vektor input ke ruang attention berdimensi :
- : bobot untuk (decoder, dim ) parameter
- : bobot untuk (encoder, dim ) parameter
- : vektor proyeksi skalar parameter
- (catatan: formula di soal tidak menyertakan bias . Sebagian varian Bahdanau menambahkan , yang akan menyumbang parameter ekstra - tapi karena formula yang diberikan tidak memuatnya, kita ikuti apa adanya dan tidak menambah .)
Formula umum (agar terlihat jelas bagaimana tiap suku bergantung pada ):
Substitusi :
3.e Formula Inferensi Decoder dengan Attention ()
Dengan attention, context vector berbeda di setiap timestep decoder (, bukan tunggal yang konstan seperti di 3.c) - namun ia tetap menempati slot input yang sama pada decoder cell (dimensi sama, bobot sama).
Hitung alignment score antara dan setiap hidden encoder ():
Hitung attention weights via softmax:
Hitung context vector pada timestep :
Formula decoder dengan attention (cukup ganti dari formula 3.c - tidak ada bobot baru di decoder/FC):
Lengkap untuk dan :
Timestep t=1:
Timestep t=2:
Bagian IV - Reinforcement Learning (Nilai 25)
4.1 Tabel Perbandingan Supervised Learning vs Reinforcement Learning (Nilai 6)
Soal: Lengkapi tabel berikut ini, yang membandingkan antara supervised learning dan reinforcement learning. Jawaban yang dituliskan di luar tabel tidak dinilai. (Nilai 6)
Pilihan yang diberikan pada tiap baris tabel soal:
- Informasi yang diperlukan oleh agen pembelajar - pilih: pasangan aksi yang harus dilakukan dan kondisi tertentu / informasi reward
- Hasil observasi yang dipelajari berupa data sekuensial - pilih: Ya / Tidak / Belum Tentu
- Apakah yang dipelajari oleh agen? - jawab dengan singkat
| Aspek | Supervised Learning | Reinforcement Learning |
|---|---|---|
| Informasi yang diperlukan oleh agen | Pasangan aksi yang harus dilakukan dan kondisi tertentu (labeled input-output pairs) | Informasi reward (sinyal reward dari lingkungan setelah tiap aksi) |
| Hasil observasi berupa data sekuensial | Belum Tentu (bisa i.i.d. seperti klasifikasi gambar, bisa sekuensial seperti time series) | Ya (agen berinteraksi dengan lingkungan secara sekuensial: state→action→reward→new state) |
| Apakah yang dipelajari oleh agen? | Fungsi pemetaan dari input ke output (mapping ) | Policy (kebijakan) terbaik - yaitu aksi mana yang harus diambil pada setiap state agar cumulative reward maksimal |
4.2 Wumpus World - TD Q-Learning (Nilai 19)
Soal: Terdapat persoalan “Wumpus World” sebagai berikut. Setiap ruang memiliki koordinat posisi; misal dalam gambar agen di ruang (1,1); wumpus di ruang (3,1), gold berada di ruang (3,2); salah satu ruang berisi pit adalah ruang (1,3).
Agen diharapkan dapat mencapai ruang berisi gold dan tidak masuk ke dalam ruang berisi pit ataupun wumpus, dengan Reinforcement Learning (RL). Aksi agen hanyalah N (North), E (East), S (South), atau W (West). Informasi yang bisa diterima agen dari lingkungan hanyalah reward dan posisi ruang. Reward melakukan aksi pada suatu state untuk mencapai state lain adalah 0 (nol), kecuali aksi yang membuat agen berada di terminal-state. Ruang berisi wumpus, pit, dan gold adalah terminal-state. Reward menuju ruang berisi gold dari ruang yang bertetangga (selain terminal-state) adalah +10. Reward menuju ruang berisi wumpus atau pit dari ruang yang bertetangga (selain terminal-state) adalah -10. Setelah agen melakukan percobaan pemilihan aksi tiga episode sebagai berikut, tentukan aksi terbaik yang bisa dilakukan pada suatu ruang (selain terminal-state) berdasarkan nilai Q(s,a) hasil update terakhir dengan Temporal Difference Q-Learning. Inisialisasi semua nilai Q(s,a) dengan nilai nol (0). Nilai step (learning rate) 0.4 dan discount factor adalah 0.6.
Episode:
- I:
- II:
- III:
a. [Nilai 12] Tuliskan ‘update’ nilai Q(s,a) dengan rinci sesuai episode yang dituliskan.
b. [Nilai 3] Gambarkan grid dengan nilai update Q(s,a) untuk setiap satu episode.
c. [Nilai 4] Gambarkan aksi terbaik di setiap ruang selain terminal-state berdasarkan nilai Q(s,a) terakhir.
Setup Grid (dari gambar soal)

Berdasarkan gambar soal (grid 4×4, koordinat dengan = kolom, = baris):
y=4 | Stench | | Breeze | PIT |
y=3 | WUMPUS | Breeze, Stench, GOLD | PIT | Breeze |
y=2 | Stench | | Breeze | |
y=1 | START | Breeze | PIT | Breeze |
x=1 x=2 x=3 x=4
Notasi Koordinat pada Soal Soal menulis posisi ruang sebagai , dihitung mulai dari di pojok kiri-bawah (tempat agen start) - bukan seperti pada grid di atas. Dengan notasi soal ini, posisi-posisi pada gambar konsisten dengan teks soal:
- Wumpus = baris 3 kolom 1 → ditulis soal sebagai → pada grid di atas =
- Gold = baris 3 kolom 2 → ditulis soal sebagai → pada grid = - sel yang sama juga memuat Breeze & Stench, sesuai gambar
- Pit = baris 1 kolom 3 → ditulis soal sebagai → pada grid = (dua pit lain yang terlihat pada gambar berada di dan )
Karena episode pada soal juga memakai notasi yang sama, semua state akhir episode di bawah ini cocok dengan jenis terminal-nya tanpa konversi tambahan.
Terminal states (notasi soal, baris-kolom): Wumpus di (3,1), Gold di (3,2), Pit di (1,3), (3,3), dan (4,4).
Reward:
- Transisi normal (non-terminal):
- Menuju Gold:
- Menuju Wumpus atau Pit:
- State terminal: Q-value = 0
Parameter: , , inisialisasi semua
Formula Q-Learning (off-policy TD):
[!abstract] Legenda Notasi (Bagian IV)
Simbol Arti di sini ⚠️ Beda makna di bagian lain learning rate di Bagian III, = attention weight (beda total - bukan kebetulan namanya sama, tapi konsepnya beda!) discount factor sama persis dengan pada formula Return di catatan ML Last Term reward sesaat dari transisi - action-value function (estimasi cumulative reward) - state sekarang, aksi, state berikutnya di Bagian III = hidden state decoder (beda total!)
(i) Update Nilai Q(s,a) per Episode
Episode I:
Step 1: , , ,
(transisi normal),
Step 2: , , , [Terminal: Wumpus]
, (terminal state)
Episode II:
Step 1: , , ,
,
Step 2: , , ,
,
Step 3: , , , [Terminal: Gold]
, (terminal state)
Episode III:
Step 1: , , ,
,
Step 2: , , , [Terminal: Pit]
, (terminal state)
Ringkasan Semua Update:
| Episode | Step | Transisi | R | Q sebelum | Q sesudah |
|---|---|---|---|---|---|
| I | 1 | 0 | 0 | 0 | |
| I | 2 | ★ | -10 | 0 | -4 |
| II | 1 | 0 | 0 | 0 | |
| II | 2 | 0 | 0 | 0 | |
| II | 3 | ★ | +10 | 0 | +4 |
| III | 1 | 0 | 0 | 0 | |
| III | 2 | ★ | -10 | 0 | -4 |
★ = masuk ke terminal state
(ii) Grid dengan Nilai Q(s,a) setiap Episode
Pemetaan State Soal → Grid State pada soal (baris, kolom) terletak di sel grid . Jadi , , - semuanya berdekatan dengan START di , sesuai jalur eksplorasi tiga episode.
Tiga episode di atas hanya menghasilkan tiga nilai non-nol secara kumulatif - masing-masing satu panah baru per episode (lihat panah merah di bawah; panah abu-abu = update episode sebelumnya yang sudah “menempel”). Catatan: di grid , aksi soal () bergerak ke arah , dan aksi soal () bergerak ke arah - bukan kompas baku, melainkan mengikuti orientasi sumbu pada gambar grid.

- Setelah Episode I: → grid [Wumpus]
- Setelah Episode II: tambahan → grid [Gold]
- Setelah Episode III: tambahan → grid [Pit]
(iii) Aksi Terbaik di Setiap State (Non-Terminal)
Aksi terbaik = .
Tabel nilai Q final (hanya yang non-nol):
| State | Q(N) | Q(E) | Q(S) | Q(W) | Aksi Terbaik |
|---|---|---|---|---|---|
| (1,1) | 0 | 0 | 0 | 0 | Tie - semua 0 |
| (2,1) | 0 | -4 | 0 | 0 | N, S, atau W (hindari E→Wumpus) |
| (1,2) | -4 | 0 | 0 | 0 | E, S, atau W (hindari N→Pit) |
| (2,2) | 0 | +4 | 0 | 0 | E → menuju Gold ✅ |
| (1,4) | 0 | 0 | 0 | 0 | Tie - belum dijelajahi |
| (2,3) | 0 | 0 | 0 | 0 | Tie - belum dijelajahi |
| … | 0 | 0 | 0 | 0 | Tie - belum dijelajahi |
Grid aksi terbaik (→ = E, ↑ = N, ↓ = S, ← = W):
x=1 x=2 x=3 x=4
y=4 | ? | ? | ? | [PIT] |
y=3 | [WUMPUS] | [GOLD] | [PIT] | ? |
y=2 | ↑/↓/← | → | ? | ? |
y=1 | ? | →/↓/← | [PIT] | ? |
Interpretasi Setelah 3 episode, Q-learning baru belajar dari 3 jalur yang dieksplor. State yang belum dikunjungi (semua Q=0) belum memiliki preferensi aksi. Hanya 3 state yang mendapat update bermakna:
- (2,1): Hindari E (menuju Wumpus, Q=-4)
- (1,2): Hindari N (menuju Pit, Q=-4); E adalah arah menuju (2,2) yang dari sana bisa ke Gold
- (2,2): E adalah aksi terbaik jelas (Q=+4), menuju Gold
Referensi
- Slide IF3270 - RNN 1 (Parameter counting, Forward Propagation)
- Slide IF3270 - RNN 2 (BPTT, Encoder-Decoder)
- Slide IF3270 - Attention dan Transformer (Encoder-Decoder with Attention, Bahdanau)
- Slide IF3270 - Reinforcement Learning (Q-Learning, TD Learning)
- Hochreiter & Schmidhuber (1997) - Long Short-Term Memory
- Bahdanau et al. (2014) - Neural Machine Translation by Jointly Learning to Align and Translate
- Sutton & Barto (2018) - Reinforcement Learning: An Introduction, Ch. 6