Saya mencoba memahami optimasi gradient descent dalam algoritma ML (pembelajaran mesin). Saya mengerti bahwa ada fungsi biaya — di mana tujuannya adalah untuk meminimalkan kesalahan . Dalam skenario di mana bobot sedang dioptimalkan untuk memberikan kesalahan minimum, dan turunan parsial digunakan, apakah itu mengubah dan di setiap langkah atau merupakan kombinasi (misalnya, dalam beberapa iterasi hanya yang diubah dan ketika tidak mengurangi kesalahan lagi, turunannya dimulai dengan )? Aplikasi dapat berupa model regresi linier, model regresi logistik, atau meningkatkan algoritma.
w1
, penurunanw2
berdasarkan arah dari turunan parsial untuk mencapai minimum lokal dan hanya untuk mengkonfirmasi algoritma tidak akan selalu memberikan global minimum selalu?w1
danw2
atau yang dilakukan dengan tingkat pembelajaran / penyusutan sementara turunan parsial hanya memberikan arah penurunan?Di setiap iterasi, algoritma akan mengubah semua bobot pada saat yang sama berdasarkan vektor gradien. Bahkan, gradien adalah vektor. Panjang gradien sama dengan jumlah bobot dalam model.
Di sisi lain, mengubah satu parameter pada suatu waktu memang ada dan itu disebut algoritma layak koordinat , yang merupakan jenis algoritma optimasi gradien gratis . Dalam praktiknya, ini mungkin tidak berfungsi sebaik algoritma berbasis gradien.
Berikut ini adalah jawaban yang menarik tentang algoritma bebas gradien
Apakah mungkin untuk melatih jaringan saraf tanpa backpropagation?
sumber
Tujuan penurunan gradien adalah untuk meminimalkan fungsi biaya. Minimalisasi ini dicapai dengan menyesuaikan bobot, untuk kasus Anda w1 dan w2. Secara umum mungkin ada n bobot seperti itu.
Keturunan gradien dilakukan dengan cara berikut:
saat memperbarui bobot yang berat (W1 atau W2) berubah sepenuhnya ditentukan oleh gradien. Semua bobot diperbarui (beberapa bobot mungkin tidak berubah berdasarkan gradien).
sumber
sklearn
) atau paket R seperticaret
? Apakah pengguna dapat ditentukan hanya dalam fungsi gradient descent yang dibuat secara manual?Layak gradien diterapkan untuk kedua
w1
danw2
untuk setiap iterasi. Selama setiap iterasi, parameter diperbarui sesuai dengan gradien. Mereka kemungkinan memiliki turunan parsial yang berbeda.Periksa di sini .
sumber