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
dan dalam beberapa variabel menjadi
dengan 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.
- Mulai dengan tebakan awal atau .
- Hitung turunan atau gradien pada titik saat ini.
- Perbarui dengan mengurangkan kali turunan atau gradien tersebut.
- 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 adalah ukuran langkah.
Jika terlalu kecil, gradient descent biasanya bergerak ke arah yang benar tetapi bisa sangat lambat. Jika 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
Fungsi ini memiliki minimum di . Turunannya adalah
Gunakan gradient descent dengan learning rate dan titik awal .
Maka aturan pembaruannya adalah
Mulai dari :
Lalu
dan
Setiap langkah bergerak lebih dekat ke , 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 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 dan titik awal . Jalankan satu kasus dengan dan kasus lain dengan . 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 →