Anda di halaman 1dari 18

NEURAL NETWORK BACKPROPAGATION

PEMODELAN SIMULASI

Diajukan Untuk Memenuhi Salah Satu Tugas Mata Kuliah


Pemodelan Simulasi

Dosen : Ir. Bambang Siswoyo M.Si


Kelas : MOSI - 6

OLEH
10114281 M. Ariq Fakhrizal

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
BANDUNG
2017
1. Cara Kerja
Metode Backpropagation adalah salah satu metode pelatihan terawasi (supervised
learning) pada jaringan syaraf. Dimana ciri dari metode ini adalah meminimalkan
error pada output yang dihasilkan oleh jaringan.

Model Backpropagation (perambatan balik) merupakan algoritma pembelajaran /


pelatihan dengan :

banyak sel dalam jaringan.

banyak lapisan dalam jaringan.

menggunakan error output untuk merubah nilai bobot

perambatan forward

perambatan backward

Backpropagation cocok digunakan untuk JST jenis feedforward, yaitu jaringan


yang tidak memiliki feedback. Backpropagation sebenarnya kependekan dari
backwards propagation of errors. Backpropagation digunakan untuk mencari
error gradient dari jaringan terhadap bobot-bobot jaringan yang dapat
dimodifikasi. Error gradient ini yang akan digunakan untuk mencari nilai bobot
yang akan meminimalkan eror.

Gambar 1 Alur proses dari JST Backpropagation secara umum.


2. Arsitektur Backpropagation
Jaringan Backpropagation memiliki beberapa neuron yang berada dalam
satu atau lebih lapisan tersembunyi (hidden layer). Setiap neuron yang berada
dilapisan input terhubung dengan setiap neuron yang berada di hidden layer.
Begitu juga pada hidden layer, setiap neuronnya terhubung dengan setiap neuron
yang ada di output layer. Jaringan saraf tiruan Backpropagation terdiri dari banyak
lapisan (multi layer), yaitu:

1. Lapisan masukan (input layer) Input layer sebanyak 1 lapis yang terdiri
dari neuron neuron input, mulai dari neuron input pertama sampai neuron input
ke-n. Input layer merupakan penghubung yang mana lingkungan luar memberikan
sebuah pola kedalam jaringan saraf. Sekali sebuah pola diberikan kedalam input
layer, maka output layer akan memberikan pola yang lainnya (Heaton, 2008).
Pada intinya input layer akan merepresentasikan kondisi yang dilatihkan kedalam
jaringan. Setiap input akan merepresentasikan beberapa variabel bebas yang
memiliki pengaruh terhadap output layer.

2. Lapisan tersembunyi (hidden layer) Hidden layer berjumlah minimal 1


lapis yang terdiri dari neuron-neuron tersembunyi mulai dari neuron tersembunyi
pertama sampai neuron tersembunyi ke-p. Menentukan jumlah neuron pada
hidden layer merupakan bagian yang sangat penting dalam arsitektur jaringan
saraf.

Ada beberapa aturan metode berdasarkan pengalaman yang dapat digunakan


untuk menentukan jumlah neuron yang akan digunakan pada hidden layer.
Menurut Haykin (1999) jumlah hidden neuron 2 sampai dengan 9 sudah dapat
menghasilkan hasil yang baik dalam jaringan, namun pada dasarnya jumlah
hidden neuron yang digunakan dapat berjumlah sampai dengan tak berhingga (~).
Sedangkan menurut Heaton (2008), ada beberapa aturan yang dapat digunakan
untuk menentukan banyaknya jumlah neuron pada hidden layer yaitu: a. Jumlah
hidden neuron harus berada diantara ukuran input layer dan output layer. b.
Jumlah hidden neuron harus 2 3 dari ukuran input layer, ditambah ukuran output
layer. c. Jumlah hidden neuron harus kurang dari dua kali jumlah input layer.
Aturan-aturan tersebut hanya berupa pertimbangan dalam menentukan arsitektur
jaringan saraf tiruan. Bagaimanapun, penentuan arsitektur jaringan akan kembali
pada trial and error sesuai dengan masalah yang ditangani oleh jaringan.

3. Lapisan keluaran (output layer) Output layer berjumlah satu lapis yang
terdiri dari neuron-neuron output mulai dari neuron output pertama sampai neuron
output ke-m. Output layer dari jaringan saraf adalah pola yang sebenarnya
diberikan oleh lingkungan luarnya (external environment). Pola yang diberikan
output layer dapat secara langsung ditelusuri kembali ke input layernya. Jumlah
dari neuron output tergantung dari tipe dan performa dari jaringan saraf itu
sendiri.

Gambar 2 Arsitektur Backpropagation


Gambar 2 adalah arsitektur Backpropagation dengan n buah masukan
(ditambah dengan bias), sebuah layar tersembunyi Z1 (Vji merupakan bobot garis
yang menghubungkan bias di neuron input ke neuron layar tersembunyi Zj). Wkj
merupakan bobot dari neuron layar tersembunyi Zj ke neuron keluaran Yk ( Wk0
merupakan bobot dari bias di layar tersembunyi ke neuron keluaran Yk). Pelatihan
Backpropagation meliputi tiga fase, yaitu :

1. Fase I: Propagasi maju Selama propagasi maju, sinyal masukan


dipropagasikan ke hidden layer menggunakan fungsi aktivasi yang telah
ditentukan hingga menghasilkan keluaran jaringan. Keluaran jaringan
dibandingkan dengan target yang harus dicapai. Selisih antara target dengan
keluaran merupakan kesalahan yang terjadi. Jika kesalahan lebih kecil dari batas
toleransi, maka iterasi dihentikan. Akan tetapi jika kesalahan lebih besar, maka
bobot setiap garis dalam jaringan akan dimodifikasi untuk mengurangi kesalahan
yang terjadi.

2. Fase II: Propagasi mundur Kesalahan yang terjadi di propagasi mundur


mulai dari garis yang berhubungan langsung dengan neuron-neuron dilayar
keluaran.

3. Fase III: Perubahan bobot Pada fase ini, bobot semua garis
dimodifikasi secara bersamaan. Ketiga fase tersebut diulang- ulang terus hingga
kondisi penghentian dipenuhi. Kondisi penghentian yang sering dipakai adalah
jumlah maksimal iterasi (epoch) atau minimal kesalahan (error).
3. Algoritma Backpropagation (Contoh)
Berikut adalah algoritma pelatihan Backpropagation dengan arsitektur satu hidden
layer (Fausset, 1994):

Langkah 0 Inisialisasi bobot (set dengan bilangan acak kecil)

Langkah 1 Jika kondisi berhenti masih belum terpenuhi, lakukan langkah 2-9.

Langkah 2 Untuk setiap pasang pelatihan, lakukan langkah 3-8

Feedforwad

Langkah 3 Setiap neuron input (, = 1,,) menerima sinyal input dan


meneruskan sinyal ini kesemua neuron pada lapisan di atasnya
(hidden neuron). Berikut merupakan ilustrasi bagaimana sinyal
dipropagasikan keseluruh input layer. () merupakan bobot
penghubung pada input layer.

Gambar 3 Propagasi sinyal ke neuron pertama pada input layer

Gambar 4 Propagasi sinyal ke neuron kedua pada input layer


Gambar 5 Propagasi sinyal ke neuron ketiga pada input layer
Langkah 4 Setiap hidden neuron (, = 1,,) menjumlahkan bobot dari
sinyal-sinyal inputnya.

(10)

Kemudian gunakan fungsi aktivasi untuk menghitung nilai sinyal


outputnya.

Zj = f(Z_inj) (11)

Dan kirimkan sinyal ini ke semua neuron yang berada pada lapisan
diatasnya (output neuron). Gambar berikut merupakan ilustrasi
bagaimana sinyal dipropagasikan keseluruh hidden layer.
merupakan bobot penghubung pada hidden layer.

Gambar 6 Propagasi sinyal ke neuron pertama pada hidden layer


Gambar 7 Propagasi sinyal ke neuron kedua pada hidden layer

Langkah 5 Setiap output neuron (, = 1,,) menjumlahkan bobot dari


sinyal-sinyal inputnya.

Dan menerapkan fungsi aktivasinya untuk menghitung nilai sinyal


outputnya.
= ( ) (13)
Gambar 8 merupakan ilustrasi yang dapat menjelaskan bagaimana
sinyal dipropagasikan ke output layer.

Gambar 8 Propagasi sinyal ke neuron output


Backpropagation error

Langkah 6 Setiap neuron output (, = 1,,) menerima sebuah pola target


yang sesuai pada input pola pelatihan, kemudian menghitung
informasi kesalahannya.
= (_) (14)
Hitung koreksi bobot (yang nantinya akan dipakai untuk merubah
bobot )
= (15)
Hitung koreksi bias (yang nantinya akan digunakan untuk merubah
bobot 0
0 = (16)
Dan kirim ke neuron pada lapisan dibawahnya. Berikut ini adalah
ilustrasi dari prosesnya.

Gambar 9 Perbandingan sinyal keluaran dan target

Langkah 7 Setiap hidden neuron (, = 1,,) menjumlahkan delta input (dari


neuron yang berada dilapisan bawahnya),

Mengalikan dengan turunan dari fungsi aktivasinya untuk menghitung


informasi errornya.
= _(_) (18)
Hitung koreksi bobotnya (yang nantinya akan digunakan untuk
mengupdate
= (19)
Dan hitung koreksi biasnya (yang nantinya akan digunakan untuk
mengupdate 0.
0 = (20)
Prosesnya dapat dilihat dari ilustrasi gambar 10 dan 11 berikut ini:

Gambar 10 Propagasi sinyal error Ke f4(E)

Gambar 11 Propagasi sinyal error Ke f5(E)


Koefisien bobot Wmn digunakan untuk mempropagasikan error
kembali adalah sama dengan bobot sebelumnya selama
mengkomputasikan nilai keluaran. Hanya ketika arah alur data
berubah (sinyal di propagasikan dari keluaran ke masukan). Teknik ini
digunakan untuk semua lapisan jaringan. Apabila propagasikan error
datang dari beberapa neuron, seperti yang terlihat pada gambar 12
sampai 14 berikut:
Gambar 12 Propagasikan Sinyal Error Ke f1(E)

Gambar 13 Propagasikan Sinyal Error Ke f2(E)

Gambar 14 Propagasikan Sinyal Error Ke f3(E)


Update weight and bias

Langkah 8 Setiap neuron output (, = 1,,) mengupdate bias dan bobot-


bobotnya ( j=0, . . . ,p):

= + (21)
Setiap hidden neuron (, = 1,,) mengupdate bias dan bobot -
bobotnya (i= 0, . . ., n)
= + (22)
Gambar 15 sampai dengan gambar 20 merupakan ilustrasi dari proses
pengupdate-an bobot:

Gambar 15 Modifikasi Bobot 1

Gambar 16 Modifikasi Bobot 2


Gambar 17 Modifikasi Bobot 3

Gambar 18 Modifikasi Bobot 4

Gambar 19 Modifikasi Bobot 5


Gambar 20 Modifikasi Bobot 6
Langkah 9 Tes kondisi berhenti dapat dilakukan ketika error yang dihasilkan oleh
jaringan berada pada nilai yang lebih kecil sama dengan () error
target yang diharapkan atau ketika telah mencapai iterasi (epoch)
maksimal yang telah ditetapkan.

Berikut ini adalah arsitektur Backpropagation yang dilakukan secara manual


pada kasus pada Neuron.

Gambar 21 Contoh Arsitektur Backpropagation


Arsitektur Backpropagation yang terdiri dari 5 buah neuron ditambah sebuah bias
pada input layer dan 3 buah neuron pada hidden layer ditambah sebuah bias dan
satu buah output layer. Nilai target pada jaringan adalah 1 dan learning rate =
0.25. Mula-mula bobot diberi nilai acak pada range [-1, 1]. Misal terdapat bobot
seperti tabel 2.1 (bobot dari input layer ke hidden layer = ) dan tabel 2.2 (bobot
dari hidden layer ke output layer = ).
Table 1 Bobot dari input layer ke hidden layer

Z1 Z2 Z3
X1 = 4 -1 0.75 -0.25
X2 = 7 0.4 0.23 0.11
X3 =11 0.17 0.05 -0.18
X4 = 6 0.29 0.55 0.03
X5 = 21 0.21 1 0.15
B=1 0.2 -0.8 1

Table 2 Bobot dari hidden layer ke output layer

Y
Z1 0.1
Z2 0.03
Z3 0.5
B =1 0.1

Normalisasi data input kedalam range [0, 1] dengan menggunakan rumus berikut:

(Siang, 2004)

Keterangan:

x' = x yang telah dinormalisasi

x = x sebelum dinormalisasi

min = nilai minimum dari seluruh data

max = nilai maksimum dari seluruh data

Maka didapatkan hasil input normalisasi dengan nilai minimum = 4 dan nilai
maksimum = 21.
Hitung nilai output dari masing-masing hidden neuron dengan persamaan (10):
_ = 0 + = XiVij

1 = 1 0.2 + 0.1 1 + 0.24 0.4 + 0.33 0.17 + 0.19 0.29 + 0.9 0.21

= 0.2 + 0.1 + 0.096 + 0.561+ 0.551+ 0.189

= 1.48

2 = 1 (0.8) + 0.1 (0.75) + 0.24 (0.23) + 0.33 (0.05) + 0.19 (0.55) + 0.9 (1)
= (0.8) + (0.75) + 0.552 + 0.165 + 0.104+ (0.9)
= 1.67

3 = 1(1) + 0.1 (0.25) + 0.24 (0.11) + 0.33 (0.18) + 0.19 (0.03) + 0.9 (0.15)
= 1 + (0.25) + 0.026 + (0.059) + 0.006+ 0.135
= 0.86

Kemudian terapkan fungsi aktivasi untuk masing-masing neuronnya


menggunakan persamaan (11), dalam soal ini diterapkan fungsi aktivasi sigmoid
biner.

Zj = f (Z_inj) =

Z1 = = 1.23
Z2 = = 1.19

Z3 = = 1.42

Hitung nilai output dari neuron Y menggunakan persamaan (12) seperti berikut:

_ = 0 + =

Karena jaringan hanya memiliki sebuah output Y, maka :

= 1 (0.1) + 1.23 (0.1) + 1.19 (0.03) + 1.42(0.5)


= 0.97

= () = = = 1.38

Hitung faktor pada neuron output Y sesuai dengan persamaan (14)

= ( ) (_) = ( ) (1 )
= (1 1.38) ( 1.38 ) ( 1 1.38 )
= 0.20

Suku perubahan bobot (dengan = 0.25) adalah sebagai berikut:

= ; = 0,13

10 = (0.25) (0.20) (1) = 0.05

11 = (0.25) (0.20) (1.23) = 0.01

12 = (0.25) (0.20) (1.19) = 0.06

13 = (0.25) (0.20) (1.42) = 0.07

Hitung penjumlahan kesalahan di hidden neuron (= ):

_ =

karena jaringan hanya memiliki sebuah neuron output maka

_ = 1
_1 = (0.20) (0.1) = 0.20
_2 = (0.20) (0.03) = 0.01
_3 = (0.20) (0.5) = 0.1

Faktor kesalahan di hidden neuron:

= _(_) = _ (1 )
1 = (0.20) (1.23) (1 1.23) = 0.06
2 = (0.01) (1.19) (1 1.19) = 0.002
3 = (0.1) (1.42) (1 1.42) = 0.06

Suku perubahan bobot ke hidden neuron = dimana = 1,2,3; = 0,1,


5.

Table 3 Suku Perubahan Bobot Hidden Neuron

Z1 Z2 Z3
X1 11 21 31
= (0.25) (0.06) (0.1) = (0.25) (0.002) (0.1) = (0.25) (0.06) (0.1)
= 0.0015 = 0.00005 = 0.0015
X2 12 22 32
= (0.25) (0.06) (0.24) = (0.25) (0.002) (0.24) = (0.25) (0.06) (0.24)
= 0.004 = 0.0012 = 0.004
X3 13 23 33
= (0.25) (0.06) (0.33) = (0.25) (0.002) (0.33) = (0.25) (0.06) (0.33)
= 0.005 = 0.000165 = 0.005
X4 14 24 34
= (0.25) (0.06) (0.19) = (0.25) (0.002) (0.19) = (0.25) (0.06) (0.19)
= 0.003 = 0.000095 = 0.003
X5 15 25 35
= (0.25) (0.06) (0.9) = (0.25) (0.002) (0.9) = (0.25) (0.06) (0.9)
= 0.001 = 0.00045 = 0.01
B=1 10 20 30
= (0.25) (0.06) (1) = (0.25) (0.002) (1) = (0.25) (0.06) (1)
= 0.02 = 0.0005 = 0.02

Perubahan bobot neuron output:

() = () + = 1; = 0,,3
11 () = (0.1) + (0.01) = (0.11)

12 () = (0.03) + (0.06) = (0.09)

13 () = (0.5) + (0.07) = (0.57)

10 () = (0.1) + (0.05) = (0.15)

Perubahan bobot hidden neuron:

() = () + = 1; = 0,,5

Table 4 Perubahan Bobot Hidden Neuron

Z1 Z2 Z3
X1 11 (baru) 21 (baru) 31
= (-1) + (0.0015) = (0.75) + (0.00005) = (0.25) + (0.0015)
= 1.0015 = 0.75 = 0.25
X2 12 22 32
= (0.4) + (0.004) = (0.23)+(0.0012) = (0.11) + (0.004)
= 0.40 = 0.23 = 0.11
X3 13 23 33
= (0.17) + (0.005) = (0.055)+ (0.000165) = (-0.18) + (0.005)
= 0.17 = 0.55165 = 0.18
X4 14 24 34
= (0.29) + (0.003) = (0.55) + (0. 000095) = (0.03) + (0.003)
= 0.29 = 0.55 = 0.3
X5 15 25 35
= (0.21) + (0.01) = 1 + (0.00045) = (0.15) + (0.01)
= 0.001 = 0.9995 = 0.15
B=1 10 20 30
= (0.2) + (0.02) = (-0.8) + (0.0005) = (1) + (0.02)
= 0.18 = 0.8 = 0.98

Ulangi iterasi hingga maksimal epoch atau Error Jaringan Error target.