potongan Apa itu Backpropagation? - Bersatu.AI
Terhubung dengan kami

AI 101

Apa itu Backpropagation?

mm
Updated on

Apa itu Backpropagation?

Sistem pembelajaran mendalam dapat mempelajari pola yang sangat kompleks, dan mereka melakukannya dengan menyesuaikan bobotnya. Bagaimana tepatnya bobot jaringan saraf dalam disesuaikan? Mereka disesuaikan melalui sebuah proses bernama propagasi mundur. Tanpa propagasi mundur, jaringan saraf dalam tidak akan mampu melakukan tugas-tugas seperti mengenali gambar dan menafsirkan bahasa alami. Memahami cara kerja propagasi mundur sangat penting untuk memahami jaringan neural dalam secara umum, jadi mari kita bahas propagasi mundur dan lihat bagaimana proses tersebut digunakan untuk menyesuaikan bobot jaringan.

Propagasi mundur mungkin sulit untuk dipahami, dan perhitungan yang digunakan untuk melakukan propagasi mundur bisa jadi cukup rumit. Artikel ini akan berusaha memberi Anda pemahaman intuitif tentang propagasi mundur, dengan menggunakan sedikit matematika kompleks. Namun, beberapa diskusi tentang matematika di balik propagasi mundur diperlukan.

Tujuan Backpropagation

Mari kita mulai dengan mendefinisikan tujuan backpropagation. Bobot jaringan saraf yang dalam adalah kekuatan koneksi antar unit jaringan saraf. Ketika jaringan saraf dibuat, asumsi dibuat tentang bagaimana unit-unit dalam satu lapisan terhubung ke lapisan-lapisan yang bergabung dengannya. Saat data bergerak melalui jaringan saraf, bobot dihitung dan asumsi dibuat. Saat data mencapai lapisan akhir jaringan, prediksi dibuat tentang bagaimana fitur terkait dengan kelas dalam kumpulan data. Selisih antara nilai prediksi dan nilai sebenarnya adalah loss/error, dan tujuan backpropagation adalah untuk mengurangi kerugian. Ini dicapai dengan menyesuaikan bobot jaringan, membuat asumsi lebih seperti hubungan sebenarnya antara fitur masukan.

Melatih Jaringan Syaraf Dalam

Sebelum backpropagation dapat dilakukan pada a saraf jaringan, pass pelatihan reguler/maju dari jaringan saraf harus dilakukan. Saat jaringan saraf dibuat, satu set bobot diinisialisasi. Nilai bobot akan diubah saat jaringan dilatih. Pass pelatihan maju dari jaringan saraf dapat dipahami sebagai tiga langkah terpisah: aktivasi neuron, transfer neuron, dan propagasi maju.

Saat melatih jaringan saraf yang dalam, kita perlu menggunakan beberapa fungsi matematika. Neuron dalam jaringan saraf yang dalam terdiri dari data yang masuk dan fungsi aktivasi, yang menentukan nilai yang diperlukan untuk mengaktifkan node. Nilai aktivasi neuron dihitung dengan beberapa komponen, menjadi jumlah bobot input. Bobot dan nilai input bergantung pada indeks node yang digunakan untuk menghitung aktivasi. Angka lain harus diperhitungkan saat menghitung nilai aktivasi, nilai bias. Nilai bias tidak berfluktuasi, jadi tidak dikalikan dengan bobot dan input, hanya ditambahkan. Semua ini berarti persamaan berikut dapat digunakan untuk menghitung nilai aktivasi:

Aktivasi = jumlah(bobot * input) + bias

Setelah neuron diaktifkan, fungsi aktivasi digunakan untuk menentukan seperti apa output dari output sebenarnya dari neuron tersebut. Fungsi aktivasi yang berbeda optimal untuk tugas pembelajaran yang berbeda, tetapi fungsi aktivasi yang umum digunakan meliputi fungsi sigmoid, fungsi Tanh, dan fungsi ReLU.

Setelah output dari neuron dihitung dengan menjalankan nilai aktivasi melalui fungsi aktivasi yang diinginkan, propagasi maju dilakukan. Propagasi maju hanya mengambil output dari satu lapisan dan menjadikannya input dari 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 ini. Kesalahan dihitung dengan membandingkan keluaran/keputusan jaringan dan keluaran jaringan yang diharapkan/diinginkan.

Setelah kesalahan dalam keputusan jaringan dihitung, informasi ini disebarkan kembali melalui jaringan dan parameter jaringan diubah di sepanjang jalan. Metode yang digunakan untuk memperbaharui bobot jaringan berbasis kalkulus, khususnya berbasis aturan rantai. Namun, pemahaman tentang kalkulus tidak diperlukan untuk memahami gagasan di balik backpropagation. Ketahuilah bahwa ketika nilai keluaran diberikan dari neuron, kemiringan nilai keluaran dihitung dengan fungsi transfer, menghasilkan keluaran turunan. Saat melakukan backpropagation, kesalahan untuk neuron tertentu dihitung sebagai berikut rumus:

error = (expected_output – actual_output) * kemiringan nilai output neuron

Saat beroperasi pada neuron di lapisan keluaran, nilai kelas digunakan sebagai nilai yang diharapkan. Setelah error dihitung, error tersebut dijadikan sebagai input untuk neuron-neuron pada lapisan tersembunyi, artinya error pada lapisan tersembunyi ini merupakan bobot error dari neuron-neuron yang terdapat pada output layer. Perhitungan kesalahan berjalan mundur melalui jaringan di sepanjang jaringan bobot.

Setelah kesalahan jaringan dihitung, bobot dalam jaringan harus diperbarui. Seperti disebutkan, penghitungan kesalahan melibatkan penentuan kemiringan nilai keluaran. Setelah kemiringan dihitung, proses yang disebut penurunan gradien dapat digunakan untuk menyesuaikan bobot dalam jaringan. Gradien adalah suatu lereng yang sudut/kecuramannya dapat diukur. Kemiringan dihitung dengan memplot “y over” atau “rise” di atas “run”. Dalam kasus jaringan saraf dan tingkat kesalahan, “y” adalah kesalahan yang dihitung, sedangkan “x” adalah parameter jaringan. Parameter jaringan mempunyai hubungan dengan nilai kesalahan yang dihitung, dan ketika bobot jaringan disesuaikan, kesalahan bertambah atau berkurang.

“Gradient descent” adalah proses memperbarui bobot sehingga tingkat kesalahan berkurang. Backpropagation digunakan untuk memprediksi hubungan antara parameter jaringan saraf dan tingkat kesalahan, yang mengatur jaringan untuk penurunan gradien. Melatih jaringan dengan penurunan gradien melibatkan penghitungan bobot melalui propagasi maju, propagasi ulang kesalahan, dan kemudian memperbarui bobot jaringan.

Blogger dan programmer dengan spesialisasi di Pembelajaran mesin dan Belajar mendalam topik. Daniel berharap dapat membantu orang lain menggunakan kekuatan AI untuk kebaikan sosial.