Intuisi Matematika di balik Algoritma Gradien Descent – ​​Menuju AI

Intuisi Matematika di balik Algoritma Gradien Descent – ​​Menuju AI

Penulis: Menuju Tim Editorial AI

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

Gambar oleh Gerd Altmann dari Pixabay

Deriving Gradient Descent Algorithm untuk Mean Squared Error

Pengarang: Pratik Shukla

“Pikiran bukanlah bejana yang harus diisi, tetapi api yang harus dinyalakan.” — Plutarch

Seri Blog Keturunan Gradien:

The Gradient Descent Algorithm Intuisi Matematika di balik Gradient Descent Algorithm (Anda di sini!) The Gradient Descent Algorithm & Variannya

Daftar Isi:

Pendahuluan Derivasi Algoritma Gradient Descent untuk Mean Squared Error Contoh Kerja Algoritma Gradient Descent Catatan Akhir Referensi dan Sumber Daya

Pengantar:

Selamat datang! Hari ini, kami sedang mengembangkan intuisi matematika yang kuat tentang bagaimana algoritma Gradient Descent menemukan nilai terbaik untuk parameternya. Memiliki pemahaman ini dapat membantu Anda mengetahui kesalahan dalam output pembelajaran mesin dan menjadi lebih nyaman dengan bagaimana algoritme penurunan gradien membuat pembelajaran mesin menjadi sangat kuat. Pada halaman berikutnya, kita akan menurunkan persamaan algoritma penurunan gradien untuk fungsi kesalahan kuadrat rata-rata. Kami akan menggunakan hasil blog ini untuk mengkodekan algoritma penurunan gradien. Mari selami!

Derivasi Algoritma Gradient Descent untuk Mean Squared Error:

1. Langkah — 1:

Data input ditampilkan dalam matriks di bawah ini. Di sini, kita dapat mengamati bahwa ada m contoh pelatihan dan n jumlah fitur.

Gambar — 1: Fitur masukan

Dimensi: X = (m, n)

2. Langkah — 2:

Matriks keluaran yang diharapkan ditunjukkan di bawah ini. Matriks keluaran yang diharapkan akan berukuran m*1 karena kita memiliki m contoh pelatihan.

Gambar — 2: Output yang diharapkan

Dimensi: Y = (m, 1)

3. Langkah — 3:

Kami akan menambahkan elemen bias dalam parameter kami untuk dilatih.

Gambar — 3: Elemen bias

Dimensi: = (1, 1)

4. Langkah — 4:

Dalam parameter kami, kami memiliki matriks bobot kami. Matriks bobot akan memiliki n elemen. Di sini, n adalah jumlah fitur dari dataset pelatihan kami.

Gambar — 4: Bobot untuk input

Dimensi: = (1, n)

5. Langkah — 5:

Gambar — 5: Perambatan maju dalam regresi linier sederhana

Nilai prediksi untuk setiap contoh pelatihan diberikan oleh,

Gambar — 6: Nilai prediksi

Harap dicatat bahwa kami mengambil transpos matriks bobot (β) untuk membuat dimensi kompatibel dengan aturan perkalian matriks.

Dimensi: nilai_prediksi = (1, 1) + (m, n) * (1, n)

— Mengambil transpos matriks bobot (β) —

Dimensi: nilai_prediksi = (1, 1) + (m, n) * (n, 1) = (m, 1)

6. Langkah — 6:

Kesalahan kuadrat rata-rata didefinisikan sebagai berikut.

Gambar — 7: Fungsi biaya

Dimensi: biaya = fungsi skalar

7. Langkah — 7:

Kami akan menggunakan aturan penurunan gradien berikut untuk menentukan parameter terbaik dalam kasus ini.

Gambar — 8: Perbarui parameter menggunakan algoritma penurunan gradien

Dimensi: = (1, 1) & = (1, n)

8. Langkah — 8:

Sekarang, mari kita cari turunan parsial dari fungsi biaya terhadap elemen bias (α).

Gambar — 9: Turunan parsial dari bias fungsi biaya wrt

Dimensi: (1, 1)

9. Langkah — 9:

Sekarang, kami mencoba menyederhanakan persamaan di atas untuk menemukan turunan parsial.

Gambar — 10: Menyederhanakan perhitungan

Dimensi: u = (m, 1)

10. Langkah — 10:

Berdasarkan Langkah — 9, kita dapat menulis fungsi biaya sebagai,

Gambar — 11: Fungsi biaya

Dimensi: fungsi skalar

11. Langkah — 11:

Selanjutnya, kita akan menggunakan aturan rantai untuk menghitung turunan parsial dari fungsi biaya sehubungan dengan intersep (α).

Gambar — 12: Menemukan turunan parsial dari fungsi biaya wrt bias

Dimensi: (m, 1)

12. Langkah — 12:

Selanjutnya, kita menghitung bagian pertama dari turunan parsial dari Langkah — 11.

Gambar — 13: Menemukan turunan parsial dari fungsi biaya wrt u

Dimensi: (m, 1)

13. Langkah — 13:

Selanjutnya, kami menghitung bagian kedua dari turunan parsial Langkah — 11.

Gambar — 14: Menemukan turunan parsial dari bias u wrt

Dimensi: fungsi skalar

14. Langkah — 14:

Selanjutnya, kita kalikan hasil Langkah — 12 dan Langkah — 13 untuk menemukan hasil akhir.

Gambar — 15: Menemukan turunan parsial dari fungsi biaya wrt biasGambar — 15: Menemukan turunan parsial dari fungsi biaya wrt bias

Dimensi: (m, 1)

15. Langkah — 15:

Selanjutnya, kita akan menggunakan aturan rantai untuk menghitung turunan parsial dari fungsi biaya terhadap bobot (β).

Gambar — 16: Menemukan turunan parsial dari bobot fungsi biaya wrt

Dimensi: (1, n)

16. Langkah — 16:

Selanjutnya, kami menghitung bagian kedua dari turunan parsial dari Langkah — 15.

Gambar — 17: Menemukan turunan parsial dari bobot wrt u

Dimensi: (m, n)

17. Langkah — 17:

Selanjutnya, kita kalikan hasil dari Langkah — 12 dan Langkah — 16 untuk menemukan hasil akhir dari turunan parsial.

Gambar — 18: Menemukan turunan parsial dari bobot fungsi biaya wrt

Sekarang, karena kami ingin memiliki n nilai bobot, kami akan menghapus bagian penjumlahan dari persamaan di atas.

Gambar — 19: Menemukan turunan parsial dari bobot fungsi biaya wrt

Harap dicatat bahwa di sini kita harus mentranspos bagian pertama dari perhitungan agar kompatibel dengan aturan perkalian matriks.

Dimensi: (m, 1) * (m, n)

— Mengambil transpos bagian kesalahan —

Dimensi: (1, m) * (m, n) = (1, n)

18. Langkah — 18:

Selanjutnya, kami menempatkan semua nilai yang dihitung pada Langkah — 7 untuk menghitung aturan gradien untuk memperbarui .

Gambar — 20: Memperbarui bias menggunakan penurunan gradien

Dimensi: = (1, 1)

19. Langkah — 19:

Selanjutnya, kami menempatkan semua nilai yang dihitung pada Langkah — 7 untuk menghitung aturan gradien untuk memperbarui .

Gambar — 21: Memperbarui bobot menggunakan penurunan gradien

Harap dicatat bahwa kita harus mentranspos nilai kesalahan untuk membuat fungsi kompatibel dengan aturan perkalian matriks.

Dimensi: = (1, n) — (1, n) = (1, n)

Contoh Kerja Algoritma Gradient Descent:

Sekarang, mari kita ambil contoh untuk melihat bagaimana algoritma penurunan gradien menemukan nilai parameter terbaik.

1. Langkah — 1:

Data input ditampilkan dalam matriks di bawah ini. Di sini, kita dapat mengamati bahwa ada 4 contoh pelatihan dan 2 fitur.

Gambar — 22: Matriks masukan

2. Langkah — 2:

Matriks keluaran yang diharapkan ditunjukkan di bawah ini. Matriks keluaran yang diharapkan akan berukuran 4*1 karena kami memiliki 4 contoh pelatihan.

Gambar — 23: Output yang diharapkan

3. Langkah — 3:

Kami akan menambahkan elemen bias dalam parameter kami untuk dilatih. Di sini, kami memilih nilai awal 0 untuk bias.

Gambar — 24: Elemen bias

4. Langkah — 4:

Dalam parameter kami, kami memiliki matriks bobot kami. Matriks bobot akan memiliki 2 elemen. Di sini, 2 adalah jumlah fitur dari dataset pelatihan kami. Awalnya, kita dapat memilih angka acak untuk matriks bobot.

Gambar — 25: Matriks bobot

5. Langkah — 5:

Selanjutnya, kita akan memprediksi nilai menggunakan matriks input, matriks bobot, dan bias.

Gambar — 26: Nilai prediksi

6. Langkah — 6:

Selanjutnya, kami menghitung biaya menggunakan persamaan berikut.

Gambar — 27: Menghitung biaya dalam prediksi

7. Langkah — 7:

Selanjutnya, kita menghitung turunan parsial dari fungsi biaya sehubungan dengan elemen bias. Kami akan menggunakan hasil ini dalam algoritme penurunan gradien untuk memperbarui nilai parameter bias.

Gambar — 28: Turunan parsial dari fungsi biaya dengan elemen bias

8. Langkah — 8:

Selanjutnya, kita menghitung turunan parsial dari fungsi biaya terhadap matriks bobot. Kami akan menggunakan hasil ini dalam algoritme penurunan gradien untuk memperbarui nilai matriks bobot.

Gambar — 29: Turunan parsial dari fungsi biaya dengan matriks bobot

9. Langkah — 9:

Selanjutnya, kita mendefinisikan nilai kecepatan belajar. Laju pembelajaran adalah parameter yang mengontrol kecepatan seberapa cepat model kita belajar.

Gambar — 30: Tingkat pembelajaran

10. Langkah — 10:

Selanjutnya, kami menggunakan aturan penurunan gradien untuk memperbarui nilai parameter elemen bias.

Gambar — 31: Memperbarui nilai elemen bias menggunakan algoritma penurunan gradien

11. Langkah — 11:

Selanjutnya, kami menggunakan aturan penurunan gradien untuk memperbarui nilai parameter dari matriks bobot.

Gambar — 32: Memperbarui nilai matriks bobot menggunakan algoritme penurunan gradien

12. Langkah — 12:

Sekarang, kami mengulangi proses ini untuk sejumlah iterasi untuk menemukan parameter terbaik untuk model kami. Dalam setiap iterasi, kami menggunakan nilai parameter yang diperbarui.

Catatan Akhir:

Jadi, ini adalah bagaimana kami menemukan aturan yang diperbarui menggunakan algoritma penurunan gradien untuk kesalahan kuadrat rata-rata. Kami harap ini memicu rasa ingin tahu Anda dan membuat Anda haus akan lebih banyak pengetahuan machine learning. Kami akan menggunakan aturan yang kami peroleh di sini untuk menerapkan algoritme penurunan gradien di blog mendatang, jadi jangan lewatkan angsuran ketiga dalam seri Gradient Descent di mana semuanya menjadi satu — grand finale!

Beli Pratik a Kopi!

Kutipan:

Untuk atribusi dalam konteks akademik, silakan kutip karya ini sebagai:

Shukla, et al., “Intuisi Matematika di balik Algoritma Gradien Keturunan”, Towards AI, 2022

BibTex Kutipan:

@artikel{latihan_222,
title={Intuisi Matematika di balik Algoritma Gradien Descent},
url={https://towardsai.net/neural-networks-with-python},
jurnal={Menuju AI},
publisher={Menuju AI Co.},
penulis={Pratik, Shukla},
editor={Lauren, Keegan},
tahun={2022},
bulan={Okt}
}

Referensi dan Sumber Daya:

Keturunan gradien — Wikipedia

Intuisi Matematika di balik Gradient Descent Algorithm awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Jeffrey Hayes