Lensa ML

Cara Kerja Turunan

Langkah 1 dari 6: Semua Berawal dari Kemiringan

Seberapa curam kurva di satu titik tertentu?

-1123xytitik (1.5, 2.3)kemiringan = 3.0f(x) = x²
Geser untuk memindahkan titikx = 1.50
Titik
(1.5, 2.3)
Kemiringan
3.00

Kemiringan garis singgung menunjukkan seberapa cepat f(x) berubah tepat di titik itu. Kemiringan itulah turunan: laju perubahan sesaat.

Geser titik di sepanjang f(x) = x² dari x = −1 sampai x = 3, lalu bandingkan angka kemiringan dengan nilai x. Kemiringannya selalu tepat dua kali x, pola yang dibuktikan di langkah berikutnya. Pada garis lurus, kemiringan adalah perubahan vertikal dibagi perubahan horizontal, dan nilainya sama di semua titik. Kurva punya kemiringan berbeda di tiap titik, jadi pertanyaannya menjadi: garis lurus mana yang paling cocok dengan kurva di dekat satu titik? Garis itu adalah garis singgung, dan kemiringannya adalah turunan di titik tersebut.

Langkah 2 dari 6: Dua Titik, Satu Garis

Geser titik kedua mendekat dan lihat apa yang terjadi pada kemiringannya

-0.50.51.52.53.5xyh = 1.50naik = 5.25a = 1a+hf(x) = x²
Geser titik kedua mendekati a = 1h = 1.50
Kemiringan sekan
3.500
Turunan sebenarnya
2.000
Error
1.500

Garis sekan menghubungkan dua titik di kurva. Kemiringannya = [f(a+h) - f(a)] / h. Saat kamu memperkecil h, kemiringan sekan makin dekat ke turunan sebenarnya.

Geser titik kedua mendekati a = 1 dan perhatikan angka error. Untuk x², kemiringan garis sekan adalah (f(1+h) − f(1)) / h = 2 + h, jadi error-nya tepat sama dengan h: pada h = 0.5 kemiringannya 2,5, dan pada h = 0.05 kemiringannya 2,05. Hasil bagi selisih ini juga cara kerja diferensiasi numerik dalam kode. Library memeriksa gradient yang ditulis tangan dengan membandingkannya dengan versi terpusat, (f(x+h) − f(x−h)) / 2h, yang error-nya mengecil sebanding h², bukan h.

Langkah 3 dari 6: Menyusut Menuju Nol

Garis sekan menjadi garis singgung ketika h menghilang

-0.50.51.52.53.54.5xyx = 1.5h = 2.000 → kemiringan = 5.000

Garis sekan memotong kurva di dua titik. Saat h menyusut, titik kedua bergeser mendekati titik pertama.

Tekan Lihat h Menyusut ke Nol, atau Reset untuk mulai lagi dari h = 2. Animasinya mengalikan h dengan 0,92 di setiap frame, sehingga h bisa mendekati nol sedekat apa pun tanpa pernah mencapainya. Itulah inti limit: rumus [f(x+h) − f(x)] / h tidak terdefinisi pada h = 0, tetapi nilainya ketika h mendekati 0 terdefinisi dengan jelas. Di sini titik tetapnya x = 1.5 dan kemiringannya menetap di 3. Newton dan Leibniz memakai ide ini pada tahun 1600-an; definisi ε-δ yang ketat baru muncul pada tahun 1800-an.

Langkah 4 dari 6: Aljabar di Baliknya

Telusuri perhitungan limit untuk f(x) = x² langkah demi langkah

Mulai dari definisi
f'(x) = limh→0 f(x+h) - f(x)h

Turunan didefinisikan sebagai limit ini ketika h mendekati 0.

Klik Lanjut untuk menelusuri enam baris pembuktian. Pola yang sama berlaku untuk pangkat berapa pun: menjabarkan (x+h)ⁿ menghasilkan xⁿ + n·xⁿ⁻¹·h ditambah suku-suku dengan h² atau lebih tinggi, jadi turunan xⁿ adalah n·xⁿ⁻¹. Itulah aturan pangkat. Dalam praktik, tidak ada yang menghitung limit dengan tangan. Aturan seperti ini, ditambah aturan perkalian dan chain rule, membuat perangkat lunak bisa menurunkan rumus apa pun yang tersusun dari bagian-bagian yang dikenal. Itulah yang dilakukan automatic differentiation di PyTorch dan JAX.

Langkah 5 dari 6: Fungsi Turunan

Setiap x punya kemiringannya sendiri, dan itu menghasilkan fungsi baru

-2.5-1.5-0.50.51.52.5xyf(x) = x²y = 1.00-2.5-1.5-0.50.51.52.5xyf'(x) = 2xkemiringan = 2.00
Geser x untuk menjelajahi kedua fungsix = 1.00
f(1.0)
1.00
f'(1.0) = kemiringan
2.00

Kurva sedang menanjak di sini, jadi f'(x) positif. Makin curam kurvanya, makin tinggi turunannya.

Geser x dari −2 sampai 2 dan ikuti titiknya di kedua grafik. Kurva bawah, f'(x) = 2x, adalah fungsi baru: setiap tingginya adalah kemiringan kurva atas. Di titik f' memotong nol, f punya bagian datar, dan begitulah optimizer menemukan kandidat minimum. Turunan dari f' adalah turunan kedua, di sini f''(x) = 2. Turunan kedua yang positif berarti kurva melengkung ke atas, yang memastikan titik datar di x = 0 adalah minimum, bukan maksimum.

Langkah 6 dari 6: Kenapa Ini Penting

Turunan dipakai di mana-mana, dari fisika sampai machine learning

Definisi turunan
f'(x) = limh→0 f(x+h) - f(x)h
Fisika
Posisi → Kecepatan → Percepatan. Masing-masing adalah turunan dari yang sebelumnya.
Ekonomi
Biaya marginal adalah turunan dari biaya total. Nilainya menyatakan biaya membuat satu unit lagi.
Machine Learning
Gradient descent memakai turunan untuk mencari minimum loss function. Begitulah cara neural network belajar.
Teknik
Laju aliran panas, analisis tegangan, pemrosesan sinyal: semuanya dibangun di atas turunan.

Turunan mengubah pertanyaan "seberapa cepat ini berubah?" menjadi jawaban yang tepat dan bisa dihitung. Lintasan roket dan training neural network sama-sama bergantung padanya.

Kemiringan singgung
Laju sesaat
lim h→0
f'(x) = 2x

Klik kartu mana saja untuk membacanya; kartu-kartu itu juga berganti sendiri. Di machine learning, fungsi yang diturunkan adalah loss, dan ada satu turunan per parameter, sering kali sampai miliaran. Gradient descent memperbarui tiap parameter dengan w ← w − η·∂L/∂w, dengan η sebagai learning rate. Turunan memberi arah, dan learning rate menentukan ukuran langkah. Di fisika, rantainya adalah posisi, kecepatan, percepatan, masing-masing turunan dari yang sebelumnya.

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

Referensi

  1. Strang, "Calculus" (open textbook), MIT OpenCourseWare
  2. Deisenroth, Faisal & Ong, "Mathematics for Machine Learning", ch. 5 Vector Calculus
  3. Goodfellow, Bengio & Courville, "Deep Learning", ch. 4 Numerical Computation

Terakhir diperbarui