AI 101
Apa itu Backpropagation?

Apa itu Backpropagation?
Sistem pembelajaran dalam dapat mempelajari pola yang sangat kompleks, dan mereka melakukan ini dengan menyesuaikan bobot mereka. Bagaimana bobot jaringan saraf dalam disesuaikan tepatnya? Mereka disesuaikan melalui proses yang disebut backpropagation. Tanpa backpropagation, jaringan saraf dalam tidak akan dapat melakukan tugas seperti mengenali gambar dan menafsirkan bahasa alami. Memahami bagaimana backpropagation bekerja sangat penting untuk memahami jaringan saraf dalam secara umum, jadi mari kita diskusikan backpropagation dan lihat bagaimana proses ini digunakan untuk menyesuaikan bobot jaringan.
Backpropagation dapat sulit dipahami, dan perhitungan yang digunakan untuk melakukan backpropagation dapat cukup kompleks. Artikel ini akan berusaha memberi Anda pemahaman intuitif tentang backpropagation, menggunakan sedikit matematika kompleks. Namun, beberapa diskusi tentang matematika di balik backpropagation diperlukan.
Tujuan Backpropagation
Mari kita mulai dengan mendefinisikan tujuan backpropagation. Bobot jaringan saraf dalam adalah kekuatan koneksi antara unit jaringan saraf. Ketika jaringan saraf dibuat, asumsi dibuat tentang bagaimana unit-unit dalam satu lapisan terhubung dengan lapisan yang bergabung dengannya. Ketika data melewati jaringan saraf, bobot dihitung dan asumsi dibuat. Ketika data mencapai lapisan terakhir jaringan, prediksi dibuat tentang bagaimana fitur-fitur terkait dengan kelas dalam dataset. Perbedaan antara nilai prediksi dan nilai sebenarnya adalah kesalahan/kerugian, dan tujuan backpropagation adalah untuk mengurangi kerugian. Ini dilakukan dengan menyesuaikan bobot jaringan, membuat asumsi lebih seperti hubungan sebenarnya antara fitur-fitur input.
Melatih Jaringan Saraf Dalam
Sebelum backpropagation dapat dilakukan pada jaringan saraf, pelatihan reguler/maju jaringan saraf harus dilakukan. Ketika jaringan saraf dibuat, satu set bobot diinisialisasi. Nilai bobot akan berubah saat jaringan dilatih. Pelatihan maju jaringan saraf dapat dipahami sebagai tiga langkah diskrit: aktivasi neuron, transfer neuron, dan propagasi maju.
Ketika melatih jaringan saraf dalam, kita perlu menggunakan beberapa fungsi matematika. Neuron dalam jaringan saraf dalam terdiri dari data masukan dan fungsi aktivasi, yang menentukan nilai yang diperlukan untuk mengaktifkan node. Nilai aktivasi neuron dihitung dengan beberapa komponen, yaitu jumlah bobot dari input. Bobot dan nilai input bergantung pada indeks node yang digunakan untuk menghitung aktivasi. Angka lain harus dipertimbangkan saat menghitung nilai aktivasi, yaitu nilai bias. Nilai bias tidak berubah, jadi mereka tidak dikalikan dengan bobot dan input, mereka hanya ditambahkan. Semua ini berarti bahwa persamaan berikut dapat digunakan untuk menghitung nilai aktivasi:
Aktivasi = jumlah(bobot * input) + bias
Setelah neuron diaktifkan, fungsi aktivasi digunakan untuk menentukan apa output sebenarnya dari neuron akan menjadi. Fungsi aktivasi yang berbeda optimal untuk tugas pembelajaran yang berbeda, tetapi fungsi aktivasi yang umum digunakan termasuk fungsi sigmoid, fungsi Tanh, dan fungsi ReLU.
Setelah output neuron dihitung dengan menjalankan nilai aktivasi melalui fungsi aktivasi yang diinginkan, propagasi maju selesai. Propagasi maju hanya mengambil output dari satu lapisan dan membuatnya input untuk lapisan berikutnya. Input baru kemudian digunakan untuk menghitung fungsi aktivasi baru, dan output dari operasi ini diteruskan ke lapisan berikutnya. Proses ini berlanjut hingga akhir jaringan saraf.
Backpropagation dalam Jaringan
Proses backpropagation mengambil keputusan akhir dari pelatihan model, dan kemudian menentukan kesalahan dalam keputusan tersebut. Kesalahan dihitung dengan membandingkan output/keputusan jaringan dan output/desired yang diharapkan dari jaringan.
Setelah kesalahan dalam keputusan jaringan dihitung, informasi ini dipropagasikan kembali melalui jaringan dan parameter jaringan diubah sepanjang jalan. Metode yang digunakan untuk memperbarui bobot jaringan didasarkan pada kalkulus, khususnya, didasarkan pada aturan rantai. Namun, pemahaman tentang kalkulus tidak diperlukan untuk memahami ide di balik backpropagation. Cukup tahu bahwa ketika nilai output diberikan dari neuron, kemiringan nilai output dihitung dengan fungsi transfer, menghasilkan output turunan. Ketika melakukan backpropagation, kesalahan untuk neuron tertentu dihitung sesuai dengan rumus:
kesalahan = (output_diharapkan – output_sebenarnya) * kemiringan nilai output neuron
Ketika bekerja pada neuron dalam lapisan output, nilai kelas digunakan sebagai nilai yang diharapkan. Setelah kesalahan dihitung, kesalahan digunakan sebagai input untuk neuron dalam lapisan tersembunyi, yang berarti bahwa kesalahan untuk lapisan tersembunyi ini adalah kesalahan berbobot dari neuron yang ditemukan dalam lapisan output. Perhitungan kesalahan berjalan mundur melalui jaringan sepanjang bobot jaringan.
Setelah kesalahan untuk jaringan dihitung, bobot dalam jaringan harus diperbarui. Seperti yang disebutkan, menghitung kesalahan melibatkan menentukan kemiringan nilai output. Setelah kemiringan dihitung, proses yang disebut turunan gradien dapat digunakan untuk menyesuaikan bobot dalam jaringan. Gradien adalah kemiringan, yang sudut/kecuramannya dapat diukur. Kemiringan dihitung dengan memplot “y atas” atau “kenaikan” atas “jalan”. Dalam kasus jaringan saraf dan laju kesalahan, “y” adalah kesalahan yang dihitung, sedangkan “x” adalah parameter jaringan. Parameter jaringan memiliki hubungan dengan nilai kesalahan yang dihitung, dan saat bobot jaringan disesuaikan, laju kesalahan meningkat atau menurun.
“Turunan gradien” adalah proses memperbarui bobot sehingga laju kesalahan menurun. Backpropagation digunakan untuk memprediksi hubungan antara parameter jaringan saraf dan laju kesalahan, yang menyiapkan jaringan untuk turunan gradien. Melatih jaringan dengan turunan gradien melibatkan menghitung bobot melalui propagasi maju, mempropagasikan kembali kesalahan, dan kemudian memperbarui bobot jaringan.












