Title: BACK PROPAGATION NETWORK (BPN)
1BACK PROPAGATION NETWORK (BPN)
2Arsitektur Jaringan
- Salah satu metode pelatihan terawasi pada
jaringan syaraf adalah metode Backpropagation, di
mana ciri dari metode ini adalah meminimalkan
error pada output yang dihasilkan oleh jaringan. - Dalam metode Backpropagation, biasanya digunakan
jaringan multilayer.
3Arsitektur Jaringan
4Arsitektur Jaringan
- Pada gambar, unit input dilambangkan dengan X,
hidden unit dilambangkan dengan Z, dan unit
output dilambangkan dengan Y. - Bobot antara X dan Z dilambangkan dengan v
sedangkan bobot antara Z dan Y dilambangkan
dengan w.
5Proses belajar Pengujian
- Penggunaan Back Propagation Network terdiri dari
2 tahap - Tahap belajar atau pelatihan, di mana pada tahap
ini pada BPN diberikan sejumlah data pelatihan
dan target - Tahap pengujian atau penggunaan, pengujian dan
penggunaan dilakukan setelah BPN selesai belajar
6Tahap Belajar atau Pelatihan
- Pada intinya, pelatihan dengan metode
backpropagation terdiri dari tiga langkah, yaitu - Data dimasukkan ke input jaringan (feedforward)
- Perhitungan dan propagasi balik dari error yang
bersangkutan - Pembaharuan (adjustment) bobot dan bias.
7Tahap Belajar atau Pelatihan
- Saat umpan maju (feedforward), setiap unit input
(Xi) akan menerima sinyal input dan akan
menyebarkan sinyal tersebut pada tiap hidden unit
(Zj). - Setiap hidden unit kemudian akan menghitung
aktivasinya dan mengirim sinyal (zj) ke tiap unit
output. - Kemudian setiap unit output (Yk) juga akan
menghitung aktivasinya (yk) untuk menghasilkan
respons terhadap input yang diberikan jaringan.
8Tahap Belajar atau Pelatihan
- Saat proses pelatihan (training), setiap unit
output membandingkan aktivasinya (yk) dengan
nilai target (tk) untuk menentukan besarnya
error. - Berdasarkan error ini, dihitung faktor ??k, di
mana faktor ini digunakan untuk mendistribusikan
error dari output ke layer sebelumnya. - Dengan cara yang sama, faktor ?j juga dihitung
pada hidden unit Zj, di mana faktor ini digunakan
untuk memperbaharui bobot antara hidden layer dan
input layer. - Setelah semua faktor ? ditentukan, bobot untuk
semua layer diperbaharui.
9Proses belajar secara detail
- Step 0 Inisialisasi bobot dan bias
- Baik bobot maupun bias dapat diset dengan
sembarang angka (acak) dan biasanya angka di
sekitar 0 dan 1 atau -1 (bias positif atau
negatif) - Step 1 Jika stopping condition masih belum
terpenuhi, jalankan step 2-9. - Step 2 Untuk setiap data training, lakukan step
3-8.
10Proses belajar secara detail
- Umpan maju (feedforward)
- Step 3 Setiap unit input (Xi,i1,,n) menerima
sinyal input xi dan menyebarkan sinyal tersebut
pada seluruh unit pada hidden layer. Perlu
diketahui bahwa input xi yang dipakai di sini
adalah input training data yang sudah diskalakan. - Step 4 Setiap hidden unit (Zj,j1,,p) akan
menjumlahkan sinyal-sinyal input yang sudah
berbobot, termasuk biasnya -
-
11Proses belajar secara detail
- dan memakai fungsi aktivasi yang telah
ditentukan untuk menghitung sinyal output dari
hidden unit yang bersangkutan, -
- lalu mengirim sinyal output ini ke seluruh unit
pada unit output
12Proses belajar secara detail
- Step 5 Setiap unit output (Yk,k1,,m) akan
menjumlahkan sinyal-sinyal input yang sudah
berbobot, termasuk biasnya,
13Proses belajar secara detail
- dan memakai fungsi aktivasi yang telah
ditentukan untuk menghitung sinyal output dari
unit output yang bersangkutan
14Proses belajar secara detail
- Propagasi balik error (backpropagation of error)
- Step 6 Setiap unit output (Yk,k1,,m) menerima
suatu target (output yang diharapkan) yang akan
dibandingkan dengan output yang dihasilkan.
15Proses belajar secara detail
- Faktor ??k ini digunakan untuk menghitung koreksi
error (??wjk) yang nantinya akan dipakai untuk
memperbaharui wjk, di mana - ??wjk???kzj
- Selain itu juga dihitung koreksi bias ??w0k yang
nantinya akan dipakai untuk memperbaharui w0k, di
mana - ??w0k???k
- Faktor ??k ini kemudian dikirimkan ke layer di
depannya.
16Proses belajar secara detail
- Step 7 Setiap hidden unit (Zj,j1,,p)
menjumlah input delta (yang dikirim dari layer
pada step 6) yang sudah berbobot.
17Proses belajar secara detail
- Kemudian hasilnya dikalikan dengan turunan dari
fungsi aktivasi yang digunakan jaringan untuk
menghasilkan faktor koreksi error ?j, di mana - ?j ?_inj f(z_inj)
18Proses belajar secara detail
- Faktor ?j ini digunakan untuk menghitung koreksi
error (?vij) yang nantinya akan dipakai untuk
memperbaharui vij, di mana - ?vij??jxi
- Selain itu juga dihitung koreksi bias ?v0j yang
nantinya akan dipakai untuk memperbaharui v0j, di
mana - ?v0j??j
19Proses belajar secara detail
- Pembaharuan bobot dan bias
- Step 8
- Setiap unit output (Yk,k1,,m) akan
memperbaharui bias dan bobotnya dengan setiap
hidden unit. - wjk(baru)wjk(lama) ?wjk
- Demikian pula untuk setiap hidden unit akan
memperbaharui bias dan bobotnya dengan setiap
unit input. - vij(baru)vij(lama) ?vij
20Proses belajar secara detail
- Step 9 Memeriksa stopping condition
- Jika stop condition telah terpenuhi, maka
pelatihan jaringan dapat dihentikan.
21Stopping Condition
- Untuk menentukan stopping condition terdapat dua
cara yang biasa dipakai, yaitu - Membatasi iterasi yang ingin dilakukan.
- Misalnya jaringan akan dilatih sampai iterasi
yang ke-500. - Yang dimaksud dengan satu iterasi adalah
perulangan step 3 sampai step 8 untuk semua
training data yang ada. - Membatasi error.
- Misalnya menentukan besar Mean Square Error
antara output yang dikehendaki dan output yang
dihasilkan oleh jaringan.
22Mean Square Error
- Jika terdapat sebanyak m training data, maka
untuk menghitung Mean Square Error digunakan
persamaan berikut - MSE0,5 x (tk1-yk1)2 (tk2-yk2)2 (tkm-ykm)2
23Tahap pengujian Penggunaan
- Setelah pelatihan selesai, BPN dianggap telah
pintar sehingga apabila jaringan diberi input
tertentu, jaringan akan menghasilkan output
seperti yang diharapkan. - Cara mendapatkan output tersebut adalah dengan
mengimplementasikan metode backpropagation yang
sama seperti proses belajar, tetapi hanya pada
bagian umpan majunya saja, yaitu dengan
langkah-langkah sebagai berikut
24Penghitungan output jaringan
- Step 0 Inisialisasi bobot sesuai dengan bobot
yang telah dihasilkan pada proses pelatihan di
atas. - Step 1 Untuk setiap input, lakukan step 2-4.
- Step 2 Untuk setiap input i1,,n skalakan
bilangan dalam range fungsi aktivasi seperti yang
dilakukan pada proses pelatihan di atas.
25Penghitungan output jaringan
26Penghitungan output jaringan
27Penghitungan output jaringan
- Variabel yk adalah output yang masih dalam skala
menurut range fungsi aktivasi. - Untuk mendapatkan nilai output yang sesungguhnya,
yk harus dikembalikan seperti semula.
28Contoh aplikasi BPN
- Misalkan, jaringan terdiri dari 2 unit input, 1
hidden unit (dengan 1 hidden layer), dan 1 unit
output. - Jaringan akan dilatih untuk memecahkan fungsi
XOR. - Fungsi aktivasi yang digunakan adalah sigmoid
biner dengan nilai learning rate (?) 0,01 dan
nilai ? 1.
29- Arsitektur jaringan yang akan dilatih adalah
sebagai berikut
30- Training data yang digunakan terdiri dari 4
pasang input-output, yaitu
31- Sebelum pelatihan, harus ditentukan terlebih
dahulu stopping conditionnya. - Misalnya dihentikan jika error telah mencapai
0,41.
32Langkah-langkah pelatihan
- Step 0 Misalnya inisialisasi bobot dan bias
adalah - v011,718946
- v11-1,263178
- v21-1,083092
- w01-0,541180
- w110,543960
33- Step 1 Dengan bobot di atas, tentukan error
untuk training data secara keseluruhan dengan
Mean Square Error - z_in111,718946(0 x -1,263178)(0
x-1,083092)1,718946 - z11f(z_in11)0,847993
- z_in121,718946(0 x-1,263178)(1 x
-1,083092)0,635854 - z12f(z_in12)0,653816
- z_in131,718946(1 x- 1,263178)(0 x-
1,083092)0,455768 - z13f(z_in13)0,612009
- z_in141,718946(1 x -1,263178)(1 x
-1,083092)-0,627324 - z14f(z_in14)0,348118
- di mana indeks zjn berarti hidden unit ke-j dan
training data ke-n.
34- y_in11-0,541180(0,847993 x 0,543960)0,079906
- y11f(y_in11)0,480034
- y_in12-0,541180(0,653816 x 0,543960)-0,185530
- y12f(y_in12)0,453750
- y_in13-0,541180(0,612009 x 0,543960)0,208271
- y13f(y_in13)0,448119
- y_in14-0,541180(0,348118 x 0,543960)-0,351818
- y14f(y_in14)0,412941
- Maka E0,5 x (0-0,480034)2 (1-0,453750)2)
(1-0,448119)2 (0-0,412941)20,501957
35- Step2. Karena error masih lebih besar dari 0,41
maka step 3-8 dijalankan. - Step 3. x10 x20 (iterasi pertama, training
data pertama) - Step 4.
- z_in11,718946(0x-1,263126)(0x-1,083049)1,718
946. - z1f(z_in1)0,847993
- Step 5.
- y_in11-0,541180(0,847993x0,543960)0,079906
- y11f(y_in11)0,480034
- Step 6.
- ?1(0-0,480034)f (0,079906)-0,119817
- ?w110,01x-0,119817x0,847993-0,001016
- ?w010,01x-0,119817-0,00119817
-
36- Step 7.
- ?_in1-0,00119817x0,543960-0,00065176
- ?1-0,00065176xf(1,718946)-0,00008401
- ?v110,01x-0,00008401x00
- ?v210,01x-0,00008401x00
- ?v010,01x-0,00008401-0,0000008401
- Step 8.
- w01(baru)-0,541180(-0,00119817)-0,542378
- w11(baru)0,543960(-0,001016)0,542944
- v01(baru)1,718946(-0,0000008401)1,718862
- v11(baru)-1,2631780-1,263178
- v21(baru)-1,0830920-1,083092
- Saat ini v11 dan v12 masih belum berubah karena
kedua inputnya 0. Nilai v01 dan v02 baru berubah
pada iterasi pertama untuk training data yang
kedua
37- Setelah step 3-8 untuk training data pertama
dijalankan, selanjutnya kembali lagi ke step 3
untuk training data yang kedua (x10 dan x21). - Langkah yang sama dilakukan sampai pada training
data yang keempat. - Bobot yang dihasilkan pada iterasi pertama,
training data ke-2,3, dan 4 adalah
38- Training data ke-2
- w01-0,541023
- w110,543830
- v011,718862
- v11-1,263178
- v21-1,083092
- Training data ke-3
- w01-0,539659
- w110,544665
- v011,719205
- v11-1,263002
- v21-1,082925
- Training data ke-4
- w01-0,540661
- w110,544316
- v011,719081
- v11-1,263126
- v21-1,083049
39- Setelah sampai pada training data ke-4, maka
iterasi pertama selesai. - Berikutnya, pelatihan sampai pada step9, yaitu
memeriksa stopping condition dan kembali pada
step 2. - Demikian seterusnya sampai stopping condition
yang ditentukan terpenuhi. - Setelah pelatihan selesai, bobot yang didapatkan
adalah - v0112,719601
- v11-6,779127
- v21-6,779127
- w01-5,018457
- w115,719889
40- Jika ada input baru, misalnya x10,2 dan x20,9
maka outputnya dapat dicari dengan langkah umpan
maju sebagai berikut - Step 0. Bobot yang dipakai adalah bobot hasil
pelatihan di atas. - Step 1. Perhitungan dilakukan pada step 2-4
- Step 2. Dalam contoh ini, bilangan telah berada
dalam interval 0 sampai dengan 1, jadi tidak
perlu diskalakan lagi. - Step 3.
- z_in112,719601(0,2x-6,779127)(0,9x-6,779127)
5,262561 - z1f(5,262561)0,994845
- Step 4.
- y_in1-5,018457(0,994845x5,719889)0,671944
- y1f(0,671944)0,661938
- Jadi jika input x10,2 dan x20,9 output yang
dihasilkan jaringan adalah 0,661938