BAB I
PENDAHULUAN
Neuron memiliki 3 komponen penting yaitu dendrit, soma dan axon. Dendrit menerima
sinyal dari neuron lain. Sinyal tersebut berupa impuls elektrik yang dikirim melalui
celah sinapsis melalui proses kimiawi. Sinyal tersebut dimodifikasi
(diperkuat/diperlemah) di celah sinapsis. Lalu, soma menjumlahkan semua sinyal-
sinyal yang masuk. Kalau hasil jumlah tersebut cukup kuat dan melebihi batas ambang
(threshold), maka sinyal tersebut akan diteruskan ke sel lain melalui axon. Frekuensi
penerusan sinyal berbeda-beda antara satu sel dengan yang lain.
Neuron biologi merupakan Neuron biologi merupakan sistem yang “fault tolerant”
dalam 2 hal. Pertama, manusia dapat mengenali sinyal input yang agak berbeda dari
yang pernah kita terima sebelumnya. Sebagai contoh, manusia sering dapat mengenali
seseorang yang wajahnya pernah dilihat dari foto, atau dapat mengenali seseorang yang
wajahnya agak berbeda karena sudah lama tidak dijumpainya. Kedua, otak manusia
tetap mampu bekerja meskipun beberapa neuronnya tidak mampu bekerja dengan baik.
1|JST-TI-UNINDRA 201 8
Jika sebuah neuron rusak, neuron lain kadang-kadang dapat dilatih untuk menggantikan
fungsi sel yang rusak tersebut.
Jaringan Saraf Tiruan, seperti manusia, belajar dari suatu contoh karena memiliki
karakteristik yang adaptif, yaitu dapat belajar dari data-data sebelumnya dan mengenal
pola data yang selalu berubah. Selain itu, JST merupakan sistem yang tak terprogram,
artinya semua keluaran atau kesimpulan yang ditarik oleh jaringan didasarkan pada
pengalamannya selama mengikuti proses pembelajaran atau pelatihan.
Hal yang ingin dicapai dengan melatih JST adalah untuk mencapai keseimbangan
antara kemampuan memorisasi dan generalisasi. Maksud memorisasi adalah
kemampuan JST untuk memperoleh kembali secara sempurna sebuah pola yang telah
dipelajari. Kemampuan generalisasi adalah usaha JST untuk menghasilkan respon yang
bisa diterima terhadap pola-pola masukan yang serupa (namun tidak identik) dengan
pola-pola yang sebelumnya telah dipelajari. Manfaat kemampuan tersebut adalah bila
pada suatu saat kedalam JST itu dimasukan informasi baru yang belum pernah
dipelajari, maka JST itu masih akan tetap dapat memberikan tanggapan yang baik,
memberikan keluaran yang paling mendekati.
Cara kerja Jaringan Saraf Tiruan dalam memperoleh pengetahuan yang akan dipelajari
menyerupai otak manusia, yaitu :
a. Pengetahuan diperoleh jaringan melalui proses belajar.
b. Kekuatan hubungan antar sel saraf yang dikenal sebagai bobot-bobot sinapsis yang
digunakan untuk menyimpan pengetahuan.
2|JST-TI-UNINDRA 201 8
B. SEJARAH JARINGAN SARAF TIRUAN
Jaringan syaraf tiruan sederhana pertama kali diperkenalkan oleh McCulloch dan Pitts di
tahun 1943. McCulloch dan Pitts menyimpulkan bahwa kombinasi beberapa neuron
sederhana menjadi sebuah sistem neural akan meningkatkan kemampuan komputasinya.
Bobot dalam jaringan yang diusulkan oleh McCulloch dan Pitts diatur untuk melakukan
fungsi logika sederhana. Fungsi aktivasi yang dipakai adalah fungsi threshold.
Selain itu, beberapa model jaringan syaraf tiruan lain juga dikembangkan oleh Kohonen
(1972), Hopfield (1982), dll.
3|JST-TI-UNINDRA 201 8
D. MODEL NEURON
Satu sel saraf terdiri dari tiga bagian, yaitu : fungsi penjumlah (summing function), fungsi
aktivasi (activation function), dan keluaran (output).
Jika kita lihat, neuron buatan diatas menyerupai dengan sel neuron biologis. Informasi
(input) akan dikirim ke neuron dengan bobot tertentu. Input ini akan diproses oleh suatu
fungsi yang akan menjumlahkan nilai-nilai bobot yang ada. Hasil penjumlahan kemudian
akan dibandingkan dengan suatu nilai ambang (threshold) tertentu melalui fungsi aktivasi
setiap neuron. Apabila input tersebut melewati suatu nilai ambang tertentu, maka neuron
tersebut akan diaktifkan, jika tidak, maka neuron tidak akan diaktifkan. Apabila neuron
tersebut diaktifkan, maka neuron tersebut akan mengiimkan output melalui bobot-bobot
output-nya ke semua neuron yang berhubungan dengannya.
Berdasarkan model neuron diatas, dapat disimpulkan bahwa neuron terdiri dari 3 elemen
pembentuk, yaitu :
1. Himpunan unit-unit yang dihubungkan dengan jalus koneksi. Jalur tersebut memiliki
bobot yang berbeda-beda. Bobot yang benilai positif akan memperkuat sinyal dan yang
bernilai negatif akan memperlemah sinyal yang dibawanya. Jumlah, struktur dan pola
hubungan antar unit-unit tersebut akan menentukan arsitektur jaringan.
2. Suatu unit penjumlah yang akan menjumlahkan input-input sinyal yang sudah dikalikan
dengan bobotnya.
3. Fungsi aktivasi yang akan menentukan apakah sinyal dari input neuron akan diteruskan
ke neuron lain atau tidak.
4|JST-TI-UNINDRA 201 8
neuron layers. Lapisan-lapisan penyusun jaringan saraf tiruan tersebut dapat dibagi
menjadi 3, yaitu :
1. Lapisan input
Unit-unit di dalam lapisan input disebut unit-unit input. Unit-unit input tersebut
menerima pola inputan data dari luar yang menggambarkan suatu permasalahan.
2. Lapisan tersembunyi
Unit-unit di dalam lapisan tersembunyi disebut unit-unit tersembunyi (hidden layer).
Dimana output-nya tidak dapat secara langsung diamati.
3. Lapisan output
Unit-unit di dalam lapisan output disebut unit-unit output. Output dari lapisan ini
merupakan solusi jaringan saraf tiruan terhadap suatu permasalahan.
F. ARSITEKTUR JARINGAN
Jaringan Saraf Tiruan memiliki beberapa arsitektur jaringan yang sering digunakan dalam
berbagai aplikasi. Arsitektur tersebut antara lain :
Contoh algoritma dengan arsitektur jaringan lapis tunggal yaitu : Adaline, LVQ,
Perceptron.
5|JST-TI-UNINDRA 201 8
2. Jaringan Lapis Banyak (Multi Layer Network)
Jaringan dengan banyak lapisan memiliki 1 atau lebih lapisan yang terletak diantara
lapisan input dan lapisan output (memiliki 1 atau lebih lapisan tersembunyi), seperti
terlihat pada Gambar 4 Umumnya, terdapat lapisan bobot-bobot yang terletak antara 2
lapisan yang bersebelahan. Jaringan dengan banyak lapisan ini dapat menyelesaikan
permasalahan yang lebih sulit dari pada lapisan dengan lapisan tunggal, tentu saja
dengan pembelajaran yang lebih rumit. Namun demikian, pada banyak kasus,
pembelajaran pada jaringan dengan banyak lapisan ini lebih sukses dalam
menyelesaikan masalah.
6|JST-TI-UNINDRA 201 8
Gambar 1.5 Arsitektur Lapisan Kompetitif
G. FUNGSI AKTIVASI
Dalam jaringan syaraf tiruan, fungsi aktivasi digunakan untuk menentukan keluaran suatu
neuron. Argumen fungsi aktivasi adalah net masukan (kombinasi linier masukan dan
bobotnya). Jika net = ∑ 𝑥𝑖 𝑤𝑖 , maka fungsi aktivasinya adalah f(net) = . 𝑓(∑ 𝑥𝑖 𝑤𝑖 ).
Beberapa fungsi aktivasi yang sering digunakan dalam jaringan syaraf tiruan, antara lain:
1. Fungsi Biner Hard Limit
Jaringan dengan lapisan tunggal sering menggunakan fungsi hard limit (step function)
untuk mengkonversikan input dari suatu variabel yang bernilai kontinu ke suatu output
biner (0 atau 1).
Fungsi hard limit dirumuskan sebagai berikut :
0, Jika x ≤ 0
y={
1, Jika x > 0
y
1
0 x
Gambar 1.6 Fungsi Hard Limit
7|JST-TI-UNINDRA 201 8
y
1
0 q x
Gambar 1.7 Fungsi Biner Threshold
0 x
-1
0 q x
-1
8|JST-TI-UNINDRA 201 8
5. Fungsi Liniear (Identitas)
Fungsi linear memiliki nilai output yang sama dengan nilai input-nya.
Fungsi linear dirumuskan sebagai berikut :
9|JST-TI-UNINDRA 201 8
Gambar 1.12 Fungsi Symetric Saturating Linear
10 | J S T - T I - U N I N D R A 2 0 1 8
9. Fungsi Sigmoid Bipolar
Fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner, hanya saja output
dari fungsi ini memiliki range antara 1 sampai –1.
Fungsi sigmoid bipolar dirumuskan sebagai :
1 − 𝑒 −𝑥
𝑦 = 𝑓(𝑥) =
1 + 𝑒 −𝑥
𝜎
dengan : f’(x) = [1 + 𝑓(𝑥)][1 − 𝑓(𝑥)]
2
Fungsi ini sangat dekat dengan fungsi hyperbolic tangent. Keduanya memiliki range
antara –1 sampai 1. Untuk fungsi hyperbolic tangent, dirumuskan sebagai berikut :
ℯ 𝑥 − 𝑒 −𝑥
𝑦 = 𝑓(𝑥) =
ℯ 𝑥 + 𝑒 −𝑥
atau
1 − 𝑒 −2𝑥
𝑦 = 𝑓(𝑥) =
1 + 𝑒 −2𝑥
dengan:
11 | J S T - T I - U N I N D R A 2 0 1 8
H. PELATIHAN JARINGAN
Klasifikasi Jaringan Saraf Tiruan berdasarkan cara memodifikasi/encoding/decoding
adalah sebagai berikut:
Konsep JST yang dibimbing (supervised): JST diberi masukan tertentu dan keluarannya
ditentukan oleh pengajarnya. Dalam proses tsb, JST akan menyesuaikan bobot
sinapsisnya.
Konsep JST tanpa dibimbing (unsupervised): kebalikan dari supervised, JST secara
mandiri akan mengatur keluarannya sesuai aturan yang dimiliki. Konsep JST feedforward:
hasil outputnya sudah dapat diketahui sebelumnya. Konsep JST feedback: lebih bersifat
dinamis, dalam hal ini kondisi jaringan akan selalu berubah sampai diperoleh
keseimbangan tertentu.
Hingga saat ini terdapat lebih dari 20 model JST. Masing-masing model menggunakan
arsitektur, fungsi aktivasi dan algoritma yang berbeda-beda dalam prosesnya. Taksonomi
JST didasarkan pada metode pembelajaran, aplikasi dan jenis arsitekturnya
12 | J S T - T I - U N I N D R A 2 0 1 8
BAB II
McCULLOCH-PITTS
A. JARINGAN McCULLOCH-PITTS
Model JST yang digunakan oleh McP merupakan model yang pertama ditemukan. Model
neuron McP memiliki karakteristik sbb:
a. Fungsi aktivasinya biner.
b. Semua garis yang memperkuat sinyal (bobot positif) ke arah suatu neuron memiliki
kekuatan (besar bobot) yang sama. Hal yang sama untuk garis yang memperlemah
sinyal (bobot negatif) ke arah neuron tertentu.
c. Setiap neuron memiliki batas ambang (threshold) yang sama. Apabila total input ke
neuron tersebut melebihi threshold, maka neuron akan meneruskan sinyal.
Pada Gambar 2.1 menunjukan model neuron Y menerima sinyal dari (n+m) buah neuron
x1 x2, …, xn, xn+1, …, xn+m. n buah penghubung dengan dari x1, x2, …, xn ke Y merupakan
garis yang memperkuat sinyal (bobot positif), sedangkan m penghubung dari xn+1, …, xn+m
ke Y merupakan garis yang memperlemah sinyal (bobot negatif). Semua penghubung dari
x1, x2, …, xn ke Y memiliki bobot yang sama. Hal yang sama dengan penghubung dari
xn+1, …, xn+m ke Y memiliki bobot yang sama. Namun jika ada neuron lain misal Y2, maka
bobot x1 ke Y1 boleh berbeda dengan bobot dari x2 ke Y2.
Bobot tiap garis tidak ditentukan dengan proses pelatihan, tetapi dengan metode analitik.
Beberapa contoh berikut memaparkan bagaiman neuron McP digunakan untuk
memodelkan fungsi logika sederhana.
Contoh 2.1.
Fungsi logika ”AND” dengan 2 masukan x1 dan x2 akan memiliki keluaran Y =1 jika dan
hanya jika kedua masukan bernilai 1.
13 | J S T - T I - U N I N D R A 2 0 1 8
Tabel 2.1 Tabel Kebenaran
x1 x2 y
1 1 1
1 0 0
0 1 0
0 0 0
Buatlah model neuron McCulloch-Pitts untuk menyatakan fungsi logika AND berdasarkan
tabel kebenaran di atas!
Penyelesaian :
Model neuron fungsi AND tampak pada gambar di bawah ini. Bobot tiap garis adalah = 1
dan fungsi aktivasi memiliki nilai threshold = 2.
x1
1
1
x2
Untuk semua kemungkinan masukan, nilai aktivasi tampak pada tabel 2.1.
x1 x2 2 1, 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 ≥ 2
𝑛𝑒𝑡 = ∑ 𝑋𝑖𝑗 𝑊𝑖𝑗 𝑓(𝑛𝑒𝑡) = {
0, 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 < 2
𝑖=1
1 1 1*1 + 1*1 = 2 1
1 0 1*1 + 0*1 = 1 0
0 1 0*1 + 1*1 = 1 0
0 0 0*1 + 0*1 = 0 0
Tampak bahwa keluaran jaringan tepat sama dengan tabel logika AND. Berarti jaringan
dapat dengan tepat merepresentasikan fungsi AND. Besarnya nilai threshold dapat
diganti menjadi suatu bias dengan nilai yang sama. Dengan menggunakan nilai bias, batas
garis pemisah ditentukan dari persamaan :
𝑛𝑒𝑡 = 𝑏 + ∑ 𝑥𝑖 𝑤𝑖 = 0
w b
b+x1 w1 +x2 w2 =0 atau x2 = - w1 x1 –
2 w2
14 | J S T - T I - U N I N D R A 2 0 1 8
𝑤
Apabila garis pemisalnya diambil dengan persamaan x1 + x2 = 2, maka berarti − 𝑤1 = −1
2
𝑏
dan − 𝑤 = 2.
2
Ada banyak w1, w2 dan b yang memenuhi persamaan tersebut, salah satunya adalah
w1=w2=1 dan b=-2, seperti penyelesaian contoh diatas.
Latihan
1) Buatlah model neuron McP untuk menyatakan fungsi logika OR
2) Buatlah model neuron McP untuk menyatakan fungsi logika XOR
3) Buatlah model neuron McP untuk menyatakan fungsi logika x1 AND NOT x2
15 | J S T - T I - U N I N D R A 2 0 1 8
BAB III
HEBB
A. JARINGAN HEBB
Algoritma Hebb termasuk salah satu algoritma sederhana yang digunakan sebagai
pengatur bobot untuk jaringan syarat tiruan. Pengaturan bobot dengan menggunakan
algoritma ini sangat sederhana. Pengaturan dilakukan secara langsung yakni dengan
mengoperasikan input dan target.
Hipotesis Hebb adalah bila dua buah neuron bipolar yang saling terhubung mempunyai
aktivasi output yang sama tandanya maka bobot sambungan antara kedua neuron tersebut
akan menguat. Sebaliknya, bila aktivasi keduanya berlawanan tanda maka bobot
sambungan akan melemah.
Karena itulah dalam setiap iterasi, bobot sinapsis dan bias diubah berdasarkan perkalian
neuron-neuron di kedua sisinya. Untuk jaringan layar tunggal dengan 1 unit keluaran
dimana semua unit masukan x1 terhubung langsung dengan unit keluaran y, maka
perubahan nilai bobot dilakukan berdasarkan persamaan :
Algoritma pelatihan Hebb dengan vektor input s dan unit target t adalah sebagai berikut :
Contoh 3.1
Buatlah jaringan Hebb untuk mengenali fungsi logika “AND” dengan masukan dan keluaran
biner. Bobot dan bias awal diberi nilai = 0.
16 | J S T - T I - U N I N D R A 2 0 1 8
Penyelesaian :
1. Membuat Tabel Masukan dan Target
x2 w2 y
b
1
3. Pelatihan Jaringan
Untuk setiap data masukan dan target, perubahan bobot dihitung dari perkalian data
masukan dan targetnya.
w1 = x1t w2 = x2t b = 1 t=t
Bobot wi(baru) = bobot wi(lama) + wi (i=1,2)
Hasil iterasi bobot menggunakan rumus tersebut tampak pada tabel 3.2.
Inisialisasi 0 0 0
1 1 1 1 1 1 1 1 1 1
1 0 1 0 0 0 0 1 1 1
0 1 1 0 0 0 0 1 1 1
0 0 1 0 0 0 0 1 1 1
Pada data pertama terjadi perubahan bobot, pada data ke-2 hingga ke-4 tidak terjadi
perubahan bobot. Ditemukan bobot akhir jaringan adalah : w1 = 1, w2 = 1, wbias = 1.
17 | J S T - T I - U N I N D R A 2 0 1 8
4. Uji Coba Jaringan
Setelah bobot akhir diperoleh, selanjutnya dilakukan uji coba dan aktivasi jaringan pada
seluruh data masukan menggunakan fungsi :
2
𝑛𝑒𝑡 = ∑ 𝑥𝑖 𝑤𝑖 + 𝑏
𝑖=1
dengan aktivasi
1, Jika net ≥ 0
y = f(net) = {
0, Jika net < 0
x1 x2 t
1 1 1 1.1 + 1.1 + 1 = 3 1
1 0 0 1.1 + 0.1 + 1 = 2 1
0 1 0 0.1 + 1.1 + 1 = 2 1
0 0 0 0.1 + 0.1 + 1 = 1 1
Berdasarkan uji coba jaringan, tampak bahwa hasil nilai f(net) tidak sama dengan target
dalam fungsi “AND”, artinya “JARINGAN TIDAK DAPAT MEMAHAMI” pola yang
dimaksudkan.
Latihan 3.1
1. Buatlah jaringan Hebb untuk menyatakan fungsi logika OR
2. Buatlah jaringan Hebb untuk menyatakan fungsi logika XOR
18 | J S T - T I - U N I N D R A 2 0 1 8
BAB IV
PERCEPTRON
A. ARSITEKTUR PERCEPTRON
Model jaringan perceptron ditemukan Rosenblatt (1962) dan Minsky-Papert (1969).
Model tersebut merupakan model yang memiliki aplikasi dan pelatihan yang paling baik
pada era tersebut.
Jaringan terdiri dari beberapa unit masukan (ditambah sebuah bias), memiliki sebuah
unit keluaran. Hanya saja fungsi aktivasi bukan merupakan fungsi biner (atau bipolar),
tetapi memiliki kemungkinan nilai -1, 0 atau 1.
Nilai threshold 𝜃 yang ditentukan :
1 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 > 𝜃
f(net) = { 0 𝑗𝑖𝑘𝑎 − 𝜃 ≤ 𝑛𝑒𝑡 ≤ 𝜃
−1 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 < −𝜃
Secara geometris, fungsi aktivasi membentuk 2 garis sekaligus, masing-masing dengan
persamaan :
w1x1 + w2x2 + ... + wnxn + b = 𝜃
dan
w1x1 + w2x2 + ... + wnxn + b = - 𝜃
19 | J S T - T I - U N I N D R A 2 0 1 8
2. Selama ada elemen vektor masukan yang respon unit keluarnya tidak sama dengan
target, lakukan :
1) Set aktivasi unit masukan xi = si (i = 1,...,n)
2) Hitung respon unit keluaran : net = ∑𝑖 𝑥𝑖 𝑤𝑖 + 𝑏
1 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 > 𝜃
f(net) = { 0 𝑗𝑖𝑘𝑎 − 𝜃 ≤ 𝑛𝑒𝑡 ≤ 𝜃
−1 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 < −𝜃
3) Perbaiki bobot pola yang mengandung kesalahan (y ≠ t) menurut persamaan ;
wi (baru) = wi (lama) + ∆w (i=1,...,n) dengan ∆w = α t xi
b (baru) = b (lama) + ∆b dengan ∆b = α t
Contoh 4.1:
Buatlah perceptron untuk mengenali fungsi logika “AND” dengan masukan dan
keluaran bipolar. Untuk inisialisasi, gunakan bobot dan bias awal = 0, α = 1 dan
threshold = 0.
Penyelesaian :
Tabel masukan dan target fungsi logika “dan” dengan masukan dan keluaran bipolar
tampak dalam tabel 2.1
20 | J S T - T I - U N I N D R A 2 0 1 8
Untuk threshold = 0, maka fungsi aktivasi menjadi :
1 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 > 0
𝑦 = 𝑓(𝑛𝑒𝑡) = { 0 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 = 0
−1 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 < 0
Iterasi untuk seluruh pola yang ada disebut epoch Tabel 3.2 menunjukkan hasil pada
epoch pertama.
Pada tabel 4.4 nilai Keluaran f(net) sama dengan Target (t), maka jaringan Perceptron
tersebut sudah mengenali pola sehingga iterasi dihentikan.
21 | J S T - T I - U N I N D R A 2 0 1 8
3. Berikan inisialisasi bobot, bias, laju pemahaman dan threshold.
4. Lakukan proses pelatihan perceptron.
Contoh 4.2:
Diketahui 6 buah pola masukan seperti gambar 3.1 :
22 | J S T - T I - U N I N D R A 2 0 1 8
Vektor masukan pola 6 adalah
(-1 -1 1 1 1 -1 -1 -1 1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 1
1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1
1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 1 -1 -1 -1 1 1 1 -1 -1)
Target bernilai = +1 bila pola masukan menyerupai huruf “A”. Jika tidak, maka target
bernilai = -1. Pola yang menyerupai huruf “A” adalah pola 1 dan pola 4. Pasangan pola
dan targetnya tampak pada tabel 2.4
Perceptron yang dipakai untuk mengenali pola huruf “A” (atau bukan “A”) memiliki 63
unit masukan, sebuah bias dan sebuah unit keluaran. Misalnya bobot awal diambil = 0
untuk semua bobot maupun bias, α = 1, 𝜃 = 0.5
Pelatihan dilakukan dengan cara memasukkan 63 unit masukan (sebuah pola huruf).
Dihitung
net = ∑63𝑖=1 xi wi + b.
Berikutnya, fungsi aktivasi dihitung menggunakan persamaan
1 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 > 0.5
𝑦 = 𝑓(𝑛𝑒𝑡) = { 0 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 − 0.5 ≤ 𝑛𝑒𝑡 ≤ 0.5
−1 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 < −0.5
Apabila f(net) ≠ target, maka bobot dan bias diubah
Proses pelatihan dilakukan terus hingga semua keluaran jaringan sama dengan
targetnya.
Latihan 4.1
Buatlah perceptron untuk mengenali pola yang berbentuk pada fungsi logika XOR dengan
α = 1 dan 𝜃 = 0.2
a. Tanpa menggunakan bias (jika mungkin)
b. Menggunakan bias
c. Tunjukkan secara grafik bahwa tanpa bias, perceptron tidak akan mampu mengenali
pola secara benar.
23 | J S T - T I - U N I N D R A 2 0 1 8
BAB V
ADALINE
A. ALGORITMA ADALINE
Model ADALINE (Adaptive Linear Neuron) ditemukan oleh Widrow dan Hoff (1960).
Arsitekturnya mirip dengan perceptron. Beberapa masukan (dan sebuah bias) dihubungkan
langsung dengan sebuah neuron keluaran. Perbedaan dengan perceptron adalah cara
modifikasi bobot. Bobot dimodifikasi dengan aturan delta (least mean square). Selama
pelatihan, fungsi aktivasi yang dipakai adalah fungsi identitas.
𝑛𝑒𝑡 = ∑ 𝑥𝑖 𝑤𝑖 + 𝑏
𝑖
𝑦 = 𝑓(𝑛𝑒𝑡) = 𝑛𝑒𝑡 = ∑ 𝑥𝑖 𝑤𝑖 + 𝑏
𝑖
Kuadrat selisih antara target (t) dan keluaran jaringan (f(net)) merupakan error yang
terjadi. Dalam aturan delta, bobot dimodifikasi sedemikian hingga errornya minimum.
B. PELATIHAN ADALINE
1. Inisialisasi semua bobot dan bias (wi = b = 0). Tentukan α, biasanya α = 0.1, tentukan
toleransi kesalahan yang diijinkan
2. Selama max ∆wi > batas toleransi, lakukan :
a. Set aktivasi unit masukan xi = si (i = 1,...,n)
b. Hitung respon unit keluaran : 𝑛𝑒𝑡 = ∑𝑖 𝑥𝑖 𝑤𝑖 + 𝑏
Y = f(net) = net
c. Perbaiki bobot pola yang mengandung kesalahan (y ≠ t) menurut persamaan :
wi (baru) = wi (lama) +α (t-y)xi
b (baru) = b (lama) + α (t-y)
Setelah proses pelatihan selesai, ADALINE dapat dipakai untuk pengenalan pola.
Umumnya dipakai fungsi 𝜃 bipolar. Caranya sebagai berikut :
1. Inisialisasi semua bobot dan bias dengan bobot dan bias hasilm pelatihan
2. Untuk semua input masukan bipolar x, lakukan :
a. Set aktivasi unit masukan xi = si (i = 1,..., n)
b. Hitung net vektor keluaran :
𝑛𝑒𝑡 = ∑ 𝑥𝑖 𝑤𝑖 + 𝑏
𝑖
24 | J S T - T I - U N I N D R A 2 0 1 8
c. Kenakan fungsi aktivasi :
1 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 ≥ 0
𝑦= {
−1 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 < 0
Contoh 5.1:
Gunakan model ADALINE untuk mengenali pola fungsi logika “AND” dengan masukan dan
target bipolar :
Tabel 5.1 Masukan dan Target
Maksimum ∆wi = 0.07 > toleransi, maka iterasi dilanjutkan untuk epoch kedua
25 | J S T - T I - U N I N D R A 2 0 1 8
Tabel 5.3 Nilai F(Net) pada Epoch Kedua
Maksimum ∆wi = 0.002 < toleransi, maka iterasi dihentikan dan bobot terakhir yang
diperoleh (w1 = 0.29, w2 = 0.26, dan b = -0.32) merupakan bobot yang digunakan dalam
pengenalan pola.
Perhatikan bahwa fungsi aktivasi yang dipakai berbeda dengan fungsi aktivasi pada pelatihan.
Dalam pengenalan pola, fungsi aktivasinya adalah :
1 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 ≥ 0
𝑦= {
−1 𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 < 0
Tampak bahwa keluaran jaringan tepat sama dengan targetnya. Disimpulkan bahwa pola
dapat dikenali dengan sempurna menggunakan bobot hasil pelatihan.
Contoh 5.2:
Gunakan contoh sebelumnya dengan ketentuan α = 0.2
Penyelesaian:
Dengan iterasi ADALINE α = 0.2 maka hasilnya sesuai dengan table berikut:
26 | J S T - T I - U N I N D R A 2 0 1 8
Tabel 5.5 iterasi pertama
Maksimum ∆𝑤i = 0.05 artinya toleransi, maka iterasi dihentikan dan bobot terakhir yang
diperoleh (𝑤 1 = 0.3, 𝑤 2 = 0.21, dan b = -0.38 merupakan bobot yang digunakan dalam
pengenalan polanya, Dengan cara tersebut maka dapat di cek bahwa bobot yang diperoleh
dapat mengenali semua pola dengan benar.
27 | J S T - T I - U N I N D R A 2 0 1 8
BAB VI
MADALINE
A. ARSITEKTUR JARINGAN
Beberapa ADALINE dapat digabungkan untuk membentuk suatu jaringan baru yang di
sebuat MADALINE (many ADALINE). Dalam MADALINE terdapat sebuah layar
tersembunyi.
B. PELATIHAN MADALINE
Algoritma pelatihan MADALINE mula-mula untuk pola masukan dan target bipolar :
1. Inisialisasi semua bobot dan bias dengan bilangan acak kecil. Inisialiasasi α dengan
bilangan kecil.
2. Selama perubahan bobot lebih besar dari toleransi (jumlah epoch belum melebihi batas
yang ditentukan), lakukan langkah a s/d e
a. Set aktivasi unit masukan : xi = si untuk semua i
b. Hitung net input untuk setiap unit tersembunyi ADALINE (z1, z2,...)
𝑧𝑖𝑛_𝑗 = 𝑏𝑗 ∑ 𝑥𝑖 𝑤𝑗𝑖
𝑖
c. Hitung keluaran setiap unit tersembunyi dengan menggunakan fungsi aktivasi
bipolar :
1 𝑗𝑖𝑘𝑎 𝑧𝑖𝑛_𝑗 ≥ 0
𝑧𝑗 = 𝑓 (𝑧𝑖𝑛𝑗 ) = {
−1 𝑗𝑖𝑘𝑎 𝑧𝑖𝑛_𝑗 < 0
d. Tentukan keluaran jaringan
𝑦𝑖𝑛 = 𝑏𝑘 + ∑ 𝑧𝑗 𝑣𝑗
𝑗
1 𝑗𝑖𝑘𝑎 𝑦𝑖𝑛 ≥ 0
𝑦 = 𝑓(𝑦𝑖𝑛 ) = {
−1 𝑗𝑖𝑘𝑎 𝑦𝑖𝑛 < 0
e. Hitung error dan tentukan perubahan bobot
Jika y = target, maka tidak dilakukan perubahan bobot
Jika y ≠ target :
Untuk t = 1, ubah bobot ke unit zj yang zin nya terdekat dengan 0 (misal ke unit zp) :
28 | J S T - T I - U N I N D R A 2 0 1 8
𝑏𝑝 𝑏𝑎𝑟𝑢 = 𝑏𝑝 𝑙𝑎𝑚𝑎 + 𝛼 (1 − 𝑧𝑖𝑛 𝑝 )
Contoh 6.1 :
Gunakan MADALINE mula-mula mengenali pola fungsi logika XOR dengan 2 masukan x1
dan x2. Gunakan α = 0.5 dan toleransi = 0.1
Penyelesaian :
Tabel 6.1 Data Masukan
Inisialisasi dilakukan pada semua bobot ke unit tersembunyi dengan suatu bilangan acak
kecil.
Tabel 6.2 Inisialisasi terhadap Hidden Layer
Karena masih ada (bahkan semua) perubahan bobot > toleransi yang ditetapkan, maka iterasi
dilanjutkan untuk pola 2. Iterasi dilakukan untuk semua pola. Apabila ada perubahan bobot
yang masih lebih besar dari batas toleransi, maka iterasi dilanjutkan untuk epoch-2 dan
seterusnya.
30 | J S T - T I - U N I N D R A 2 0 1 8
BAB VII
HOPFIELD DISKRIT
Fungsi aktivasi yang digunakan dalam jaringan Hopfield adalah fungsi energy Lyapunov,
yaitu sebuah fungsi yang terbatas dan menurun untuk mendapatkan kestabilan pada
aktivasinya.
B. ARSITEKTUR JARINGAN
W32
W23 W41
W14
1 W12 2
W31 W21
W42
W16
W13 W51 W15 W61 W26 W62 W24
3 W34 4
W35 W52 W43 W46
W53 W25 W64
5 6
W63 W54
W36
W45
31 | J S T - T I - U N I N D R A 2 0 1 8
Gambar 7.2 menunjukkan sebuah jaringan Hopfield dengan 6 buah neuron yang terhubung
satu sama lain. Setiap unit tidak memiliki hubungan dengan dirinya sendiri. Hubungan
antar neuron tersebut memiliki bobot positif atau negatif.
Gambar 7.3 menunjukkan hubungan setiap bobot yang digambarkan sebagai vektor W.
C. PELATIHAN HOPFIELD
1. Inisialisasi matriks bobot W
2. Masukan vector input (invec), lalu inisialisasi vector output (outvec) yaitu outvec =
invec
3. Mulai dg counter i=1
Selama invec ≠ outvec lakukan langakh 4-7,jika I sampai maks maka reset mjd 1
4. Hitung nilai ke-i = dotproduct (invec, kolom ke-I dari W)
5. Hitung outvec ke-i = f(nilai ke-i), f adalah fungsi ambang
6. Update invec dg outvec
7. i = i + 1
Contoh 7.1:
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:
Algoritma :
1. Aktivasi node pertama pola A
32 | J S T - T I - U N I N D R A 2 0 1 8
2. Aktivasi node kedua pola A
33 | J S T - T I - U N I N D R A 2 0 1 8
BAB VIII
PROPAGASI BALIK (BACK PROPAGATION)
B. ARSITEKTUR 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.
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.
34 | J S T - T I - U N I N D R A 2 0 1 8
2. Tahap Belajar atau Pelatihan
Pada intinya, pelatihan dengan metode backpropagation terdiri dari tiga langkah, yaitu:
a. Data dimasukkan ke input jaringan (feedforward)
b. Perhitungan dan propagasi balik dari error yang bersangkutan
c. Pembaharuan (adjustment) bobot dan bias.
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.
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.
35 | J S T - T I - U N I N D R A 2 0 1 8
𝑝
𝛿𝑖𝑛 𝑗 = ∑ 𝛿𝑘 𝑤𝑗𝑘
𝑘=1
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:
v0j=j
36 | J S T - T I - U N I N D R A 2 0 1 8
4. Stopping Condition
Untuk menentukan stopping condition terdapat dua cara yang biasa dipakai, yaitu:
a. Membatasi iterasi yang ingin dilakukan.
1) Misalnya jaringan akan dilatih sampai iterasi yang ke-500.
2) Yang dimaksud dengan satu iterasi adalah perulangan step 3 sampai step 8
untuk semua training data yang ada.
b. Membatasi error.
1) Misalnya menentukan besar Mean Square Error antara output yang dikehendaki
dan output yang dihasilkan oleh 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 i=1,…,n skalakan bilangan dalam range fungsi aktivasi
seperti yang dilakukan pada proses pelatihan di atas.
Step 3 : Untuk j=1,…,p:
𝑛
37 | J S T - T I - U N I N D R A 2 0 1 8
Contoh 8.1 :
◼ 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.
38 | J S T - T I - U N I N D R A 2 0 1 8
• 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,847993 x 0,543960)=0,079906
• y11=f(y_in11)=0,480034
• y_in12=-0,541180+(0,653816 x 0,543960)=-0,185530
• y12=f(y_in12)=0,453750
• y_in13=-0,541180+(0,612009 x 0,543960)=0,208271
• y13=f(y_in13)=0,448119
• y_in14=-0,541180+(0,348118 x 0,543960)=-0,351818
• y14=f(y_in14)=0,412941
• Maka E=0,5 x {(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.
39 | J S T - T I - U N I N D R A 2 0 1 8
◼ Bobot yang dihasilkan pada iterasi pertama, training data ke-2,3, dan 4 adalah:
• Training data ke-2:
◼ w01=-0,541023
◼ w11=0,543830
◼ v01=1,718862
◼ v11=-1,263178
◼ v21=-1,083092
• Training data ke-3:
◼ w01=-0,539659
◼ w11=0,544665
◼ v01=1,719205
◼ v11=-1,263002
◼ v21=-1,082925
• Training data ke-4:
◼ w01=-0,540661
◼ w11=0,544316
◼ v01=1,719081
◼ v11=-1,263126
◼ 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
40 | J S T - T I - U N I N D R A 2 0 1 8
BAB IX
LEARNING VECTOR QUANTIZATION (LVQ)
A. METODE LVQ
Learning Vector Quantization (LVQ) adalah suatu metode untuk melakukan pembelajaran
pada lapisan kompetitif yang terawasi. Suatu lapisan kompetitif akan secara otomatis
belajar untuk mengklasifikasikan vektor-vektor input.
Kelas-kelas yang didapatkan sebagai hasil dari lapisan kompetitif ini hanya tergantung
pada jarak antara vektor-vektor input. Jika 2 vektor input mendekati sama, maka lapisan
kompetitif akan meletakkan kedua vektor input tersebut ke dalam kelas yang sama.
B. ARSITEKTUR JARINGAN
Pada jaringan LVQ digunakan arsitektur jaringan kompetitif dimana pada lapisan
kompetitif secara otomatis belajar untuk mengklasifikasikan vektor-vektor input.
Pada gambar, unit input dilambangkan dengan X dan unit output dilambangkan dengan Y.
Bobot antara X dan Y dilambangkan dengan W.
C. 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<MaxIter) atau (α>eps)
a. epoch = epoch+1;
b. kerjakan untuk i =1 sampai n
41 | J S T - T I - U N I N D R A 2 0 1 8
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 9.1 :
Diketahui data 10 input vektor dalam 2 kelas adalah sebagai berikut :
1. (1, 0, 0, 0, 1, 0) 1
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
42 | J S T - T I - U N I N D R A 2 0 1 8
Gambar 9.2 Arsitektur jaringan untuk contoh 9.2
Sebagai nilai awal dipilih learning rate (α = 0.05), dengan pengurangan sebesar 0.1*α; dan
maksimum epoch (MaxEpoch = 10).
Epoch ke-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
Bobot ke-1 baru :
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)
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
43 | J S T - T I - U N I N D R A 2 0 1 8
Bobot ke-1 baru :
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)
44 | J S T - T I - U N I N D R A 2 0 1 8
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)
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)2 +(0-1)2 +(1-1)2 +(1-1)2 +(0-1)2 +(0-0)2 = 1.4142
Jadi:
w2 = (0,0000 0,9525 0,9500 1,0000 0,9025 0,0000)
45 | J S T - T I - U N I N D R A 2 0 1 8
Data ke-7: (1, 0, 0, 1, 0, 1)
Jarak pada:
- bobot ke-1 = √(1-0.8645)2 +(0-0.0475)2 +(0-0.1380)2 +(1-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
Jadi:
w1 = (0,8577 0,0499 0,1449 -0,0500 0,9511 0,0974)
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
Jadi:
w2 = (0,0000 0,9549 0,9525 1,0000 0,9074 0,0500)
= - 0,1 * = 0,05 - 0,1 * 0,05 = 0,045
46 | J S T - T I - U N I N D R A 2 0 1 8
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:
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.
Jarak pada:
BAB X
KOHONEN
A. METODE KOHONEN
Jaringan kohonen ini pertama kali diperkenalkan oleh Prof. Teuvo Kohonen pada tahun
1982. Pada jaringan ini, suatu lapisan yang berisi neuron-neuron akan menyusun dirinya
sendiri berdasarkan input nilai tertentu dalam suatu kelompok yang dikenal dengan istilah
cluster. Selama proses penyusunan diri, cluster yang memiliki vektor bobot paling cocok
dengan pola input (memiliki jarak yang paling dekat) akan terpilih sebagai pemenang.
Neuron yang menjadi pemenang beserta neuron-neuron tetangganya akan memperbaiki
bobot-bobotnya.
B. ALGORITMA PELATIHAN
0. Inisialisasi bobot: wij.
47 | J S T - T I - U N I N D R A 2 0 1 8
Set parameter-parameter tetangga.
Set parameter learning rate.
1. Kerjakan jika kondisi berhenti bernilai FALSE:
a. Untuk setiap vektor input x, kerjakan:
- Untuk setiap j, hitung:
- Tentukan J, sedemikian hingga D(J) minimum.
- Untuk setiap unit j dengan spesifikasi tetangga tertentu, dan untuk setiap i:
wij(baru) = wij(lama) + α(xi – wij(lama))
b. Perbaiki learning rate
c. Kurangi radius ketetanggaan pada waktu tertentu
d. Test kondisi berhenti
Contoh 10.1 :
Perhatikan data-data berikut:
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.
alpha ()= 0,60
MaxEpoch = 10
Pengurangan alpha = 0,50
Matriks yang akan di-cluster, X:
0,10 0,10
0,20 0,20
0,30 0,10
0,50 0,30
0,40 0,40
0,20 0,40
Bobot awal:
0,50 0,50
0,50 0,50
Epoh ke- 1:
Data ke- 1 :
Jarak pada:
48 | J S T - T I - U N I N D R A 2 0 1 8
* 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
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
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
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
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
49 | J S T - T I - U N I N D R A 2 0 1 8
w22 = 0,38 + 0,6(0,4 – 0,38) = 0,3920
Data ke- 6
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
= 0,5*0,6 = 0,3
Nilai bobot akhir setelah epoh ke-10 adalah:
w=
0,2190 0,3424
0,1351 0,3754
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.
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.
50 | J S T - T I - U N I N D R A 2 0 1 8