Penurunan Gradien

Diperbarui pada September 06, 2024 3 Menit Baca


Perkenalan

Bayangkan kita mempunyai fungsi f(x)f(x) dan kita ingin mencari nilai minimumnya. Apa yang akan kamu lakukan?

Sederhana bukan? Kita hanya perlu menyelesaikan persamaan berikut:

f(x)=0f'(x) = 0

Masalahnya adalah menemukan rumus ff' 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 ff'.

Mari kita membangun intuisi

Misalkan kita mempunyai fungsi f dengan grafik yang bersesuaian:

Graph 1

Mari kita mulai dengan titik acak x0x_{0}. Tujuannya adalah untuk memindahkan titik ini dan membuatnya semakin dekat ke xx* sehingga f(f'(x*)=0) = 0. Jadi permasalahannya dapat dibagi menjadi dua bagian:

  • Ke arah mana kita harus memindahkan titik xx ? Kiri atau Kanan?

  • Berapa banyak kita harus memindahkannya?

Arahnya

Mari kita membangun intuisi untuk menjawab pertanyaan pertama. Perhatikan poin berikut ini:

Graph 2

Graph 3

Perhatikan bahwa:

  • bila titik x0x_{0} berada di sebelah kanan titik optimal xx* garis singgungnya naik.

  • bila titik x0x_{0} berada di sebelah kanan titik optimal xx* garis singgungnya turun.

Arah suatu garis ditentukan oleh tanda kemiringannya:

  • Sebuah garis naik \menyiratkan\menyiratkan kemiringan aa adalah positif.

  • Garis turun \menyiratkankemiringan\menyiratkan kemiringan a$ negatif.

Perhatikan bahwa: \

Kemiringan garis singgung suatu fungsi di titik tertentu x0x_{0} tidak lebih dari turunan di titik tersebut f(x0)f'(x_{0}):

tangent(x0):g(x)=f(x0).(xx0)+f(x0)tangent(x*{0}): g(x) = f'(x*{0}).(x-x*{0}) + f(x*{0})

Jadi sebagai jawaban atas pertanyaan "Kemana kita harus pindah x0x_{0} ?":

  • f(x0)<0f'(x_{0}) < 0     \implies x0x_{0} di sebelah kanan xx*     \implies Kita perlu memindahkan x0x_{0} ke kiri.

  • f(x0)>0f'(x_{0}) > 0     \implies x0x_{0} ke kiri xx*     \implies Kita perlu memindahkan x0x_{0} ke kanan.

Langkah-langkahnya

Sekarang untuk pertanyaan kedua, Berapa banyak yang harus kita pindahkan x0x_{0} ?

Lihatlah contoh berikut:

Graph 4

Graph 5

Kita dapat menyimpulkan bahwa:

  • x0x_{0} mendekati xx* => Kemiringan garis singgungnya kecil => f(x0)f'(x_{0}) kecil.

  • x0x_{0}jauh dari xx* => Kemiringan garis singgungnya besar => f(x0)f'(x_{0}) besar.

Dengan menjawab kedua pertanyaan tersebut, kami menyimpulkan bahwa hanya pengetahuan tentang turunan di titik x0x_{0} yang dapat memberi kita banyak wawasan tentang arah dan jarak dari titik optimal x0x_{0}.

Penurunan gradien

Penurunan gradien merupakan rumusan jawaban dari dua pertanyaan sebelumnya. Ini adalah algoritme berulang pengoptimalan yang memperkirakan fungsi minimum xx* dimulai dari titik awal acak x0x_{0}. Algoritmanya dinyatakan sebagai berikut:

xn+1=xnlr×dfdx_nx*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x\_{n}}

Di mana:

  • dfdxn\frac{\mathrm{d} f}{\mathrm{d} x*{n}} tidak lebih dari turunan ff pada titik xnx*{n}.

  • lrlr adalah konstanta positif yang menentukan seberapa besar langkah yang akan diambil.

Perhatikan bahwa:

  • xnx_{n} berada di sebelah kanan xx* => dfdxn>0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 => xn+1=xnpositifx_{n+ 1} = x_{n} - positif => xnx_{n} bergerak ke kiri.

  • xnx_{n} berada di sebelah kiri xx* => dfdxn<0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0 => xn+1=xn+positifx*{n +1} = x*{n} + positif => xnx_{n} bergerak ke kanan.

  • xnx_{n} mendekati xx* => dfdxn\frac{\mathrm{d} f}{\mathrm{d} x_{n}} mendekati 00 => Pembaruan kecil ke xnx_{ n}.

Kuis

  • Kapan penurunan gradien berhenti berulang:

  • Ketika xnx_{n} cukup kecil.

  • Ketika xnx_{n} mendekati x0x_{0} .

  • Ketika dfdx_n=0\frac{\mathrm{d} f}{\mathrm{d} x\_{n}} = 0 . XXX

  • Bagaimana cara kita memilih x0x_{0}:

  • Kami mengambilnya secara acak. XXX

  • Kami mengambilnya di sekitar xnx{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.