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.

[Kembali]

Komentar

Postingan populer dari blog ini

MUTS

5.1. Madaline Training

11.1. Fundamental Philosophy