79
BAB 2
TINJAUAN PUSTAKA
2.1. Pengenalan Pola
Pengenalan pola mengelompokkan data numerik dan simbolik (termasuk citra) secara otomatis oleh komputer. Tujuan pengelompokan ini adalah untuk mengenali suatu objek dalam citra. Manusia bisa mengenali objek yang dilihatnya karena otak manusia telah belajar mengklasifikasikan objek-objek di alam sehingga mampu membedakan suatu objek dengan objek lainya. Kemampuan visual manusia inilah yang dicoba ditiru oleh mesin atau dalam hal ini adalah komputer. Komputer menerima input berupa citra objek yang akan diidentifikasi, memproses citra tersebut dan memberikan output berupa deskripsi objek di dalam citra. Gambar 2.1 menunjukkan diagram kotak sederhana dari proses pengenalan pola[1].
Citra
Pengenalan Pola
Deskripsi Objek
Gambar 2.1 Diagram Kotak Sederhana Proses Pengenalan Pola[1]
Penglihatan manusia dapat dengan mudah membedakan objek-objek di sekeliling dengan baik terlepas dari kondisi objek tersebut dalam berbagai keadaan seperti terbalik, berbeda warna, berbeda tekstur, tertutup sebagian, dan lain-lain. Penglihatan manusia bisa membedakan objek yang memiliki
Universitas Sumatera Utara
80
penyimpangan besar dari bentuk-bentuk dasar seperti pohon, degan mudah digeneralisasi oleh otak sebagai satu jenis objek. Sebuah citra objek yang akan dikenali oleh jaringan syaraf tiruan tidak begitu saja dimasukkan menjadi input sebuah jaringan syaraf tiruan, karena masih berupa data mentah dan belum sesuai dengan kriteria masukan untuk jaringan syaraf tiruan. Citra objek tersebut harus diproses terlebih dahulu, tujuannya untuk membantu kemampuan jaringan dalam mengkomputasikan informasi dari citra objek tersebut[7].
2.2. Pengolahan Citra
Pengolahan citra merupakan proses mengolah piksel-piksel dalam citra digital untuk suatu tujuan tertentu. Citra merupakan gambar dua dimensi yang dihasilkan dari gambar analog dua dimensi (2D) yang kontinu menjadi gambar diskrit melalui proses sampling. Gambar analog dibagi menjadi x baris dan y kolom sehingga menjadi gambar diskrit. Persilangan antara baris dan kolom tertentu disebut dengan piksel. Contohnya adalah gambar/titik diskrit pada baris x dan kolom y disebut dengan piksel (x, y). Secara matematik sebuah citra merupakan fungsi kontinu dari intensitas cahaya pada bidang dua dimensi.
Sumber cahaya menerangi objek dan objek memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh alat-alat optik, misalnya mata pada manusia, kamera, pemindai dan sebagainya, sehingga bayangan objek yang disebut citra terekam. Meskipun sebuah citra kaya informasi, namun seringkali citra yang dimiliki mengalami penurunan mutu (degradasi), misalnya mengandung cacat atau derau, warnanya terlalu kontras, kurang tajam, kabur, dan sebagainya. Citra yang seperti ini tentu saja menjadi lebih sulit diinterpretasikan karena informasi yang disampaikan oleh citra tersebut menjadi berkurang.
Universitas Sumatera Utara
81
Derau adalah gambar atau piksel yang mengganggu kualitas citra. Derau dapat disebabkan oleh gangguan fisis (optik) pada alat akuisisi maupun secara disengaja akibat proses pengolahan yang tidak sesuai. Contohnya adalah bintik hitam atau putih yang muncul secara acak yang tidak diinginkan di dalam citra. Banyak metode yang ada dalam pengolahan citra bertujuan untuk mengurangi atau menghilangkan noise (Putra, 2009). Elemen-elemen citra digital apabila ditampilkan dalam layar monitor akan menempati sebuah ruang yang disebut dengan piksel. Teknik dan proses untuk mengurangi atau menghilangkan efek degradasi pada citra digital meliput i: perbaikan citra, restorasi citra, dan transformasi spasial[4].
2.2.1. Konversi RGB ke Grayscale
Konversi RGB ke Grayscale merupakan proses konversi dari citra bewarna menjadi citra keabuan atau sering disebut dengan citra hitam putih. Citra berwarna setiap pikselnya terdiri dari gabungan tiga warna yaitu merah (R), hijau (G), dan biru (B), nilai grayscale didapat dengan merata-ratakan ketiga nilai RGB tersebut. Rumus untuk mengkonversi nilai RGB ke grayscale pada umumnya adalah sebagai berikut:
V = ( R + G + B ) / 3…………………......................................(2.1)
dimana, V = nilai grayscale yang didapatkan R = nilai warna merah G = nilai warna hijau B = nilai warna biru
contoh:
Universitas Sumatera Utara
82
Setiap warna dasar memiliki intensitasnya tersendiri dengan nilai maksimum 255 (8 bit) dan nilai minimum 0. Misalkan warna kuning merupakan kombinasi warna merah dengan nilai 255 dan warna hijau 255, sehingga kombinasi RGB-nya adalah 255 255 0. Dapat dikerjakan dengan rumus 2.1. V = (R +G+B)/3 V = (255 + 255 + 0)/3 V = 510/3 V = 170 Nilai intensitas 170 menunjukkan warna keabuan pada citra.
2.2.2. Konversi Grayscale ke Threshold (Binary)
Citra grayscale merupakan citra yang setiap pikselnya direpresentasikan dengan sebuah nilai tunggal dengan rentang nilai 0-255. Untuk dijadikan masukan yang diolah oleh jaringan, nilai ini perlu disederhanakan agar membantu dalam proses komputasi oleh jaringan, oleh karena itulah citra grayscale perlu diubah ke citra biner yang tiap pikselnya hanya direpresentasikan dengan nilai 0 dan 1 [8].
2.3. Pengenalan Wajah
Wajah merupakan bagian depan dari kepala yang meliputi: daerah dari dahi hingga dagu, termasuk juga rambut, dahi, alis, mata, hidung, pipi, mulut, bibir, gigi, dagu dan kulit. Wajah digunakan untuk menunjukkan sikap seseorang terhadap ekspresi wajah, penampilan, serta identitas dari seseorang. Tidak ada satu pun wajah yang sama atau serupa mutlak, bahkan pada manusia kembar sekalipun. Wajah sebagai objek dua dimensi digambarkan dengan berbagai macam illuminasi, pose dan ekspresi wajah untuk diidentifikasi berdasarkan citra dua dimensi dari wajah tersebut. Oleh sebab itu dengan melihat wajah, manusia dapat mengenali atau mengidentifikasi seseorang dengan mudah (Zayuman, 2010).
Universitas Sumatera Utara
83
Sistem pengenalan wajah seseorang tidak mengganggu kenyamanan seseorang saat akuisisi citra. Pendekatan yang paling umum untuk pengenalan wajah didasarkan pada bentuk dan penempatan atribut wajah seperti mata, alis mata, hidung, bibir dan dagu serta hubungan antara atribut tersebut atau analisis wajah secara keseluruhan yang menghadirkan suatu wajah sebagai suatu kombinasi dari sejumlah wajah kanonik. Suatu sistem pegenalan wajah pada prakteknya agar dapat bekerja dengan baik maka sistem harus secara otomatis dapat mendeteksi kehadiran wajah pada citra yang diperoleh, menempatkan posisi wajah dan mengenali wajah dari suatu sudut pandang umum atau berbagai pose[4].
2.4. Jaringan Syaraf 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 1012 neuron 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. Sebagai perbandingan, pengenalan wajah seseorang yang sedikit berubah (misal memakai topi, memiliki jenggot tambahan, dll) akan lebih cepat dilakukan manusia dibandingkan komputer.
Universitas Sumatera Utara
84
Axon dari Neuron lain
Dendrit Neuron lain
Dendrit Celah Sinapsis
soma axon Celah Sinapsis
Axon dari Neuron lain
Dendrit Neuron lain
Gambar 2.2 Jaringan Syaraf Biologi[10] Pada waktu lahir, otak mempunyai struktur yang menakjubkan karena kemampuannya membentuk sendiri aturan-aturan/pola berdasarkan pengalaman yang diterima. Jumlah dan kemampuan neuron berkembang seiring dengan pertumbuhan fisik manusia, terutama pada umur 0-2 tahun.
Pada 2 tahun pertama umur manusia, terbentuk 1 juta sinapsis perdetiknya. 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 sinaptik melalui proses kimiawi. Sinyal tersebut dimodifikasi (diperkuat/diperlemah) di celah sinaptik. Berikutnya, soma menjumlahkan semua sinyal-sinyal yang masuk. Apabila 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 sistem yang “fault tolerant” dalam 2 hal. Pertama, manusia dapat mengenali sinyal input yang berbeda dari yang pernah kita terima sebelumnya. Sebagai contoh, manusia sering dapat mengenali
Universitas Sumatera Utara
85
seseorang yang wajahnya pernah dilihat dari foto, atau dapat mengenali seseorang yang wajahnya sedikit berbeda karena sudah lama tidak dijumpainya.
Kedua, otak manusia tetap mampu bekerja meskipun beberapa neuron-nya tidak mampu bekerja dengan baik. Jika sebuah neuron rusak, neuron lain kadangkadang dapat dilatih untuk menggantikan fungsi sel yang rusak tersebut[10].
2.5. Jaringan Syaraf Tiruan
Jaringan syaraf tiruan bisa dibayangkan seperti otak buatan di dalam cerita-cerita fiksi ilmiah. Otak buatan ini dapat berpikir seperti manusia, dan juga sepandai manusia dalam menyimpulkan sesuatu dari potongan-potongan informasi yang diterima.
Khayalan
manusia
tersebut
mendorong
para
peneliti
untuk
mewujudkannya. Komputer diusahakan agar bisa berpikir sama seperti cara berpikir manusia. Caranya adalah dengan melakukan peniruan terhadap aktivitasaktivitas yang terjadi di dalam sebuah jaringan syaraf biologi. Ketika manusia berpikir, aktivitas-aktivitas yang terjadi adalah aktivitas mengingat, memahami, menyimpan, dan memanggil kembali apa yang pernah dipelajari oleh otak[9]. Jaringan syaraf tiruan (JST) adalah sistem pemroses informasi yang memiliki karakteristik mirip dengan jaringan syaraf biologi. JST dibentuk sebagai generalisasi model matematika dari jaringan syaraf biologi, dengan asumsi bahwa: 1. Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron). 2. Sinyal
dikirimkan
di
antara
neuron-neuron
melalui
penghubung-
penghubung. 3. Penghubung antar neuron memiliki bobot yang akan memperkuat atau memperlemah sinyal.
Universitas Sumatera Utara
86
4. Untuk menentukan output, Setiap neuron menggunakan fungsi aktivasi (biasanya bukan fungsi linier) yang dikenakan pada jumlahan input yang diterima. Besarnya output ini selanjutnya dibandingkan dengan suatu batas ambang[10].
Jaringan syaraf tiruan ditentukan oleh 3 hal: 1. Pola hubungan antar neuron (disebut arsitektur jaringan). 2. Metode
untuk
menentukan
bobot
penghubung
(disebut
metode
training/learning/algoritma). 3. Fungsi aktivasi.
Sebagai contoh, perhatikan neuron Y pada gambar 2.3 berikut ini:
x1 w1 x2
x3
w2
Y
w3
Gambar 2.3 neuron dalam jaringan syaraf tiruan[10]
Y menerima input dari neuron x1, x2, dan x3, dengan bobot hubungan masing-masing adalah w1, w2, dan w3. Ketiga impuls neuron yang ada dijumlahkan.
Net = x1w1 + x2w2 + x3w3 ………………………(2.2) Besarnya impuls yang diterima oleh Y mengikuti fungsi aktivasi y = f(net). Apabila nilai fungsi aktivasi cukup kuat, maka sinyal akan diteruskan. Nilai
Universitas Sumatera Utara
87
fungsi aktivasi (keluaran model jaringan) juga dapat dipakai sebagai dasar untuk mengubah bobot[10]. Kemampuan dan proses komputasi pada JST memberikan keuntungankeuntungan sebagai berikut: 1. JST bersifat adaptif terhadap perubahan parameter yang mempengaruhi karakteristik sistem, sehingga pada proses belajar, JST mampu belajar secara adaptif dan melaksanakan tugas berbasis pada data yang diberikan pada saat pelatihan. 2. JST memiliki kekebalan atau toleran terhadap kesalahan. Artinya, JST tetap berfungsi walaupun ada ketidak-lengkapan data yang dimasukkan. JST mempunyai kemampuan mengisi bagian masukan yang kurang lengkap sedemikian rupa sehingga tetap diperoleh keluaran yang lengkap. 3. JST dapat dilatih memberikan keputusan dengan memberikan set pelatihan sebelumnya untuk mencapai target tertentu, sehingga JST mampu membangun dan memberikan jawaban sesuai dengan informasi yang diterima pada proses pelatihan. 4. JST mempunyai struktur paralel dan terdistribusi. Artinya, komputasi dapat dilakukan oleh lebih dari satu elemen pemroses yang bekerja secara simultan. 5. JST mampu mengklasifikasi pola masukan dan pola keluaran. Melalui proses penyesuaian, pola keluaran dihubungkan dengan masukan yang diberikan oleh JST. 6. JST mengurangi derau, sehingga dihasilkan keluaran yang lebih bersih. 7. JST dapat dimanfaatkan pada proses optimisasi penyelesaian suatu masalah. 8. JST dapat digunakan
pada proses pengendalian sistem agar masukan
memberi tanggapan yang diinginkan[6].
2.5.1. Sejarah Jaringan Syaraf Tiruan
Universitas Sumatera Utara
88
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 iterasi-nya.
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 layar 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.
Pengembangan
yang ramai dibicarakan sejak tahun 1990an adalah
aplikasi model-model jaringan syaraf tiruan untuk menyelesaikan berbagai masalah di dunia[10].
2.5.2. Arsitektur Jaringan Syaraf Tiruan
Universitas Sumatera Utara
89
Beberapa arsitektur jaringan yang sering dipakai dalam jaringan syaraf tiruan antara lain: 1. Jaringan Layar Tunggal (single layer network)
Jaringan dengan lapisan tunggal terdiri dari 1 layer input dan 1 layer output. Setiap neuron/unit yang terdapat di dalam 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 hidden layer. Contoh algoritma JST yang menggunakan metode ini yaitu adaline dan perceptron. Pada Gambar 2.4 diperlihatkan arsitektur single layer network dengan n buah input layer (X1, X2, …, Xn) dan dua buah output layer (Y1, Y2) dengan bobot masing-masing yang menghubungkan antara input layer dengan output layer (W11, W12, W21, W22, Wn1, Wn2).
Nilai Output Output Layer
w11
Y1
Y2
w22
w12
wn1
wn2
w21 Input Layer x1
x2
xn
Nilai Input
Gambar 2.4 Arsitektur Single Layer Network[12]
Universitas Sumatera Utara
90
2. Jaringan Layar Jamak (Multi Layer Network)
Jaringan dengan lapisan jamak memiliki ciri khas tertentu yaitu memiliki 3 jenis layer yaitu layer input, layer output, dan layer tersembunyi. Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan yang kompleks dibandingkan jaringan dengan lapisan tunggal. Namun, proses pelatihan sering membutuhkan waktu cenderung lama. Contoh algoritma JST yang menggunakan metode ini yaitu backpropagation. Pada Gambar 2.5 diperlihatkan arsitektur multi layer network dengan n buah input layer (X1, …, Xn), n buah hidden layer (Z1, Z2, …, Zn) dan sebuah output layer (Y) dengan bobot yang menghubungkan input layer dengan hidden layer (W11,W12, W1n, Wn1, Wn2, Wnn) dan bobot yang menghubungkan hidden layer dengan output layer (V1, V2, …, Vn). Nilai Output Output Layer
Y v1
Hidden Layer
w11 Input Layer x 1
z1
...
v2 z2
vn ...
zn
w12
wn2 w1n
...
wnn
wn1 xn
Nilai Input
Gambar 2.5 Arsitektur Multi Layer Network[12]
3. Recurrent Network
Universitas Sumatera Utara
91
Dalam recurrent network ini minimal paling sedikit ada satu feedback loop didalamnya. Feedback loop mempengaruhi kemampuan belajar dan kinerja jaringan[12].
Gambar 2.6 Recurrent Network[12]
Elman network berbeda dengan two-layers network konvensional dalam hal layer pertama mempunyai koneksi yang bersifat recurrent. Elman network adalah two-layer backpropagation networks, dengan tambahan koneksi feedback (z-1) dari output ke hidden layer ke input. 2.5.3. Aplikasi Jaringan Syaraf Tiruan
Beberapa aplikasi jaringan syaraf tiruan adalah sebagai berikut: 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 tubuhnya yang sudah sedikit berubah). 2. Signal Processing Jaringan syaraf tiruan (model Adaline) dapat dipakai untuk menekan noise dalam saluran telpon. 3. Peramalan
Universitas Sumatera Utara
92
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[10].
2.6. Jaringan Syaraf Tiruan Bidirectional Associative Memory
Bidirectional Associative Memory (BAM) adalah salah satu model neural network dengan hetero associative memory dan menggunakan dua layer, yaitu layer input dan layer output. Masukkan untuk BAM berupa pasangan pola Ai dan Bi. Jadi setiap data harus diberi pasangan[2]. Setiap iterasi dilakukan dengan mengirimkan sinyal secara bolak balik di antara 2 lapisan sampai semua neuron mencapai keseimbangan. BAM menyimpan sekumpulan pola yang berasosiasi dengan menjumlahkan matriks korelasi bipolar. Jaringan ini terdiri atas dua lapisan neuron, yang dihubungkan oleh jalur hubungan yang memiliki bobot. Jaringan syaraf BAM dapat merespon terhadap input yang berada di lapisan manapun. 2.6.1. Arsitektur Bidirectional Associative Memory
Jaringan BAM memiliki 'n' unit di X-layer dan 'm' unit di Y-layer. Hubungan antara lapisan dua arah yaitu bobot matriks, bobot sinyal yang dikirimkan dari Xlayer ke Y-layer adalah W, maka bobot untuk sinyal yang dikirim dari Y-layer ke X-layer adalah WT. Arsitektur BAM dapat dilihat pada gambar 2.7.
Universitas Sumatera Utara
93
…
Y1
Wn1
W11
Wi1
…
Yj Wnj
W1j
Ym
W1m
Wim
Wij
Wnm
…
X1
Xi
…
Xn
Gambar 2.7 Model Dasar BAM[11]
Arsitektur BAM menyerupai sebuah jaringan single layer feed forward. Proses pelatihan berdasarkan pada aturan pembelajaran Hebb. Jaringan ini saling terhubung penuh meskipun input dan output yang berbeda. Fitur yang paling penting dari BAM adalah koneksi yang seimbang dari kedua lapisan memungkinkan adanya hubungan timbal balik antara lapisan input dan output. Hubungan antara satu lapisan ke lapisan lain ditunjukkan pada gambar 2.7. Panah menunjukkan kedua arah. Bobot (w11, w1j, w1m, wi1, wij, wim, wn1, wnj, wnm) disesuaikan dari X-layer ke Y-layer dan sebaliknya dari Y-layer ke X-layer.
Ada 2 jenis jaringan syaraf BAM yaitu:
1. Discrete BAM 2. Continuous BAM 2.6.2. Discrete BAM Pada Discrete BAM tipe data biner dan bipolar berkaitan erat. Matriks bobot awal dibuat sedemikian rupa sehingga dapat menyimpan pasangan vektor input dan vektor output. Bobot matriks menyimpan sekumpulan dari input vektor target s(p):t(p), p = 1, …, P.
Universitas Sumatera Utara
94
dimana: s(p) = (s1(p), …si(p), …sn(p))……………………….…(2.3) Untuk input vektor biner, bobot matriks ditentukan sebagai: Wij = ∑𝑝
(2 * si(p) – 1)(2 * tj(p) – 1)………………..(2.4)
Untuk input vektor bipolar, bobot matriks ditentukan sebagai: Wij = ∑𝑝
(si(p) * tj(p))………………………………(2.5)
Sedangkan fungsi aktivasi yang digunakan untuk vektor input biner adalah: Yj untuk lapisan output: 1, jika yj =
yj,
y_in j > 0
jika y_in j = 0
0, jika
y_in j < 0
Xi untuk lapisan input: 1, jika x_in i > 0 xi =
xi, jika x_in i = 0 0, jika x_in i < 0
fungsi aktivasi yang digunakan untuk vektor input bipolar adalah: Yj untuk lapisan output: 1, jika yj =
y_in j > θj
yj, jika y_in j = θj -1, jika
y_in j < θj
Xi untuk lapisan input:
1, jika xi =
x_in i > θi
xi, jika x_in i = θi -1, jika x_in i < θi
Universitas Sumatera Utara
95
Dengan catatan bahwa input hasil olahan pada jaringan (x_in i atau y_in j) sama dengan nilai threshold-nya, maka fungsi aktivasi akan menghasilkan nilai sama dengan nilai sebelumnya. θi menunjukkan nilai ambang[11].
2.6.3. Continuous BAM
Continuous BAM akan mentransformasikan input secara lebih halus dan kontinu ke kawasan output dengan nilai yang terletak pada range [0,1]. Fungsi aktivasi yang digunakan adalah fungsi sigmoid. Untuk input vektor biner, matriks bobot ditentukan sebagai: Wij = ∑𝑝
(2*si(p) – 1)(2 * tj(p) – 1)……………….....(2.6)
2.6.4. Algoritma Model Bidirectional Associative Memory Algoritma jaringan syaraf model BAM adalah sebagai berikut: Langkah 0:
Insialisasi bobot (untuk menyimpan sekumpulan P vektor). Inisialisasi semua aktivasi sama dengan 0.
Langkah 1:
Untuk tiap-tiap input, kerjakan langkah 2-6.
Langkah 2a:
Berikan input pola x kelapisan X (set aktivasi lapisan X sebagai pola input).
Langkah 2b:
Berikan input pola y ke lapisan Y (salah satu dari vektor input tersebut biasanya di-set sebagai vektor nol).
Langkah 3:
Kerjakan langkah 3-6 jika aktivasi-aktivasi tersebut belum konvergen.
Langkah 4:
Perbaiki setiap unit aktivasi di lapisan Y.
Universitas Sumatera Utara
96
Hitung:
Hitung:
y_in j = ∑𝑖
Wij * xi
yj = f (y_in j) Berikan informasi tersebut ke lapisan X. Langkah 5:
Perbaiki setiap unit aktivasi di lapisan X. Hitung:
Hitung:
x_in i = ∑𝑗
Wij * xi
xi = f (x_in i) Berikan informasi tersebut ke lapisan Y. Langkah 6:
Tes kekonvergenan. Jika vektor x dan y telah mencapai keadaan stabil, maka iterasi berhenti, jika tidak demikian lanjutkan iterasi[11].
2.6.5. BAM Connections Matrice
Associative (Ai, Bi) dapat digunakan secara logika dengan implikasi : jika Ai dan Bi. Begitu pula sebaliknya: jika Bi dan Ai. Asosiasi pasangan tersebut akan diketahui oleh BAM dengan membentuk suatu matrik bobot W. Proses untuk membentuk matriks W ini disebut encoding. Encoding: terdapat m pasangan pola {(A1, B1), (A2, B2), …, (Am, Bm)}. Ai = (ai1, ai2, …, ain) adalah vektor biner dengan panjang n ; Ai ∈ {0, 1}n dan Bi = (bi1, bi2, …, bip) adalah vektor biner dengan panjang p ; Bi ∈ {0, 1}p[2].
Universitas Sumatera Utara
97
Formula untuk menghitung W adalah: W = ∑all i AiT Bi,
i = 1, 2, …, m…………………………(2.7)
Dan dualitas BAM WT adalah: WT = ∑all i (AiT Bi)T = ∑all i BiT Ai……………………
(2.8)
Jika dalam bentuk bipolar maka bentuk binary Ai dan Bi harus ditranform menjadi bentuk bipolar Xi dan Yi dengan mengganti 0 dengan -1 dan 1 tetap 1, atau dengan rumus sebagai berikut: Xi = 2 Ai – 1…………………………….................(2.9) Atau Yi = 2 Bi – 1………………………………………….(2.10) Sekarang m pasangan pola dalam bentuk bipolar {(X1, Y1), (X2, Y2), …, (Xm, Ym)}. Xi = (xi1, xi2, …, xim), Yi = (yi1, yi2, …, bim), Xi ∈ {-1, 1}n, Yi ∈ {-1, 1}p. Maka perumusan W adalah:
W = ∑all i XiT Yi , i = 1, 2, …, m…………………(2.11) Dan dualitas BAM WT = ∑all i (XiT Yi)T = ∑all i YiT Xi…………………(2.12) Contoh: misalkan kita ingin menyimpan empat asosiasi nonorthogonal, pasangan yang disimpan masing-masing adalah (A1, B1), (A2, B2), (A3, B3), (A4, B4). A1 = (1 0 1 0 1 0 1 0 1 0 1 0 1 0 1)
B1 = (1 1 1 1 0 0 0 0 1 1)
A2 = (1 1 0 0 1 1 0 0 1 1 0 0 1 1 0)
B2 = (1 1 1 0 0 0 1 1 1 0)
A3 = (1 1 1 0 0 0 1 1 1 0 0 0 1 1 1)
B3 = (1 1 0 0 1 1 0 0 1 1)
Universitas Sumatera Utara
98
A4 = (1 1 1 1 0 0 0 0 1 1 1 1 0 0 0)
B4 = (1 0 1 0 1 0 1 0 1 0)
Dimana m = 4, n = 15, p = 10. Langkah pertama adalah mengubah asosiasi biner menjadi asosiasi bipolar: X1 = (1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1) X2 = (1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1) X3 = (1 1 1 -1 -1 -1 1 1 1 -1 -1 -1 1 1 1) X4 = (1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1) Y1 = (1 1 1 1 -1 -1 -1 -1 1 1) Y2 = (1 1 1 -1 -1 -1 1 1 1 -1) Y3 = (1 1 -1 -1 1 1 -1 -1 1 1) Y4 = (1 -1 1 -1 1 -1 1 -1 1 -1) Kemudian keempat vektor dicari hasil matriks korelasinya X1TY1, X2TY2, X3TY3, X4TY4 dan jumlahkan menjadi bentuk matriks BAM. W = X1TY1 + … + X4TY4 kerjakan dengan rumus (2.11). 4
2
2
−2
0
−2
0 −2
4
2
0
0
−4
2
0
2
2 −2
2
0
0
0
2
0
−2
−4
0
0
2
0
2
0
0
2
2
2 −4
−2
0
2
W= −2
0
0
0 −2
0
2
4
4
2
2
−2
0
−2
0 −2
4
0 −2
2
−2
0
−2
4
0 −4
0
−2
2
2
0
−2
0 −2
−2
−4
0
0
2
0
2
2
4
0
0
−2
0
−2
0
−2 −4
2
2
0 2
−2 −2 0
0
−2 −2
0
0
0
0 −2 −2 0
2
2
Universitas Sumatera Utara
99
0
0
2
−2
0
2
0
0
−2
2
0
2
0
2
0
0
−4 −2
0
4
Setelah (A1, B1), …,(A4, B4) stabil nilai di {0, 1}15 dikali {0, 1}10 dengan energi masing-masing −56, −48, −60, dan −40. BAM ini menggambarkan konvergensi cepat dan penyelesaian pola yang akurat. Jika A = (1 0 1 0 1 0 1 0 0 0 0 0 0 0 0) ≈ A1, dengan H(A, A1) = 4, hingga B1 berada pada satu iterasi yang sinkron, jadi (A1, B1) diambil dari memori (A1, B2) yang stabil. Jika B = (1 1 0 0 1 0 0 0 0 0) ≈ B3, dengan H(B, B3) = 3, hingga (A3, B3) berada pada satu iterasi yang sinkron. Salah satu pasangan dicampur (A1, B4), (A2, B3), (A3, B2), (A4, B1) hingga sesuai dengan spesifikasi yang benar dari 15 vektor, sehingga B1 sesuai dengan spesifikasi yang benar dari 10 variabel[3].
2.6.6. Stabilitas BAM
Stabilitas BAM didefinisikan Kosko (1988) dengan mengidentifikasikan fungsi Lyapunov atau fungsi energy E untuk setiap state (Ai, Bi). Menurut (Zurada, 1992) prosedur yang digunakan Kosko berdasarkan atas pendekatan dari analisis kestabilan sistem dinamik yang dikembangkan oleh A. M Lyapunov. Yang unik dari pendekatan Lyapunov ini adalah hanya bentuk persamaan differensialnya yang perlu diketahui bukan nilai hasilnya. Fungsi Lyapunov E memetakan variable-variabel sistem ke suatu bilangan real dan menurun sejalan dengan waktu. Pada BAM, E memetakan produk matriks-matriks ke dalam bilangan real yang dirumuskan sebagai berikut: E(A, B) = - AWBT…………………………………(2.13) Model BAM menggunakan interlayer feedback, dengan melewatkan data melalui W didapatkan satu arah dan melalui transpose-nya WT didapatkan arah
Universitas Sumatera Utara
100
yang lainnya. Jika pasangan pattern (A, B) dilewatkan dalam BAM, maka akan dilakukan beberapa kali iterasi yang dapat digambarkan sebagai berikut: AWB B WT A’ A’ W B’ B’ WT A’’ .
.
.
.
.
.
Af W Bf Bf WT Af Setelah beberapa kali iterasi, (A, B) akan terkonvergensi secara tetap menjadi (Af, Bf) dengan nilai energi minimum. Hal inilah yang menjadi keunggulan BAM, yaitu bersifat stabil sehingga dapat mengenali proses yang tidak sempurna[2].
2.7. Fungsi Aktivasi Pada jaringan syaraf, neuron-neuron akan dikumpulkan dalam lapisan (layer) yang disebut dengan lapisan neuron (neuron layers). Biasanya neuron-neuron pada satu lapisan akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya (kecuali lapisan input dan lapisan output). Informasi yang diberikan pada jaringan syaraf akan dirambatkan lapisan ke lapisan, mulai dari lapisan input sampai ke lapisan output melalui lapisan yang lainnya, yang sering dikenal dengan nama lapisan tersembunyi (hidden layer). Tergantung pada algoritma pembelajarannya, bisa jadi informasi tersebut akan dirambatkan secara mundur pada jaringan.
Universitas Sumatera Utara
101
x1 x2
w1 w2
. .
wN
.
xN
a
�
F
y
b 1
Gambar 2.8 fungsi aktivasi pada jaringan syaraf sederhana[5]
Pada gambar 2.8 tersebut neuron akan mengolah N input (x1, x2, …, xN) yang masing-masing memiliki bobot w1, w2, …, wN dan bobot bias b, dengan rumus: a = ∑𝑁 𝑖=1
xiwi
………………………………(2.14)
Kemudian fungsi aktivasi F akan mengaktifasi a menjadi output jaringan y[5]. Ada beberapa fungsi aktivasi yang digunakan dalam jaringan syaraf tiruan, antara lain: 1. Fungsi Undak Biner (hardlim) Fungsi undak biner (step function) sering digunakan pada jaringan dengan lapisan tunggal untuk mengkonversi input dari suatu variabel yang bernilai kontinu ke suatu output biner (0 atau 1) dengan syntax: Y = hardlim(a). fungsi undak biner (hardlim) dirumuskan sebagai: y 1
0
x
Universitas Sumatera Utara
102
Gambar 2.9 Fungsi Aktivasi Undak Biner
2. Fungsi Bipolar (hardlims) Fungsi bipolar sebenarnya hampir sama dengan fungsi undak biner, hanya saja output yang dihasilkan berupa 1, 0 atau –1. Pada matlab fungsi ini dengan syntax: Y = hardlim(a). y=x y 1
0
x
-1
Gambar 2.10 Fungsi Aktivasi Bipolar
3. Fungsi Linier (Purelin) Fungsi bipolar (hardlims) dirumuskan sebagai: Fungsi linier memiliki nilai output yang sama dengan nilai input-nya. Pada matlab syntax yang digunakan adalah: Y = purelin(a). Fungsi linier dirumuskan sebagai:
Universitas Sumatera Utara
103
y 1
0
-1
1
x
-1
Gambar 2.11 Fungsi Aktivasi Linier
4. Fungsi Saturating Linier (satlin) Fungsi ini akan bernilai 0 jika input-nya kurang dari – ½, dan akan bernilai 1 jika input-nya lebih dari ½ . Sedangkan jika nilai input terletak antara – ½ dan ½, maka output-nya akan bernilai sama dengan nilai input ditambah ½. Pada matlab syntax yang digunakan adalah: Y = satlin(a). Fungsi Saturating Linier dirumuskan sebagai:
y 1
-0,5
0
0,5
x
Gambar 2.12 Fungsi Aktivasi Saturating Linier
5. Fungsi Symetric Saturating Linier (satlins) Fungsi ini akan bernilai –1 jika input-nya kurang dari –1, dan akan bernilai 1 jika input-nya lebih dari 1. Sedangkan jika nilai input terletak antara –1 dan 1, maka output-nya akan bernilai sama dengan nilai input-nya. Pada matlab syntax yang digunakan adalah: Y = satlins(a). Fungsi Symetric Saturating Linier dirumuskan sebagai:
Universitas Sumatera Utara
104
y 1
0
-1
1
x
-1
Gambar 2.13 Fungsi Aktivasi Symetric Saturating Linier
6. Sigmoid Biner (Logsig) Fungsi ini memiliki sifat non-linier sehingga sangat baik diterapkan dalam penyelesaian masalah yang kompleks. Keluaran dari fungsi sigmoid biner berupa bilangan biner (0 atau 1) atau nilai yang berada di antara 0 sampai 1. Sigmoid biner memiliki range dari (0, 1) dan didefinisikan:
f ( x) =
1 1 + exp(− x)
dan fungsi turunannya adalah: f ' ( x) = f1 ( x)[1 − f1 ( x)]
f(x) 1
0
x
-1
Gambar 2.14 Fungsi Aktivasi Sigmoid Biner
7. Sigmoid Bipolar
Universitas Sumatera Utara
105
Keluaran dari fungsi sigmoid bipolar berupa nilai yang berada di antara -1 sampai 1 dan didefinisikan:
f ( x) =
2 −1 1 + exp(− x)
dan turunan fungsi adalah: f ' ( x) =
1 [1 + f 2 ( x)][1 − f 2 ( x)] 2
f(x) 1
x
-1
Gambar 2.15 Fungsi Aktivasi Sigmoid Bipolar
Universitas Sumatera Utara