πŸ•ΈοΈ CNN & RNN (Konsep)

Dua arsitektur deep learning untuk data berstruktur: gambar (CNN) dan urutan (RNN).

🎬 Animasi: CNN: Filter Menggeser Gambar

Filter 3Γ—3 digeser pixel per pixel. Tepi vertikal menghasilkan respons besar yang muncul di feature map.

πŸ“Œ 1. CNN: Convolution untuk Gambar

Jaringan neural biasa "melihat" gambar sebagai deretan angka panjang β€” kehilangan informasi spasial. CNN memakai convolution: filter kecil (3Γ—3, 5Γ—5) yang di-geser di seluruh gambar.

Convolution = filter Γ— patch, digeser pixel per pixel: filter 3Γ—3 gambar 5Γ—5 β”Œβ”€β”€β”€β”¬β”€β”€β”€β”¬β”€β”€β”€β” β”‚-1 β”‚ 0 β”‚ 1 β”‚ hasil = Ξ£ filterΒ·patch β”œβ”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€ di tiap posisi geser β”‚-1 β”‚ 0 β”‚ 1 β”‚ β”œβ”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€ β”‚-1 β”‚ 0 β”‚ 1 β”‚ β””β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”˜ Filter ini mendeteksi "tegaran vertikal" β†’ output besar di tepi. Komponen CNN: β€’ Conv layer : banyak filter β†’ banyak "peta fitur" (tegaran, sudut, tekstur) β€’ Pooling : downscale (max/average) β†’ tahan geser, lebih kecil β€’ Stack : layer awal = fitur sederhana, layer akhir = konsep kompleks (tegaran β†’ mata β†’ wajah β†’ kucing) β€’ Fully connected : klasifikasi akhir Keunggulan: weight sharing (1 filter dipakai di semua posisi) β†’ jauh lebih efisien, dan invariant terhadap posisi objek.

πŸ“Œ 2. Contoh: Convolution 2D β€” Deteksi Tepi

Output:

πŸ“Œ 3. RNN: Jaringan untuk Urutan

RNN (Recurrent Neural Network) memproses data SEKUENSIAL: kata per kata, frame per frame, tick per tick. Kunci: HIDDEN STATE (h) β€” "memori" yang di-update tiap langkah: h_t = tanh(WxhΒ·x_t + WhhΒ·h_{t-1} + bh) y_t = WhtΒ·h_t + bt x1 x2 x3 x4 ↓ ↓ ↓ ↓ [h]β†’[h]β†’[h]β†’[h]β†’ y ↑__________| (Whh: memori dibawa ke langkah berikutnya) Aplikasi: machine translation, text generation, speech recognition, prediksi deret waktu (harga saham, cuaca). Catatan era modern: LSTM/GRU (memori lebih panjang) dan TRANSFORMER (attention) kini mendominasi β€” tapi intinya sama: memproses urutan dengan state yang mengalir.

πŸ“Œ 4. Contoh: RNN (Elman) Prediksi Sinyal Sinus

Tugas: diberi 5 nilai sinus terakhir, prediksi nilai berikutnya. Hidden state harus "mengingat" posisi fase gelombang.

Output:
πŸ’‘ RNN di atas hanya 1 hidden unit β€” "memori" sangat terbatas. RNN asli punya puluhan unit, dan LSTM/GRU menambah "gerbang" agar informasi bisa bertahan puluhan langkah tanpa luntur.

🧠 Latihan

  1. Buat filter 3Γ—3 untuk deteksi tepi horizontal di conv2d. Terapkan ke gambar kotak.
  2. Tambahkan pooling 2Γ—2 max setelah convolution: ambil nilai max tiap blok 2Γ—2. Berapa ukuran output akhirnya?
  3. Di RNN, ubah tugas menjadi prediksi pola 1,2,3,4,5,1,2,3,... (mod 5). Apakah RNN bisa belajar?
  4. Jelaskan kenapa CNN lebih efisien dari fully-connected untuk gambar 1000Γ—1000. (Petunjuk: berapa bobot masing-masing?)