Gradient Descent
Gradient descent adalah proses mencari nilai minimum atau maksimum dari suatu fungsi dengan menggunakan algoritma gradient descent. Pada proses ini, gradient descent akan mencari nilai yang optimal dengan cara mengukur selisih antara nilai yang diinginkan (target) dengan nilai yang dihasilkan oleh model (prediksi). Selisih tersebut disebut dengan error, dan optimasi error gradient descent berusaha mengurangi error tersebut sekecil mungkin.
Proses optimasi error gradient descent terdiri dari beberapa tahap:
- Inisialisasi nilai awal: Nilai awal yang dipilih akan mempengaruhi proses optimasi yang akan dilakukan. Nilai awal yang baik akan mempercepat proses konvergensi (proses dimana algoritma optimisasi mencapai solusi yang optimal atau mendekati solusi tersebut), sedangkan nilai awal yang buruk akan memperlambat proses tersebut.
- Hitung gradien: Gradien merupakan turunan dari fungsi yang akan dioptimalkan, yang menunjukkan arah perubahan terbesar dari fungsi tersebut. Gradien ini akan digunakan untuk menentukan langkah selanjutnya yang akan dilakukan oleh gradient descent.
- Update nilai: Nilai yang telah diinisialisasi akan diupdate dengan menggunakan rumus gradient descent yang mengacu pada gradien yang telah dihitung sebelumnya.
- Ulangi proses: Proses ini akan terus diulang sampai nilai error mencapai nilai yang diinginkan atau sampai proses konvergensi mencapai batas yang telah ditentukan.
Dengan demikian, optimasi error gradient descent merupakan proses mencari nilai yang optimal dengan cara mengukur selisih antara target dan prediksi, dan mengurangi error tersebut serendah mungkin dengan menggunakan algoritma gradient descent.
Ada beberapa kelemahan dari Gradient Descent, diantaranya:
Trapped Local Minima
Trapped local minima adalah kondisi di mana gradient descent terjebak pada sebuah minima lokal saat mencari nilai minimum atau maksimum dari suatu fungsi. Minima lokal adalah titik minimum dari fungsi tersebut yang hanya terbatas pada wilayah tertentu saja. Pada kondisi trapped local minima, gradient descent tidak mampu menemukan solusi yang lebih baik di daerah lain, sehingga terjebak pada minima lokal tersebut.
Hal ini dapat terjadi karena gradient descent hanya berdasarkan pada informasi yang diperoleh dari gradien saat ini, sehingga algoritma ini tidak mampu melihat ke daerah lain yang mungkin memiliki solusi yang lebih baik. Oleh karena itu, gradient descent cenderung terjebak pada minima lokal apabila fungsi yang dianalisis memiliki banyak minima lokal. Illustrasinya sebagai berikut,
Terlihat pada gambar tersebut, Global minimum merupakan loss kita yang paling kecil, akan tetapi kita terjebak di local minima yang mana mesin berpikir bahwa itu merupakan loss terkecil karena setelahnya lossnya naik lagi, sehingga kita tidak bisa mencapai di global minimum.
Untuk mengatasi trapped local minima, biasanya dilakukan dengan mengubah nilai learning rate atau menggunakan algoritma optimisasi yang lain, seperti simulated annealing atau genetic algorithm. Namun, ada juga teknik yang lebih kompleks seperti second-order optimization atau trust region optimization yang dapat digunakan untuk mengatasi trapped local minima pada gradient descent.
Trapped in Plateau
Trapped in plateau adalah kondisi di mana gradient descent terjebak pada sebuah daerah yang datar atau tidak memiliki gradien yang signifikan saat mencari nilai minimum atau maksimum dari suatu fungsi. Kondisi ini dapat terjadi karena gradient descent hanya berdasarkan pada informasi yang diperoleh dari gradien saat ini, sehingga algoritma ini tidak mampu melihat ke daerah lain yang mungkin memiliki solusi yang lebih baik.
Trapped in plateau dapat terjadi jika data yang akan diolah memiliki distribusi yang tidak terstruktur atau tidak balance, atau jika nilai learning rate yang digunakan terlalu kecil. Hal ini dapat menyebabkan proses konvergensi menjadi lambat atau bahkan tidak mampu mencapai solusi yang optimal. Ilustrasinya sebagai berikut,
Terlihat pada gambar, mesin berpikir bahwa loss (titik merah) kita sudah mencapai minimum karena loss kita berada di dataran yang panjang, sehingga tidak mencapai global minimum.
Untuk mengatasi trapped in plateau, biasanya dilakukan dengan mengubah nilai learning rate atau menggunakan algoritma optimisasi yang lain, seperti simulated annealing atau genetic algorithm. Namun, ada juga teknik yang lebih kompleks seperti second-order optimization atau trust region optimization yang dapat digunakan untuk mengatasi trapped in plateau pada gradient descent. Selain itu, preprocessing data yang baik juga dapat membantu mengatasi trapped in plateau pada gradient descent.
Trapped in Saddle Points
Trapped in saddle points adalah kondisi di mana gradient descent terjebak pada sebuah titik sadel saat mencari nilai minimum atau maksimum dari suatu fungsi. Titik sadel adalah titik di mana fungsi memiliki nilai minimum pada salah satu dimensinya, namun memiliki nilai maksimum pada dimensi yang lain. Pada kondisi trapped in saddle points, gradient descent tidak mampu menemukan solusi yang lebih baik di daerah lain, sehingga terjebak pada titik sadel tersebut.
Hal ini dapat terjadi karena gradient descent hanya berdasarkan pada informasi yang diperoleh dari gradien saat ini, sehingga algoritma ini tidak mampu melihat ke daerah lain yang mungkin memiliki solusi yang lebih baik. Oleh karena itu, gradient descent cenderung terjebak pada titik sadel apabila fungsi yang dianalisis memiliki banyak titik sadel. Ilustrasinya sebagai berikut,
Terlihat loss (titik merah) kita berada di tengah-tengah saddle, yang mana mesin berpikir bahwa loss tersebut sudah mencapai minimum karena setelahnya loss kita akan naik lagi dimensi kuning, akan tetapi mesin tidak menemukan dimensi hijau yang menghasilkan loss minimum.
Untuk mengatasi trapped in saddle points, biasanya dilakukan dengan mengubah nilai learning rate atau menggunakan algoritma optimisasi yang lain, seperti simulated annealing atau genetic algorithm. Namun, ada juga teknik yang lebih kompleks seperti second-order optimization atau trust region optimization yang dapat digunakan untuk mengatasi trapped in saddle points pada gradient descent.
Narrow loss plane
Narrow loss plane adalah kondisi di mana fungsi loss atau error yang digunakan dalam proses pelatihan model machine learning memiliki bidang yang sempit atau kecil. Hal ini dapat menyebabkan gradient descent menjadi lambat dalam mencapai solusi yang optimal, karena algoritma tersebut harus melakukan banyak iterasi untuk mencapai titik minimum atau maksimum dari fungsi tersebut.
Kondisi narrow loss plane dapat terjadi apabila model yang digunakan tidak memiliki cukup parameter atau fitur untuk menangani data yang ada. Hal ini dapat menyebabkan model tersebut tidak mampu menangani variasi dari data yang ada, sehingga membuat bidang loss sempit. Untuk mengatasi narrow loss plane, biasanya dilakukan dengan scaling.
Sekian pembahasan tentang gradient descent. Semoga bermanfaat!!