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.
- 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
x−ivij 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
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.
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
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
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
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.
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
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
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.0Jarak 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:
- 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 = 1w11 = 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;
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 = 1w11 = 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=18275bobot 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 = 2w21 = 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 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.3802Jarak 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;
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.1504Jarak 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 = 2w21 = 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,6904bobot 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 inputtersebut 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:
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
• 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,
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
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,-
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