Apa itu turunan?
Turunan mengukur seberapa cepat output fungsi berubah saat input-nya berubah, pada satu titik tertentu. Secara geometris, turunan adalah kemiringan garis singgung kurva di titik itu. Secara formal, turunan adalah limit f'(x) = lim h→0 [f(x+h) − f(x)] / h, yaitu kemiringan garis yang melewati dua titik ketika kedua titik itu menyatu.
Machine learning bertumpu pada turunan. Melatih model berarti menyesuaikan parameternya untuk menurunkan loss, dan turunan loss terhadap tiap parameter memberi tahu arah mana yang menurunkannya dan kira-kira seberapa banyak. Gradient descent, backpropagation, learning-rate schedule, dan metode orde dua seperti metode Newton semuanya dibangun dari satu ide ini.
Ide utama
- Turunan di suatu titik adalah kemiringan garis singgung di titik itu.
- Turunan didefinisikan sebagai limit kemiringan garis sekan, [f(x+h) − f(x)] / h, ketika h mendekati 0.
- Turunan x² adalah 2x, dan aturan pangkat memberi n·xⁿ⁻¹ untuk xⁿ.
- Turunan positif berarti fungsinya naik; turunan negatif berarti fungsinya turun.
- Titik dengan turunan nol adalah kandidat minimum dan maksimum.
- Gradient descent memakai turunan loss untuk menentukan cara mengubah tiap parameter.
Pertanyaan umum
Apa bedanya turunan dan diferensial?
Turunan f'(x) adalah laju: perubahan output per satuan perubahan input. Diferensial dy = f'(x)·dx adalah perkiraan perubahan output untuk perubahan input kecil dx. Notasi dy/dx, dari Leibniz, memperlakukan turunan sebagai rasio perubahan-perubahan kecil ini.
Bisakah suatu fungsi tidak punya turunan?
Bisa. Fungsi |x| punya sudut tajam di 0, dengan kemiringan dari kiri −1 dan dari kanan +1, sehingga tidak ada satu garis singgung pun. ReLU punya patahan yang sama di 0. Framework memilih satu nilai di titik itu, biasanya 0, dan training tetap berjalan baik karena input sangat jarang jatuh tepat di 0.
Apa turunan eˣ dan ln x?
Turunan eˣ adalah eˣ, sehingga eˣ menjadi satu-satunya fungsi (sampai kelipatan konstanta) yang sama dengan turunannya sendiri. Turunan ln x adalah 1/x. Keduanya sering muncul di ML karena softmax, sigmoid, dan cross-entropy loss dibangun dari eksponensial dan logaritma.
Kenapa tidak menghitung turunan secara numerik saja dengan h kecil?
Finite difference butuh satu atau dua evaluasi fungsi tambahan per input, terlalu lambat untuk model dengan jutaan parameter. Akurasinya juga berkurang: h terlalu besar menghasilkan truncation error, h terlalu kecil menghasilkan floating-point cancellation. Automatic differentiation menghitung turunan yang eksak untuk semua parameter dengan biaya kira-kira satu pass tambahan.
Penjelasan terkait
- Chain Rule · Cara turunan tersusun melalui layer
- Turunan Parsial dan Gradient · Memperluas turunan satu variabel ke fungsi banyak variabel dan vector gradient
- Gradient Descent · Optimasi dengan mengikuti kemiringan ke bawah
- Backpropagation · Cara network belajar dari kesalahannya
- Logaritma dan Eksponensial · Matematika di balik cross-entropy, softmax, dan teori informasi
Referensi
- Strang, "Calculus" (open textbook), MIT OpenCourseWare
- Deisenroth, Faisal & Ong, "Mathematics for Machine Learning", ch. 5 Vector Calculus
- Goodfellow, Bengio & Courville, "Deep Learning", ch. 4 Numerical Computation
Terakhir diperbarui