Anda di halaman 1dari 51

JARINGAN SARAF TIRUAN

BAB I
PENDAHULUAN

A. JARINGAN SARAF BIOLOGI dan TIRUAN


1. Jaringan Saraf Biologi
Otak manusia memiliki struktur yang sangat kompleks dan memiliki kemampuan yang
luar biasa. Otak terdiri dari neuron-neuron dan penghubung yang disebut sinapsis.
Neuron bekerja berdasarkan impuls/sinyal yang diberikan pada neuron. Neuron
meneruskannya pada neuron lain. Diperkirakan manusia memiliki 10 12 neuron yang
masing-masing terhubung oleh sekitar 1015 dendrit dan 6.1018 sinapsis. Dengan jumlah
yang begitu banyak, otak mampu mengenali pola, melakukan perhitungan, dan
mengontrol organ-organ tubuh dengan kecepatan yang lebih tinggi dibandingkan
komputer digital.

Gambar 1.1 Struktur Sederhana Sebuah Neuron

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 2018
Jika sebuah neuron rusak, neuron lain kadang-kadang dapat dilatih untuk menggantikan
fungsi sel yang rusak tersebut.

2. Jaringan Saraf Tiruan


Jaringan Saraf Tiruan (JST) adalah suatu metode komputasi yang meniru sistem
jaringan saraf biologis. Metode ini menggunakan elemen perhitungan non-linier dasar
yang disebut neuron yang diorganisasikan sebagai jaringan yang saling berhubungan,
sehingga menyerupai dengan jaringan saraf manusia. Jaringan saraf tiruan dibentuk
untuk memcahkan suatu masalah tertentu seperti pengenalan pola atau klasifikasi
karena proses pembelajaran.

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.

Membangun Jaringan Saraf Tiruan dalam pelatihan untuk memperoleh pengetahuan


ditentukan oleh 3 hal, yaitu :
a. Pola hubungan antar neuron yang disebut arsitektur jaringan.
b. Metode untuk menentukan bobot penghubung yang disebut metode
training/learning.
c. Fungsi aktivasi, yaitu fungsi yang digunakan untuk menentukan keluaran suatu
neuron.

2|JST-TI-UNINDRA 2018
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.

Tahun 1958, Rosenblatt memperkenalkan dan mulai mengembangkan model jaringan


yang disebut Perceptron. Metode pelatihan diperkenalkan untuk mengoptimalkan hasil
iterasinya.

Widrow dan Hoff (1960) mengembangkan perceptron dengan memperkenalkan aturan


pelatihan jaringan, yang dikenal sebagai aturan delta (atau sering disebut kuadrat rata-rata
terkecil). Aturan ini akan mengubah bobot perceptron apabila keluaran yang dihasilkan
tidak sesuai dengan target yang diinginkan. Apa yang dilakukan peneliti terdahulu hanya
menggunakan jaringan dengan layer tunggal (single layer).

Rumelhart (1986) mengembangkan perceptron menjadi Backpropagation, yang


memungkinkan jaringan diproses melalui beberapa layer.

Selain itu, beberapa model jaringan syaraf tiruan lain juga dikembangkan oleh Kohonen
(1972), Hopfield (1982), dll.

C. APLIKASI JARINGAN SARAF TIRUAN


Algoritma jaringan saraf tiruan yang telah dibentuk kemudian dilatih sehingga
memperoleh pengetahuan dapat diterapkan ke dalam sebuah aplikasi. Beberapa aplikasi
yang menggunakan jaringan saraf tiruan antara lain :

1. Pengenalan Pola (Pattern Recognition)


Jaringan syaraf tiruan dapat dipakai untuk mengenali pola (misal huruf, angka, suara
atau tanda tangan) yang sudah sedikit berubah. Hal ini mirip dengan otak manusia yang
masih mampu mengenali orang yang sudah beberapa waktu tidak dijumpainya
(mungkin wajah/bentuk tubuh nya sudah sedikit berubah).
2. Signal Processing
Jaringan syaraf tiruan (model ADALINE) dapat dipakai untuk menekan noise dalam
saluran telpon.
3. Peramalan
Jaringan syaraf tiruan juga dapat dipakai untuk meramalkan apa yang akan terjadi di
masa yang akan datang berdasarkan pola kejadian yang ada di masa yang lampau. Ini
dapat dilakukan mengingat kemampuan jaringan syaraf tiruan untuk mengingat dan
membuat generalisasi dari apa yang sudah ada sebelumnya.

3|JST-TI-UNINDRA 2018
D. MODEL NEURON
Satu sel saraf terdiri dari tiga bagian, yaitu : fungsi penjumlah (summing function), fungsi
aktivasi (activation function), dan keluaran (output).

Gambar 1.2 Model Neuron

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.

E. KONSEP DASAR JARINGAN SARAF TIRUAN


Setiap pola-pola informasi input dan output yang diberikan ke dalam jaringan saraf tiruan
diproses dalam neuron. Neuron tersebut terkumpul didalam lapisan-lapisan yang disebut

4|JST-TI-UNINDRA 2018
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 :

1. Jaringan Lapis Tunggal (Single Layer Network)


Jaringan dengan lapisan tunggal terdiri dari 1 layer input dan 1 layer output. Setiap
neuron yang terdapat di dalam lapisan/layer input selalu terhubung dengan setiap
neuron yang terdapat pada layer output. Jaringan ini hanya menerima input kemudian
secara langsung akan mengolahnya menjadi output tanpa harus melalui lapisan
tersembunyi. Terlihat pada gambar 3 di bawah ini, lapisan input memiliki 3 neuron,
yaitu X1, X2 dan X3. Sedangkan pada lapisan output memiliki 2 neuron yaitu Y1 dan Y2.
Neuron-neuron pada kedua lapisan saling berhubungan. Seberapa besar hubungan
antara 2 neuron ditentukan oleh bobot yaitu W yang bersesuaian. Semua unit input akan
dihubungkan dengan setiap unit output.

Contoh algoritma dengan arsitektur jaringan lapis tunggal yaitu : Adaline, LVQ,
Perceptron.

Gambar 1.3 Arsitektur Lapis Tunggal

5|JST-TI-UNINDRA 2018
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.

Contoh algoritma dengan arsitektur jaringan lapis banyak yaitu : Madaline,


Backpropagation, Neocognitron

Gambar 1.4 Arsitektur Lapis Banyak

3. Jaringan Lapisan Kompetitif (Competitive Layer Network)


Umumnya, hubungan antar neuron pada lapisan kompetitif ini tidak diperlihatkan pada
diagram arsitektur. Gambar 5 menunjukkan salah satu contoh arsitektur jaringan
dengan lapisan kompetitif yang memiliki bobot -.
Contoh algoritma dengan arsitektur jaringan lapisan kompetitif yaitu : Hopfield.

6|JST-TI-UNINDRA 2018
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 = ∑ x i wi , maka fungsi aktivasinya adalah f(net) = . f ¿.

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 :
y= 0 , Jika x ≤ 0
{¿ 1 , Jika∧x >0

0 x
Gambar 1.6 Fungsi Hard Limit

2. Fungsi Biner Threshold


Fungsi biner dengan menggunakan nilai ambang sering juga disebut dengan nama
fungsi nilai ambang (threshold) atau fungsi Heavyside.
Fungsi biner threshold dirumuskan sebagai berikut :
y= 0 , Jika x<θ
{
¿ 1 , Jika∧x ≥θ

7|JST-TI-UNINDRA 2018
y

0 q x
Gambar 1.7 Fungsi Biner Threshold

3. Fungsi Bipolar (Symetric Hard Limit)


Fungsi bipolar sebenarnya hampir sama dengan fungsi biner, hanya saja output yang
dihasilkan berupa 1, 0 atau –1.
Fungsi symetric hard limit dirumuskan sebagai berikut :
1 , jika x> 0
{
y= 0 , jika x=0
−1 , jika x< 0
y
1

0 x

-1

Gambar 1.8 Fungsi Bipolar (Symetric Hard Limit)

4. Fungsi Bipolar Threshold


Fungsi bipolar sebenarnya hampir sama dengan fungsi biner dengan threshold, hanya
saja output yang dihasilkan berupa 1 atau –1.
Fungsi bipolar threshold dirumuskan sebagai berikut :
y= 1, jika x ≥θ
{ −1 , jika x< θ
y
1

0 q x

-1

Gambar 1.9 Fungsi Bipolar Threshold

8|JST-TI-UNINDRA 2018
5. Fungsi Liniear (Identitas)
Fungsi linear memiliki nilai output yang sama dengan nilai input-nya.
Fungsi linear dirumuskan sebagai berikut :

Gambar 1.10 Fungsi Linear

6. Fungsi Saturating Linear


Fungsi ini akan bernilai 0 jika inputnya kurang dari –½, dan akan bernilai 1 jika
inputnya lebih dari ½. Sedangkan jika nilai input terletak antara –½ dan ½, maka
outpunya akan bernilai sama dengan nilai input ditambah ½.
Fungsi saturating linear dirumuskan sebagai berikut :

Gambar 1.11 Fungsi Saturating Linear

7. Fungsi Symetric Saturating Linear


Fungsi ini akan bernilai -1 jika inputnya kurang dari –1, dan akan bernilai 1 jika
inputnya lebih dari 1. Sedangkan jika nilai input terletak antara –1 dan 1, maka
outpunya akan bernilai sama dengan nilai inputnya.
Fungsi symetric saturating linear dirumuskan sebagai berikut :

9|JST-TI-UNINDRA 2018
Gambar 1.12 Fungsi Symetric Saturating Linear

8. Fungsi Sigmoid Biner


Fungsi ini digunakan untuk jaringan syaraf yang dilatih dengan menggunakan metode
backpropagation. Fungsi sigmoid biner memiliki nilai pada range 0 sampai 1. Oleh
karena itu, fungsi ini sering digunakan untuk jaringan saraf yang membutuhkan nilai
output yang terletak pada interval 0 sampai 1. Namun, fungsi ini bisa juga digunakan
oleh jaringan syaraf yang nilai outputnya 0 atau 1.
Fungsi sigmoid biner dirumuskan sebagai berikut :
1
y=f ( x )=
1+ e−σx
dengan : f’(x) = f(x)[1-f(x)]

Gambar 1.13 Fungsi aktivasi Sigmoid Biner

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−e−x
y=f ( x )=
1+ e−x

σ
dengan : f ’ ( x ) = [ 1+f ( x ) ] [1−f ( x ) ]
2

Fungsi ini sangat dekat dengan fungsi hyperbolic tangent. Keduanya memiliki range
antara –1 sampai 1. Untuk fungsi hyperbolic tangent, dirumuskan sebagai berikut :

e x −e− x
y=f x = x −x
( )
e +e

1−e−2 x
atau y=f ( x )=
1+ e−2 x

dengan:

f ’ ( x ) =[ 1+ f ( x ) ] [1−f ( x ) ]

Gambar 1.14 Fungsi Sigmoid Bipolar

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:

Gambar 1.15 Klasifikasi JST


Berikut penjelasan klasifikasinya:
1. Supervised-Feedforward: JST dibimbing dalam hal penyimpanan pengetahuannnya
serta sinyal masuk akan diteruskan tanpa umpan balik
2. Unsupervised-Feedforward: JST tidak dibimbing dalam hal penyimpanan
pengetahuannnya serta sinyal masuk akan diteruskan tanpa umpan balik
3. Unsupervised-Feedback: JST tidak dibimbing dalam hal penyimpanan
pengetahuannnya serta sinyal masuk akan diteruskan dan memberikan umpan balik
4. Supervised-Feedback: JST dibimbing dalam hal penyimpanan pengetahuannnya serta
sinyal masuk akan diteruskan dan memberikan umpan balik

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

Berdasarkan stategi pembelajaran, model JST dibagi menjadi:


1. Pelatihan dengan supervisi. Contoh: model Hebbian, Perceptron, Delta, ADALINE,
Backpropagation, Heteroassociative Memory, Biderectional Associative Memory
(BAM).
2. Pelatihan tanpa supervisi. Contoh: model Hebian, Competitive, Kohonen, Learning
Vector Quantization (LVQ), Hopfield.

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.

Gambar 2.1. Model Neuron McCulloch-Pitts

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 x n+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 Y 2, maka
bobot x1 ke Y1 boleh berbeda dengan bobot dari x2 ke Y2.

Fungsi aktivasi neuron Y adalah :


f (net)= 1 , Jika net ≥ θ
{
¿ 0 , Jika∧net< θ

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.

Tabel 2.1 Tabel Kebenaran

13 | J S T - T I - U N I N D R A 2 0 1 8
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

Gambar 2.2 Arsitektur yang Terbentuk

Untuk semua kemungkinan masukan, nilai aktivasi tampak pada tabel 2.1.

Tabel 2.1 Tabel Pelatihan


Pelatihan Output

f ( net )= 1 , jika net ≥ 2


2
x1 x2 net=∑ X ij W ij
i=1
{ ¿ 0 , jika net <2

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 :
net=b +∑ x i w i=0
w b
b+ x 1 w1 + x2 w2 =0 atau x2 = - 1 x 1 –
w2 w2

14 | J S T - T I - U N I N D R A 2 0 1 8
−w1
Apabila garis pemisalnya diambil dengan persamaan x1 + x2 = 2, maka berarti =−1
w2
−b
dan =2.
w2
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 :

wi(baru) = wi(lama) + xiy

B. ALGORITMA JARINGAN HEBB

Algoritma pelatihan Hebb dengan vektor input s dan unit target t adalah sebagai berikut :

1. Inisialisasi semua bobot = wi = 0 (i=1, …, n)

2. Untuk semua vektor input s dan unit target t, lakukan


a. Set aktivasi unit masukan xi = si (i=1, …, n)
b. Set aktivasi unit keluaran : y = t
c. Perbaiki bobot menurut persamaan
wi(baru) = wi(lama) + w (i=1, …, n)
dimana
w = xiy
d. Perbaiki bias menurut persamaan
b(baru) = b(lama) + y

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

Tabel 3.1 Data Masukan dan Target


Masukan Target
X1 X2 1 t
1 1 1 1
1 0 1 0
0 1 1 0
0 0 1 0

2. Membuat Model Jaringan


x1
w1

x2 w2 y

b
1

Gambar 3.1 Model Jaringan

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.

Tabel 3.2 Pelatihan Hebb


Masukan Target Perubahan Bobot Bobot Baru
x1 x2 bias y ∆w1 ∆w2 ∆bias w1 w2 wbias

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
net=∑ x i wi +b
i=1

dengan aktivasi

y=f (net )= {¿ 01,, Jika∧net


Jikanet ≥ 0
<0

Tabel 3.3 Uji Coba Jaringan


Masukan Target

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

BAB IV

18 | J S T - T I - U N I N D R A 2 0 1 8
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.

Arsitektur jaringan Perceptron menyerupai dengan arsitektur jaringan Hebb.

Gambar 4.1 Arsitektur Perceptron

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 jika net >θ
{
f (net)= 0 jika−θ ≤ net ≤ θ
−1 jika net ←θ
Secara geometris, fungsi aktivasi membentuk 2 garis sekaligus, masing-masing dengan
persamaan :
w1x1 + w2x2 + ... + wnxn + b = θ
dan
w1x1 + w2x2 + ... + wnxn + b = -θ

B. ALGORITMA PELATIHAN PERCEPTRON


Misalkan:
s adalah vektor masukan dan t adalah target keluaran
α adalah laju pemahaman (learning rate) yang ditentukan
θ adalah threshold yang ditentukan
Algoritma pelatihan perceptron :
1. Inisialisasi semua bobot dan bias (umumnya wi = b = 0). Tentukan laju pemahaman
(=α). Untuk penyederhana, biasanya α diberi nilai = 1
2. Selama ada elemen vektor masukan yang respon unit keluarnya tidak sama dengan
target, lakukan :

19 | J S T - T I - U N I N D R A 2 0 1 8
1) Set aktivasi unit masukan xi = si (i = 1,...,n)
2) Hitung respon unit keluaran : net = ∑ x i wi +b
i

1 jika net >θ


{
f (net)= 0 jika−θ ≤ net ≤ θ
−1 jika net ←θ
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

Ada beberapa hal yang perlu diperhatikan dalam algoritma tersebut :


1. Iterasi dilakukan terus hingga semua pola memiliki keluaran jaringan yang sama
dengan targetnya (jaringan sudah memahami pola). Iterasi tidak berhenti setelah
semua pola dimasukkan seperti yang terjadi pada model Hebb.
2. Pada langkah 2(c), perubahan bobot hanya dilakukan pada pola yang mengandung
kesalahan (keluaran jaringan ≠ target). Perubahan tersebut merupakan hasil kali
unit masukan dengan target dan laju pemahaman. Perubahan bobot hanya akan
terjadi kalau unit masukan ≠ 0.
3. Kecepatan iterasi ditentukan pula oleh laju pemahaman (=α dengan 0 ≤ α ≤ 1) .
semakin besar harga α, semakin sedikit iterasi yang diperlukan. Akan tetapi jika α
terlalu besar, maka akan merusak pola yang sudah benar sehingga pemahaman
menjadi lambat.

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

Tabel 4.1 Fungsi Logika “AND” Dengan Bipolar


Masukan target
x1 x2 b t
1 1 1 1
1 -1 1 -1
-1 1 1 -1
-1 -1 1 -1

Untuk threshold = 0, maka fungsi aktivasi menjadi :

20 | J S T - T I - U N I N D R A 2 0 1 8
1 jika net>0
{
y=f ( net )= 0 jika net=0
−1 jika net< 0
Iterasi untuk seluruh pola yang ada disebut epoch Tabel 3.2 menunjukkan hasil pada
epoch pertama.

Tabel 4.2 Perceptron Epoch Pertama


Targe
Masukan Keluaran Perubahan bobot bobot baru
t
x1 x2 b t net f(net) w1 w2 b w1 w2 w(bias)
Inisialisasi 0 0 0
1 1 1 1 0 0 1 1 1 1 1 1
1 -1 1 -1 1 1 -1 1 -1 0 2 0
-1 1 1 -1 2 1 1 -1 -1 1 1 -1
-1 -1 1 -1 -3 -1 1 1 -1 2 2 -2

Tabel 4.3 Perceptron Epoch Kedua


Targe
Masukan Keluaran Perubahan bobot bobot baru
t
x1 x2 b t net f(net) w1 w2 b w1 w2 w(bias)
Bobot yang diperoleh dari epoch pertama 2 2 -2
1 1 1 1 2 1 1 1 1 3 3 -1
1 -1 1 -1 -1 -1 -1 1 -1 2 4 -2
-1 1 1 -1 0 0 1 -1 -1 3 3 -3
-1 -1 1 -1 -9 -1 1 1 -1 4 4 -4

Tabel 4.4 Perceptron Epoch Ketiga


Targe
Masukan Keluaran Perubahan bobot bobot baru
t
x1 x2 b t net f(net) w1 w2 b w1 w2 w(bias)
Bobot yang diperoleh dari epoch kedua 4 4 -4
1 1 1 1 4 1 1 1 1 5 5 -3
1 -1 1 -1 -3 -1 -1 1 -1 4 6 -4
-1 1 1 -1 -2 -1 1 -1 -1 5 5 -5
-1 -1 1 -1 -15 -1 1 1 -1 6 6 -6

Pada tabel 4.4 nilai Keluaran f(net) sama dengan Target (t), maka jaringan Perceptron
tersebut sudah mengenali pola sehingga iterasi dihentikan.

C. PENGENALAN POLA KARAKTER PADA PERCEPTRON


Algoritma untuk mengenali apakah pola masukan yang diberikan menyerupai sebuah
karakter tertentu (misal mirip huruf “A”) atau tidak, sebagai berikut :
1. Nyatakan tiap pola masukan sebagai vektor bipolar yang elemennya adalah tiap titik
dalam pola tersebut.

21 | J S T - T I - U N I N D R A 2 0 1 8
2. Berikan nilai target = +1 jika pola masukan menyerupai huruf yang diinginkan. Jika
sebaliknya, berikan nilai target = -1.
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 :

Gambar 4.2 Pola Karakter


Buatlah model perceptron untuk mengenali pola “A”.
Penyelesaian :
Untuk menentukan vektor masukan, tiap titik dalam pola diambil sebagai komponen
vektor. Jadi tiap vektor masukan memiliki 9*7 = 63 komponen. Titik dalam pola yang
bertanda “#” diberi nilai = +1 dan titik bertanda “.” Diberi nilai -1. Pembacaan pola
dilakukan dari kiri ke kanan, dimulai dari baris paling atas.
Vektor masukan pola 1 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)
Vektor masukan pola 2 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)
Vektor masukan pola 3 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)
Vektor masukan pola 4 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)
Vektor masukan pola 5 adalah
(1 1 1 1 1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 1

22 | J S T - T I - U N I N D R A 2 0 1 8
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)
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

Tabel 4.5 Pola Masukan Untuk Mengenali Pola “A”

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
63
net=∑ x i wi +b.
i=1

Berikutnya, fungsi aktivasi dihitung menggunakan persamaan


1 jika net> 0.5
{
y=f ( net )= 0 jika net−0.5 ≤ net ≤ 0.5
−1 jika net ←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
24 | 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.
net =∑ x i wi +b
i

y=f ( net )=net=∑ x i wi +b


i

Kuadrat selisih antara target (t) dan keluaran jaringan (f(net)) merupakan error yang
terjadi. Dalam aturan delta, bobot dimodifikasi sedemikian hingga errornya minimum.

E = (t – f(net))2 = ¿2

E merupakan fungsi bobot wi. Penurunan E tercepat terjadi pada arah


δE
=−2 ¿.
δwi
Maka perubahan bobot adalah :
∆ wi=α ( t− y ) x i
α merupakan bilangan positif kecil (umumnya diambil adalah 0.1)

B. PELATIHAN ADALINE
1. Inisialisasi semua bobot dan bias (w i = 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 : net =∑ x i wi +b
i

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 :
net=∑ x i wi +b
i

25 | J S T - T I - U N I N D R A 2 0 1 8
c. Kenakan fungsi aktivasi :
y= 1 jika net ≥ 0
{
−1 jika net <0

Contoh 5.1:
Gunakan model ADALINE untuk mengenali pola fungsi logika “AND” dengan masukan dan
target bipolar :
Tabel 5.1 Masukan dan Target

Gunakan batas toleransi = 0.05 dan α = 0.1


Penyelesaian:
Dengan α = 0.1, maka perubahan bobotnya = ∆wi = 0.1 (t - f(net))xi = 0.1 (t-y) xi.

Tabel 5.2 Nilai F(Net) pada Epoch Pertama

Maksimum ∆wi = 0.07 > toleransi, maka iterasi dilanjutkan untuk epoch kedua

26 | 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 :
y= 1 jika net ≥ 0
{
−1 jika net <0

Tabel 5.4 Hasil “AND”

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:

27 | J S T - T I - U N I N D R A 2 0 1 8
Tabel 5.5 iterasi pertama

Maksimum ∆ wi = 0.05 artinya toleransi, maka iterasi dihentikan dan bobot terakhir yang
diperoleh (w 1 = 0.3, w 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.

28 | 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.

Gambar 6.1 Arsitektur MADALINE

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,...)
z ¿ =b j ∑ x i w ji
j
i

c. Hitung keluaran setiap unit tersembunyi dengan menggunakan fungsi aktivasi


bipolar :
1 jika z ¿ ≥ 0
z j =f ( z i n ) =
j
{ j

−1 jika z¿ < 0 j

d. Tentukan keluaran jaringan


y ¿ =b k + ∑ z j v j
j

y=f ( y ¿ )= 1 jika y ¿ ≥ 0
{
−1 jika y ¿ < 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) :

29 | J S T - T I - U N I N D R A 2 0 1 8
b p baru=b p lama+ α ( 1−z ¿p )
w pi baru=w pi lama+α ( 1−z ¿p ) x i
Untuk t = -1, ubah semua bobot ke unit zk yang zin nya positif :
b k baru=b k lama+ α (−1−z ¿k )
w ki baru=w ki lama+ α (−1−z ¿k ) x i

Contoh 6.1 :
Gunakan MADALINE mula-mula mengenali pola fungsi logika XOR dengan 2 masukan x 1
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

Bobot ke unit keluaran Y adalah : v1 = v2 = b = 0.5

Gambar 6.2 Bobot tiap Unit

30 | J S T - T I - U N I N D R A 2 0 1 8
Disini dilakukan iterasi untuk pola pertama saja. Pelatihan pola-pola selanjutnya dilakukan
secara analog dan diserahkan kepada saudara untuk latihan.
Pola-1 : Masukan : x1 = 1, x2 =1, t=-1
Hitung net untuk unit tersembunyi z1 dan z2 :
Zin_1 = b1 + x1w11 + x2w12 = 0.3 + 1 (0.05) + 1 (0.2) = 0.55
Zin_2 = b2 + x1w21 + x2w22 = 0.15 + 1 (0.1) + 1 (0.2) = 0.45
Hitung keluaran unit tersembunyi z1 dan z2 menggunakan fungsi aktivasi bipolar.
z1 = f (zin_1) = 1 dan z2 = f (zin_2) = 1
Tentukan keluaran jaringan Y :
Y_in = b3 + z1v1 + z2v2 = 0.5 + 1 (0.5) + 1 (0.5) = 1.5
Maka y = f (y_in) = 1
t-y = -1-1 = -2 ≠ 0 dan t = -1.
Semua bobot yang menghasilkan z_in yang positif dimodifikasi. Karena zin_1 > 0 dan zin_2 > 0,
maka semua bobotnya dimodifikasi sebagai berikut :
perubahan bobot ke unit tersembunyi z1 :
b1 baru = b1 lama + α (-1- zin_1) = 0.3 + 0.5 (-1 – 0.55) = -0.475
w11 baru = w11 lama + α (-1- zin_1) x1 = 0.05 + 0.5 (-1 – 0.55) = -0.725
w12 baru = w12 lama + α (-1- zin_1) x2 = 0.2 + 0.5 (-1 – 0.55) = -0.575
perubahan bobot ke unit tersembunyi z2 :
b2 baru = b2 lama + α (-1- zin_2) = 0.15 + 0.5 (-1 – 0.45) = -0.575
w21 baru = w21 lama + α (-1- zin_2) x1 = 0.1 + 0.5 (-1 – 0.45) = -0.625
w22 baru = w22 lama + α (-1- zin_2) x2 = 0.2 + 0.5 (-1 – 0.45) = -0.525

Tabel 6.3 Perubahan Bobot (∆ w ¿

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.

31 | J S T - T I - U N I N D R A 2 0 1 8
BAB VII
HOPFIELD DISKRIT

A. ALGORITMA 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.

B. ARSITEKTUR JARINGAN

Gambar 7.1 Arsitektur Hopfield Diskrit

Fungsi ambang : F(t) = 1 jika t >= ambang, 0 jika t < ambang

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

Gambar 7.2 Jaringan Hopfiled dengan 6 Neuron

32 | 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.

0 W 12 W13 W 14 W 15 W 16

[
W21
w= W31
W 41
W 51
W 61
0
W 32
W 42
W 52
W 62
W23      W 24
0
W 43 0
W 34

W53      W 54
W63 W 64
W 25
W 35
W 45
0
W 65

Gambar 7.3 Bobot vektor 6 neuron


W 26
W 36
W 46
W 56
0
]
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

33 | J S T - T I - U N I N D R A 2 0 1 8
2. Aktivasi node kedua pola A

3. Node 3-6 hasilnya 4,-6,4,-6


4. cara yg sama lakukan utk pola B yg hasilnya -6,4,-6,4,-6,4
pengujian :
1. Mengenali pola C (1,0,1,0,0,0) dianggap citra pola A yg mengalami distorsi
2. Aktivasi node 1-6 menghasilkan (2,-4,2,-4, 4,-4), maka output (1,0,1,0,1,0)
3. Mengenali pola D (0,0,0,1,0,1) dianggap citra pola B yg mengalami distorsi
4. Bagaimana dg pola D?
Algoritma dengan Asynchronous update
1. Mengenali pola E (1,0,1,1,0,1)
2. Aktivasi node 1-6 diperoleh (-2,0,-2,-2,0,-2) dg output (0,1,0,0,1,0) bukan A atau B
3. solusi dg Asynchronous update

BAB VIII
34 | J S T - T I - U N I N D R A 2 0 1 8
PROPAGASI BALIK (BACK PROPAGATION)

A. ALGORITMA PROPAGASI BALIK (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.

Algoritma backpropagation menggunakan error output untuk mengubah nilai bobot-


bobotnya dalam arah mundur (backward). Untuk mendapatkan error ini, tahap perambatan
maju (forward propagation) harus dikerjakan terlebih dahulu.

Pada saat perambatan maju, neuron-neuron diaktifkan dengan menggunakan fungsi


aktivasi sigmoid, yaitu:

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.

Gambar 8.1 Arsitektur Jaringan Back Propagation

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.

C. PELATIHAN BACK PROPAGATION


1. Proses belajar & Pengujian
Penggunaan Back Propagation terdiri dari 2 tahap:
a. Tahap belajar atau pelatihan, di mana pada tahap ini diberikan sejumlah data
pelatihan dan target
b. Tahap pengujian atau penggunaan, pengujian dan penggunaan dilakukan setelah
selesai belajar

2. Tahap Belajar atau Pelatihan

35 | J S T - T I - U N I N D R A 2 0 1 8
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 (X i) 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 d k, di mana faktor ini digunakan untuk mendistribusikan error dari
output ke layer sebelumnya. Dengan cara yang sama, faktor dj juga dihitung pada
hidden unit Zj, di mana faktor ini digunakan untuk memperbaharui bobot antara hidden
layer dan input layer. Setelah semua faktor d ditentukan, bobot untuk semua layer
diperbaharui.

3. 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
n
z ¿ j=v o j + ∑ x ❑i v ij
i=1

dan memakai fungsi aktivasi yang telah ditentukan untuk menghitung sinyal
output dari hidden unit yang bersangkutan,
z j =f (z ¿ j )
lalu mengirim sinyal output ini ke seluruh unit pada unit output
Step 5 : Setiap unit output (Yk,k=1,…,m) akan menjumlahkan sinyal-sinyal input yang
sudah berbobot, termasuk biasnya,
p
y ¿ k =w ok + ∑ z j w jk
j=1

36 | J S T - T I - U N I N D R A 2 0 1 8
dan memakai fungsi aktivasi yang telah ditentukan untuk menghitung sinyal
output dari unit output yang bersangkutan:
y k =f ( y ¿k )
Propagasi balik error (backpropagation of error)
Step 6 : Setiap unit output (Yk,k=1,…,m) menerima suatu target (output yang
diharapkan) yang akan dibandingkan dengan output yang dihasilkan.
δ k =( t k − y k ) f ' ( y i n )
k

Faktor d k ini digunakan untuk menghitung koreksi error ( Dwjk) yang nantinya
akan dipakai untuk memperbaharui wjk, di mana:
Dwjk= adkzj
Selain itu juga dihitung koreksi bias D w0k yang nantinya akan dipakai untuk
memperbaharui w0k, di mana:
Dw0k= adk
Faktor d 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.
m
δ ¿ j=∑ δ k w jk
k=1

Kemudian hasilnya dikalikan dengan turunan dari fungsi aktivasi yang


digunakan jaringan untuk menghasilkan faktor koreksi error dj, di mana:
dj= d_inj f’(z_inj)
Faktor dj ini digunakan untuk menghitung koreksi error (Dvij) yang nantinya
akan dipakai untuk memperbaharui vij, di mana:
Dvij=adjxi
Selain itu juga dihitung koreksi bias Dv0j yang nantinya akan dipakai untuk
memperbaharui v0j, di mana:
Dv0j=adj
Pembaharuan bobot dan bias:
Step 8 :
a. Setiap unit output (Yk,k=1,…,m) akan memperbaharui bias dan bobotnya
dengan setiap hidden unit.
wjk(baru)=wjk(lama) + Dwjk
b. Demikian pula untuk setiap hidden unit akan memperbaharui bias dan
bobotnya dengan setiap unit input.
vij(baru)=vij(lama) + Dvij
Step 9 : Memeriksa stopping condition
Jika stop condition telah terpenuhi, maka pelatihan jaringan dapat dihentikan.

4. Stopping Condition
Untuk menentukan stopping condition terdapat dua cara yang biasa dipakai, yaitu:
a. Membatasi iterasi yang ingin dilakukan.

37 | J S T - T I - U N I N D R A 2 0 1 8
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.

5. Mean Square Error


Jika terdapat sebanyak m training data, maka untuk menghitung Mean Square Error
digunakan persamaan berikut:
MSE=0,5 x {(tk1-yk1)2+ (tk2-yk2)2+…+ (tkm-ykm)2}

6. Tahap pengujian & Penggunaan


Setelah pelatihan selesai, Back Propagation dianggap telah pintar sehingga apabila
jaringan diberi input tertentu, jaringan akan menghasilkan output seperti yang
diharapkan.

Cara mendapatkan output tersebut adalah dengan mengimplementasikan metode


backpropagation yang sama seperti proses belajar, tetapi hanya pada bagian umpan
majunya saja, yaitu dengan langkah-langkah sebagai berikut:

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:
n
z ¿ j=v oj + ∑ x i v ij
i=1

z j =f ( z ¿ j )
Step 4 : Untuk k=1,…,m:
p
y ¿ k =w ok + ∑ z j w jk
j=1

y k =f ( y ¿k )
Variabel yk adalah output yang masih dalam skala menurut range fungsi aktivasi.
Untuk mendapatkan nilai output yang sesungguhnya, yk harus dikembalikan seperti
semula.

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.

38 | J S T - T I - U N I N D R A 2 0 1 8
 Fungsi aktivasi yang digunakan adalah sigmoid biner dengan nilai learning rate (a) =
0,01 dan nilai s =1.

 Arsitektur jaringan yang akan dilatih adalah sebagai berikut:

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

 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)+(0 x-1,083092)}=1,718946
• z11=f(z_in11)=0,847993
• z_in12=1,718946+{(0 x-1,263178)+(1 x -1,083092)}=0,635854
• z12=f(z_in12)=0,653816
• z_in13=1,718946+{(1 x- 1,263178)+(0 x- 1,083092)}=0,455768
• z13=f(z_in13)=0,612009
• z_in14=1,718946+{(1 x -1,263178)+(1 x -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,847993 x 0,543960)=0,079906
• y11=f(y_in11)=0,480034

39 | J S T - T I - U N I N D R A 2 0 1 8
• 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 :
• d1=(0-0,480034)f ’(0,079906)=-0,119817
• Dw11=0,01x-0,119817x0,847993=-0,001016
• Dw01=0,01x-0,119817=-0,00119817
 Step 7.
• d_in1=-0,00119817x0,543960=-0,00065176
• d1=-0,00065176xf’(1,718946)=-0,00008401
• Dv11=0,01x-0,00008401x0=0
• Dv21=0,01x-0,00008401x0=0
• Dv01=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:
 w01=-0,541023
 w11=0,543830

40 | J S T - T I - U N I N D R A 2 0 1 8
 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
BAB IX
LEARNING VECTOR QUANTIZATION (LVQ)

A. METODE LVQ

41 | J S T - T I - U N I N D R A 2 0 1 8
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.

Gambar 9.1 Arsitektur Jaringan Saraf LVQ

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
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))

42 | J S T - T I - U N I N D R A 2 0 1 8
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

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 :


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

Akan digunakan sebagai data yang akan dilatih.


Arsitektur jaringan saraf untuk contoh 9.1 terlihat pada gambar 9.2.

Gambar 9.2 Arsitektur jaringan untuk contoh 9.2

43 | J S T - T I - U N I N D R A 2 0 1 8
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
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)

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

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)

Data ke-3: (0, 1, 0, 0, 0, 1)

44 | J S T - T I - U N I N D R A 2 0 1 8
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

Bobot ke-1 baru:


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;
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)

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

Bobot ke-1 baru:


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)

Data ke-5: (0, 0, 1, 1, 0, 0)

Jarak pada:
- bobot ke-1 =

45 | J S T - T I - U N I N D R A 2 0 1 8
√ (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

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)

Data ke-6: (0, 1, 0, 1, 0, 0)


Jarak pada:
- bobot ke-1 = √ ( 0-0.8645 )2 ( 1-0.0475 )2 ( 0-0.1380 )2 (1-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

Bobot ke-2 baru:


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)

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

46 | J S T - T I - U N I N D R A 2 0 1 8
Jarak terkecil pada bobot ke-1

Target data ke-7 = 2

Bobot ke-1 baru:


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)

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

Bobot ke- 2 baru:


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)
 =  - 0,1 *  = 0,05 - 0,1 * 0,05 = 0,045

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)

47 | J S T - T I - U N I N D R A 2 0 1 8
w2 = (0,0000 0,7969 0,7900 1,0000 0,5869 0,2171)

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:

- bobot ke-1 =
2 2 2 2 2 2
√ ( 0-0,3727 ) + (1-0,2161) + (0-0,6347) + (1-0,2164) + (1-0,7981) + (0-0,4254) =1,6904
- 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.

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.
Set parameter-parameter tetangga.
Set parameter learning rate.
1. Kerjakan jika kondisi berhenti bernilai FALSE:
a. Untuk setiap vektor input x, kerjakan:

48 | J S T - T I - U N I N D R A 2 0 1 8
- 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:
* 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:

49 | J S T - T I - U N I N D R A 2 0 1 8
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
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

50 | J S T - T I - U N I N D R A 2 0 1 8
* 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.

51 | J S T - T I - U N I N D R A 2 0 1 8

Anda mungkin juga menyukai