C9 · Modul 02
Graf komputasi dan aturan rantai
45 langkah singkat, dari mudah sampai tantangan.
Level 1
Kenal
Level 2
Paham
Level 3
Terapkan
Level 4
Tantangan
Level 5
Pendalaman
Intinya
- Aturan rantai multivariabel adalah perkalian Jacobian; simpul yang dipakai lebih dari sekali menjumlahkan gradien dari semua jalurnya.
- Selisih hingga terpusat dengan ε = 1e-5 dalam float64 dan galat relatif adalah cara memeriksa setiap turunan; uji di titik acak, bukan di 0.
- Mode maju butuh satu lintasan per masukan, mode mundur satu lintasan per keluaran; rugi skalar membuat backpropagation (mode mundur) murah.
- Harga mode mundur adalah memori: nilai antara disimpan sampai lintasan mundur melewatinya.
- PyTorch menjalankan hal yang sama otomatis pada tensor dengan
requires_grad=True.
Sebelum mulai
±6 jam (2,5 jam konsep, 2,5 jam latihan dan lab, 1 jam review).
Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.
Hasil belajar:
- Menghitung turunan parsial, gradien, dan Jacobian, lalu menuliskan aturan rantai multivariabel sebagai perkalian Jacobian dengan bentuk array yang konsisten.
- Menggambar graf komputasi sebuah ekspresi, menghitung maju lalu mundur dengan tangan, dan menjumlahkan gradien di simpul yang dipakai lebih dari sekali.
- Menulis
turunan_numerikdangalat_relatifsesuai kontrak, menjelaskan mengapa selisih hingga terpusat dengan ε = 1e-5 dalam float64 (galat pemotongan lawan galat pembulatan), dan mengenali kapan pemeriksaan itu menyesatkan (titik tekuk ReLU, float32). - Membedakan mode maju (perkalian Jacobian-vektor, JVP) dan mode mundur (perkalian vektor-Jacobian, VJP), menghitung biaya keduanya, dan menjelaskan mengapa backpropagation adalah mode mundur.
- Mengenal tensor PyTorch dan autodiff-nya (
requires_grad,torch.autograd.grad,gradcheck) sebagai padanan pustaka dari yang ditulis sendiri; Lab PyTorch opsional.
Hasil lab: nalar.py bertambah turunan_numerik dan galat_relatif; semua gradien Modul 01 diperiksa ulang dengan keduanya; (opsional) di Colab, autodiff PyTorch dicocokkan dengan turunan tangan. Contoh diuji dengan Python 3.12 dan 3.13 dan NumPy 2.4.6. Kontrak pemeriksaan gradien (proyek-nalar.md §2): selisih hingga terpusat (f(x + ε) − f(x − ε)) / 2ε dengan ε = 1e-5 dalam float64; galat relatif |a − b| / max(1e-8, |a| + |b|); lulus bila < 1e-6 kecuali disebut lain.
Istilah di modul ini (24)
Ketuk istilah untuk melihat penjelasannya. Di materi, istilah bergaris titik membuka kartu yang sama. Semua istilah course
Bahan modul
Semua kode, latihan, dan data modul ini dalam satu zip, untuk dijalankan di laptop atau Google Colab.
- 20 contoh kode
- 7 berkas latihan + tes
- requirements.txt
Lihat isi zip
- BACA-DULU.txt
- contoh_c9_02_31.py
- contoh_c9_02_64.py
- contoh_c9_02_178.py
- contoh_c9_02_206.py
- contoh_c9_02_258.py
- contoh_c9_02_383.py
- contoh_c9_02_451.py
- contoh_c9_02_748.py
- contoh_c9_02_776.py
- contoh_c9_02_802.py
- contoh_c9_02_821.py
- contoh_c9_02_861.py
- contoh_c9_02_894.py
- contoh_c9_02_1130.py
- contoh_c9_02_1157.py
- contoh_c9_02_1194.py
- contoh_c9_02_1468.py
- contoh_c9_02_1518.py
- contoh_c9_02_1886.py
- contoh_c9_02_1950.py
- test_c9_02_4.py
- test_c9_02_1.py
- test_c9_02_2.py
- test_c9_02_6.py
- test_c9_02_7.py
- test_c9_02_3.py
- test_c9_02_5.py
- requirements.txt