• Tidak ada hasil yang ditemukan

Algoritma Backpropagation untuk Jaringan Saraf

N/A
N/A
Rima Putri

Academic year: 2024

Membagikan " Algoritma Backpropagation untuk Jaringan Saraf"

Copied!
21
0
0

Teks penuh

(1)

BACK PROPAGATION ALGORITMA BACK PROPAGATION

Backpropagation merupakan algoritma pembelajaran yang terawasi dan biasanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot yang

terhubung dengan neuron-neuran yang ada pada lapisan tersembunyi.

ARSITEKTUR JARINGAN BACK PROPAGATION

PELATIHAN BACK PROPAGATION Proses 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.

Umpan maju (feedforward)

- Step 3 : Setiap unit input (Xi ,i=1,…,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.

(2)

- Step 4 : Setiap hidden unit (Zj ,j=1,…,p) akan

menjumlahkan sinyal-sinyal input yang sudah berbobot, termasuk biasnya z¿j=voj+

i=1 n

xivij 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 - Step 5 : Setiap unit output (Yk, k=1,…,m) akan

menjumlahkan sinyalsinyal input yang sudah berbobot, termasuk biasnya, y¿k=wok+

j=1 p

zjwjk dan memakai fungsi aktivasi yang telah ditentukan untuk menghitung sinyal output dari unit output yang bersangkutan: 𝑦� = �(𝑦𝑖𝑛� ).

Propagasi balik error (backpropagation of error) y=f(x) 1

1+eσx dengan f’ = σ f(x)[1-f(x)]

- Step 6 : Setiap unit output (Yk ,k=1,…,m) menerima suatu target (output yang diharapkan) yang akan dibandingkan dengan output yang dihasilkan. 𝛿� = 𝑡� − 𝑦� �′(𝑦𝑖𝑛� ) Faktor k ini digunakan untuk menghitung koreksi error ( wjk) yang nantinya akan dipakai untuk memperbaharui wjk, di mana:

wjk= k zj. 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.

- Step 7 : Setiap hidden unit (Zj,j=1,…,p) menjumlah input delta (yang dikirim dari layer pada step 6) yang sudah berbobot ¿j

k=1 m

δkwjk . Kemudian hasilnya dikalikan dengan turunan dari fungsi aktivasi yang digunakan jaringan untuk menghasilkan faktor koreksi error j, di mana: j= _inj f’(z_inj). Faktor j ini digunakan untuk menghitung koreksi error (vij) yang nantinya akan dipakai untuk

memperbaharui vij, di mana: vij=jxi. Selain itu juga

(3)

dihitung koreksi bias v0j yang nantinya akan dipakai untuk memperbaharui v0j, di mana:

- Step 8 : Setiap unit output (Yk ,k=1,…,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 Step 9 :Memeriksa stopping condition. Jika stop condition telah terpenuhi, maka pelatihan jaringan dapat dihentikan.

TAHAP PENGUJIAN & PENGGUNAAN

- 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 i=1,…,n skalakan bilangan dalam range fungsi aktivasi seperti yang dilakukan pada proses pelatihan di atas.

- Step 3 : Untuk j=1,…,p: ZinJ=Voj

i=1 n

XiVij (𝑧� = �(𝑧𝑖𝑛� )) - Step 4 : Untuk k=1,…,m: Yink=Wok

j=1 p

ZjWjk 𝑦� = �(𝑦𝑖𝑛� ).

Variabel yk adalah output yang masih dalam skala menurut range fungsi aktivasi. Untuk mendapatkan nilai output yang sesungguhnya, yk harus dikembalikan seperti semula.

(4)

CONTOH CARA PELATIHAN JARINGAN SYARAF TIRUAN SEDERHANA MENGGUNAKAN METODE BACKPROPAGATION.

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 dan learning rate () = 0,01.

y=f(x)= 1

1+eσx dengan f’ = σ f(x)[1-f(x)]

Arsitektur jaringan yang akan dilatih adalah sebagai berikut:

Training data yang digunakan terdiri dari 4 pasang input- output, yaitu:

Input

1 Input 2 Input 3

0 0 0

0 1 1

1 0 1

1 1 0

Sebelum pelatihan, harus ditentukan terlebih dahulu

stopping conditionnya. Misalnya dihentikan jika error telah mencapai 0,41.

LANGKAH-LANGKAH PELATIHAN

Step 0: Misalnya inisialisasi bobot dan bias adalah:

v01=1,718946 v11 =-1,263178 v21 =-1,083092 w01 =-0,541180

(5)

w11=0,543960

Step 1: Dengan bobot di atas, tentukan error untuk training data secara keseluruhan dengan Mean Square Error:

• z_in11=1,718946+{(0 x -1,263178)+(0x- 1,083092)}=1,718946

• z11=f(z_in11)=0,847993

• z_in12=1,718946+{(0x-1,263178)+(1x- 1,083092)}=0,635854

• z12=f(z_in12)=0,653816

• z_in13=1,718946+{(1x-1,263178)+(0x- 1,083092)}=0,455768

• z13=f(z_in13)=0,612009

• z_in14=1,718946+{(1x-1,263178)+(1x-1,083092)=- 0,627324

• z14=f(z_in14)=0,348118

di mana indeks zjn berarti hidden unit ke-j dan training data ke-n.

• y_in11 =-0,541180+(0,847993x0,543960)=0,079906

• y11=f(y_in11)=0,480034

• y_in12 =-0,541180+(0,653816x0,543960)=-0,185530

• y12=f(y_in12)=0,453750

• y_in13 =-0,541180+(0,612009x0,543960)=0,208271

• y13=f(y_in13)=0,448119

• y_in14 =-0,541180+(0,348118x0,543960)=-0,351818 Maka E=0,5x{(0-0,480034)2 + (1-0,453750)2 ) + (1- 0,448119)2 + (0-0,412941)2 }=0,501957

Step2. Karena error masih lebih besar dari 0,41 maka step 3- 8 dijalankan.

Step 3. x1=0; x2=0 (iterasi pertama, training data pertama) Step 4.

• z_in1=1,718946+{(0x-1,263126)+(0x- 1,083049)}=1,718946.

• z1=f(z_in1 )=0,847993 Step 5.

• y_in11 =-0,541180+(0,847993x0,543960)=0,079906

• y11=f(y_in11)=0,480034

(6)

Step 6.

• 1=(0-0,480034)f ’(0,079906)=-0,119817

• w11=0,01x-0,119817x0,847993=-0,001016

• w01=0,01x-0,119817=-0,00119817 Step 7.

• _in1 =-0,00119817x0,543960=-0,00065176

• 1 =-0,00065176xf’(1,718946)=-0,00008401

• v11=0,01x-0,00008401x0=0

• v21=0,01x-0,00008401x0=0

• v01=0,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,263178+0=-1,263178

• v21(baru)=-1,083092+0=-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

Setelah step 3-8 untuk training data pertama dijalankan, selanjutnya kembali lagi ke step 3 untuk training data yang kedua (x1=0 dan x2=1). Langkah yang sama dilakukan sampai pada training data yang keempat. Bobot yang dihasilkan pada iterasi pertama, training data ke-2,3, dan 4 adalah:

Training data ke-2: Training data ke-3: Training data ke-4:

 w01 =-0,541023  w01 =-0,539659  w01 =- 0,540661

 w11=0,543830  w11=0,544665  w11=0,544316

 v01=1,718862  v01=1,719205  v01=1,719081

 v11 =-1,263178  v11 =-1,263002 v11 =-1,263126

 v21 =-1,083092 v21 =-1,082925 v21 =-1,083049

(7)

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:

 v01=12,719601  v11 =-6,779127  v21 =-6,779127

 w01 =-5,018457  w11=5,719889

Jika ada input baru, misalnya x1=0,2 dan x2=0,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_in1=12,719601+{(0,2x-6,779127)+(0,9x- 6,779127)}=5,262561

 z1=f(5,262561)=0,994845 Step 4.

 y_in1 =-5,018457+(0,994845x5,719889)=0,671944

 y1=f(0,671944)=0,661938

Jadi jika input x1=0,2 dan x2=0,9; output yang dihasilkan jaringan adalah 0,661938

LEARNING VECTOR QUANTIZATION (LVQ)

Suatu metode untuk melakukan pembelajaran pada lapisan kompetitif yang terawasi. Suatu lapisan kompetitif akan secara otomatis belajar untuk mengklasifikasikan vektor- vektor input. Pada jaringan LVQ digunakan arsitektur jaringan kompetitif dimana pada lapisan kompetitif secara otomatis belajar untuk mengklasifikasikan vektor-vektor input.

(8)

ARSITEKTUR JARINGAN SARAF LVQ

ALGORITMA

1. Tetapkan : w, maxIter, eps, α 2. Masukan :

a. input x(m,n); m = jumlah input; n = jumlah data b. target(1,n).

3. Tetapkan kondisi awal : a. epoch = 0;

b. err = 1;

4. Kerjakan jika (epoch < Maxlter) atau (α>eps) a. epoch = epoch+1;

b. kerjakan untuk i =1 sampai n

i. tentukan j sedemikian hingga ||x-wj || minimum ii. perbaiki wj dengan ketentuan :

 jika t = cj maka : wj(baru) = wj(lama) + α(x-wj(lama))

 jika t ≠ cj maka : wj(baru) = wj(lama) - α(x-wj(lama)) c. kurangi nilai α

CONTOH

Diketahui data 10 input vektor dalam 2 kelas adalah sebagai berikut :

Data

Ke Vektor Kelas

1 (1, 0, 0, 0, 1

(9)

1, 0) 2 (0, 1, 1, 1,

1, 0) 2

3 (0, 0, 1, 0,

0, 1) 1

4 (0, 0, 1, 0,

1, 0) 1

5 (0, 1, 0, 0,

0, 1) 1

6 (1, 0, 1, 0,

1, 1) 1

7 (0, 0, 1, 1,

0, 0) 2

8 (0, 1, 0, 1,

0, 0) 2

9 (1, 0, 0, 1,

0, 1) 2

10 (0, 1, 1, 1,

1, 1) 2

Dua input pertama akan dijadikan sebagai inisialisasi bobot : Vektor (w) Kelas

1 (1, 0, 0, 0,

1, 0) 1

2 (0, 1, 1, 1,

1, 0) 2

Sedangkan 4 input sisanya : (Akan digunakan sebagai data yang akan dilatih)

Vektor (x) kelas 1 (0, 0, 1, 0,

0, 1) 1

2 (0, 0, 1, 0,

1, 0) 1

3 (0, 1, 0, 0,

0, 1) 1

4 (1, 0, 1, 0,

1, 1) 1

5 (0, 0, 1, 1,

0, 0) 2

(10)

6 (0, 1, 0, 1,

0, 0) 2

7 (1, 0, 0, 1,

0, 1) 2

8 (0, 1, 1, 1,

1, 1) 2

Arsitektur jaringan saraf untuk contoh

Sebagai nilai awal dipilih learning rate (α = 0.05), dengan pengurangan sebesar 0.1*α; dan maksimum epoch

(MaxEpoch = 10).

Epoch ke-1: Data ke-1 : (0, 0, 1, 0, 0, 1) Jarak pada :

- bobot ke 1

(0−1)2+(0−0)2+(1−0)2+(0−0)2+(0−1)2+(1−0)2=2.0 - bobot ke 2

(0−1)2+(0−1)2+(1−1)2+(0−1)2+(0−1)2+(1−0)2=2.0

Jarak terkecil pada bobot ke-1 Target data ke-1 = 1

w11 = w11 + α*(x11 - w11) = 1 + 0,05*(0-1) = 0,9500;

w12 = w12 + α*(x12 - w12) = 0 + 0,05*(0-0) = 0,0000;

w13 = w13 + α*(x13 - w13) = 0 + 0,05*(1-0) = 0,0500;

w14 = w14 + α*(x14 - w14) = 0 + 0,05*(0-0) = 0,0000;

w15 = w15 + α*(x15 - w15) = 1 + 0,05*(0-1) = 0,9500;

w16 = w16 + α*(x16 - w16) = 0 + 0,05*(1-0) = 0,0500;

Jadi w1 = (0,9500 0,0000 0,0500 0,0000 0,9500 0,0500) Epho ke 1 Data ke-2: (0, 0, 1, 0, 1, 0)

Jarak pada:

(11)

- bobot ke-1

(0−0.95)2+(0−0)2+(1−0.05)2+(0−0)2+(1−0.95)2+(0−0.05)2=1.3454 - bobot ke-2

(0−0)2+(0−1)2+(1−1)2+(0−1)2+(1−1)2+(0−0)2=1.4142 Jarak terkecil pada bobot ke-1 Target data ke-2 = 1 w11 = w11 + α*(x21 - w11) = 0,95 + 0,05*(0-0,95) = 0,9025;

w12 = w12 + α*(x22 - w12) = 0,00 + 0,05*(0-0,00) = 0,0000;

w13 = w13 + α*(x23 - w13) = 0,05 + 0,05*(1-0,05) = 0,0975;

w14 = w14 + α*(x24 - w14) = 0,00 + 0,05*(0-0,00) = 0,0000;

w15 = w15 + α*(x25 - w15) = 0,95 + 0,05*(1-0,95) = 0,9525;

w16 = w16 + α*(x26 - w16) = 0,05 + 0,05*(0-0,05) = 0,0475;

Jadi w1 = (0,9025 0,0000 0,0975 0,0000 0,9525 0,0475) Epho ke 1 Data ke-3: (0, 1, 0, 0, 0, 1)

Jarak pada:

bobot ke-1 =

(0−0.9025)2(1−0)2(0−0.0975)2(0−0)2(0−0.9525)2(1−0.0475)2=1.9075 Bobot ke 2

(0−0)2(1−1)2(0−1)2(0−1)2(0−1)2(1−0)2=2.000 Jarak terkecil pada bobot ke-1 Target data ke-3 = 1

w11 = w11 + *(x31 – w11) = 0,9025 + 0,05*(0-0,9025) = 0,8574;

w12 = w12 + *(x32 – w12) = 0,0000 + 0,05*(0-0,0000) = 0,0500;

w13 = w13 + *(x33 – w13) = 0,0975 + 0,05*(1-0,0975) = 0,0926;

(12)

w14 = w14 + *(x34 – w14) = 0,0000 + 0,05*(0-0,0000) = 0,0000;

w15 = w15 + *(x35 – w15) = 0,9525 + 0,05*(1-0,9525) = 0,9049;

w16 = w16 + *(x36 – w16) = 0,0475 + 0,05*(0-0,0475) = 0,0951;

Jadi: w1 = (0,8574 0,0500 0,0926 0,0000 0,9049 0,0951) Epho ke 1 Data ke-4: (1, 0, 1, 0, 1, 1)

Jarak pada: - bobot ke-1 =

(1−0.8574)2(0−0.0500)2(1−0.0926)2(0−0)2(1−0.9049)2(1−0.0951)2=1.2938 - bobot ke-2 =

(1−0)2+(0−1)2(1−1)2(0−1)2(1−1)2(1−0)2=2.000 Jarak terkecil pada bobot ke-1 Target data ke-4 = 1

w11 = w11 + *(x41 – w11) = 0,8574 + 0,05*(1-0,8574) = 0,8645;

w12 = w12 + *(x42 – w12) = 0,0500 + 0,05*(0-0,0500) = 0,0475;

w13 = w13 + *(x43 – w13) = 0,0926 + 0,05*(1-0,0926) = 0,1380;

w14 = w14 + *(x44 – w14) = 0,0000 + 0,05*(0-0,0000) = 0,0000;

w15 = w15 + *(x45 – w15) = 0,9049 + 0,05*(1-0,9049) = 0,9096;

w16 = w16 + *(x46 – w16) = 0,0951 + 0,05*(1-0,0951) = 0,1404;

Jadi: w1 = (0,8645 0,0475 0,1380 0,0000 0,9096 0,1404) Epho 1 Data ke-5: (0, 0, 1, 1, 0, 0)

Jarak pada: - bobot ke-1 =

(0−0.8645)2(0−0.0475)2(1−0.1380)2(1−0)2(0−0.9096)2(0−0.1404)2=18275

bobot ke-2 =

0−0 2 0−12 1−1 21−12 0−12 0−0 2=1.4142 Jarak terkecil pada bobot ke-2 Target data ke-5 = 2

w21 = w21 + *(x51 – w21) = 0 + 0,05*(1-0) = 0,0000;

w22 = w22 + *(x52 – w22) = 1 + 0,05*(0-1) = 0,9500;

(13)

w23 = w23 + *(x53 – w23) = 1 + 0,05*(1-1) = 1,0000;

w24 = w24 + *(x54 – w24) = 1 + 0,05*(0-1) = 1,0000;

w25 = w25 + *(x55 – w25) = 1 + 0,05*(1-1) = 0,9500;

w26 = w26 + *(x56 – w26) = 0 + 0,05*(1-0) = 0,0000;

Jadi: w2 = (0,0000 0,9500 1,0000 1,0000 0,9500 0,0000) Epho 1 Data ke-5: (0, 0, 1, 1, 0, 0)

Jarak pada: - bobot ke-1 =

(0−0.8645)2(0−0.0475)2(1−0.1380)2(1−0)2(0−0.9096)2(0−0.1404)2=1.8275 - bobot ke-2 = 0−0 20−1 21−1 2 1−1 20−1 20−0 2=1.4142

¿

¿

Jarak terkecil pada bobot ke-2 Target data ke-5 = 2 Bobot ke-2 baru:

w21 = w21 + *(x51 – w21) = 0 + 0,05*(1-0) = 0,0000;

w22 = w22 + *(x52 – w22) = 1 + 0,05*(0-1) = 0,9500;

w23 = w23 + *(x53 – w23) = 1 + 0,05*(1-1) = 1,0000;

w24 = w24 + *(x54 – w24) = 1 + 0,05*(0-1) = 1,0000;

w25 = w25 + *(x55 – w25) = 1 + 0,05*(1-1) = 0,9500;

w26 = w26 + *(x56 – w26) = 0 + 0,05*(1-0) = 0,0000;

Jadi: w2 = (0,0000 0,9500 1,0000 1,0000 0,9500 0,0000) Epho ke 1 Data ke-6: (0, 1, 0, 1, 0, 0)

Jarak pada: - bobot ke-1 =

0−0.86452 1−0.04752 0−0.1380 21−0 2(0−0.9096)2(0−0.1404)2=1.8764

¿

¿ - bobot ke-2 =

(0−0)2(1−0.9500)2(0−1)2(1−1)2(0−0.9500)2(0−0)2=1.3802

Jarak terkecil pada bobot ke-2 Target data ke-6 = 2

w21 = w21 + *(x61 – w21) = 0,0000 + 0,05*(0-0,0000) = 0,0000;

w22 = w22 + *(x62 – w22) = 0,9500 + 0,05*(1-0,9500) = 0,9525;

w23 = w23 + *(x63 – w23) = 1,0000 + 0,05*(0-1,0000) = 0,9500;

(14)

w24 = w24 + *(x64 – w24) = 1,0000 + 0,05*(1-1,0000) = 1,0000;

w25 = w25 + *(x65 – w25) = 0,9500 + 0,05*(0-0,9500) = 0,9025;

w26 = w26 + *(x66 – w26) = 0,0000 + 0,05*(0-0,0000) = 0,0000;

 Jadi: w2 = (0,0000 0,9525 0,9500 1,0000 0,9025 0,0000) Epho ke 1 Data ke-7: (1, 0, 0, 1, 0, 1)

Jarak pada: - bobot ke-1 =

1−0.8645 2 0−0.04752 0−0.1380 21−0 2(0−0.9096)2(1−0.1404)2=1.6143

¿

¿ - bobot ke-2 =

(1−0)2(0−0.9525)2(0−0.9500)2(1−1)2(0−0.9025)2(1−0)2=2.1504

Jarak terkecil pada bobot ke-1 Target data ke-7 = 2

w11 = w11 - *(x71 - w11) = 0,8645 - 0,0266*(1-0,8645) = 0,8577;

w12 = w12 - *(x72 - w12) = 0,0475 - 0,0266*(0-0,0475) = 0,0499;

w13 = w13 - *(x73 - w13) = 0,1380 - 0,0266*(0-0,1380) = 0,1449;

w14 = w14 - *(x74 - w14) = 0,0000 - 0,0266*(1-0,0000) = - 0,0500;

w15 = w15 - *(x75 - w15) = 0,9096 - 0,0266*(0-0,9096) = 0,9551;

w16 = w16 - *(x76 - w16) = 0,1404 - 0,0266*(1-0,1404) = 0,0974;

Jadi: w1 = (0,8577 0,0499 0,1449 -0,0500 0,9511 0,0974) Epho ke 1 Data ke-8: (0, 1, 1, 1, 1, 1)

Jarak pada: - bobot ke-1 =

(0−0.8577)2(1−0.0499)2(1−0.1449)2(1−0.0500)2(1−0.9551)2(1−0.0974)2=2.0710 -bobot ke-2 =

(0−0)2(1−0.9525)2(1−0.9500)2(1−1)2(1−0.9025)2(1−0)2=1.0028 Jarak terkecil pada bobot ke-2 Target data ke-8 = 2

(15)

w21 = w21 + *(x81 - w21) = 0,0000 + 0,05*(0-0,0000) = 0,0000;

w22 = w22 + *(x82 - w22) = 0,9525 + 0,05*(1-0,9525) = 0,9549;

w23 = w23 + *(x83 - w23) = 0,9500 + 0,05*(0-0,9500) = 0,9525;

w24 = w24 + *(x84 - w24) = 1,0000 + 0,05*(1-1,0000) = 1,0000;

w25 = w25 + *(x85 - w25) = 0,9025 + 0,05*(0-0,9025) = 0,9074;

w26 = w26 + *(x86 - w26) = 0,0000 + 0,05*(0-0,0000) = 0,0500;

Jadi: w2 = (0,0000 0,9549 0,9525 1,0000 0,9074 0,0500) Epho ke 2

Learning Rate 0.05 pada epho ke 1. Maka Learning Rate pada epho ke 2:

 =  - (0,1 *  ) = 0,05 – (0,1 * 0,05) = 0,045 Epho ke 2 s.d 10

Proses tersebut diteruskan untuk epoch ke-2 sampai ke-10, untuk setiap data dengan menggunakan cara yang sama.

Setelah mencapai epoch yang ke-10 diperoleh bobot akhir:

w1 = (0,3727 0,2161 0,6347 -0,2164 0,7981 0,4254) w2 = (0,0000 0,7969 0,7900 1,0000 0,5869 0,2171) Pengujian

Apabila kita ingin mensimulasikan input: (0, 1, 0, 1, 1, 0), maka kita cari terlebih dahulu jarak input tersebut dengan kedua bobot. Nomor dari bobot dengan jarak yang terpendek akan menjadi kelasnya. Pengujian menggunakan bobot hasil pelatihan.

w1 = (0,3727 0,2161 0,6347 -0,2164 0,7981 0,4254) w2 = (0,0000 0,7969 0,7900 1,0000 0,5869 0,2171) Jarak pada: - bobot ke-1

0−0,3727 2+(1−0,2161)2+(0−0,6347)2+(1−0,2164)2+¿(1−0,7981)2+(0−0,4254)2=1,6904

(16)

bobot ke-2 =

(0−0)2+(1−0,7969)2+(0−0,7900)2+(1−1)2+(1−0,5869)2+(0−0,2171)2=0,9398 Jarak terkecil pada bobot ke-2 Kesimpulan bahwa input

tersebut termasuk dalam kelas 2.

KOHONEN ALGORITMA PELATIHAN KOHONEN 0. Inisialisasi bobot: ivij.

Set perameter-parameter te:ta:ngga.

Set parameter learning rate.

1. Kerjakan jika :kondisi berhenti bemilai F.;!\LSE:

a. Untuk setiap vektor input X: kerjakan:

- Untuk setiapj, biruug:

- Tenmkaa J:! sedemikian hiimgga D.(J) m·inimmn.

- Unmk setiap unit j 1dengan spesifikasi tetaagga tertentu2 dan unmk setiap i:

~) = Wij(;laria)+ ot(Ki - W~)) 'lb. Perbaiki le{l]"ni.ng rate

c. Knrangi radius ketetanggaan paella waktu tertentu d. I est kondisi berhenti

Perhatikan Data Dibawah Ini

X1 X2

0.10 0.10

0.20 0.20

0.30 0.10

0.50 0.30

0.40 0.40

0.20 0.40

Buatlah data diatas menjadi 2 cluster. Bobot awal yang akan kita gunakan adalah matriks berukuran 2x2 dengan tiap-tiap elemen bernilai 0,5. Learning rate (=0,6) dengan tiap

kenaikan epoch akan diset 0,5x(). Maksimum epoch ditetapkan sebesar 10

Diketahui:

(17)

alpha ()= 0,60 MaxEpoch = 10 Pengurangan alpha = 0,50 Bobot awal: 0,50 0,50 0,50 0,50

- Epho ke-1 Data ke 1

• Jarak pada:

bobot ke-1 = (0,5 – 0,1)2 + (0,5 – 0,1)2 = 0,32 bobot ke-2 = (0,5 – 0,1)2 + (0,5 – 0,1)2 = 0,32

• Jarak terkecil pada bobot ke-1 Bobot ke- 1 baru:

w11 = 0,5 + 0,6(0,1 – 0,5) = 0,26 w12 = 0,5 + 0,6(0,1 – 0,5) = 0,26

- Epho ke-1 Data ke 2

• Jarak pada:

bobot ke-1 = (0,26 – 0,2)2 + (0,26 – 0,2)2 = 0,0072 bobot ke-2 = (0,50 – 0,2)2 + (0,50 – 0,2)2 = 0,1800

• Jarak terkecil pada bobot ke-1 Bobot ke- 1 baru:

w11 = 0,26 + 0,6(0,2 – 0,26) = 0,224 w12 = 0,26 + 0,6(0,2 – 0,26) = 0,224 - Epho ke-1 Data ke 3

• Jarak pada:

bobot ke-1 = (0,224 – 0,3)2 + (0,224 – 0,1)2 = 0,0212 bobot ke-2 = (0,5 – 0,3)2 + (0,5 – 0,1)2 = 0,2000

• Jarak terkecil pada bobot ke-1 Bobot ke- 1 baru:

w11 = 0,224 + 0,6(0,3 – 0,224) = 0,2696 w12 = 0,224 + 0,6(0,1 – 0,224) = 0,1496 - Epho ke-1 Data ke 4

• Jarak pada:

bobot ke-1 = (0,2696 – 0,5)2 + (0,1496 – 0,3)2 = 0,0757 bobot ke-2 = (0,5 – 0,5)2+ (0,5 – 0,3)2 = 0,0400

• Jarak terkecil pada bobot ke-2 Bobot ke- 2 baru:

w21 = 0,5 + 0,6(0,5 – 0,5) = 0,5000 w22 = 0,5 + 0,6(0,3 – 0,5) = 0,3800 - Epho ke-1 Data ke 5

• Jarak pada:

bobot ke-1 = (0,2696 – 0,4)2 + (0,1496 – 0,4)2 = 0,0797 bobot ke-2 = (0,5 – 0,4)2 + (0,38 – 0,4)2 = 0,0104

(18)

• Jarak terkecil pada bobot ke-2, Bobot ke- 2 baru: w21 = 0,5 + 0,6(0,4 – 0,5) = 0,4400 w22 = 0,38 + 0,6(0,4 – 0,38) = 0,3920

- Epho ke-1 Data ke 5

• Jarak pada:

bobot ke-1 = (0,2696 – 0,2)2 + (0,1496 – 0,4)2 = 0,0675 bobot ke-2 = (0,44 – 0,2)2 + (0,392 – 0,4)2 = 0,0577

• Jarak terkecil pada bobot ke-2, Bobot ke- 2 baru:

w21 = 0,44 + 0,6(0,2 – 0,44) = 0,2960 w22 = 0,392 + 0,6(0,4 – 0,392) = 0,3968 Epho ke 2

• Setiap berganti epho maka Learning Rate berubah.

• Learning Rate Berubah pada epho ke 2 yaitu;  = 0,5 * 0,6

= 0,3

Lakukan hal yang sama sampai epho yang ditentukan yaitu epho ke 10

Bobot Akhir Epho ke 10

Nilai bobot akhir setelah epoh ke-10 adalah: w = 0,2190 0,3424 0,1351 0,3754

Pengujian No. 1

• Misalkan kita akan melakukan testing terhadap data ketiga:

[0,3 0,1] termasuk dalam cluster mana? maka kita cari

terlebih dahulu jarak data tersebut pada bobot setiap cluster:

• Jarak pada:

* bobot ke-1 = (0,2190 – 0,3)2 + (0,1351 – 0,1)2 = 0,0078

* bobot ke-2 = (0,3424 – 0,3)2 + (0,3754 – 0,1)2 = 0,0776

• Ternyata jarak yang lebih pendek adalah jarak terhadap bobot ke-1, maka data tersebut termasuk dalam cluster pertama.

Pengujian No. 2

• Kita juga bisa melakukan testing terhadap data yang tidak ikut dilatih, misalkan: [0,4 0,5] termasuk dalam cluster mana,

(19)

maka seperti biasa kita cari terlebih dahulu jarak data tersebut pada bobot setiap cluster

• Jarak pada:

* bobot ke-1 = (0,2190 – 0,4)2 + (0,1351 – 0,5)2 = 0,1997

* bobot ke-2 = (0,3424 – 0,4)2 + (0,3754 – 0,5)2 = 0,0404

• Ternyata jarak yang lebih pendek adalah jarak terhadap bobot ke-2, maka data tersebut termasuk dalam cluster kedua.

HOPFIELD DISKRIT

 Jaringan Hopfield Diskrit merupakan jaringan saraf tiruan yang terhbung penuh (fully connected), yaitu bahwa setiap unit terhubung dengan setiap unit lainnya.

 Jaringan ini memiliki bobot-bobot yang simetris.

 Pada jaringan Hopfield, setiap unit tidak memiliki hubungan dengan dirinya sendiri.  Secara matematik hal ini memenuhi wij = wji untuk i ≠ j dan wij = 0 untuk i = j.

 Fungsi aktivasi yang digunakan dalam jaringan Hopfield adalah fungsi energy Lyapunov, yaitu sebuah fungsi yang terbatas dan menurun untuk mendapatkan kestabilan pada aktivasinya.

ARSITEKTUR JARINGAN HOPFIELD

(20)

BOBOT VEKTOR 6 NEURON

Contoh

Terdapat 2 buah pola yg ingin dikenali: pola A (1,0,1,0,1,0) pola B (0,1,0,1,0,1) Bobot-bobotnya sbb:

PENYELESAIAN Algoritma :

• Aktivasi node pertama pola A

• Aktivasi node kedua pola A

• Node 3-6 hasilnya 4,-6,4,-6

• Cara yg sama lakukan utk pola B yg hasilnya -6,4,-6,4,-6,4 PENGUJIAN

 Mengenali pola C (1,0,1,0,0,0) dianggap citra pola A yg mengalami distorsi  Aktivasi node 1-6 menghasilkan (2,-

(21)

4,2,-4, 4,-4), maka output (1,0,1,0,1,0)  Mengenali pola D (0,0,0,1,0,1) dianggap citra pola B yg mengalami distorsi  Bagaimana dg pola D?

Algoritma dengan Asynchronous update

 Mengenali pola E (1,0,1,1,0,1)  Aktivasi node 1-6 diperoleh (-2,0,-2,-2,0,-2) dg output (0,1,0,0,1,0) bukan A atau B  solusi dg Asynchronous update

Referensi

Dokumen terkait

Algoritma backpropagation merupakan salah satu metode pembelajaran jaringan syaraf tiruan yang membandingkan output yang diperoleh jaringan dengan target yang telah ditetapkan

Berdasarkan hasil pengujian, penggunaan metode jaringan saraf tiruan dengan Algoritma Backpropagation memberikan hasil cukup baik untuk mengenali gambar yang terdapat pada training

Dalam melakukan identifikasi penyakit algoritma backpropagation akan menggunakan bobot-bobot yang ada dari hasil proses pelatihan untuk digunakan pada proses

Sehingga untuk uji prediksi harga saham yang menggunakan jaringan syaraf tiruan secara supervised learning dengan algoritma backpropagation memiliki tingkat

Dengan menerapkan Jaringan Saraf Tiruan dan algoritma Backpropagation yang di aplikasikan pada Software Matlab sebagai aplikasi pengolahan citra diharapkan dapat digunakan

Backpropagation merupakan algoritma pembelajaran terawasi (supervised) dengan mempunyai banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron-neuron

Sehingga untuk uji prediksi harga saham yang menggunakan jaringan syaraf tiruan secara supervised learning dengan algoritma backpropagation memiliki tingkat

Salah satu algoritma Jaringan Saraf Tiruan yang banyak digunakan dalam pengenalan wajah adalah Backpropagation.. Backpropagation adalah metode umum mengajar jaringan syaraf