Mengurangi Kerugian: Penurunan Gradien

Diagram pendekatan berulang pada pembahasan sebelumnya (Gambar 1) berisi kotak berwarna hijau yang tidak substansial bernama "Menghitung pembaruan parameter". Kini kita akan mengganti hal algoritmik yang tidak terlalu jelas tersebut dengan sesuatu yang lebih substansial.

Misalkan kita memiliki waktu dan fasilitas penghitungan untuk menghitung kerugian bagi semua nilai \(w_1\) yang memungkinkan. Untuk jenis masalah regresi yang telah kita amati, plot hasil kerugian vs. \(w_1\) akan selalu konveks. Dengan kata lain, plot akan selalu berbentuk mangkuk, seperti ini:

Titik kedua pada kurva berbentuk U, titik ini sedikit lebih dekat ke titik minimum.

Gambar 2. Masalah regresi menghasilkan kerugian konveks vs plot bobot.

 

Masalah konveks hanya memiliki satu nilai minimum; yaitu, hanya satu tempat yang mana kemiringan tepat bernilai 0. Nilai minimum tersebut bertemu pada satu titik (konvergensi).

Menghitung fungsi kerugian untuk setiap nilai \(w_1\) yang memungkinkan dari keseluruhan kumpulan data akan menjadi cara yang tidak efisien untuk menemukan titik konvergensi. Mari kita periksa mekanisme yang lebih baik dan sangat populer dalam machine learning, yang disebut penurunan gradien.

Tahap pertama dalam penurunan gradien adalah memilih nilai awal (titik awal) untuk \(w_1\). Titik awal tidak terlalu penting; karena itu, banyak algoritme hanya menetapkan \(w_1\) ke 0 atau memilih nilai acak. Gambar berikut menunjukkan bahwa kita telah memilih titik awal yang sedikit lebih besar dari 0:

Titik kedua pada kurva berbentuk U, titik ini sedikit lebih dekat ke titik minimum.

Gambar 3. Titik awal untuk penurunan gradien.

Kemudian algoritme penurunan gradien menghitung gradien kurva kerugian pada titik awal. Di Gambar 3 ini, gradien kerugian sama dengan turunan (kemiringan) kurva, dan menunjukkan mana yang "lebih hangat" (mendekati titik minimum) atau "lebih dingin" (menjauhi titik minimum). Saat ada beberapa bobot, gradien adalah vektor dari turunan parsial yang terkait dengan bobot.

Perhatikan bahwa gradien adalah vektor, sehingga memiliki kedua karakteristik berikut:

  • arah
  • magnitudo

Gradien selalu menunjukkan ke arah peningkatan paling curam dalam fungsi kerugian. Algoritme penurunan gradien mengambil langkah ke arah gradien negatif untuk mengurangi kerugian secepat mungkin.

Titik kedua pada kurva berbentuk U, titik ini sedikit lebih dekat ke titik minimum.

Gambar 4. Penurunan gradien bergantung pada gradien negatif.

Untuk menentukan titik berikutnya di sepanjang kurva fungsi kerugian, algoritme penurunan gradien menambahkan beberapa pecahan dari magnitudo gradien ke titik awal seperti yang ditunjukkan pada gambar berikut:

Titik kedua pada kurva berbentuk U, titik ini sedikit lebih dekat ke titik minimum.

Gambar 5. Langkah gradien memindahkan kita ke titik berikutnya pada kurva kerugian.

Kemudian penurunan gradien mengulangi proses ini, bergerak mendekat ke nilai minimum.