
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 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