Pages

Subscribe:

Labels

.

Effeck Saljou

Ads 468x60px

.
.

Senin, 02 Januari 2012

Backpropagation


    
Backpropagation adalah metode umum pengajaran jaringan syaraf tiruan bagaimana melakukan tugas yang diberikan. Arthur E. Bryson dan Yu-Ho Chi menggambarkannya sebagai metode sistem multi-tahap optimasi dinamis pada tahun 1969. [1] [2] Ia tidak sampai 1974 dan kemudian, ketika diterapkan dalam konteks jaringan saraf dan melalui pekerjaan Paul Werbos, [3] David E. Rumelhart, Geoffrey E. Hinton dan Ronald J. Williams, [4] [5] yang memperoleh pengakuan, dan itu menyebabkan "renaisans" dalam bidang penelitian jaringan syaraf tiruan.

     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:

  1. Kalikan delta output dan aktivasi masukan untuk mendapatkan gradien berat.
  2. 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. 

Tidak ada komentar:

Posting Komentar