System Init
0%
LOADING_ASSETSv2.0.26
blogs/gradient-descent-dalam-mencari-tempat-nongkrong
//Khay
Read in English

Gradient Descent Dalam Mencari Tempat Nongkrong

MathCoffeeAlgorithm

Pernah ga sih kalian muter-muter nyari tempat nongkrong, dari ujung Braga nyampe Dago atas, cuma buat berujung balik lagi ke warkop deket kosan?

Gue sering banget liat temen-temen gue ngalamin ini. Mereka punya list panjang kafe estetik di kepala, tapi pas eksekusi malah kena infinite loop kebingungan. Terus ngeluh capek. Ya gimana ga capek, lu nyari absolute optimum di search space yang tiap jam berubah gara-gara macet sama cuaca.

Ini tuh masalah klasik optimasi. Kalo lu pernah belajar kalkulus atau setidaknya denger istilah machine learning, lu pasti tau yang namanya Gradient Descent. Algoritma ini simpel banget idenya: lu lagi di atas gunung, pengen turun ke lembah (titik paling rendah alias minimum cost atau kekecewaan lu), tapi keadaan gelap gulita. Apa yang lu lakuin? Lu raba tanah sekeliling, cari turunan paling curam, terus melangkah pelan-pelan ke arah situ.

Nah kenapa orang-orang susah banget nerapin ini pas nyari kafe?

Karena otak manusia suka banget nyari global minimum. Pengennya kopi paling enak, harga paling murah, wifi paling kenceng, colokan di tiap meja, dan parkiran seluas bandara. Ekspektasi lu ketinggian bro. Makin banyak constraint yang lu pasang, makin susah nyari feasible region-nya. Ujung-ujungnya lu dapet NullPointerException karena tempat kayak gitu eksisnya cuma di imajinasi lu.

Gini cara nerapin gradient descent buat nyari tempat nongkrong:

Pertama, inisialisasi random. Random initialization ini penting. Jangan kelamaan mikir di kosan. Pilih satu arah asal aja, misal ah jalan aja dulu ke arah Dipatiukur.

Kedua, hitung gradient kekecewaan. Pas di jalan, lu evaluasi kondisi sekitar. Macet ga? Kalo macetnya parah, berarti cost function lu naik, lu harus ganti arah ke jalan yang lebih sepi.

Ketiga, update posisi dengan learning rate yang pas. Nah ini krusial. Kalo learning rate lu kegedean, lu bakal overshoot. Misal lu liat kafe rame dikit, lu langsung cabut nyari kafe lain di Lembang. Kejauhan anjir. Lu malah buang bensin dan waktu. Tapi kalo learning rate lu kekecilan, lu bakal stuck nyari parkiran di satu gang sempit selama setengah jam. Gerak dikit, evaluasi, gerak lagi.

Keempat, terima local minimum. Ini yang paling susah buat kaum perfeksionis. Pas lu nemu kafe yang kopinya lumayan, ada colokan nganggur, dan wifinya bisa buat buka stackoverflow, yaudah berhenti di situ. Jangan mikir di depan sana mungkin ada yang lebih bagus. Local minimum is perfectly fine. Daripada lu ngejar global minimum tapi berakhir dehidrasi di tengah kemacetan Pasupati.

Satu hal yang sering bikin algoritma ini gagal di tongkrongan adalah jumlah parameter. Kalo lu nyari kafe sendirian, gampang, cuma satu neural network yang kerja. Coba lu jalan berlima. Kepala A pengen matcha, kepala B pengen sate taichan, kepala C pengen live music. Ini namanya multi-objective optimization problem dan sumpah deh nyelesaiinnya bikin rambut rontok. Makanya gue lebih seneng nongkrong sendiri atau maksimal bertiga. Kurangin dimensi masalah biar komputasi otak ga berat.

Akhir kata, stop romantisasi proses nyari tempat nongkrong pake embel-embel spontaneous adventure. Itu cuma alibi buat bad planning. Pake kalkulus, idup lu lebih gampang.