Apa itu kalkulus matriks?
Kalkulus matriks adalah notasi dan aturan untuk menurunkan fungsi yang input atau output-nya berupa vector atau matriks. Fungsi skalar dari sebuah vector punya gradient. Fungsi bernilai vector punya Jacobian, yaitu matriks berisi turunan parsial setiap output terhadap setiap input. Aturan-aturan ini membuat turunan tersebut bisa ditulis dalam beberapa simbol, tanpa menuliskan turunan parsialnya satu per satu.
Deep learning ditulis dalam vector dan matriks, begitu juga turunannya. Layer y = Wx + b punya Jacobian terhadap x dan gradient terhadap W, dan backpropagation mengalikan Jacobian ini layer demi layer. Kalkulus matriks juga muncul di least squares, likelihood Gaussian, rumus perubahan variabel untuk normalizing flow, dan optimizer orde dua.
Ide utama
- Jacobian dari f: ℝⁿ → ℝᵐ adalah matriks m×n berisi turunan parsial.
- Untuk fungsi skalar, Jacobian berupa satu baris, yaitu transpos dari gradient.
- Pemetaan linear x ↦ Ax punya Jacobian A di semua titik.
- |det J| adalah faktor lokal yang dipakai suatu pemetaan untuk mengalikan luas atau volume.
- Chain rule untuk fungsi vector mengalikan Jacobian: J_{f∘g} = J_f · J_g.
- Backpropagation menghitung vector-Jacobian product, bukan matriks Jacobian penuh.
Pertanyaan umum
Apa itu numerator layout dan denominator layout?
Keduanya konvensi untuk menyusun turunan parsial yang sama. Numerator layout membuat ∂y/∂x menjadi matriks m×n dengan satu baris per output; denominator layout memakai transposnya. Buku teks dan paper mencampur keduanya, jadi banyak error tanda atau transpos yang tampak sebenarnya hanya ketidakcocokan layout. Cara tercepat mengujinya adalah memeriksa apakah bentuk matriksnya cocok.
Apa gradient loss terhadap matriks weight?
Untuk layer y = Wx dengan upstream gradient g = ∂L/∂y, gradient-nya adalah ∂L/∂W = g·xᵀ, sebuah outer product yang bentuknya sama dengan W. Pada satu batch, outer product ini dijumlahkan, itulah sebabnya gradient weight dihitung sebagai satu perkalian matriks antara upstream gradient dan input layer.
Apa hubungan Hessian dan Jacobian?
Hessian dari fungsi skalar adalah Jacobian dari gradient-nya. Untuk model dengan n parameter, Hessian punya n² elemen, sehingga hampir tidak pernah dibentuk di deep learning. Metode yang membutuhkan kelengkungan memakai Hessian-vector product, yang dihitung autodiff tanpa membangun matriksnya.
Kapan Jacobian penuh dibutuhkan?
Jarang saat training, karena loss skalar hanya butuh vector-Jacobian product. Jacobian penuh muncul di normalizing flow (untuk determinannya), analisis robustness, dan beberapa model fisika dan kontrol. Library seperti JAX menyediakan jacfwd dan jacrev, yang membangunnya kolom demi kolom atau baris demi baris.
Penjelasan terkait
- Turunan Parsial dan Gradient · Memperluas turunan satu variabel ke fungsi banyak variabel dan vector gradient
- Chain Rule · Cara turunan tersusun melalui layer
- Aljabar Linear · Vector, matriks, dan bahasa data
- Backpropagation · Cara network belajar dari kesalahannya
- Eigenvalue dan Eigenvector · Cara matriks mengubah ruang: eigenvector, eigenvalue, dan dekomposisi
- Vanishing dan Exploding Gradient · Kenapa deep network sulit dilatih dan cara mengatasinya
Referensi
- Petersen & Pedersen, "The Matrix Cookbook"
- Parr & Howard (2018), "The Matrix Calculus You Need For Deep Learning"
- Deisenroth, Faisal & Ong, "Mathematics for Machine Learning", ch. 5 Vector Calculus
- Dinh, Sohl-Dickstein & Bengio (2016), "Density estimation using Real NVP"
Terakhir diperbarui