Neural Network Backpropagation

9
SISTEM KECERDASAN BUATAN NEURAL NETWORK WITH BACPROPAGATION Untuk Evaluasi Tengah Semester Senanjung Prayoga 2412201011 PROGRAM STUDI S-2 TEKNIK FISIKA

description

penjelasan tentang neural network

Transcript of Neural Network Backpropagation

Page 1: Neural Network Backpropagation

SISTEM KECERDASAN BUATAN

NEURAL NETWORK WITH BACPROPAGATION

Untuk

Evaluasi Tengah Semester

Senanjung Prayoga2412201011

PROGRAM STUDI S-2 TEKNIK FISIKAJURUSAN TEKNIK FISIKA

FAKULTAS TEKNOLOGI INDUSTRIINSTITUT TEKNOLOGI SEPULUH NOPEMBER

2013

Page 2: Neural Network Backpropagation

PENDAHULUAN

1. Jaringan Syaraf Tiruan

Jaringan syaraf tiruan merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan disini digunakan karena jaringan syaraf ini diimplementasikan dengan menggunakan program komputer yang mampu menyelesaikan sejumlah proses perhitungan selama proses pembelajaran.

2. Backpropagation

Penemuan Backpropagation yang terdiri dari beberapa layar membuka kembali cakrawala. Terlebih setelah berhasil ditemukannya berbagai aplikasi yang dapat diselesaikan dengan Backpropagation, membuat Jaringan Syaraf Tiruan semakin diminati orang. Seperti halnya model JST lain, Backpropagation melatih jaringan untuk mendapatkan keseimbangan antara kemampuan jaringan untuk mengenali pola yang digunakan selama pelatihan serta kemampuan jaringan untuk memberikan respon yang benar terhadap pola masukan yang serupa (tapi tidak sama) dengan pola yang dipakai selama pelatihan.

3. Arsitektur Jaringan Metode Backpropagation

Jaringan saraf terdiri dari 3 lapisan, yaitu lapisan masukan/input terdiri atas variable masukan unit sel saraf, lapisan tersembunyi terdiri atas 10 unit sel saraf, dan lapisan keluaran/output terdiri atas 2 sel saraf. Lapisan masukan digunakan untuk menampung 13 variabel yaitu X1 sampai dengan X13, sedangkan 2 lapisan keluaran digunakan untuk mempresentasikan pengelompokan pola, nilai 00 untuk Gangguan Stress, nilai 01 untuk Gangguan Fobia, nilai 10 untuk Gangguan Obsesif kompulsif, dan nilai 11 untuk Gangguan Panik.

Page 3: Neural Network Backpropagation

Keterangan :X = Masukan (input).J = 1 s/d n (n = 10).V = Bobot pada lapisan tersembunyi.W = Bobot pada lapisan keluaran.N = Jumlah unit pengolah pada lapisan tersembunyi.b = Bias pada lapisan tersembunyi dan lapisan keluaran.k = Jumlah unit pengolah pada lapisan keluaran.Y = Keluaran hasil.

4. Pelatihan Standar Backpropagation

Pelatihan Backpropagation meliputi 3 fase. Fase pertama adalah fase maju. Pola masukan dihitung maju mulai dari layar masukan hingga layar keluaran menggunakan fungsi aktivasi yang ditentukan. Fase kedua adalah fase mundur. Selisih antara keluaran jaringan dengan target yang diinginkan merupakan kesalahan yang terjadi. Kesalahan tersebut dipropagasikan mundur, dimtrlai dari garis yang berhubungan langsung dengan unit-unit di layar keluaran. Fase ketiga adalah modifikasi bobot untuk menurunukan kesalahan yang terjadi.

Fase I : Propagasi maju

Selama propagasi maju, sinyal masukan (= xi) dipropagasikan ke lapis tersembunyi menggunakan fungsi aktivasi yang ditentukan. Keluaran dari setiap unit lapis tersembunyi (= zj) tersebut selanjutnya dipropagasikan maju lagi ke lapis tersembunyi di atasnya menggunakan fungsi aktivasi yang ditentukan. Demikian seterusnya hingga menghasilkan keluaran jaringan (= yk). Berikutnya, keluaran jaringan (= yk) dibandingkan dengan target yang harus dicapai (= tk). Selisih tk-yk adalah kesalahan yang terjadi. Jika kesalahan ini lebih kecil dari batas toleransi yang ditentukan, maka iterasi dihentikan. Akan tetapi apabila kesalahan masih lebih besar dari batas toleransinya, maka bobot setiap garis dalam jaringan akan dimodifikasikan untuk mengurangi kesalahan yang terjadi.

Fase II : Propagasi mundur

Berdasarkan kesalahan tk-yk, dihitung faktor δk (k=1, 2, …, m) yang dipakai untuk mendistribusikan kesalahan di unit yk ke semua unit tersembunyi yang terhubung langsung dengan yk. δk juga dipakai untuk mengubah bobot garis yang menghubungkan langsung dengan unit keluaran. Dengan cara yang sama, dihitung δj di setiap unit di lapis tersembunyi sebagai dasar perubahan bobot semua garis yang berasal

Page 4: Neural Network Backpropagation

dari unit tersembunyi di lapis di bawahnya. Demikian seterusnya hingga faktor δ di unit tersembunyi yang berhubungan langsung dengan unit masukan dihitung.

Fase III : Perubahan bobot

Setelah semua faktor δ dihitung, bobot semua garis dimodifikasi bersamaan. Perubahan bobot suatu garis didasarkan atas faktor δ neuron di lapis atasnya. Sebagai contoh, perubahan bobot garis yang menuju ke lapis keluaran didasarkan atas dasar δk yang ada di unit keluaran. Ketiga fase tersebut diulang-ulang terus hingga kondisi penghentian dipenuhi. Umumnya kondisi penghentian yang sering dipakai adalah jumlah iterasi atau kesalahan. Iterasi akan dihentikan jika jumlah iterasi yang dilakukan sudah melebihi jumlah maksimum iterasi yang ditetapkan, atau jika kesalahan yang terjadi sudah lebih kecil dari batas toleransi yang diijinkan.

5. Optimalitas Arsitektur Backpropagation

Masalah utama yang dihadapi dalam backpropagation adalah lamanya iterasi yang harus dilakukan. Backpropagation tidak dapat memberikan kepastian tentang berapa epoch yang harus dilalui untuk mencapai kondisi yang diinginkan.

a. Pemilihan bobot dan bias awal

Pemilihan inisialisasi bobot akan mempengaruhi apakah jaringan mencapai galat pada minimum global atau lokal. Perubahan bobot antara kedua unit tergantung pada kedua turunan fungsi aktivasi unit di atas dan unit dibawahnya. Sangatlah penting untuk menghindari pemilihan bobot awal yang akan membuat fungsi aktivasi atau turunannya menjadi nol. Jika bobot awal terlalu besar, masukan awal ke tiap unit tersembunyi atau keluaran akan berada pada daerah di mana turunan fungsi sigmoid memiliki nilai sangat kecil (disebut daerah jenuh). Sebaliknya jika bobot terlalu kecil sinyal masukan pada unit tersembunyi atau keluaran akan mendekati nol yang menyebabkan pelatihan jaringan akan sangat lambat. Prosedur umum adalah menginisialisasi bobot dengan nilai acak antara -0,5 dan 0,5 (atau -1 dan 1) atau pada rentang nilai yang lain yang sesuai. Nilai bisa positif atau negatif, karena bobot pada akhir pelatihan juga memiliki kedua tanda tersebut.

b. Jumlah unit tersembunyi

Hasil teoritis yang didapat menunjukkan bahwa jaringan dengan sebuah lapis tersembunyi sudah cukup bagi backpropagation untuk mengenali sembarang perkawanan antara masukan dan target dengan tingkat ketelitian yang ditentukan. Akan tetapi panambahan jumlah lapis tersembunyi kadangkala membuat pelatihan lebih mudah. Semakin banyak hidden layer yang digunakan, maka jaringan akan mampu menangani jangkauan statistik yang lebih luas dan tinggi. Jumlah lapisan yang terlalu banyak bisa menyebabkan laju konvergensi menjadi lebih lambat.

Page 5: Neural Network Backpropagation

Hal ini disebabkan sinyal galat berkurang secara numerik jika melewati terlalu banyak lapisan dan lapisan tambahan cenderung menciptakan minimum lokal.

c. Jumlah pola pelatihan

Tidak ada kepastian tentang berapa banyak pola yang diperlukan agar jaringan dapat dilatih dengan sempurna. Jumlah pola yang dibutuhkan dipengaruhi oleh banyaknya bobot dalam jaringan serta tingkat akurasi yang diharapkan.

d. Parameter laju pembelajaran

Parameter laju pembelajaran (learning rate) sangat berpengaruh pada proses pelatihan. Begitu pula terhadap efektivitas dan kecepatan mencapai konvergensi dari pelatihan. Nilai optimum dari learning rate tergantung permasalahan yang diselesaikan, prinsipnya dipilih sedemikian rupa sehingga tercapai konvergensi yang optimal dalam proses pelatihan. Nilai learning rate yang cukup kecil menjamin penurunan gradient terlaksana dengan baik, namun ini berakibat bertambahnya jumlah iterasi. Pada umumnya besarnya nilai laju pembelajaran tersebut dipilih mulai 0,001 sampai 1 selama proses pelatihan.

e. Momentum

Disamping koefisien laju pembelajaran, ada koefisien lain yang bertujuan untuk mempercepat konvergensi dari algoritma error backpropagation. Penggunaan koefisien momentum ini disarankan apabila konvergensi berlangsung terlalu lama, dan juga untuk mencegah terjadinya lokal minimum. Dengan penambahan momentum, bobot baru pada waktu ke-t+1 didasarkan atas bobot pada waktu t dan t-1.

PENJELASAN PROGRAM XOR MENGGUNAKAN BACKPROPAGATION

close all, clear all, clc

x = [0 0 1 1; 0 1 0 1] Inputan

t = [0 1 1 0] Output yang diharapkan [ni N] = size(x) [no N] = size(t) nh = 2 % wih = .1*ones(nh,ni+1); % who = .1*ones(no,nh+1);

wih = 0.01*randn(nh,ni+1); merupakan tahap inisiasi bobot input.

Page 6: Neural Network Backpropagation

who = 0.01*randn(no,nh+1); merupakan tahap inisiasi bobot output. c = 0; while(c < 3000) c = c+1;% %for i = 1:length(x(1,:)) for i = 1:N for j = 1:nh netj(j) = wih(j,1:end-1)*x(:,i)+wih(j,end);% %outj(j) = 1./(1+exp(-netj(j))); outj(j) = tansig(netj(j)); end % hidden to output layer for k = 1:no netk(k) = who(k,1:end-1)*outj' + who(k,end); outk(k) = 1./(1+exp(-netk(k))); delk(k) = outk(k)*(1-outk(k))*(t(k,i)-outk(k)); end % back propagation for j = 1:nh s=0; for k = 1:no s = s + who(k,j)*delk(k); end delj(j) = outj(j)*(1-outj(j))*s; % %s=0; end for k = 1:no for l = 1:nh who(k,l) = who(k,l)+.5*delk(k)*outj(l); end who(k,l+1) = who(k,l+1)+1*delk(k)*1; end for j = 1:nh for ii = 1:ni wih(j,ii) = wih(j,ii)+.5*delj(j)*x(ii,i); end wih(j,ii+1) = wih(j,ii+1)+1*delj(j)*1; end end endh = tansig(wih*[x;ones(1,N)]) y = logsig(who*[h;ones(1,N)]) e = t-round(y)

Hasil program setelah dirunning:

x = 0 0 1 1 0 1 0 1

t = 0 1 1 0

Perhitungan maju output

Mencari nilai kembali bobot output, selanjutnya jika sudah diketahui bobot input dan outputnya, pembelajarannya dilakukan lagi dari awal.

Page 7: Neural Network Backpropagation

ni = 2

N = 4

no = 1

N = 4

nh = 2

h = -1.0000 -0.6363 -1.0000 1.0000 0.0311 0.9794 0.9439 0.9994

y = 0.0761 0.9193 0.9683 0.0518

e = 0 0 0 0