Apa itu turunan parsial?
Turunan parsial mengukur perubahan fungsi beberapa variabel ketika satu input bergerak dan semua input lain ditahan tetap. Untuk f(x, y), turunan parsial ditulis ∂f/∂x atau ∂f/∂y. Mengumpulkan semua turunan parsial dari fungsi skalar ke dalam satu vector menghasilkan gradient, ∇f, yang menunjuk ke arah kenaikan paling curam.
Loss neural network adalah fungsi skalar dari semua weight-nya, jadi training membutuhkan satu turunan parsial per weight. Backpropagation menghitung seluruh gradient itu, dan optimizer seperti SGD dan Adam memakainya untuk memperbarui semua parameter sekaligus. Ide yang sama mendasari analisis sensitivitas, feature attribution seperti saliency map, dan simulasi fisika.
Ide utama
- Turunan parsial mengubah satu input dan menahan semua input lain tetap.
- Gradient ∇f adalah vector berisi semua turunan parsial dari fungsi skalar.
- Gradient menunjuk ke arah kenaikan paling curam, dan panjangnya adalah kemiringan paling curam itu.
- Gradient tegak lurus terhadap garis kontur fungsi.
- Gradient nol menandai titik kritis, yang bisa berupa minimum, maksimum, atau saddle point.
- Gradient descent melangkah berlawanan arah dengan gradient, diskalakan oleh learning rate.
Pertanyaan umum
Apa bedanya turunan parsial dan turunan total?
Turunan parsial menahan input lain tetap. Turunan total membiarkannya ikut berubah ketika input itu bergantung pada variabel dasar yang sama. Jika x dan y sama-sama bergantung pada t, maka df/dt = (∂f/∂x)(dx/dt) + (∂f/∂y)(dy/dt), yang menjumlahkan pengaruh lewat setiap jalur.
Apakah urutan turunan parsial berpengaruh?
Untuk fungsi yang mulus, tidak. Teorema Schwarz (disebut juga teorema Clairaut) menyatakan ∂²f/∂x∂y = ∂²f/∂y∂x selama kedua turunan parsial kedua itu kontinu. Untuk f = x² + xy + y², kedua turunan parsial campurannya sama dengan 1.
Apa arti turunan parsial yang besar bagi sebuah feature?
Artinya output peka secara lokal terhadap input itu: perubahan kecil di sana menggerakkan f cukup banyak. Saliency map untuk model gambar memakai ini, dengan menampilkan ∂(class score)/∂(pixel) sebagai heatmap. Ukuran ini bersifat lokal dan bergantung pada skala input, jadi nilai besar bukan bukti bahwa sebuah feature penting secara global.
Bagaimana cara mendapatkan turunan parsial di PyTorch?
Tandai input dengan requires_grad=True, hitung output skalar, lalu panggil .backward() padanya. Atribut .grad pada tiap input kemudian berisi turunan parsial output terhadap input itu. torch.autograd.grad mengembalikan nilai yang sama tanpa menyimpannya di tensor.
Penjelasan terkait
- Turunan · Kalkulus di balik gradient descent
- Chain Rule · Cara turunan tersusun melalui layer
- Kalkulus Matriks dan Jacobian · Turunan parsial, gradient, dan Jacobian: kalkulus untuk vector
- Gradient Descent · Optimasi dengan mengikuti kemiringan ke bawah
- Optimizer · SGD, momentum, dan Adam: gradient descent yang lebih cerdas
- Backpropagation · Cara network belajar dari kesalahannya
Referensi
- Deisenroth, Faisal & Ong, "Mathematics for Machine Learning", ch. 5 Vector Calculus
- Goodfellow, Bengio & Courville, "Deep Learning", ch. 4 Numerical Computation
- Simonyan, Vedaldi & Zisserman (2013), "Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps"
Terakhir diperbarui