Deep Learning: Artificial Neural Networks

Deep Learning: Artificial Neural Networks

APA ITU GRADIENT DESCENT?

Gradient descent adalah kunci agar kita bisa mendapatkan solusi yang optimum atau bisa juga disebut dengan istilah converge. Yang perlu diperhatikan adalah kita menginginkan solusi yang benar-benar optimum. Dalam bahasa statistik/matematik disebut dengan global optimum, yang merupakan lawan dari local optimum. Agar lebih mudah mari kita lihat ilustrasi berikut.

Ilustrasi gradient descent untuk kurva konveks

Melalui ilustrasi di atas kita bisa melihat ada sebuah bola berwarna merah dengan sumbu x adalah nilai y model dan sumbu y adalah nilai cost function nya. Bola ini akan mencari lembah yang paling rendah (kondisi paling minimum).

Bagaimana bola ini bergerak? Ia bergerak sesuai dengan nilai slope regresinya (garis lurus berwarna hijau). Slope adalah nilai koefisien a dalam persamaan regresi y=ax+b). Jika slopenya negarif (turun dari kiri atas ke kanan bawah, maka ia bergerak ke kanan). Sementara jika slopenya positif (naik dari kiri bawah ke kanan atas), maka ia bergerak ke kiri. Jika slopenya nol (garis lurus mendatar), maka ia tidak bergerak lagi dan sudah berada di posisi yang optimum. Posisi bola setelah bergerak digambarkan dengan bola berwarna biru.

Gradient descent akan mencari posisi paling minimum dengan cara ini. Hal ini akan sangat mudah jika kurvanya berbentuk konveks (lembah seperti bentuk U). Jika ia memerlukan solusi minimum, maka ia cukup mencari lembah yang paling rendah, dan jika solusinya harus maksimum, ia cukup mencari bukit yang paling tinggi.

Cepat tidaknya solusi yang ditemukan oleh gradient descent ditentukan oleh parameter learning rate.

Pertanyaan selanjutnya adalah bagaimana jika lembah dan bukitnya ada banyak? Maka tidak jarang metode gradient descent seperti ini akan terjebak di solusi semu (tidak benar-benar optimum). Dalam bahasa matematik kita menyebutnya dengan istilah local optimum, sementara solusi yang diinginkan adalah global optimum. Bagaimana solusinya?

Untuk bisa mendapatkan solusi global optimum dan tidak terjebak ke local optimum, maka kita tidak menggunakan metode gradient descent yang biasa. Dalam bahasa matematik kita sebut metode biasa ini sebagai metode batch gradient descent. Kita akan menggunakan metode yang lebih baik yaitu stochastic gradient descent.


STOCHASTIC GRADIENT DESCENT

Gradient descent dengan kurva non-conveks

Ilustrasi di atas menggambarkan sebuah kurva yang memiliki beberapa lembah dan beberapa bukit. Dalam kasus nyata, hal ini akan sering dihadapi, di mana nilai C bisa berubah-ubah naik dan turun sesuai dengan nilai y model. Jika menggunakan batch gradient descent, maka kita bisa terjebak di solusi lokal (local optimum). Solusinya adalah menggunakan stochastic gradient descent.

Sama halnya dengan batch gradient descent, metode stochastic juga mencari posisi yang paling rendah/tinggi. Namun secara teknis, ia tidak menghitung nilai C setelah semua baris dalam dataset dilewati, ia menghitung nilai C dan mengupdate nilai w untuk setiap baris yang dilewati.

Dalam pembahasan sebelumnya di sini, kita menggunakan metode batch gradient descent, di mana kita hitung menghitung nilai C setelah melewati semua baris (10 data mobil), dan mengupdate nilai w1, w2, dan w3 sekaligus.

Dalam teknik stochastic gradient descent, setiap kita melewati baris (pemilihan barisnya random), kita hitung nilai C, dan langsung mengupdate nilai w1, w2, dan w3. Di mana nantinya nilai w1, w2, dan w3 ini akan digunakan oleh baris selanjutnya (juga random). Kemudian kita hitung lagi nilai C, dan mundur lagi untuk update w1, w2, dan w3. Begitu seterusnya sampai didapatkan C paling minimum (global optimum).

Perbandingan kedua metode gradient descent ini bisa dimengerti melalui ilustrasi di bawah ini.

Perbedaan dua metode gradient descent

Kelebihan dari metode stochastic gradient descent adalah lebih cepat dan lebih efisien. Dalam hal teknik perhitungan dan pemakaian memori komputer, metode ini lebih cepat karena tidak perlu menampung semua perhitungan semua baris dan menyimpannya dalam memori, melainkan setiap selesai dengan satu baris langsung mengupdate nilai C dan W nya. Sampai di sini, saya harap pembaca mudah memahaminya ya.

Di halaman selanjutnya kita akan membahas ringkasan dari NN, dan menjelaskan tahapannya secara berurutan sehingga mudah dipahami.

Untuk melanjutkan membaca silakan klik halaman berikutnya di bawah ini.

Bagikan artikel ini:

Pages: 1 2 3 4 5 6 7

Subscribe
Notify of
guest
7 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Rocky Gultom
Rocky Gultom
4 years ago

Halo pak, artikel di atas bapak menyebutkan ”Jika semua baris (ada 8 baris) sudah dihitung nilai y modelnya, dan setiap kembali mengupdate nilai w untuk masing-masing barisnya maka disebut dengan 1 epoch”, pertanyaan saya 8 Baris itu berasal dari mana yah Pak?, bukan nya ada 10 baris data yah, apa saya yang salah tangkap..terima kasih pak

Rocky Gultom
Rocky Gultom
Reply to  Rocky Gultom
4 years ago

Maaf Pak, saya lihat pernyataan tsb ada di halaman 5 di topik pembahasan “Deep Learning: Artificial Neural Networks ” yang di highlight biru..Terima kasih

Tubagus Robbi Megantara
Tubagus Robbi Megantara
3 years ago

halo pak izin mengoreksi “Jika menggunakan batch gradient descent, maka kita bisa terjebak di solusi global (global optimum).” pada halaman 6, seharusnya solusi lokal ya pak. Barangkali membantu, terima kasih

Last edited 3 years ago by Tubagus Robbi Megantara
ahmad
2 years ago

maaf kak, kalau data kita 4 baris, berapa nilai batchsizenya?