Ini adalah metode belajar diawasi,
dan merupakan generalisasi dari aturan delta. Hal ini membutuhkan seorang guru
yang tahu, atau dapat menghitung, output yang diinginkan untuk setiap masukan
dalam training set. Hal ini paling berguna untuk umpan-maju jaringan (jaringan
yang tidak memiliki umpan balik, atau hanya, yang tidak memiliki koneksi yang
loop). Istilah adalah singkatan untuk "propagasi mundur dari
kesalahan". Backpropagation mensyaratkan bahwa fungsi aktivasi yang
digunakan oleh neuron buatan (atau "node") dapat didiferensiasi.
Untuk pemahaman yang lebih baik,
algoritma belajar backpropagation dapat dibagi menjadi dua tahap: propagasi dan
memperbarui berat badan.
Tahap 1: Propagasi
Setiap propagasi melibatkan langkah-langkah berikut:
Maju propagasi masukan pola pelatihan melalui jaringan
saraf dalam rangka untuk menghasilkan output aktivasi propagasi itu.
Mundur propagasi aktivasi output propagasi melalui
jaringan saraf menggunakan target pola pelatihan dalam rangka untuk
menghasilkan delta dari semua output dan neuron tersembunyi.
Tahap 2: Update Berat
Untuk setiap sinaps berat:
- Kalikan delta output dan aktivasi masukan untuk
mendapatkan gradien berat.
- Bawa berat dalam arah yang berlawanan dari
gradien dengan mengurangkan rasio dari berat.
Rasio ini mempengaruhi kecepatan dan kualitas
pembelajaran; itu disebut tingkat pembelajaran. Tanda gradien berat menunjukkan
di mana kesalahan meningkat, ini adalah mengapa berat harus diperbarui dalam
arah yang berlawanan.
Ulangi tahap 1 dan 2 sampai kinerja jaringan cukup
baik.
Mode pembelajaran
Ada dua mode belajar untuk memilih
dari: Salah satunya adalah on-line belajar dan yang lainnya adalah belajar
batch. Di on-line belajar, propagasi masing-masing segera diikuti oleh sebuah
update berat. Dalam belajar batch, propagations banyak terjadi sebelum
memperbarui berat badan terjadi. Belajar Batch membutuhkan kapasitas memori lebih,
tapi on-line belajar membutuhkan update lebih.
Algoritma
Realisasi algoritma untuk jaringan 3-lapisan (hanya
satu lapisan tersembunyi):
Inisialisasi bobot dalam jaringan (sering
secara acak)
Apakah
Untuk setiap e
contoh dalam training set
O = saraf-net-output (jaringan, e); maju lulus
T = guru output untuk e
Hitung kesalahan (T - O) pada unit keluaran
Hitunglah delta_wh untuk semua bobot dari lapisan tersembunyi ke lapisan
output; mundur lulus
Hitunglah delta_wi untuk semua bobot dari lapisan input ke lapisan
tersembunyi; mundur lulus terus
Update bobot dalam jaringan
Sampai semua contoh diklasifikasikan
dengan benar atau kriteria berhenti puas
Kembali jaringan
Seperti namanya menyiratkan
algoritma, kesalahan merambat mundur dari node output ke node batin. Secara
teknis, backpropagation menghitung gradien dari kesalahan jaringan mengenai
jaringan bobot dimodifikasi [6]. Gradien ini hampir selalu digunakan dalam
algoritma gradien stokastik keturunan sederhana untuk menemukan bobot yang
meminimalkan kesalahan. Seringkali "backpropagation" digunakan dalam
arti lebih umum, untuk merujuk pada seluruh prosedur meliputi baik perhitungan
gradien dan penggunaannya dalam keturunan gradien stokastik. Backpropagation
biasanya memungkinkan konvergensi cepat di minima lokal memuaskan untuk
kesalahan dalam jenis jaringan untuk yang cocok.
Jaringan backpropagation yang Perceptrons
tentu multilayer (biasanya dengan satu input, satu tersembunyi, dan satu
lapisan output). Dalam rangka untuk lapisan tersembunyi untuk melayani fungsi
yang berguna, jaringan multilayer harus memiliki fungsi non-linear aktivasi
untuk beberapa lapisan: sebuah jaringan multilayer hanya menggunakan fungsi
aktivasi linier setara dengan beberapa lapisan tunggal, jaringan linear. Fungsi
aktivasi non-linear yang umum digunakan termasuk fungsi logistik, fungsi
softmax, dan fungsi gaussian.
Algoritma backpropagation untuk menghitung gradien
telah ditemukan kembali beberapa kali, dan merupakan kasus khusus dari teknik
yang lebih umum disebut diferensiasi otomatis dalam modus akumulasi sebaliknya.
Hal ini juga terkait erat dengan
algoritma Gauss-Newton, dan juga merupakan bagian dari melanjutkan penelitian
di backpropagation saraf.
Backpropagation multithreaded
Backpropagation adalah proses
iteratif yang sering dapat mengambil banyak waktu untuk menyelesaikan. Ketika
multicore komputer digunakan teknik multithreaded dapat sangat mengurangi
jumlah waktu yang dibutuhkan untuk berkumpul backpropagation. Jika batching
sedang digunakan, relatif sederhana untuk menyesuaikan algoritma
backpropagation untuk beroperasi dalam cara yang multithreaded.
Data pelatihan ini dipecah menjadi
batch yang sama besar untuk masing-masing benang. Setiap thread mengeksekusi
propagations maju dan mundur. Delta ambang batas berat badan dan dijumlahkan
untuk masing-masing benang. Pada akhir setiap iterasi semua thread harus
berhenti sebentar untuk delta berat dan ambang untuk disimpulkan dan diterapkan
ke jaringan saraf. Proses ini berlanjut untuk setiap iterasi. Pendekatan
multithreaded untuk backpropagation digunakan oleh Framework Jaringan Neural
Encog.
0 komentar:
Posting Komentar
Terima Kasih dah mengunjungi Blog saya ini.