Gradient descent adalah algoritma untuk meminimalkan fungsi terdiferensialkan dengan mengambil langkah berulang ke arah yang paling menurunkannya secara lokal. Jika Anda mencari "apa itu gradient descent", gagasan intinya sederhana: hitung kemiringannya, bergerak sedikit menurun, lalu ulangi.

Metode ini banyak digunakan dalam optimisasi berbasis kalkulus dan dalam machine learning. Metode ini bekerja paling baik ketika Anda dapat menghitung turunan atau gradien dan memilih learning rate yang cukup kecil agar tetap stabil tetapi cukup besar agar tetap membuat kemajuan.

Dalam satu variabel, aturan pembaruannya adalah

xk+1=xkηf(xk),x_{k+1} = x_k - \eta f'(x_k),

dan dalam beberapa variabel menjadi

xk+1=xkηf(xk),\mathbf{x}_{k+1} = \mathbf{x}_k - \eta \nabla f(\mathbf{x}_k),

dengan η>0\eta > 0 sebagai learning rate. Learning rate mengontrol seberapa jauh setiap langkah bergerak, sehingga secara langsung memengaruhi apakah algoritma konvergen, berhenti berkembang, atau melampaui titik minimum.

Intuisi Gradient Descent

Gradien menunjuk ke arah naik. Jika tujuan Anda adalah minimisasi, maka langkah lokal yang alami adalah bergerak ke arah sebaliknya.

Aturan lokal itu tidak menjamin jawaban terbaik yang mungkin pada setiap masalah. Pada fungsi konveks, gradient descent dapat menuju minimum global. Pada fungsi non-konveks, metode ini bisa berhenti pada minimum lokal, daerah datar, atau titik stasioner lainnya.

Cara Kerja Algoritma Gradient Descent

Setiap iterasi menggunakan informasi kemiringan saat ini, memperbarui titik, lalu memeriksa apakah proses perlu dilanjutkan.

  1. Mulai dengan tebakan awal x0x_0 atau x0\mathbf{x}_0.
  2. Hitung turunan atau gradien pada titik saat ini.
  3. Perbarui dengan mengurangkan η\eta kali turunan atau gradien tersebut.
  4. Berhenti ketika gradien kecil, pembaruan menjadi sangat kecil, atau batas iterasi yang telah ditentukan tercapai.

Aturan pembaruan standar mengasumsikan bahwa fungsi objektif terdiferensialkan pada titik-titik tempat aturan itu diterapkan. Beberapa metode optimisasi menggunakan subgradien untuk masalah yang tidak mulus, tetapi itu adalah pengaturan yang berbeda.

Mengapa Learning Rate Penting dalam Gradient Descent

Learning rate η\eta adalah ukuran langkah.

Jika η\eta terlalu kecil, gradient descent biasanya bergerak ke arah yang benar tetapi bisa sangat lambat. Jika η\eta terlalu besar, pembaruan dapat melampaui minimum, memantul bolak-balik, atau bahkan divergen.

Anda dapat melihat tradeoff ini dengan jelas pada fungsi kuadratik, ketika kemiringan menjadi lebih curam saat Anda menjauh dari minimum. Ukuran langkah yang tampak aman di satu tempat bisa menjadi terlalu agresif di tempat lain.

Contoh Dikerjakan: Gradient Descent pada Fungsi Kuadratik

Perhatikan

f(x)=(x3)2.f(x) = (x-3)^2.

Fungsi ini memiliki minimum di x=3x=3. Turunannya adalah

f(x)=2(x3).f'(x) = 2(x-3).

Gunakan gradient descent dengan learning rate η=0.1\eta = 0.1 dan titik awal x0=0x_0 = 0.

Maka aturan pembaruannya adalah

xk+1=xk0.12(xk3)=xk0.2(xk3).x_{k+1} = x_k - 0.1 \cdot 2(x_k-3) = x_k - 0.2(x_k-3).

Mulai dari x0=0x_0 = 0:

x1=00.2(03)=0.6.x_1 = 0 - 0.2(0-3) = 0.6.

Lalu

x2=0.60.2(0.63)=1.08.x_2 = 0.6 - 0.2(0.6-3) = 1.08.

dan

x3=1.080.2(1.083)=1.464.x_3 = 1.08 - 0.2(1.08-3) = 1.464.

Setiap langkah bergerak lebih dekat ke 33, dan nilai fungsi menurun setiap kali. Itulah pola utama yang perlu diperhatikan: gradient descent tidak langsung melompat ke jawabannya. Metode ini memperbaiki estimasi melalui koreksi lokal yang berulang.

Varian Gradient Descent yang Umum

Batch Gradient Descent

Batch gradient descent menggunakan seluruh dataset untuk menghitung setiap pembaruan. Untuk objektif yang tetap, ini menghasilkan langkah yang deterministik, tetapi bisa mahal ketika dataset berukuran besar.

Stochastic Gradient Descent

Stochastic gradient descent memperbarui menggunakan satu sampel pada satu waktu. Setiap langkah lebih murah tetapi lebih berisik. Noise itu dapat membantu metode tetap bergerak, tetapi juga membuat lintasannya kurang mulus.

Mini-Batch Gradient Descent

Mini-batch gradient descent menggunakan sekelompok kecil sampel per langkah. Ini sering menjadi kompromi yang praktis karena mengurangi noise dibanding pembaruan stochastic murni, sambil tetap jauh lebih murah daripada pembaruan full-batch.

Varian-varian ini paling penting dalam machine learning, ketika fungsi objektif sering berupa rata-rata loss dari banyak contoh pelatihan.

Kesalahan Umum dalam Gradient Descent

Menganggap Learning Rate Hanya Hal Kosmetik

Mengubah η\eta mengubah perilaku algoritma itu sendiri. Metode yang konvergen untuk satu learning rate bisa gagal untuk learning rate lain.

Menganggap Gradient Descent Selalu Menemukan Minimum Global

Kesimpulan itu memerlukan syarat tertentu. Misalnya, kekonveksan memberikan jaminan yang jauh lebih kuat daripada lanskap non-konveks secara umum.

Mengabaikan Skala Fitur pada Masalah Terapan

Dalam masalah optimisasi dengan variabel yang skalanya buruk, satu arah bisa berubah jauh lebih cepat daripada arah lain. Gradient descent kemudian dapat bergerak zigzag dan konvergen dengan lambat kecuali masalahnya dirumuskan ulang atau diskalakan dengan lebih hati-hati.

Berhenti Hanya Karena Gradien Tidak Tepat Nol

Algoritma numerik jarang menunggu nol yang sempurna. Aturan penghentian praktis biasanya memeriksa apakah norma gradien, perubahan parameter, atau perubahan objektif sudah cukup kecil.

Kapan Gradient Descent Digunakan

Gradient descent digunakan dalam optimisasi numerik, statistika, dan machine learning. Metode ini sangat umum ketika solusi bentuk tertutup yang eksak tidak tersedia atau terlalu mahal untuk dihitung secara langsung.

Untuk masalah kecil dengan rumus sederhana, kalkulus mungkin dapat memberikan nilai minimum secara eksak. Gradient descent menjadi lebih berguna ketika ruang parameter besar, fungsi objektif memiliki banyak variabel, atau loss berasal dari dataset besar.

Coba Soal Serupa

Coba versi Anda sendiri dengan f(x)=(x5)2f(x) = (x-5)^2 dan titik awal x0=12x_0 = 12. Jalankan satu kasus dengan η=0.1\eta = 0.1 dan kasus lain dengan η=1.2\eta = 1.2. Melihat satu proses yang stabil dan satu yang tidak stabil membuat peran learning rate jauh lebih jelas daripada rumus saja.

Butuh bantuan mengerjakan soal?

Unggah pertanyaanmu dan dapatkan solusi terverifikasi langkah demi langkah dalam hitungan detik.

Buka GPAI Solver →