Stochastic Gradient Descent (SGD): Teori dan Penerapan

Stochastic Gradient Descent

Dalam dunia machine learning dan data science, proses training model bukan sekadar memasukkan data lalu menunggu hasil. Ada proses optimasi yang menentukan seberapa baik model belajar dari data. Optimasi inilah yang menjadi jantung dari hampir semua algoritma pembelajaran mesin modern. Tanpa optimasi yang tepat, model bisa gagal menemukan pola, lambat konvergen, atau bahkan tidak belajar sama sekali.

Salah satu algoritma optimasi yang paling populer dan fundamental adalah Stochastic Gradient Descent (SGD). Walaupun terlihat sederhana, SGD menjadi fondasi dari banyak metode optimasi lanjutan yang dipakai di deep learning. Memahami SGD bukan hanya penting untuk lulus mata kuliah machine learning, tapi juga krusial bagi siapa pun yang ingin membangun model AI yang efisien dan scalable.

Apa Itu Stochastic Gradient Descent (SGD)?

Stochastic Gradient Descent (SGD) adalah algoritma optimasi yang digunakan untuk meminimalkan fungsi loss dengan cara memperbarui parameter model secara bertahap menggunakan sebagian kecil data. Berbeda dengan pendekatan klasik yang menggunakan seluruh dataset sekaligus, SGD melakukan update berdasarkan satu data atau sampel acak pada setiap iterasi.

Secara sederhana, SGD bekerja dengan prinsip “belajar sedikit demi sedikit”. Model tidak menunggu semua data diproses untuk memperbarui bobot, tetapi langsung melakukan update begitu satu data selesai dihitung. Pendekatan ini membuat SGD jauh lebih cepat dan efisien, terutama ketika berhadapan dengan dataset berukuran besar.

Perbedaan utama antara Gradient Descent dan Stochastic Gradient Descent terletak pada jumlah data yang digunakan dalam setiap langkah update. Gradient Descent menggunakan seluruh dataset, sedangkan SGD hanya menggunakan satu sampel acak. Tujuan utama penggunaan SGD adalah mempercepat proses training sekaligus memungkinkan model belajar secara dinamis, terutama pada skenario data besar dan data streaming.

Konsep Dasar Gradient Descent

Untuk memahami SGD, konsep dasar Gradient Descent perlu dipahami terlebih dahulu. Gradient Descent berfokus pada satu tujuan utama, yaitu meminimalkan fungsi loss. Fungsi loss merepresentasikan seberapa besar kesalahan prediksi model dibandingkan dengan nilai sebenarnya. Semakin kecil nilai loss, semakin baik performa model.

Gradien adalah turunan dari fungsi loss terhadap parameter model. Nilai gradien menunjukkan arah dan seberapa besar perubahan parameter yang diperlukan untuk menurunkan error. Dalam konteks optimasi, gradien selalu mengarah ke arah kenaikan, sehingga algoritma harus bergerak ke arah sebaliknya untuk mencapai nilai minimum.

Bayangkan Gradient Descent seperti menuruni bukit berkabut. Kamu tidak tahu posisi lembah terdalam, tetapi kamu bisa merasakan kemiringan tanah di bawah kaki. Dengan mengikuti arah turunan paling curam secara perlahan, kamu akhirnya akan sampai ke titik terendah. SGD mengikuti prinsip yang sama, tetapi dengan informasi kemiringan yang lebih “berisik” karena hanya melihat sebagian kecil data.

Cara Kerja Stochastic Gradient Descent

Cara kerja Stochastic Gradient Descent dapat dijelaskan melalui beberapa tahapan utama berikut:

  1. Inisialisasi parameter model
    Model dimulai dengan bobot awal yang biasanya diacak. Nilai awal ini sangat berpengaruh pada jalur optimasi, meskipun pada akhirnya model diharapkan mencapai titik minimum.
  2. Pengambilan satu data secara acak
    Berbeda dengan batch method, SGD hanya mengambil satu sampel data secara acak dari dataset. Inilah yang membuat prosesnya “stochastic” atau acak.
  3. Perhitungan loss dan gradien
    Model menghitung nilai loss berdasarkan satu data tersebut, lalu menghitung gradien terhadap parameter model.
  4. Update parameter model
    Parameter diperbarui menggunakan nilai gradien dan learning rate. Update ini langsung dilakukan tanpa menunggu data lain.
  5. Pengulangan hingga konvergen
    Proses ini diulang berkali-kali hingga model mencapai kondisi stabil atau memenuhi kriteria berhenti.

Pendekatan ini membuat SGD sangat cepat, tetapi juga menyebabkan fluktuasi pada nilai loss. Namun, justru fluktuasi inilah yang membantu model keluar dari local minimum.

Rumus Stochastic Gradient Descent

Rumus dasar Stochastic Gradient Descent dituliskan sebagai:

θ=θη×L(θ;xi,yi)θ = θ − η × ∇L(θ; xᵢ, yᵢ)

Penjelasan komponen rumus:

  • θ(theta)θ (theta) adalah parameter atau bobot model
  • η(eta)η (eta) adalah learning rate
  • L∇L adalah gradien dari fungsi loss
  • (xi,yi)(xᵢ, yᵢ) adalah satu sampel data

Secara intuitif, rumus ini berarti parameter lama dikurangi dengan sejumlah perubahan kecil yang ditentukan oleh gradien dan learning rate. Learning rate berfungsi sebagai pengontrol seberapa besar langkah yang diambil dalam setiap update.

Jenis-Jenis Gradient Descent

Gradient Descent memiliki beberapa variasi utama:

  1. Batch Gradient Descent
    Menggunakan seluruh dataset untuk setiap update. Stabil tetapi sangat lambat untuk data besar.
  2. Stochastic Gradient Descent
    Menggunakan satu sampel data per update. Cepat dan efisien, tetapi lebih berisik.
  3. Mini-Batch Gradient Descent
    Kombinasi keduanya, menggunakan sebagian kecil data. Paling sering digunakan dalam praktik.

Masing-masing metode memiliki kelebihan dan kekurangan tergantung pada ukuran dataset dan kebutuhan komputasi.

Perbandingan Batch, Mini-Batch, dan SGD

MetodeJumlah DataKecepatanStabilitasCocok untuk
Batch GDSeluruh dataLambatSangat stabilDataset kecil
SGD1 dataSangat cepatTidak stabilDataset besar
Mini-BatchSebagian dataCepatCukup stabilDeep learning

Mini-batch sering menjadi pilihan utama karena memberikan keseimbangan antara efisiensi dan stabilitas.

Kelebihan Stochastic Gradient Descent

  1. Efisiensi komputasi
    SGD sangat efisien karena tidak perlu memproses seluruh dataset dalam satu iterasi. Ini sangat membantu saat bekerja dengan data besar.
  2. Skalabilitas tinggi
    Cocok untuk dataset besar dan data streaming, di mana data terus bertambah.
  3. Mampu keluar dari local minimum
    Sifat acaknya membantu model menjelajahi ruang solusi lebih luas.

Kekurangan Stochastic Gradient Descent

  1. Konvergensi tidak stabil
    Fluktuasi loss membuat proses training sulit dipantau secara langsung.
  2. Sensitif terhadap learning rate
    Kesalahan kecil dalam pemilihan learning rate dapat berdampak besar.
  3. Sulit mencapai minimum global
    SGD sering berhenti di sekitar minimum tanpa benar-benar stabil.

Kapan Sebaiknya Menggunakan SGD

  • Dataset berukuran besar
    Proses update berbasis batch kecil membuat SGD efisien untuk data skala besar.
  • Sumber daya komputasi terbatas
    Konsumsi memori relatif rendah dibanding optimizer adaptif.
  • Real-time atau online learning
    Cocok untuk data yang terus bertambah dan berubah secara dinamis.
  • Sebagai baseline eksperimen
    Sering digunakan sebagai pembanding awal sebelum beralih ke optimizer yang lebih kompleks.
  • Fokus pada generalisasi
    Dalam beberapa kasus, SGD menghasilkan performa generalisasi yang lebih baik dibanding optimizer adaptif.

Kesimpulan

Pada pembahasan kita di atas dapat kita simpulkan bahwa Stochastic Gradient Descent merupakan algoritma optimasi fundamental yang menjadi tulang punggung banyak metode pembelajaran mesin modern. Dengan pendekatan update berbasis sampel acak, SGD menawarkan efisiensi tinggi dan kemampuan skalabilitas yang luar biasa, terutama untuk dataset besar.

Walaupun memiliki tantangan seperti fluktuasi loss dan sensitivitas terhadap learning rate, pemahaman yang baik tentang konsep, rumus, dan cara kerjanya membuat SGD tetap relevan hingga saat ini.

Artikel ini merupakan bagian dari seri artikel belajar Kecerdasan Buatan dan jika ada ide topik yang mau kita bahas silahkan komen di bawah ya.

Write a Comment

Leave a Comment

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨