Penurunan Gradien
Diperbarui pada September 06, 2024 3 Menit Baca

Perkenalan
Bayangkan kita mempunyai fungsi $f(x)$ dan kita ingin mencari nilai minimumnya. Apa yang akan kamu lakukan?
Sederhana bukan? Kita hanya perlu menyelesaikan persamaan berikut:
$$f’(x) = 0$$
Masalahnya adalah menemukan rumus $f’$ tidak selalu mudah karena cenderung sangat rumit terutama dalam pembelajaran mendalam yang menangani fungsi-fungsi kompleks. Jadi kita perlu mencari metode lain yang dapat memberikan kita fungsi minimum tanpa perlu mencari rumus turunan $f’$.
Mari kita membangun intuisi
Misalkan kita mempunyai fungsi f dengan grafik yang bersesuaian:
Mari kita mulai dengan titik acak $x_{0}$. Tujuannya adalah untuk memindahkan titik ini dan membuatnya semakin dekat ke $x*$ sehingga $f’($x*$) = 0$. Jadi permasalahannya dapat dibagi menjadi dua bagian:
-
Ke arah mana kita harus memindahkan titik $x$ ? Kiri atau Kanan?
-
Berapa banyak kita harus memindahkannya?
Arahnya
Mari kita membangun intuisi untuk menjawab pertanyaan pertama. Perhatikan poin berikut ini:
Perhatikan bahwa:
-
bila titik $x_{0}$ berada di sebelah kanan titik optimal $x*$ garis singgungnya naik.
-
bila titik $x_{0}$ berada di sebelah kanan titik optimal $x*$ garis singgungnya turun.
Arah suatu garis ditentukan oleh tanda kemiringannya:
-
Sebuah garis naik $\menyiratkan$ kemiringan $a$ adalah positif.
-
Garis turun $\menyiratkan kemiringan $a$ negatif.
Perhatikan bahwa: \
Kemiringan garis singgung suatu fungsi di titik tertentu $x_{0}$ tidak lebih dari turunan di titik tersebut $f’(x_{0})$:
$$ tangent(x*{0}): g(x) = f’(x*{0}).(x-x*{0}) + f(x*{0}) $$
Jadi sebagai jawaban atas pertanyaan “Kemana kita harus pindah $x_{0}$ ?”:
-
$f’(x_{0}) < 0$ $\implies$ $x_{0}$ di sebelah kanan $x*$ $\implies$ Kita perlu memindahkan $x_{0}$ ke kiri.
-
$f’(x_{0}) > 0$ $\implies$ $x_{0}$ ke kiri $x*$ $\implies$ Kita perlu memindahkan $x_{0}$ ke kanan.
Langkah-langkahnya
Sekarang untuk pertanyaan kedua, Berapa banyak yang harus kita pindahkan $x_{0}$ ?
Lihatlah contoh berikut:
Kita dapat menyimpulkan bahwa:
-
$x_{0}$ mendekati $x*$ => Kemiringan garis singgungnya kecil => $f’(x_{0})$ kecil.
-
$x_{0}$jauh dari $x*$ => Kemiringan garis singgungnya besar => $f’(x_{0})$ besar.
Dengan menjawab kedua pertanyaan tersebut, kami menyimpulkan bahwa hanya pengetahuan tentang turunan di titik $x_{0}$ yang dapat memberi kita banyak wawasan tentang arah dan jarak dari titik optimal $x_{0}$.
Penurunan gradien
Penurunan gradien merupakan rumusan jawaban dari dua pertanyaan sebelumnya. Ini adalah algoritme berulang pengoptimalan yang memperkirakan fungsi minimum $x*$ dimulai dari titik awal acak $x_{0}$. Algoritmanya dinyatakan sebagai berikut:
$$ x*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x_{n}} $$
Di mana:
-
$ \frac{\mathrm{d} f}{\mathrm{d} x*{n}} $ tidak lebih dari turunan $f$ pada titik $x*{n}$.
-
$lr$ adalah konstanta positif yang menentukan seberapa besar langkah yang akan diambil.
Perhatikan bahwa:
-
$x_{n}$ berada di sebelah kanan $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 $ => $ x_{n+ 1} = x_{n} - positif $ => $x_{n}$ bergerak ke kiri.
-
$x_{n}$ berada di sebelah kiri $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0$ => $ x*{n +1} = x*{n} + positif $ => $x_{n}$ bergerak ke kanan.
-
$x_{n}$ mendekati $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ mendekati $0$ => Pembaruan kecil ke $x_{ n}$.
Kuis
-
Kapan penurunan gradien berhenti berulang:
-
Ketika $x_{n}$ cukup kecil.
-
Ketika $x_{n}$ mendekati $x_{0}$ .
-
Ketika $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} = 0 $. XXX
-
Bagaimana cara kita memilih $x_{0}$:
-
Kami mengambilnya secara acak. XXX
-
Kami mengambilnya di sekitar $x{n}$.
-
Itu tergantung masalahnya.
-
Mengapa kita memerlukan penurunan gradien:
-
Karena komputer tidak cukup kuat untuk menghitung turunan.
-
Karena sangat sulit menemukan rumus turunan model deep learning. XXX
-
Karena fungsi memiliki lebih dari satu minimum lokal.