Implementasi Jaringan Syaraf Tiruan Self Organizing Map Kohonen dalam Pengenalan Telapak Kaki Bayi

BAB 2
LANDASAN TEORI

2.1 Pengenalan Pola
Pengenalan

pola

(pattern

recognition)

adalah

suatu

ilmu

untuk

mengklasifikasikan atau menggambarkan sesuatu berdasarkan pengukuran kuantitatif

fitur atau sifat utama dari suatu obyek (Putra,2010).
Seperti halnya kemampuan manusia yang dapat mengenali dan membedakan
objek yang dilihatnya, demikian pula suatu komputer diharapkan mampu meniru
kemampuan visual manusia dalam mengenali suatu citra. Komputer menerima input
berupa citra objek yang akan diidentifikasi, memproses citra tersebut dan memberikan
output berupa deskripsi objek di dalam citra (Siregar, 2013).

Gambar 2.1 Skema Pengenalan Pola (Marbun,2014)
2.2 Deteksi Tepi
Tepi adalah sebuah himpunan dari piksel-piksel yang terhubung yang berada
pada batas (boundary) diantara dua region. Defenisi tepi membutuhkan kemampuan
untuk mengukur transisi gray-level dengan cara yang tepat (Fajar,2013). Tepian dari

Universitas Sumatera Utara

6

suatu citra mengandung informasi penting dari citra bersangkutan. Tepian citra dapat
merepresentasikan objek-objek yang terkandung dalam citra, bentuk, dan ukurannya
serta terkadang juga informasi tentang tekstur (Johandra,2014). Oleh karena itu, tepi

berguna untuk proses segmentasi dan identifikasi objek di dalam citra.
Ketebalan dari tepi ditentukan oleh panjang dari ramp, yang merupakan
transisi dari gray level awal sampai gray level akhir. Panjang ramp ditentukan oleh
slope, yang ditentukan juga oleh tingkat kekaburan. Berarti bahwa tepi yang kabur

cenderung tebal dan tepi yang tajam cenderung tipis.(Hermawati, 2013)
Deteksi tepi adalah proses untuk menemukan perubahan intensitas yang
berbeda nyata dalam sebuah bidang citra. Deteksi tepi merupakan langkah pertama
untuk melingkupi informasi di dalam citra (Putra,2010). Setelah dilakukan deteksi tepi
akan dihasilkan citra biner. Citra biner merupakan citra yang hanya memiliki dua nilai
yaitu hitam dan putih atau dalam bentuk nilai yaitu 0 dan 1 (Marbun, 2014).
Deteksi tepi pada suatu citra memiliki tujuan sebagai berikut (Johandra, 2014):
1. Menandai bagian yang menjadi detail citra.
2. Memperbaiki detail citra yang kabur karena error atau adanya efek dari proses
akuisisi citra.
Beberapa jenis deteksi tepi adalah deteksi tepi Robert, Prewitt, Log dan Canny.
2.2.1 Deteksi tepi Canny

Deteksi tepi Canny dapat mendeteksi tepian yang sebenarnya dengan tingkat
kesalahan minimum (Marbun, 2014). Dengan kata lain, operator Canny didesain

untuk menghasilkan citra tepian yang optimal. Operator ini diformulasikan dengan 3
tujuan utama (Hermawati, 2013):
a. Optimal detection, dengan tidak adanya respon yang salah
b. Good localization, dengan jarak minimal antara posisi tepi sebenarnya dengan
posisi yang terdeteksi
c. Single response, dengan mengelimasi multiple response menjadi satu garis tepi
saja.

Universitas Sumatera Utara

7

Berikut adalah langkah-langkah dalam melakukan deteksi tepi Canny (Putra,2010):
1. Menghilangkan derau yang ada pada citra dengan mengimpelementasikan tapis
Gaussian. Proses ini akan menghasilkan citra yang tampak sedikit buram.
2. Melakukan deteksi tepi dengan salah satu operator deteksi tepi seperti Roberts,
Prewitt, atau Sobel dengan melakukan pencarian secara horisontal (Gx ) dan
secara vertikal (Gy).
3. Menentukan arah tepian yang ditemukan dengan menggunakan rumus sebagai
berikut:


Selanjutnya membagi ke dalam 4 warna sehingga garis dengan arah
berbeda dan memiliki warna yang berbeda. Pembagiannya adalah 0-22,5 dan
157,5-180 derajat berwarna kuning, 22,5-67,5 berwarna hijau dan derajat 67,5157,5 berwarna merah.
4. Memperkecil garis tepi yang muncul dengan menerapkan nonmaximum
suppresion.

5. Menerapkan dua buah tresholding
Dalam proses pendeteksian tepi terhadap citra yang dilakukan dengan metode
Canny

dapat menggunakan function di Matlab, sehingga cukup menggunakan

function edge dalam pengkodean (Marbun, 2014). Gambar 2.3 merupakan contoh

deteksi tepi menggunakan operator Canny:

Gambar 2.2 Citra Asli

Universitas Sumatera Utara


8

Gambar 2.3 Citra Hasil Deteksi Tepi Canny
2.3 Perbaikan Citra (Image Enhancement)
Perbaikan citra bertujuan meningkatkan kualitas tampilan citra untuk
pandangan manusia atau untuk mengkonversi suatu citra agar memiliki format yang
lebih baik sehingga citra tersebut menjadi lebih mudah diolah dengan mesin.
Perbaikan suatu citra dapat dilakukan dengan operasi titik (point operation),
operasi spasial (spatial operation), dan operasi aritmatik (arithmatic operation)
(Putra, 2010).
2.3.1 Operasi spasial (filtering)

Pada proses filtering, nilai pixel baru dari suatu citra umumnya dihitung
berdasarkan pixel tetangga. Berdasarkan cara penghitungan nilai pixel baru tersebut,
proses filtering dapat dikelompokkan menjadi 2, yaitu tapis linier dan tapis non linier.
2.3.2 High-pass filtering
High-pass filtering merupakan salah satu jenis dari linier filtering. High-pass
filtering merupakan kebalikan dari low-pass filtering yaitu mempertajam komponen


frekuensi tinggi dan menghilangkan (mengurangi) komponen frekuensi rendah,
sehingga filter ini sangat cocok untuk penajaman tepi citra. Nilai koefisien filter pada
koordinat pusat bernilai positif dan koefisien kelilingnya bernilai negatif. Bila proses
pentapisan dilakukan diatas area yang nilai intensitasnya konstan atau mengalami
perubahan yang lamban maka nilai pixel keluaran adalah nol atau sangat kecil.

Universitas Sumatera Utara

9

Adapun prosedur untuk menapis citra dalam kawasan frekuensi adalah sebagai
berikut:
1. Input citra digital berupa citra *.jpg dengan ukuran lebar = ukuran tinggi.
2. Lakukan proses transformasi fourier dari citra input dengan menggunakan FFT 2D
untuk mendapatkan F(u,v) yang merupakan nilai kompleks dari transformasi fourier.
3. Hitung filter mask H(u,v) dengan ukuran lebar dan tinggi sama dengan ukuran citra
input.
4. Kalikan F(u,v) dengan H(u,v) untuk mendapatkan G(u,v) yang merupakan hasil
perkalian antara transformasi dengan filter mask.
5. Lakukan proses invers transformasi fourier dari G(u,v) menggunakan invers DFT

(Descrete Fourier Transformation ) 2D sehingga diperolehlah citra hasil g(x,y). ( Eko,
2011)
Dimana untuk transformasi Fourier diskrit dua dimensi dari sebuah fungsi diskrit
f(x,y) dinyatakan sebagai berikut:

Dan inversnya:
Untuk u = 1,2,....M−1; x = 1,2,....M−1; v = 1,2,....N−1 y = 1,2,....N−1.
Fungsi filter untuk High Pass filter adalah:

Dimana,
H(u,v) : fungsi filter

Do : konstanta positif (cutoff frekuensi)/titik pusat transformasi
D(u,v): jarak antara titik (u,v) dalam domain frekuensi dan pusat persegi panjang
frekuensi.

Salah satu contoh matriks filternya dapat dilihat seperti gambar dibawah ini
(Putra, 2010).

Universitas Sumatera Utara


10

Gambar 2.4 Contoh Matriks High Pass Filtering
Contoh hasil dari highpass filtering dapat dilihat seperti Gambar 2.5:

(a)

(b)

(c)

Gambar 2.5 (a) Citra asli (b) Citra Grayscale (c) Citra hasil highpass
filtering

2.4 Jaringan Syaraf Tiruan
Jaringan syaraf tiruan adalah sistem pembelajaran berbentuk jaringan yang
terinspirasi berdasarkan jaringan syaraf manusia. Jaringan syaraf tiruan merupakan
sistem adaptasi yang dapat merubah strukturnya untuk memecahkan masalah
berdasarkan


informasi

yang

masuk

dan

keluar

melalui

jaringan

tersebut

(Darmawan,2010). Jaringan syaraf tiruan tercipta sebagai suatu generalisasi model
matematis dari pemahaman manusia ( human cognition ) yang didasarkan pada
(Wuryandari & Afrianto, 2012):

1. Pemrosesan informasi terjadi pada elemen sederhana yang disebut neuron
2. Sinyal mengalir diantara sel syaraf/neuron melalui suatu sambungan
penghubung
3. Setiap sambungan penghubung memiliki bobot yang bersesuaian. Bobot ini
akan digunakan untuk menggandakan/mengalikan sinyal yang dikirim
melaluinya.

Universitas Sumatera Utara

11

4. Setiap sel syaraf akan menerapkan fungsi aktivasi terhadap sinyal hasil
penjumlahan berbobot yang masuk kepadanya untuk menentukan sinyal
keluarannya.

Gambar 2.6 Contoh Model Neuron Jaringan Syaraf Tiruan (Siang, 2009)

Jaringan syaraf tiruan mempunyai struktur tersebar paralel yang sangat besar
dan mempunyai kemampuan belajar sehingga bisa melakukan generalisasi yaitu bisa
menghasilkan output yang benar untuk input yang belum pernah dilatihkan. Defenisi

belajar dalam jaringan syaraf tiruan adalah suatu proses dimana parameter-parameter
bebas jaringan syaraf tiruan diadaptasikan melalui suatu proses perangsangan
berkelanjutan oleh lingkungan dimana jaringan berada (Suyanto, 2011). Pembelajaran
pada jaringan syaraf tiruan pada dasarnya dideskripsikan lewat perubahan bobot w
antara neuron, tujuan akhir pembelajaran terhadap variabel masukan x adalah nilai
keluaran output Y sedekat mungkin dengan nilai keluaran yang ditargetkan (beda
nilai antara keluaran terhadap masukan disebut error value) (Muis,2009).
Jaringan syaraf tiruan dapat digunakan untuk (Siang, 2009):
1. Pengenalan pola (Pattern Recognition)
Jaringan syaraf tiruan dapat dipakai untuk mengenali pola ( 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 tubuhnya yang sudah sedikit
berubah).
2.

Signal Processing

Jaringan syaraf tiruan (model Adaline) dapat dipakai untuk menekan noise
dalam saluran telpon.

Universitas Sumatera Utara

12

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. Peramalan ini dapat dilakukan mengingat kemampuan jaringan
syaraf tiruan dapat membuat generalisasi dari apa yang sudah ada sebelumnya.
Jaringan syaraf tiruan juga dapat menyelesaikan masalah dalam bidang kontrol
dan kedokteran.
3. Menyelesaikan persoalan optimasi terbatas (Darmawan ,2010)
Meskipun banyak aplikasi menjanjikan yang dapat dilakukan oleh jaringan
syaraf tiruan, namun jaringan syaraf tiruan juga memiliki beberapa keterbatasan
umum. Salah satunya adalah ketidakakuratan hasil yang diperoleh(Siang,2009).
Karakteristik dari jaringan syaraf tiruan adalah (Darmawan,2010):
1.

Arsitektur jaringan : pola keterhubungan antar neuron

2.

Algoritma jaringan (pelatihan,pembelajaran) metode menentukan nilai bobot
hubungan

3.

Fungsi aktivasi : menentukan nilai keluaran berdasarkan nilai total
masukannya.

2.4.1

Arsitektur jaringan

Pada jaringan syaraf tiruan, neuron-neuron akan dikumpulkan dalam lapisanlapisan (layer ) yang disebut dengan lapisan neuron (neuron layers). Neuron-neuron
pada satu lapisan akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya.
Informasi yang diberikan pada jaringan syaraf akan dirambatkan lapisan ke lapisan,
mulai dari lapisan masukan sampai ke lapisan keluaran melalui lapisan tersembunyi
(hidden layer ).
Pola dimana neuron-neuron pada jaringan syaraf tiruan disusun berhubungan
erat dengan algoritma belajar yang digunakan untuk melatih jaringan. Secara umum,
arsitektur jaringan syaraf tiruan dibagi 4, yaitu ( Suyanto,2011):

Universitas Sumatera Utara

13

1.

Single-Layer feedforward networks

Bentuk jaringan berlapis yang paling sederhana yaitu lapis tunggal, hanya
terdapat input layer dengan node sumber yang terproyeksi ke dalam output layer dari
neuron, tetapi tidak sebaliknya.

Gambar 2.7 Single Layer Network
2.

Multi-layer feedforward network

Arsitektur jaringan ini memiliki satu atau lebih lapis tersembunyi (hidden layer).
Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan yang
kompleks, namun cenderung membutuhkan waktu yang lebih lama. Contoh jaringan
yang menerapkan arsitektur ini adalah backpropagation.

Gambar 2.8 Multi Layer Network

Universitas Sumatera Utara

14

3.

Recurrent network

Recurrent network adalah jaringan yang mempunyai minimal satu feeedback loop.
Feedback loop mempengaruhi kemampuan belajar dan kinerja jaringan.

Gambar 2.9 Recurrent Network dengan hidden neuron
4.

Lattice structure

Sebuah lattice terdiri dari satu dimensi, dua dimensi, atau lebih array neuron dengan
himpunan node sumber yang bersesuaian yang memberikan sinyal input ke
array;dimensi lattice mengacu pada jumlah dimensi ruang dimana graph berada.

Gambar 2.10 Lattice 1 dimensi dengan 3 neuron

Universitas Sumatera Utara

15

Berdasarkan paradigma pembelajarannya, jaringan syaraf tiruan terbagi 2 yakni
supervised dan unsupervised learning ( Suyanto,2011):

1.

Supervised learning
Supervised atau active learning adalah jenis jaringan syaraf tiruan dimana

dalam proses belajar membutuhkan sampel input-output. Sampel input-output ini akan
membangun pengetahuan dengan memberikan respon yang diinginkan jaringan syaraf
tiruan. Respon yang diinginkan tersebut mereperesentasikan aksi optimum yang
diinginkan oleh jaringan syaraf tiruan. Parameter-parameter jaringan berubah-ubah
berdasarkan vektor latih dan sinyal kesalahan.
2.

Unsupervised learning
Unsupervised learning atau self-organized learning tidak membutuhkan

sampel input-output untuk memantau proses belajar. Salah satu contoh jenis jaringan
syaraf yang tergolong unsupervised learning adalah self-organizing map.
Jenis jaringan ini didasarkan pada competitive learning; neuron output dari
jaringan ini bersaing satu sama lain untuk diaktifkan , dengan hasil hanya satu neuron
output yang memenangkan persaingan. Salah satu model self organizing maps ini

adalah self organizing map Kohonen (SOM Kohonen).

2.4.2

Self organizing map Kohonen

Ada dua kemungkinan dalam menggunakan Self Organizing Maps. Pertama,
adalah menggunakannya hanya untuk model unsupervised learning, dimana vektor
input tidak diketahui. Kedua adalah menggunakannya untuk unsupervised learning
dan diikuti dengan supervised learning. Algoritma LVQ (Learning Vector
Quantization) dikembangkan untuk tujuan kedua ini. (Kasabov,1998)

Teknik self-organizing map (SOM) Kohonen pertama kali diperkenalkan oleh
Touvo Kohonen, merupakan sistem jaringan neural berbasis kompetisi yang mampu
melakukan pembelajaran tanpa terbimbing karena memiliki kemampuan mengatur
dirinya sendiri (self-organizing) (Sinaga, 2015).

Universitas Sumatera Utara

16

Jaringan Kohonen merupakan salah satu jaringan yang dipakai untuk membagi
pola masukan kedalam beberapa kelompok (cluster), dimana semua pola yang berada
dalam satu kelompok merupakan pola yang mirip satu dengan lainnya.
Arsitektur jaringan Kohonen mirip dengan model lain. Hanya saja jaringan
Kohonen tidak menggunakan perhitungan net (hasil kali vektor masukan dengan
bobot) maupun fungsi aktivasi (Siang, 2009).

Gambar 2.11 Arsitektur Jaringan Kohonen
Prinsip kerja dari algoritma SOM adalah pengurangan node-node tetangganya
(neighbor), sehingga pada akhirnya hanya ada satu node output yang terpilih (winner
node) (Astuti,2009).

Algoritma

pengelompokan

pola

jaringan

Kohonen

adalah

sebagai

berikut

(Siang,2009):
0. Inisialisasi






Bobot wji (acak)
Laju pemahaman (learning rate) awal dan faktor penurunannya
Bentuk dan jari-jari (=R) topologi sekitarnya

1. Selama kondisi penghentian bernilai salah, lakukan langkah 2-7
2. Untuk setiap vektor masukan x, lakukan langkah 3-5
3. Hitung D(j)=

................................................................. (1)

untuk semua j

Universitas Sumatera Utara

17

4. Tentukan indeks J sedemikian hingga d(J) minimum
5. Untuk setiap unit j disekitar J modifikasi bobot:
.........................................................(2)
6. Modifikasi learning rate
7. Uji kondisi penghentian

Keterangan:
D(j)= jarak Euclidean
= nilai bobot
= laju pembelajaran/learning rate

Dalam inisialisasi bobot acak awal, selain membuat vektor bobot secara acak
ada cara lain yang dapat digunakan yakni dengan memilih vektor bobot dari vektor
input yang ditentukan secara acak. (Haykin, 1999).
Kondisi penghentian iterasi adalah selisih antara
iterasi sebelumnya. Apabila semua

saat itu dengan

pada

hanya berubah sedikit saja, berarti iterasi sudah

mencapai konvergensi sehingga dapat dihentikan (Siang,2009).
Proses pembelajaran SOM Kohonen bersifat kompetitif atau bersaing. Untuk
setiap pelatihan terdapat satu neuron keluaran dalam kondisi firing (neuron keluaran
yang paling besar). Bobot yang terkoneksi pada neuron keluaran tersebut akan
disesuaikan sehingga nilainya lebih kuat pada latihan berikutnya.
Dalam perubahan bobot yang terjadi, hal yang paling menentukan adalah
atau learning rate. Learning rate adalah faktor pengali pada perubahan bobot yang
berubah terhadap perubahan error . Perubahan

ini sesuai dengan banyaknya input

yang masuk dan akan selalu berkurang bila tidak ada perubahan error (Astuti,2009).
Contoh penggunaan algoritma Kohonen dalam mengelompokkan 4 buah
vektor ke dalam maksimum 2 kelompok:
Diketahui 4 buah vektor x(1)=(1,1,0,0), x(2)=(0,0,0,1), x(3)=(1,0,0,0) dan
x(4)=(0,0,1,1). Laju pemahaman awal

dan

. Jari-jari

Universitas Sumatera Utara

18

vektor sekitar yang dimodifikasi=0 (berarti hanya vektor pemenang yang dimodifikasi
bobotnya pada setiap langkah).
Langkah awal untuk meyelesaikan kasus diatas adalah dengan menentukan
bobot awal. Kolom matriks bobot menyatakan jumlah komponen dalam sebuah vektor
(dalam kasus ini=4) dan baris menyatakan jumlah maksimum kelompok yang akan
dibentuk ( dalam kasus ini=2). Misalkan bobot awal secara acak:

Pelatihan untuk tiap vektor:
Untuk vektor x(1)=(1,1,0,0):
D(1) = (0.2-1)2 + (0.6-1)2 + (0.5-0)2 + (0.9-0)2 = 1.86
D(2) = (0.8-1)2 + (0.4-1)2 + ( 0.7-0)2 + (0.3-0)2 = 0.98
Karena D(j) minimum untuk j=2, maka vektor bobot baris 2 yang diubah sesuai
aturan
w21 = 0.8 + 0.6 (1-0.8) = 0.92
w22 = 0.4 + 0.6 (1-0.4) = 0.76
w23 = 0.7 + 0.6 ( 0-0.7) = 0.28
w24 = 0.3 + 0.6(0- 0.3) = 0.12
Vektor bobot baru:

Untuk vektor x(2) = (0,0,0,1):
D(1)= (0.2-0)2 + ( 0.6-0)2 + (0.5-0)2 + (0.9-1)2 = 0.66
D(2)= (0.92-0)2 + ( 0.76-0)2 + (0.28-0)2 + (0.12-1)2 = 2.28
D(j) minimum untuk j=1, maka vektor bobot di baris 1 yang dimodifikasi. Maka bobot
baru:

Universitas Sumatera Utara

19

w11= 0.2 +0.6 (0 - 0.2) = 0.08
w12= 0.6 + 0.6 (0-0.6) = 0.24
w13= 0.5 +0.6 (0 - 0.5) = 0.2
w14= 0.9 +0.6 (1 - 0.9) = 0.96
Vektor bobot baru:

Untuk vektor x(3) = (1,0,0,0) :
D(1)= (0.08-1)2 + ( 0.24-0)2 + (0.2-0)2 + (0.96-0)2 = 1.87
D(2)= (0.92-1)2 + ( 0.76-0)2 + (0.28-0)2 + (0.12-0)2 = 0.68
D(j) minimum untuk j=2, maka vektor bobot baris 2 yang dimodifikasi:
w21= 0.92 +0.6 (1 - 0.92) = 0.968
w22= 0.76 +0.6 (0 - 0.76) = 0.304
w23= 0.28 +0.6 (0 - 0.28) = 0.112
w21= 0.12 +0.6 (0 - 0.12) = 0.048
Vektor bobot baru:

Untuk vektor x(4) = ( 0,0,1,1) :
D(1)= (0.08-0)2 + ( 0.24-0)2 + (0.2-1)2 + (0.96-1)2 = 0.7056
D(1)= (0.968-0)2 + ( 0.304-0)2 + (0.112-1)2 + (0.048-1)2 = 2.724
D(j) minimum untuk j=1, maka vektor bobot baris 1 yang dimodifikasi:
w11= 0.08 + 0.6 (0-0.08) =0.032
w12= 0.24 + 0.6 (0-0.24) =0.096

Universitas Sumatera Utara

20

w13= 0.2 + 0.6 (1-0.2) =0.68
w14= 0.96 + 0.6 (1-0.96) =0.984
Vektor bobot baru :

Sebelum dilanjutkan ke iterasi kedua dalam mengubah bobot, terlebih dahulu
dilakukan modifikasi laju pemahaman dimana,

Pada iterasi kedua, penghitungan nilai bobot yang baru sama seperti penghitungan
bobot baru pada iterasi pertama, menggunakan bobot hasil iterasi pertama.
Bobot awal :

Iterasi-1:

Iterasi-2:

...
Iterasi-100 :

Hasil iterasi tersebut konvergen ke vektor bobot

Universitas Sumatera Utara

21

Pengelompokan vektor dilakukan dengan menghitung jarak vektor dengan bobot
optimal.
Vektor x(1)= (1,1,0,0) memiliki
D(1)= (0-1)2 + ( 0-1)2 + (0.5-0)2 + (1-0)2 = 3.25
D(2)= (1-1)2 + ( 0.5-1)2 + (0-0)2 + (0-0)2 = 0.25
Berarti x(1) masuk kedalam kelompok ke-2
Dengan cara yang sama untuk x(2) = (0,0,0,1)
D(1)= 0.25 dan D(2) = 2.25,  x(2) masuk ke dalam kelompok 1
Untuk x(3) = (1,0,0,0)
D(1)= 2.25 dan D(2) = 0.25  x(3) masuk ke dalam kelompok ke-2
Untuk x(4) = (0,0,1,1)
D(1)= 0.25 dan D(2) = 3.25  x(4) masuk ke dalam kelompok ke-1

Universitas Sumatera Utara