Mengurangi Kerugian: Penurunan Gradien

Diagram pendekatan berulang (Gambar 1) berisi kotak bergelombang berwarna hijau yang bertuliskan "Menghitung update parameter". Sekarang kita akan mengganti hal algoritma yang ada dengan sesuatu yang lebih substansial.

Misalkan kita memiliki waktu dan resource komputasi untuk menghitung kerugian bagi semua kemungkinan nilai \(w_1\). Untuk jenis masalah regresi yang telah kita periksa, plot kerugian vs. \(w_1\) yang dihasilkan akan selalu konveks. Dengan kata lain, plot akan selalu berbentuk mangkuk, seperti ini:

Plot kurva berbentuk U, dengan sumbu vertikal diberi label 'kerugian' dan sumbu horizontal diberi label sebagai nilai bobot w i.

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

 

Masalah konveks hanya memiliki satu nilai minimum; yaitu, hanya satu tempat yang kemiringannya persis 0. Nilai minimum tersebut adalah titik bertemunya fungsi kerugian.

Menghitung fungsi kerugian untuk setiap nilai \(w_1\)yang ada di seluruh set 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; oleh karena itu, banyak algoritma 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:

Plot kurva berbentuk U. Titik yang berada di tengah-tengah sisi kiri kurva diberi label 'Titik Awal'.

Gambar 3. Titik awal untuk penurunan gradien.

Kemudian, algoritme penurunan gradien menghitung gradien kurva kerugian di titik awal. Di Gambar 3, gradien kerugian sama dengan turunan (kemiringan) kurva, dan menunjukkan arah mana yang "lebih hangat" atau "lebih dingin". Jika ada beberapa bobot, gradien adalah vektor turunan parsial yang terkait dengan bobot.

Perhatikan bahwa gradien adalah vektor sehingga memiliki kedua karakteristik berikut:

  • arah
  • magnitudo (magnitudo)

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

Plot kurva berbentuk U. Titik di sisi kiri kurva diberi label 'Titik Awal'. Panah berlabel 'gradien negatif' menunjuk dari titik ini ke kanan.

Gambar 4. Penurunan gradien bergantung pada gradien negatif.

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

Plot kurva berbentuk U. Titik di sisi kiri kurva diberi label 'Titik Awal'. Panah berlabel 'gradien negatif' menunjuk dari titik ini ke kanan. Panah lain menunjuk dari ujung panah pertama ke bawah ke titik kedua pada kurva. Titik kedua diberi label 'titik berikutnya'.

Gambar 5. Langkah gradien memindahkan kita ke titik berikutnya di kurva loss.

Penurunan gradien kemudian mengulangi proses ini, bergerak mendekat ke nilai minimum.