Lewati ke konten utama

C9 · Modul 02

Graf komputasi dan aturan rantai

45 langkah singkat, dari mudah sampai tantangan.

  1. Level 1

    Kenal

  2. Level 2

    Paham

  3. Level 3

    Terapkan

  4. Level 4

    Tantangan

  5. 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:

  1. Menghitung turunan parsial, gradien, dan Jacobian, lalu menuliskan aturan rantai multivariabel sebagai perkalian Jacobian dengan bentuk array yang konsisten.
  2. Menggambar graf komputasi sebuah ekspresi, menghitung maju lalu mundur dengan tangan, dan menjumlahkan gradien di simpul yang dipakai lebih dari sekali.
  3. Menulis turunan_numerik dan galat_relatif sesuai 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).
  4. Membedakan mode maju (perkalian Jacobian-vektor, JVP) dan mode mundur (perkalian vektor-Jacobian, VJP), menghitung biaya keduanya, dan menjelaskan mengapa backpropagation adalah mode mundur.
  5. 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