Pengenalan Dasar Turunan untuk Machine Learning
Untuk memahami “dalaman” machine learning seperti neural network kita perlu memahami turunan (Alamak !!). Hehe… tenang disini kita akan kuliti satu persatu apa yang dimaksud dari turunan.
JADI! Turunan itu bisa dijelaskan pakai contoh seperti ini.
Hehe… oke! Mari kita lihat apa sih maksud dari turunan itu. Coba lihat animasi di bawah ini.
Kira kira animasi itu ngapain?
- isinya garis / kurva!
- Ada garis mepet sama kurvanya
- Gatau gamudeng aing :(
Kalo diperhatikan baik baik (tanpa tahu persamaan dari kurva) garis yang miring ke kanan itu seolah olah menggambarkan kemiringan kurva. Kemiringan kurva itu diambil dari 2 titik yang digunakan sebagai acuan untuk mengukur kemiringan.
Nah di animasi itu “titik yang dicari kemiringannya” itu merupakan titik yang kita mau cari tahu kemiringannya (you don’t say!) hehe…
Nah untuk mencari kemiringan kita butuh 2 titik sebagai titik acuan. Titik pertama merupakan titik yang kita mau cari kemiringannya dan titik kedua merupakan titik acuan lain untuk menggambarkan kemiringan kurva. Kalau dilihat dari animasi itu, semakin kecil jarak antara 2 titik, kemiringan kurva semakin akurat.
Ngapain sih susah susah ngukur kemiringan kurva kayak begitu? Kenapa harus ngambil 2 titik, kok nggak 1?
Nah! Itu masalahnya! Kalo ngukur kemiringan cuma pakai 1 titik sudah bisa kita nggak perlu pakai rumus diatas. Untuk mengitung kemiringan (gradien), kita memerlukan perbandingan sisi tegak dan sisi datar segitiga. Coba lihat gambar di bawah.
Kira kira kemiringan garis ini berapa?
- Lebih dari 1?
- Lebih dari 1.5?
- Gatau mager ngitung :(
Kalau dilihat dari gambarnya, itu kan ada segitiga yang kita bisa hitung kemiringannya dan kemiringannya sama dengan kemiringan garis.
Panjang sisi datar = 1 karena posisi sisi datar ada pada x=1 dan x=2 jadi panjang sisi datar = 1 atau (Δx) = 1 (Δ= delta / selisih). Untuk panjang sisi tegak dengan perlakuan yang sama didapat nilai Δy = 1.75 (hayo coba hitung sendiri). Nah dari nilai tersebut nilai kemiringan garis itu / gradien dari garis = 1.75/1 atau 1.75
Kalau garis enak, tiap titik kemiringannya sama. Lah kalau kurva yang sebelumnya? Tiap titik dari kurva itu punya kemiringan yang berbeda.
Nah! Fungsi dari turunan sebenarnya cuma melakukan estimasi nilai dari kurva itu.
Dengan menggunakan turunan kita bisa mengetahui kemiringan kurva di suatu titik dan biasanya dilambangkan dengan notasi dy/dx. Notasi ini bukan tanpa makna, dy/dx sebenarnya hanyalah Δy/Δx (gradient!) yang menggunakan nilai selisih yang sangat kecil (Banget!).
Coba buka link desmos berikut, disitu kita bisa memainkan kurva untuk memvisualisasikan turunan:
https://www.desmos.com/calculator/hfmiedcs36
Ketika nilai “h” semakin kecil maka kemiringan kurva semakin mendekati akurat.
Nilai “i” merupakan titik dimana kita mau cari tahu kemiringan kurva.
Oke coba formulasikan bertahap contoh alien yang sebelumnya.
Turunan (kemiringan) dari fungsi f(x) adalah:
Nah nilai delta y dan delta x didapat dari:
Ingat “h” merupakan selisih yang nilainya kecil banget!
Kita coba pakai fungsi f(x)=x² biar gampang terus dijabarkan.
Udah gitu aja. Sekarang kalau nilai “h” itu kecil banget misal 1 x 10^-sekian nilai 2x ya cuma 2x + seetik. Seetiknya saking kecilnya bisa dibuang jadi 2x aja. Jadi turunan (gradien tiap titik) nilai f(x) = x² adalah 2x.
Jadi misal pada titik x=2 kemiringan kurvanya ≈ 4, titik 0 kemiringan kurvanya ≈ 0
Kalau dibandingkan dengan rumus turunan “hafalan” cocok kan?
Kalo ndak percaya coba buktikan sendiri deh, hitung gradiennya di simulasi desmos sebelumnya. *coba juga ganti rumus f(x)nya kalau penasaran :D
Terus apa hubungannya sama machine learning / neural network?
Turunan ini berguna untuk menghitung gradient descent dari nilai error prediksi. Esensinya adalah algoritma gradient descent berusaha meminimalisir error agar prediksi machine learning baik itu neural net ataupun yang lainnya semakin akurat.