BAB 3 METODOLOGI PENELITIAN - Analisis Perbandingan Backpropagation Dengan Learning Vector Quantization (LVQ) Untuk Memprediksi Curah Hujan Di Kota Medan
BAB 3 METODOLOGI PENELITIAN Curah hujan adalah merupakan ketinggian air hujan yang jatuh pada tempat
yang datar dengan asumsi tidak menguap, tidak meresap dantidak mengalir. Curah hujan 1 (satu) mm adalah air hujan setinggi 1 (satu) mm yang jatuh (tertampung) pada
2
tempat yang datar seluas 1m dengan asumsi tidak ada yang menguap, mengalir dan meresap.
Curah hujan kumulatif 1 (satu) bulan adalahjumlah curah hujan yang terkumpul selama 28 atau 29 hari untuk bulan Pebruari dan 30 atau 31 hari untuk bulan-bulan lainnya. Sifat hujan merupakan perbandingan antarajumlah curah hujan kumulatif selama satu bulan di suatu tempat dengan rata-ratanya atau normalnya pada bulan dan tempat yangsama.
Sifat hujan dibagi menjadi 3 (tiga) katagori, yaitu : a. Sifat Hujan Atas Normal (AN): jika nilai curah hujan lebih dari 115% terhadap rata-ratanya.
b.
Sifat Hujan Normal (N): jika nilai curah hujan antara 85% - 115 %terhadap rata-ratanya.
c.
Sifat Hujan Bawah Normal (BN): jika nilai curah hujan kurang dari 85 %terhadap rata-ratanya. Rata-rata curah hujan bulanan didapat dari nilai rata-rata curah hujan masing- masing bulan dengan minimal periode 10 tahun.Sedangkan normal curah hujan bulanan didapat dari nilai rata-rata curah hujan masing-masing bulan selama periode 30 tahun. Intensitas hujan merupakan besarnya hujan harian yang terjadi pada suatu waktu yang umumnya memiliki satuan mm/jam.
Intensitas hujan dibagi menjadi3 (tiga) katagori, yaitu: a. Enteng (tipis) : jika nilai curah hujan kurang dari 13 mm/jam b.
Sedang : jika nilai curah hujan antara 13–38 mm/jam c.
Lebat : jika nilai curah hujan lebih dari 38 mm/jam
3.1 Flow Chart Rancangan Penelitian
Dalam menganalisis algoritma Backpropagation dengan Learning Vector
Quantization untuk memprediksi curah hujan di Kota Medan disusun langkah –
langkah yang akan dilakukan dalam penelitian ini yang dapat dilihat seperti flow chart Gambar 3.1.
Gambar 3.1 Flow Chart Rancangan Penelitian
S
Data Curah Hujan
KomulatifAlgoritma Back
Prediksi Curah
HujanTraining/Sim
ulasi
Analisis Kinerja
AlgoritmaHasil Prediksi
Sel
3.2 Bahan Penelitian
Bahan penelitian yang diperoleh dari Badan Meteorologi Klimatologi dan Geofisika Medan berupa data primer curah hujan komulatif bulanan selama 30 tahun seperti pada Tabel 3.1.
Tabel 3.1 Data Curah Hujan kota Medan Stasiun Polonia (dalam milimeter) Contoh pembacaan Normal curah hujan: J9 an 5 - 129 dibawah 95 mm Bawah Normal, diatas 129 mm Atas Normal P 7 dibawah72 mm Bawah Normal, diatas 98 mm Atas eb 2 - 98 Normal M
9 ar 9 - 135 dibawah 99 mm Bawah Normal, diatas 135 mm Atas Normal Rata-rata = jumlah dibagi 30 thn Batas bawah = 85% x rata-rata Batas atas = 115% x rata-rata Untuk data curah hujan tahun selanjutnya dilakukan cara yang sama.
3.3 Pseudocode Algoritma Backpropagation
Adapun pseudocode algoritma Backpropagation dalam melakukan training dapat dilihat seperti dibawah ini: while ((epoch <= ME) and (MSE > eps)) do epoch
←epoch+1 for Data ← 0 to jmlData do for j
← 0 to 4 do Z_net[j] ← 0 Z[j]
← 0 for i ← 0 to maxI do
Z_net[j] ← Z_net[j] + (P[i][ Data] * V[i][j]) endfor
Z[j] ← 1 / (1 + Pow(e, -Z_net[j])) Endfor
End for MS[Data]
←0 for k ← 0 to maxK do Y_net[k]
← 0 for j ← 0 to 4 do
Y_net[k] ← Y_net[k] +(Z[j] * W[k][j]) endfor
Y[k] ← 1 / (1 + Pow(e, -Y_net[k])) error[k] ← Pow(T[k, Data] - Y[k],2)
MS[Data] ← MS[Data] + error[k] endfor
MS[Data] ← MS[Data] / 7 MSE +
← MS[Data] for k = 0 to maxK do DK[k] = (T[k][ Data] - Y[k]) * Y[k] * (1 - Y[k]) endfor for k ← 0 to maxK do for j
← 0 to 4 do dW[k][j] ← rate * DK[k] * Z[j] endfor endfor for j
← 0 to 4 do DK_net[j]
V[i,j] ← V[i,j] +dV[i,j] endfor endfor MSE
← 1 to jmlKls do
C ← 0 for k
H[k] ← Sqrt(hasil) endfor
← 0 to jmlData do hasil ← hasil + Pow((P[j][i] - W[j][k]), 2) endfor
← 0 to jmlKls do hasil ← 0 for j
←Err+1 for i ← 0 to jmlData do for k
Adapun pseudocode algoritma LVQ dalam melakukan training adalah sebagai berikut: while ((Err< MaxErr) or (rate > eps)) do Err
← MSE / jml Data Endwhile
← 0 to 4 do for i ← 0 tomaxI do
← 0 for k ← 0 to maxK do
W[k,j] ← W[k,j] +dW[k,j] endfor endfor for j
← 0 to 4 do for k ← 0 to maxK do
← rate * DS[j] * P[i, Data] endfor endfor for j
← 0 to 4 do for i ← 0 to maxI do dV[i,j]
← DK_net[j] * Z[j] * (1 - Z[j]) endfor for j
← 0 to 4 do DS[j]
Endfor endfor for j
DK_net[j] ← DK_net[j] +(DK[k]*W[k][j])
3.4 Pseudocode Algoritma Linear Vector Quantization (LVQ)
if (H[k] < H[C]) then C
← k endif endfor if (TK[C] == TP[i]) then for j
← 0 to jmlData do W[j][C]
← W[j][C] + rate * (P[j][C] - W[j][C]) endfor else for j
← 0 to jmlData do W[j][C]
← W[j][C] - rate * (P[j][C] - W[j][C]) endfor endif endfor rate
← rate - (0.1 * rate) endWhile
3.5 Flow Chart Training Backpropagation
Adapun Flowchart dari algoritma TrainingBackpropagation dapat dilihat seperti pada Gambar 3.2.
S
Parameter Jaringan,Vektor Input InisialisasiBobot Secara Acak Setiap input meneruskan ke hidden layer Jalankan fungsi aktifasi untuk menghitung
Propag Hitung input bobotnya =
�
δ α = ∆
Setiap neuron hidden menjumlahkan input dari neuron diatasnya ∑
=
= m k jk k j
w in 1
_ δ δ
Hitung komponen error Propag asi Mundur
Hitung komponen error Hitung komponen koreksi errornya (untuk mengubah v ij )
- = j jk j ok k
∑
w z w in y _
Hitung komponen koreksi errornya (untuk mengubah v 0j ) j j v
δ α = ∆
Hitung semua perubahan bobot menuju ke unit keluaran w jk (baru) = w jk (lama) + Δw
P erubahan Kondisi St ? Simpan bobot Akhir = w jk (baru)
Sto
Gambar 3.2 Flowchart Training Algoritma BackpropagationKeterangan Flowchart : 1. Mulai 2.
Masukkan bobot awal 3. Setiap masukan meneruskan ke hidden layer 4. Kerjakan fungsi aktifasi untuk menghitung output 5. Kerjakan untuk menghitung komponen error 6. Kerjakan untuk menghitung komponen perubahan bobot 7. Kerjakan untuk menghitung komponen bias 8. Kerjakan untuk setiap neuron hidden menjumlahkan input dari neuron diatasnya 9. Kerjakan untuk menghitung komponen errornya 10.
ij
Kerjakan untuk menghitung koreksi error untuk mengubah V 11.
oj
Kerjakan untuk menghitung koreksi error untuk mengubah V 12. Kerjakan untuk menghitung semua perubahan bobot menuju ke unit keluaran 13. Kerjakan untuk menghitung semua perubahan bobot menuju ke unit keluaran 14. Selesai
3.6 Flow Chart Training dengan Linier Vector Quantization (LVQ)
Adapun Flow ChartTrainingdengan Linier Vector Quantization dapat dilihat seperti pada Gambar 3.3.
S Data Pelatihan Pendefinisi Input, Output dan
Pembentukan Jaringan LVQ NET = Bobot,JmlNeuron,(1/JmlKlas)* MinErr (Jumkls))
Penetapan Parameter Pelatihan
1.MaksEpoch = 100
2.MinError = 0.001
3 DecError 0 1 Training Epoch=Epoc Penetapan JmlKlas, JmlNeuron,
Penetapan Bobot Awal (Wij) i=1,2,...,K. j=1,2,...,m Wij= 0-1
Inisialisasi Bobot Awal Perbaikan Bobot Wj Jika T = Cj maka Wj=Wj+ MinError(Curah Hujan)
Jika T <> Cj maka Wj=Wj- MinError (Curah Hujan)
Error <MinError atau Hasil S
Gambar 3.3 Flow Chart Training dengan LVQ3.7 Flowchart Algoritma Prediksi Backpropagation
Adapun proses dari algoritma Prediksi Backpropagation seperti pada Gambar 3.4.
S Vektor Input Uji (x i ) Bobot Terakhir Pelatihan Setiap Unit pada
Hidden Layer menghitung
output
- = � Setiap Unit pada Output Layer
menghitung output
- y in = w z w _ k ok j jk
∑ j Menerapkan fungsi aktivasi untuk
menghitung sinyal output
Y k =f(y_In k )
Gambar 3.4 Flow Chart Prediksi Algoritma Backpropagation3.8 Flowchart Prediksi Algoritma Learning Vector Quantization
Adapun proses dari algoritma PrediksiLearning Vector Quantization adalah seperti pada Gambar 3.5.
Gambar 3.5 Flow Chart Prediksi Algoritma Learning Vector QuantizationDari perancangan dapat diperoleh hasil analisis berupa tabel Waktu Training dan Prediksi hasil seperti pada Tabel 3.2 berikut ini.
S Vektor Input (Xi) Bobot Terakhir Pelatihan Setiap Unit pada Hidden
Layer menghitung output ||Xi-Wj||
Sto ||Xi-Wj|| Min
= Kls (J)
Tampilkan Sto Tampilkandata yang mendekati Y
k3.9 Rancangan Hasil Analisis
Tabel 3.2 Waktu Training dan Prediksi o
Linear Vector Quantization xxx
Parameter Training yang digunakan adalah maksimal perulangan,
Parameter Training Parameter Training yang digunakan adalah maksimalperulangan,
propagation ).
mundur (backpropagation) Menggunakan1Aluryaitu alur maju(forward
propagation ) dan alur
No Parameter Backpropagation LVQ Alur Training Menggunakan 2 alur, yaitu alur maju (forward
Tabel 3.4 Perbandingan Metode Backpropagation dan LVQ
Backpropagation dan Learning Vector Quantization. Tabel 3.4 merupakan
perbandingan dasar dari kedua metode tersebut.Algoritma Trainingdan Prediksi yang dibandingkan pada sistem ini adalah
xxx
Algoritma Rata-rata Waktu Training (Detik)
Backpropagation
Tabel 3.3Akurasi Prediksi No Algoritma Akurasi
Pada simulasi dalam memprediksi keakuratan predisksi diperoleh dalam tabel hasil simulasi Akurasi seperti pada Tabel 3.3.
Epochs = 100 Learning Rate = 0.25 Iterasi = 100 Maks err = 0.001
Serta tabel akurasi prediksi dengan variasi parameter training seperti pada Tabel 3.4 berikut ini. Paramater:
Linear Vector Quantization xxx xxx xxx
Backpropagation xxx xxx xxx
Selisih (Detik)
Rata-rata Waktu Prediksi (Detik)
3.10 Analisis Metode Training dan Prediksi
Learning rate dan minimal error .
Mean Square Error
Hasil Simulasi Berupa angka biner dari nilai kelas yang dikenali.
Berupa nilai bobot (w).
bobot pada output layer (w).
hidden layer (v) dan
Perhitungan sederhana karena hanya menggunakan 3 rumus dalam perhitungan pembelajaran dan 1 rumusdalam perhitungan pengenalan. Hasil Training Berupa nilai bobot pada
Perhitungan lebih rumit karena menggunakan 11 rumus dalam perhitungan pembelajaran, dan 4 rumus dalam perhitungan pengenalan.
Perulangan dilakukan selama perulangan belum mencapai maksimal perulangan atau nilai perubahan rasio pembelajaran masih lebih kecil dari minimal eror. Kompleksitas Algoritma
(MSE) masihlebih kecil dari minimal eror.
Perulangan dilakukan selama perulangan belum mencapai maksimal perulangan dan nilai
Learning rate , pengurang rasio dan minimal error.
Perubahan bobotdihitung berdasarkan nilai kelas hasil perhitungan. Jika kelas hasil perhitungan sama dengan kelas targetmaka menggunakan rumus tambah, dan sebaliknya menggunakan rumus kurang. Perulangan Training
layer (v).
Nilai awal bobot diambil dari salah satu data masukanuntuk setiapkelas. Perubahan bobot dihitung dengan alur mundur (backpropagation), yaitu dengan mengubah nilai bobot pada layer output (w), kemudian mengubah nilai bobot pada hidden
Nilai awal setiap bobot diambil dari nilai random yang cukup kecil.
layer (w).
Memiliki 1 nilai bobot yaitu bobot pada output
layer (v) dan bobot pada output layer (w).
Bobot Training Memiliki 2 nilai bobot yaitu bobot pada hidden
Berupa nilai kelas yang dikenali.
3.11 Proses Training
Proses Trainingmerupakan proses dimana komputer belajar dari sejumlah data yang ada dan menghasilkan nilai bobot. Bobot merupakan nilai yang menunjukkan seberapa besar koneksi antara neuron. Nilai bobot akan bertambah, jika informasi yang diberikan oleh neuron yang bersangkutan tersampaikan, sebaliknya jika informasi tidakdisampaikan oleh suatu neuron ke neuron yang lain, maka nilai bobot yangmenghubungkan keduanya akan dikurangi.
Pada saat pelatihan dilakukan pada input yangberbeda, maka nilai bobot akan diubah secara dinamis hingga mencapai suatu nilai yangcukup seimbang. Apabila nilai ini telah tercapai mengindikasikan bahwa tiap-tiap input telah berhubungan dengan output yang diharapkan.Selama proses pelatihan, masing-masing bobot koneksi dipropagasikan ke seluruh unitatau node dengan metode pelatihan perambatan balik (Backpropagation). Bobot-bobot diatur secara iteratif untuk meminimumkan fungsi kinerja jaringan. Fungsikinerja yang sering digunakan adalah Means Squared
Error (MSE), dimana fungsi ini akan mengambil kuadraterror yang terjadi antara
output dan target.Proses Trainingpada sistem ini dilakukan dengan menggunakan 2 buah metode, yaitu Backpropagation dan Learning Vector Quantization.
Data yang digunakan sebagai contoh pada proses trainingadalah data curah hujan selama 20 tahun dan data pengujian yang digunakan adalah data curah hujan selama 10 tahun seperti yang telah disajikan pada Tabel 3.5.
Tabel 3.5 Data Curah Hujan Tahun 1980Tahun Bulan Curah Hujan Kondisi Kode 1980
01
61 BN
3 1980 02 106 BN
3 1980 03 115 BN
3 1980
04
88 BN
3 1980 05 235 AN
1 1980 06 163 BN
3 1980 07 111 BN
3 1980 08 452 AN
2 1980 09 388 AN
2
1980 10 223 N
3
3
75
1 1997
1
97
3 1996
66
2
3 1995
3
2 1994
2
3 1993 161
3
44
3 1998 163
2 1999 315
1
3 2003 169
1
2 2006 104
2
2 2005 189
2
2 2004 139
2
3
2
91
2 2002
2
3 2001 217
3
59
2 2000
1 1992
3 1991 117
1 1980 11 187 N
61
1
3 1982
3
44
3 1981
3
1980
3 1983
Kelas (LVQ)
Target (Back Propagasi)
Tahun Curah Hujan
Tabel 3.6 Data Curah Hujan Target dan Kelas bulan Januari 30 TahunKeterangan: Kode = 1 adalah curah hujan normal (N) Kode = 2 adalah curah hujan atas normal (AN) Kode = 3 adalah curah hujan bawah normal (BN)
2 Jumlah 217.25 Range N 185-250
1 1980 12 478 AN
3
74
3
2
61
2 1990
2
3 1989 198
3
94
2 1988
1 1987 143
3
1
3 1986 109
3
40
2 1985
2
3 1984 155
1
2007 170
2
2 2008 127
1
1 2009
72
3
3 Jumlah 3.353 Rata 112 Rx (85%)
95 Rx
(115%)
129
Keterangan: Target = digunakan untuk algoritma Backpropagation Kelas = digunakan untuk algoritma LVQ
Backpropagation
3.12 Perhitungan
Vektor (x) Kelas 1980
2 Sedangkan 20 data berikutnya digunakan sebagai data yang akan dilatih seperti pada Tabel 3.8.
Data Curah Hujan yang dilatih sebanyak 30 tahun, dimana 10 tahun pertama digunakan sebagai inisialisasi bobot seperti pada Tabel 3.7.
3
66
3 1995
2 1994
3 1993 161
44
1 1992
3 1991 117
61
Vektor (x) Kelas 1990
Tabel 3.8 Data Pelatihan bulan Januari3 1989 198
61
94
2 1988
3 1986 109 1 1987 143
40
2 1985
3 1984 155
Tabel 3.7 Data Inisialisasi Bobot bulan Januari3 1983
1
3 1982
44
3 1981
74
= 0.20
Gambar 3.6 Arsitektur JaringanBackpropagation3
3 = 0.8 (44−1) 315−0
X’
3 = 0.39
0.8 (117−1) 315−0
=
2
= 0.25 X’
1
1 = 0.8 (61−1) 315−0
1 ’ = 0.8 ( −1) −
X
Dari data pada Tabel 3.9 nilai data terkecil (a) adalah 0 dan data terbesar adalah 315 ditransformasikan dalam interval 0.1 - 0.9 dengan fungsi transformasi:
) berupa tahun, bulan dan curah hujan yang dapat dilihat seperti pada Gambar 3.6.
1996
i
3 Arsitektur jaringan syaraf dengan 3 input(x
72
1 2009
3 2003 169 2 2004 139 2 2005 189 2 2006 104 1 2007 170 2 2008 127
91
2 2002
3 2001 217
59
2 2000
3 1998 163 2 1999 315
75
1 1997
97
- 0.1 X’
- 0.1 X’
- 0.1 X’
- 0.1 X’
- 0.1 X’
- 0.1 X’
- 0.1 X’
- 0.1 X’
- 0.1 X’
- 0.1 X’
X’13
11
=
0.8 (59−1) 315−0
11
= 0.24 X’
12
=
0.8 (217−1) 315−0
12 = 0.64 X’13
=
0.8 (91−1) 315−0
= 0.32 X’
10 = 0.89
14 = 0.8 (169−1) 315−0
14
= 0.52 X’
15
=
0.8 (139−1) 315−0
15 = 0.45
X’
16 = 0.8 (189−1) 315−0
16
= 0.57 X’
X’
0.8 (315−1) 315−0
17 = 0.8 (104−1) 315−0
= 0.26 X’
X’
4 = 0.8 (161−1) 315−0
4 = 0.41
X’
5
=
0.8 (0−1) 315−0
5 = 0.09
X’
6 = 0.8 (66−1) 315−0
6
7 = 0.8 (97−1) 315−0
=
7 = 0.34
X’
8
=
0.8 (75−1) 315−0
8
= 0.28 X’
9 = 0.8 (163−1) 315−0
9
= 0.51 X’
- 0.1 X’
- 0.1 X’
- 0.1 X’
- 0.1
- 0.1 X’
- 0.1 X’
- 0.1 X’
- 0.1
10
- 0.1 X’
- 0.1 X’
- 0.1 X’
0.10
0.06
0.26
0.57
0.07
0.34
0.36
0.08
0.28
0.52
0.09
0.51
0.42
0.89
0.09
0.28 Untuk algoritma Backpropagation,inisialisasi semua bobot dengan bilangan acak kecil seperti padaTabel 3.10.
Tabel 3.10 Bobot dari input layer (V i ) ke layer tersembunyi (Z i )Z
2 Z
3 V
1
0.2 0.3 -0.1
V
2
0.3 0.1 -0.1 V3 -0.3
0.3
0.3 Dan bobot-bobot dari hidden layer ke output layer seperti pada Tabel 3.11.
0.45
0.05
X’
Tabel 3.9 Data Transformasi Pelatihan17
= 0.36 X’
18
=
0.8 (170−1) 315−0
18 = 0.52
X’
19 = 0.8 (127−1) 315−0
19
= 0.42 X’
20 = 0.8 (72−1) 315−0
20 = 0.28 Dari hasil transformasi data di atas diperoleh tabel 3.9.
Vektor (x
0.52
1 dan x 2 ) Target (2000-2009)
0.01
0.25
0.24
0.02
0.39
0.64
0.03
0.20
0.32
0.04
0.41
1 Z
Tabel 3.11 Bobot-bobot dari hidden layer ke output layerY Z1
0.5 Z2 -0.3 Z3 -0.4 1 -0.1
Learning Rate = 0.2
Maks Epoch = 1000
- 10
Target Err=
10 Epoch ke-1
Data -1 = x = 0.01, x = 0.25, T = 0.24
1
2 Output Hidden layer (Z j ),j = 1,2,3
- =
�
=1
2
- =
�
10
1 =1
- =
10
1
11
2
12
1
= −0,3 + 0.01 ∗ 0,2 + 0.25 ∗ 0,3
1
= −0.3 + (0,002 + 0.075)
1
= -0,223
1
2
- =
�
10
2 =1
= + +
20
1
21
2
22
2
= 0,3 + 0.01 ∗ 0,3 + 0.25 ∗ 0,1
2
= 0.3 + 0.003 + 0.025
2
= 0.328
2
2
- =
�
30
3 =1
= + +
30
1
31
2
32
3
= 0,3 + 0.01 ∗ (−0,1) + 0.25 ∗ (−0,1)
3
= 0,3 − 0.003 − 0.025
3
= 0.272
3
1 =
� � =
− _
1 +
1
1 = = = 0,55
� � =
1 1 − _ 1 −(−0,223)
1 + 1 +
1
1 = = = 0,67
� � =
2 2 − _ 2 −(0.328)
1 + 1 +
1
1 = = = 0,52
� � =
3 3 − _ 3 −(0.272)
1 + 1 + Hitung semua jaringan di unit keluaran (y
k)
- = _ �
=1
= = + + + + �
10
10
1
11
2
12
3
13
1 =1
= −0,1 + 0,55 .0,5 + 0,67 . (−0,3) + 0,52 . (−0,4) = 0,24
1
1 = = = 0,44
) = ( _
− _ −0,24
1 + 1 + Fase II : Propagasi Maju
Langkah 6
δ =(t -y ) f’(y_net )= (t -y ) y (1-y )
k k k k k k k k
δ =(t -y ) f’(y_net )= (t -y ) y (1-y )=(0-0,44)*0,44*(1-0,44) = -0,11
1
1
1
1
1
1
1
1
z Δw kj = α δ k j
(1)=0,2 . (-0,11) . (1) = -0,022 Δw
10 = α δ
1
(z )=0,2 . (-0,11) . (0,55) = -0,01 Δw
11 = α δ
1
1
(z )=0,2 . (-0,11) . (0,67) = -0,01 Δw
12 = α δ
1
2
Δw
13 = α δ 1 (z 3 )=0,2 . (-0,11) . (0,52) = -0,01 Langkah 7 Hitung factor δ unit tersembunyi berdasarkan kesalahan di setiap unit tersembunyi z (j=1,2,3,…,p)
j
= � δ
δ_
=1
= δ . = ( −0,11). 0,5 = −0,055
δ_
1
1
11
= δ . = ( −0,11). (−0,3) = 0,033
δ_
2
1
12
= δ . = ( −0,11). (−0,4) = 0,044
δ_
3
1
13 Faktor kesalahan δ unit tersembunyi
δ = δ_net f’(z_net ) = δ_net z (1-z )
j j j j j
δ = δ_net z (1-z ) = (-0.055).0,55.(1-(0,55)) = -0,01
1
1
1
1
δ = δ_net z (1-z ) = (0.033).0,67.(1-(0,67)) = 0,01
2
2
2
2
δ = δ_net z (1-z ) = (0.044).0,52.(1-(0,52)) = 0,01
3
3
3
3
x Δv ji = α δ j i
= 0,2*(-0,01)*1 = -0,002 Δv10 = α δ1
= 0,2*(0,01)*1 = 0,002 Δv20 = α δ2
= 0,2*(0,01)*1 = 0,002 Δv30 = α δ3
= 0,2*(-0,01)*1 = -0,002 Δv11 = α δ1x1
= 0,2*(0,01)*1 = 0,002 Δv21 = α δ2x1
= 0,2*(0,01)*1 = 0,002 Δv31 = α δ3x1 Δv12 = α δ1x2 = 0,2*(-0,01)*1 = -0,002
= 0,2*(0,01)*1 = 0,002 Δv22 = α δ2x2
= 0,2*(0,01)*1 = 0,002 Δv32 = α δ3x2
Fase III : Perubahan Bobot
Langkah 8
Perubahan bobot garis yang menuju unit keluaran wkj (baru) = wkj (lama) + Δwkj w10 (baru) = w10 (lama) + Δw10 = -0,1-0,022 = -0,122 w11 (baru) = 0,49 = w11 (lama) + Δw11 = 0,5-0,01 w12 (baru) = w12 (lama) + Δw12 = -0,3-0,01 = 0,31 w13 (baru) = w13 (lama) + Δw13 = -0,4-0,01 = 0,41
Vji (baru) = vji (lama) + Δvji
V10 (baru) = v10 (lama) + Δv10 = -0,3-0,002 = -0,302
V20 (baru) = v20 (lama) + Δv20 = 0,3+0,002 = 0,302
V30 (baru) = v30 (lama) + Δv30 = 0,3+0,002 = 0,302
V11 (baru) = v11 (lama) + Δv11 = 0,2-0,002 = 0,198
V21 (baru) = v21 (lama) + Δv21 = 0,3+0,002 = 0,302
V31 (baru) = v31 (lama) + Δv31 = -0,1+0,002 = -0,098
V12 (baru) = 0,298 = v12 (lama) + Δv12 = 0,3-0,002
V22 (baru) = 0,102 = v22 (lama) + Δv22 =0,1+0,002
V32 (baru) = v32 (lama) + Δv32 =-0,1+0,002 = -0,098
Untuk pola yang kedua, X
1 =1, X 2 =0 dan t=1
Fase I: Propagasi Maju
Langkah 3
Tiap unit masukkan menerima sinyal dan meneruskan ke unit tersembunyi
Langkah 4
Hitung semua keluaran di unit tersembunyi (Z ):
j
- =
�
=1
2
- = = = + +
� −0,3 + ∗ 0,2 + ∗ 0,3 = −0,1
10
10
1
11
2
12
1 =1
2
= + = = 0,3 + + + � ∗ 0,3 + ∗ 0,1 = 0,6
20
20
1
21
2
22
2 =1
2
= + = + + = 0,3 + � ∗ (−0,1) + ∗ −0,1)
30
30
1
31
2
32
3 =1
= 0,2
1 =
� � =
− _
1 +
1
1 = = = 0,55
� � =
1 1 − _ 1 − ,
1 + 1 +
1
1 = = = 0,67
� � =
2
2 − _ 2 ,
1 + 1 +
1
1 = = = 0,52
� � =
3 3 − _ 3 − ,
1 + 1 +
Langkah 5
Hitung semua jaringan di unit keluaran (y k) =
- =1
- = = + + +
_ �
�
10
10
1
11
2
12
3
13
1 =1
= −0,1 + 0,55 ∗ 0,5 + 0,67 ∗ (−0,3) + 0,52 ∗ (−0,4) = 0,24
1
1 = ) = = = 0,44
( _
− _ − ,
1 + 1 + Fase II : Propagasi Maju
Langkah 6
δ
k =(t k -y k ) f’(y_net k )= (t k -y k ) y k (1-y k )
δ
1 =(t 1 -y 1 ) f’(y_net 1 )= (t 1 -y 1 ) y 1 (1-y 1 )=(0-0,44) * 0,44 * (1-0,44) = -0,11 kj k z j
Δw = α δ
10 1 (1) = 0,2 * (-0,11) * (1) = -0,022
Δw = α δ
11 1 (z 1 ) = 0,2 * (-0,11) * (0,55) = -0,01
Δw = α δ
12 1 (z 2 ) = 0,2 * (-0,11) * (0,67) = -0,01
Δw = α δ
13 1 (z 3 ) = 0,2 * (-0,11) * (0,52) = -0,01
Δw = α δ
Langkah 7
Hitung factor δ unit tersembunyi berdasarkan error di setiap unit tersembunyi z j (j=1,2,3,…,p) =
δ_ � δ
=1
δ = = (
δ_ ∗ −0,11) ∗ 0,5 = −0,055
1
1
11
δ = = (
δ_ ∗ −0,11) ∗ (−0,3) = 0,033
2
1
12
δ = = (
δ_ ∗ −0,11) ∗ (−0,4) = 0,044
3
1
13 Faktor errorδ unit tersembunyi
δ j = δ_net j f’(z_net j ) = δ_net z j (1-z j ) δ
1 = δ_net z 1 (1-z 1 ) = (-0.055) * 0,55 * (1-(0,55)) = -0,01
δ
2 = δ_net z 2 (1-z 2 ) = (0.033) * 0,67 * (1-(0,67)) = 0,01
δ
3 = δ_net z 3 (1-z 3 ) = (0.044) * 0,52 * (1-(0,52)) = 0,01
Δvji = α δjxi Δv10 = α δ1 = 0,2 * (-0,01)*1 = -0,002
= 0,2 * (0,01)*1 = 0,002 Δv20 = α δ2
= 0,2 * (0,01)*1 = 0,002 Δv30 = α δ3
= 0,2 * (-0,01)*1 = -0,002 Δv11 = α δ1x1
= 0,2 * (0,01)*1 = 0,002 Δv21 = α δ2x1
= 0,2 * (0,01)*1 = 0,002 Δv31 = α δ3x1
= 0,2 * (-0,01)*1 = -0,002 Δv12 = α δ1x2
= 0,2 * (0,01)*1 = 0,002 Δv22 = α δ2x2
= 0,2 * (0,01)*1 = 0,002 Δv32 = α δ3x2 Fase III : Perubahan Bobot
Langkah 8
Perubahan bobot garis yang menuju unit keluaran w (baru) = w
kj kj (lama) + Δw kj
w
10 (baru) = w
10 10 = -0,1-0,022 = -0,122
(lama) + Δw w (baru) = w = 0,5-0,01 = 0,49
11 11 (lama) + Δw
11 w (baru) = w = -0,3-0,01 = 0,31
12 12 (lama) + Δw
12
w
13 (baru) = w
13 13 = -0,4-0,01 = 0,41
(lama) + Δw V (baru) = v
ji ji (lama) + Δv ji
V
10 (baru) = v
10 10 = -0,3-0,002 = -0,302
(lama) + Δv V (baru) = v = 0,3+0,002 = 0,302
20 20 (lama) + Δv
20 V (baru) = v = 0,3+0,002 = 0,302
30 30 (lama) + Δv
30 V 11 (baru) = v
11 11 = 0,2-0,002 = 0,198
(lama) + Δv
V
21 (baru) = v
21 21 = 0,3+0,002 = 0,302
(lama) + Δv V (baru) = v = -0,1+0,002 = -0,098
31 31 (lama) + Δv
31 V (baru) = v = 0,3-0,002 = 0,298
12 12 (lama) + Δv
12 V 22 (baru) = v
22 22 = 0,1+0,002 = 0,102
(lama) + Δv V (baru) = v = -0,1+0,002 = -0,098
32 32 (lama) + Δv
32 Lanjutkan dengan pola yang lainnya:
Pola ke 2 X1=1, X2=0, t=1 Pola ke 3 X1=0, X2=1, t=1 Pola ke 4 X1=0, X2=0, t=0
3.13 Perhitungan Dengan LVQ
Data yang diproses adalah data 10 tahun dengan vektor x1 adalah tahun dan x2 adalah curah hujan (mm) serta target yang diambil 10 berikutnya. Misalkan diketahui 10 input vektor dalam 3 kelas dapat dilihat seperti pada Tabel 3.12.
Tabel 3.12 Data Vektor InputVektor (x) Kelas 1990
61
3 1991 117
1 1992
44
3 1993 161
2 1994
3 1995
66
3 1996
97
1 1997
75
3 1998 163 2 1999 315
2 2000
59
3
2001 217
1 1992
i
2 Arsitektur jaringan syaraf dengan 3 input (x
3 1998 163 2 1999 315
75
1 1997
97
3 1996
66
3 1995
2 1994
3 1993 161
44
3 1991 117
2 2002
61
No Matriks Latih Target 1990
Tabel 3.14 Data Latih3 Sedangkan 8 inputan sisanya akan digunakan sebagai data yang akan dilatih yang dapat dilihat seperti pada Tabel 3.14.
61
2 1990
No Matriks Bobot Target 1991 117 1 1993 161
Tabel 3.13 Data Bobot3 Dua inputan yang pertama akan diinisialisasi sebagai bobot yang dapat dilihat seperti pada Tabel 3.13.
72
1 2009
3 2003 169 2 2004 139 2 2005 189 2 2006 104 1 2007 170 2 2008 127
91
) berupa tahun, bulan dan curah hujan dengan 2 unit outputberupa kelas sifat curah hujan (normal, atas normal dan bawah normal) yang dapat dilihat seperti pada Gambar 3.7.
| Y_ |X-W
1 ||
Y_ | |X-W2 ||
Gambar 3.7Arsitektur Jaringan LVQ Keterangan:
X
1 = Input 1 (Tahun)
X = Input 2 (Bulan)
2 X = Input 3 (Curah Hujan (mm)
2 W = Vektor bobot yang menghubungkan setiap neuron pada
1
lapisan input ke neuron pertama pada lapisan output.
W = Vektor bobot yang menghubungkan setiap neuron pada
2
lapisan input ke neuron kedua pada lapisan output.
F = Fungsi aktifasi yang memetakan y_in ke y =1 bila ||X-W 1 ||
1
1
1 <||X-W 2 ||
dan y 1 =0 jika sebaliknya. F = Fungsi aktifasi yang memetakan y_in ke y =1 bila ||X-W 2 ||
2
2
2 <||X-W 1 || dan y =0 jika sebaliknya.
2 Sebagai Nilai awal dipilih Learning Rate (
α ) = 0.05, dengan pengurangan sebesar 0.1* α, dan maksimum epoch (MaxEpoch) = 100.
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
Jarak Pada bobot ke – 2 �(0 − 0 )2 + (0 – 1 )2 + (1 – 1 )2 + (0 – 1 )2 + (0 – 1 )2 + (1 – 0 )2
= 2 Jarak terkecil adalah pada w ke-1 Target data ke-1 adalah 1 Karena target data ke-1 = w ke-1, maka w ke-1 baru adalah: Wj(baru) = Wj(lama) +
α ( Xi - Wj(lama) ) = 1 + 0.05*(0-1) = 0.95 = 0 + 0.05*(0-0) = 0 = 0 + 0.05*(1-0) = 0.05 = 0 + 0.05*(0-0) = 0 = 1 + 0.05*(0-1) = 0.95 = 0 + 0.05*(1-0) = 0.05 W1(baru) = (0.95, 0, 0.05, 0, 0.95, 0.05)
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 + (1 – 0.05)2
= 1.345 Jarak Pada bobot ke – 2
�( 0 − 0 )2 + ( 0 – 1 ) 2 + ( 1 – 1 ) 2 + ( 0 – 1 ) 2 + ( 1 – 1 ) 2 + ( 0 – 0 )2 = 1.414 Jarak terkecil adalah pada w ke-1 Target data ke-2 adalah 1 Karena target data ke-2 = w ke-1, maka w ke-1 baru adalah : Wj(baru) = Wj(lama) +
α ( Xi - Wj(lama) ) = 0.95 + 0.05*(0-0.95) = 0.9025 = 0.00 + 0.05*(0-0.00) = 0 = 0.05 + 0.05*(1-0.05) = 0.0975 = 0.00 + 0.05*(0-0.00) = 0 = 0.95 + 0.05*(1-0.95) = 0.9525 = 0.05 + 0.05*(0-0.05) = 0.0475
W1(baru) = (0.9025, 0, 0.0975, 0, 0.9525, 0.0475)
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.907
Jarak Pada bobot ke – 2 =
�( 0 − 0 )2 + ( 1 – 1 ) 2 + ( 0 – 1 ) 2 + ( 0 – 1 ) 2 + ( 0 – 1 ) 2 + ( 1 – 0 ) 2 = 2 Jarak terkecil adalah pada w ke-1 Target data ke-3 adalah 1 Karena target data ke-3 = w ke-1, maka w ke-1 baru adalah : Wj(baru) = Wj(lama) +
α ( Xi - Wj(lama) ) = 0.9025 + 0.05*(0-0.9025) = 0.8574 = 0.0000 + 0.05*(0-0.0000) = 0.0500 = 0.0975 + 0.05*(1-0.0975) = 0.0926 = 0.0000 + 0.05*(0-0.0000) = 0.0000 = 0.9525 + 0.05*(1-0.9525) = 0.9049 = 0.0475 + 0.05*(0-0.0475) = 0.0951 W1(baru) = (0.8574, 0.0500, 0.0926, 0.0000, 0.9049, 0.0951)
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.0000) 2 + (1– 0.9049) 2 + (1– 0.0951)2
= 1.293Jarak pada bobot ke – 2
2
2
2
2
2
2
= + (0 – 1) + (1 – 1) + (0 – 1) + (1 – 1) + (1 – 0) √ (1- 0)
= 2 Jarak terkecil adalah pada w ke-1 Target data ke-4 adalah 1 Karena target data ke-4 = w ke-1, maka w ke-1 baru adalah : Wj(baru) = Wj(lama) +
α ( Xi - Wj(lama) ) = 0.8574+ 0.05*(0-0.8574) = 0.8645 = 0.0500+ 0.05*(0-0.0500) = 0.0475 = 0.0926 + 0.05*(1-0.0975) = 0.1380 = 0.0000+ 0.05*(0-0.0000) = 0.0000 = 0.9049 + 0.05*(1-0.9049) = 0.9096 = 0.0951 + 0.05*(0-0.0951) = 0.1404 W1(baru) = (0.8645, 0.0475, 0.1380, 0.0000, 0.9096, 0.1404)
Data Ke-5 : (0, 0, 1, 1, 0, 0)
Jarak pada bobot ke – 1
2
2
2
2
2
= +(0–0.0475) +(1–0.1380) +(0–0.0000) +(1–0.9096) +(1– √(1–0.8645)
2
0.1404) = 1.827 Jarak Pada bobot ke – 2
2
2
2
2
2
2
= + (0 – 1) + (1 – 1) + (1 – 1) + (0 – 1) + (0 – 0) √ (0 - 0)
= 1.414 Jarak terkecil adalah pada w ke-2 Target data ke-5 adalah 2 Karena target data ke-5 = w ke-2, maka w ke-2 baru adalah : Wj(baru) = Wj(lama) +
α ( Xi - Wj(lama) ) = 0 + 0.05*(1-0) = 0.0000 = 1 + 0.05*(0-1) = 0.9500 = 1 + 0.05*(1-1) = 1.0000 = 1 + 0.05*(0-1) = 1.0000 = 1 + 0.05*(1-1) = 0.9500 = 0 + 0.05*(1-0) = 0.0000 W2(baru) = (0.0000, 0.9500, 1.0000, 1.0000, 0.9500, 0.0000)
Data Ke-6 : (0, 1, 0, 1, 0, 0)
Jarak pada bobot ke – 1
2
2
2
2
2
= +(0–0.0475) +(1–0.1380) +(0–0.0000) +(1–0.9096) +(1– √(1–0.8645)
2
0.1404) = 1.876 Jarak Pada bobot ke – 2
2
2
2
2
2
2
= + ( 1 – 0.95 ) + ( 0 – 1 ) + ( 1 – 1 ) + ( 0 – 0.95 ) + ( 0 – 0 ) √ ( 0 - 0 )
= 1.380 Jarak Terkecil adalah pada w ke-2 Target data ke-6 adalah 2 Karena target data ke-6 = w ke-2, maka w ke-2 baru adalah : Wj(baru) = Wj(lama) +
α ( Xi - Wj(lama)) = 0.0000 + 0.05*(0-0.0000) = 0.0000 = 0.9500 + 0.05*(1-0.9500) = 0.9525 = 1.0000 + 0.05*(0-1.0000) = 0.9500 = 1.0000 + 0.05*(1-1.0000) = 1.0000
= 0.9500 + 0.05*(0-0.9500) = 0.9025 = 0.0000 + 0.05*(0-0.0000) = 0.0000 W2(baru) = (0.0000, 0.9525, 0.9500, 1.0000, 0.9025, 0.0000)
Data Ke-7 :
(1, 0, 0, 1, 0, 1) Jarak pada bobot ke – 1
2