BAB 6
6.1. The Back Propagation Learning Procedure
Back Propagation (BP) algoritma diusulkan pada tahun 1986 oleh Rumelhart, Hinton dan Williams untuk menetapkan bobot sekaligus untuk pelatihan multi-layer perceptrons. Hal Ini membuka jalan bagi penggunaan multi-layer ANNs. Setelah algoritma BP dari Rumelhart et al. diterbitkan, algoritma tersebut sangat mirip dengan algoritma yang telah diusulkan sebelumnya oleh Werbos.
6.2. Derivation of the BP Algorithm
Algoritma BP dimulai dari kebutuhan akan komputasi layers output, yang menjadi satu-satunya tempat output yang diinginkan tersedia, tetapi output dari layer tengan tidak tersedia (lihat Gambar 6.1) sebagai berikut:
Misalkan " Ɛ " menunjukkan error-energi pada layer output, di mana:
k = 1 ... N; N adalah jumlah neuron pada layer output. Akibatnya, gradien "Ɛ“ diperhitungkan, di mana:
Sekarang, berdasarkan rumus tersebut didapatlah turunannya sebagai berikut:
j menunjukkan input jth ke neuron kth dari layer output, di mana:
Tanda minus (-) pada Persamaan (6.4) menunjukkan arah down-hill menuju minimum.
Nilai zk didapat dari:
Nilai zk didapat dari:
XJ menjadi input jth ke neuron, dan menandakan bahwa yk adalah:
F menjadi fungsi nonlinear. Kemudian substitusikan
dan
p menunjukkan layer output, sehingga Persamaan (6.7) menjadi:
Definisikan:
kemudian Persamaan (6.9) menjadi:
dan, berdasarkan pers. (6.4) dan (6.11):
j menunjukkan input jth ke neuron kth dari layer output (p).
Selanjutnya, berdasarkan persamaan (6.10):
Tapi, berdasarkan Persamaan (6.1):
sedangkan, untuk non-linear sigmoid:
menunjukkan
Karena itu, berdasrkan pers. (6.13), (6.14) dan (6.16):
sehingga, pada layer output, berdasarkan pers. (6.4), (6.7):
di mana, sesuai dengan pers. (6.8) dan (6.13)
Φk dalam Persamaan (6.17), untuk menyelesaikan derivasi dari pengaturan bobot layer output.
Back-propagating untuk rth hidden layer:
Namun, "Ɛ” hanya dapat dipengaruhi oleh upstream neurons ketika salah satu propagates back-wards dari output. Tidak ada informasi lain yang tersedia pada tahap itu. Karena itu:
Namun, "Ɛ” hanya dapat dipengaruhi oleh upstream neurons ketika salah satu propagates back-wards dari output. Tidak ada informasi lain yang tersedia pada tahap itu. Karena itu:
karena hanya wkj (r + 1) terhubung ke YJ (r).
Sehingga, berdasarkan pers. (6.13), (6.16) dan (6.25):
Sehingga, berdasarkan pers. (6.13), (6.16) dan (6.25):
dan, sesuai dengan Persamaan (6.19):
Perlu diperhatikan bahwa kita tidak bisa mengambil derivatif parsial dari " Ɛ ” yang berhubungan dengan layer tersembunyi. Dengan demikian kita harus mengambil derivatif parsial dari "Ɛ” yang berhubungan dengan variabel upstream ke arah output, yang merupakan satu-satunya yang mempengaruhi Ɛ. Pengamatan ini merupakan dasar untuk prosedur Back-Propagation, untuk mengatasi kurangnya akses data error di layer tersembunyi.
6.3. Modified BP Algorithms
a. Introduction of bias into NN
Hal ini sering menguntungkan untuk menerapkan beberapa bias ke neuron dari jaringan saraf (Lihat Gambar. 6.2). bias dapat dilatih bila dikaitkan dengan dilatih untuk menjadi dimodifikasi. Oleh karena itu bias diwujudkan dalam hal inputdengan beberapa konstan (1 atau +B) masukan, dan bias bi tepat (di neuron i) kemudian diberikan
woi menjadi istilah bias yang di input ke neuron i (lihat Gambar. 7). bias bisa positif atau negatif.
b. Incorporating momentum or smoothing to weight adjustment
The backpropagation (BP) algoritma untuk menghitung bobot neuron mungkin cenderung ketidakstabilan dalam kondisi operasi tertentu. Untuk mengurangi kecenderungan untuk ketidakstabilan Rumelhart et al. (1986) menyarankan untuk menambahkan istilah momentum untuk Persamaan. (6.1). Karenanya, Eq. (6.12) adalah modi ed untuk:
untuk m + 1 iterasi, dengan 0 < α <1; α menjadi koefisien momentum (biasanya sekitar 0,9). Kerja dengan α akan cenderung menghindari cepat fluktuasi, tapi mungkin tidak selalu bekerja, atau bahkan bisa merugikan konvergensi.Metode smoothing lain, untuk tujuan yang sama dan juga tidak selalu dianjurkan,
adalah bahwa menggunakan istilah smoothing seperti yang diusulkan oleh Sejnowski dan Rosenberg (1987), diberikan sebagai berikut:
adalah bahwa menggunakan istilah smoothing seperti yang diusulkan oleh Sejnowski dan Rosenberg (1987), diberikan sebagai berikut:
dengan 0 < α <1. Perhatikan bahwa untuk α = 0 tidak ada terjadi smoothing. Persamaan (6.32) η antara 0 dan 1.
c. Other modification concerning convergence
Peningkatan konvergensi dari algoritma BP sering dapat dicapai dengan memodifikasi kisaran fungsi sigmoid dari kisaran nol hingga satu, untuk rentang dari
-0: 5-0,5. Pengenalan umpan balik (lihat Ch. 12) kadang-kadang dapat digunakan. Memodifikasi ukuran langkah dapat digunakan untuk menghindari algoritma BP dari mendapatkan terjebak (kelumpuhan belajar) atau dari berosilasi. Hal ini sering dicapai dengan mengurangi langkah ukuran, setidaknya ketika algoritma mendekati kelumpuhan atau ketika mulai berosilasi.
-0: 5-0,5. Pengenalan umpan balik (lihat Ch. 12) kadang-kadang dapat digunakan. Memodifikasi ukuran langkah dapat digunakan untuk menghindari algoritma BP dari mendapatkan terjebak (kelumpuhan belajar) atau dari berosilasi. Hal ini sering dicapai dengan mengurangi langkah ukuran, setidaknya ketika algoritma mendekati kelumpuhan atau ketika mulai berosilasi.
Konvergensi minimum lokal dapat dihindari dengan metode statistik dimana selalu ada kemungkinan gerakan jauh jaringan terbatas atau minimal nyata dengan langkah besar. Dimodifikasi (ulet) algoritma BP, seperti RPROP (Riedmiller dan Braun, 1993) sangat mempercepat konvergensi dan mengurangi kepekaan terhadap inisialisasi. Menganggap hanya tanda-tanda derivatif parsial untuk menghitung bobot oleh BP, daripada mereka nilai-nilai.
6.A. Back Propagation Case Study: Character Recognition
a. Pengenalan
Permasalahan yang akan dipecahkan kali ini adalah masalah pengenalan karakter sederhana menggunakan jaringan perceptrons dengan prosedur pembelajaran back propagation. Tugas kita adalah mengajarkan jaringan saraf untuk mengenali 3 karakter, yaitu, untuk memetakan mereka untuk masing-masing pasangan {0,1}, {1,0} dan {1,1}. Dan diharapkan jaringan menghasilkan sinyal error {0,0} dalam menanggapi karakter lain.
b. Desain Jaringan
- Struktur
Jaringan saraf dari desain ini terdiri dari tiga lapisan dengan 2 neuron masing-masing, satu lapisan output dan dua lapisan tersembunyi. Ada 36 masukan ke jaringan. Dalam kasus ini fungsi sigmoid:
dipilih sebagai fungsi aktivasi neuron nonlinear. hal Bias (sama dengan 1) dengan bobot dilatih juga dimasukkan dalam struktur jaringan. Diagram struktural dari jaringan saraf yang diberikan pada Gambar. 6.A.1.
- Desain Database
Kami mengajarkan jaringan saraf untuk mengenali karakter 'A', 'B' dan 'C'. Untuk melatih jaringan untuk menghasilkan sinyal kesalahan kita akan menggunakan 'D' lain 6 karakter, 'E', 'F', 'G', 'H' dan 'I'. Untuk memeriksa apakah jaringan telah belajar untuk mengenali kesalahan kita akan menggunakan karakter 'X', 'Y' dan 'Z'. Perhatikan bahwa kami tertarik dalam memeriksa respon dari jaringan untuk kesalahan pada karakter yang tidak terlibat dalam prosedur pelatihan.
Karakter untuk diakui diberikan pada 6 × 6 kotak. Masing-masing dari 36 piksel diatur ke 0 atau 1. Sesuai 6 × 6 matriks dari representasi karakter diberikan sebagai:
- Set-up jaringan
Algoritma pembelajaran Kembali propagasi (BP) dari Bagian 6.2 digunakan untuk memecahkan masalah. Tujuan dari algoritma ini adalah untuk meminimalkan kesalahan-energi pada lapisan output, seperti dalam Sect. 6.2 di atas, menggunakan persamaan (6.17), (6.19), (6.26), (6.27) daripadanya. Dalam metode ini satu set pelatihan vektor input diterapkan vektor-by-vektor ke input dari jaringan dan maju-disebarkan ke output. Bobot kemudian disesuaikan dengan algoritma BP seperti di atas. Selanjutnya, kita ulangi langkah ini untuk semua set pelatihan. Seluruh proses ini kemudian diulang untuk selanjutnya (m + 2) iterasi -th dan sebagainya. Kami berhenti ketika konvergensi memadai tercapai.
Kode program di C ++ ditulis untuk mensimulasikan respon dari jaringan dan melakukan prosedur pembelajaran, seperti di Bagian 6.A.5 bawah.
c. Hasil
- Pelatihan jaringan
Untuk melatih jaringan untuk mengenali karakter di atas kita diterapkan sesuai 6 × 6 grid dalam bentuk 1 × 36 vektor ke input dari jaringan. Karakter dianggap diakui jika kedua output dari jaringan yang tidak lebih dari 0,1 off nilai-nilai yang diinginkan masing-masing. Awal tingkat belajar η adalah eksperimental diatur ke 1,5 dan menurun dengan faktor 2 setelah setiap iterasi 100. Pendekatan ini, bagaimanapun, menghasilkan prosedur pembelajaran terjebak dalam berbagai minima lokal. Kami mencoba menjalankan algoritma belajar untuk 1000 iterasi dan menjadi jelas bahwa parameter kesalahan-energi telah berkumpul untuk beberapa nilai stabil, namun pengakuan gagal untuk semua karakter (vektor).
Namun, tak satu pun dari vektor pelatihan kami diakui pada saat ini:
Pelatihan vektor 0, 1, ..., 8 di entri log ini sesuai dengan karakter 'A', 'B',. . . , 'I'.
Untuk mencegah hal ini terjadi, satu lagi modifikasi dibuat. Setelah setiap iterasi 400 kita ulang tingkat belajar nilai awalnya. Kemudian setelah sekitar 2000 iterasi kami mampu konvergen ke 0 kesalahan dan untuk benar mengenali semua karakter:
- Hasil pengenalan
Dalam rangka untuk menentukan apakah kesalahan deteksi dilakukan dengan benar, kita diselamatkan bobot yang diperoleh ke dalam file data, memodifikasi dataset dalam program menggantikan karakter 'G', 'H' dan 'I' (pelatihan vektor 6, 7 dan 8) dengan karakter 'X', 'Y' dan 'Z'. Kami kemudian berlari program, dimuat bobot disimpan sebelumnya dari file data dan diterapkan input ke jaringan. Perhatikan bahwa kami melakukan pelatihan lebih lanjut. Kami mendapat hasil sebagai berikut:
Semua tiga karakter yang berhasil dipetakan kesalahan sinyal 0,0.
- Robustness Investigation
Untuk menyelidiki bagaimana kuat jaringan syaraf kami, kami menambahkan beberapa kebisingan untuk input dan mendapat hasil berikut. Dalam kasus 1-bit distorsi (dari 36 bit) tingkat pengakuan adalah:
Kami juga menyelidiki kasus 2-bit distorsi dan mampu mencapai tingkat pengakuan berikut:
d. Diskusi dan kesimpulan
Kami mampu untuk melatih jaringan saraf kita sehingga berhasil eecognizes tiga karakter yang diberikan dan pada saat yang sama mampu mengklasifikasikan karakter lain sebagai kesalahan. Namun, ada harga yang harus dibayar untuk kenyamanan ini. Tampaknya bahwa semakin besar tingkat deteksi kesalahan adalah, kurang kuat jaringan kami adalah. Misalnya, ketika 2 bit karakter 'A' yang terdistorsi, jaringan memiliki tingkat pengenalan hanya 53%. Secara kasar, pada 1 dari 2 kasus tersebut, jaringan 'berpikir' bahwa input tidak simbol 'A' dan karena itu harus diklasifikasikan sebagai kesalahan. Secara keseluruhan, jaringan propagasi kembali terbukti menjadi jauh lebih kuat daripada Madaline. Hal ini dimungkinkan untuk mencapai konvergensi lebih cepat dan juga lebih mudah untuk program ini. Ada kasus, namun, ketika algoritma pembelajaran propagasi kembali terjebak dalam minimum lokal tetapi mereka dapat berhasil ditangani oleh tuning tingkat pembelajaran dan hukum mengubah tingkat belajar selama proses pembelajaran untuk setiap masalah khusus.
Komentar
Posting Komentar