BAB II
TINJAUAN PUSTAKA
Bab ini akan menjelaskan landasan teori yang digunakan dalam pengerjaan tugas akhir. Pada dasarnya ada 2 buah varian PSO yang akan digunakan, yaitu optimasi berbasis particle swarm versi continous dan optimasi berbasis particle swarm versi binary.
Sistem dengan banyak classifier dibentuk dari beberapa jenis jaringan syaraf tiruan seperti perceptron neural network, probabilistic neural network , dan feedforward-backpropagation neural network.
2.1 Optimasi Berbasis Particle Swarm
Optimasi berbasis particle swarm merupakan teknik optimasi berdasarkan populasi yang dibangun oleh James Kennedy dan Russ Eberhart di tahun 1995, yang terinspirasi dari perilaku sekawanan burung atau ikan. Setiap solusi dalam ruang jawab optimasi berbasis particle swarm akan disebut ”partikel”.
Semua partikel akan dievaluasi oleh fungsi kecocokan untuk dioptimalkan, dan memiliki velocity yang akan mengarahkan pergerakan partikel.
James Kenedy dan Russel Ebenhart memperkenalkan Particle Swarm Optimization (PSO) pada sebuah paper dengan judul yang sama pada tahun 1995,dengan paper kedua berjudul A new Optimizer Using Particle Swarm Theory juga pada tahun yang sama dengan menggunakan C.W. Reynolds’ 1987 (Flocks, herds, and schools : a distributed behavioral model), perintis algoritma untuk animasi flock-like (kawanan burung) sebagai referensi, Reynold menggunakan jarak antara individu-individu di dalam kawanan untuk mempengaruhi arah gerak dari masig- masing individu. Algoritma tersebut kemudian menjadi komponen utama dalam algoritma PSO. Walaupun Kennedy dan Eberhart memulai model dengan kawanan burung , ternyata dalam pengembangannya model algoritma ini lebih mirip dengan
7
model kawanan lebah yang didefinisikan oleh M. M. Millonas pada papernya dengan judul Swarms, Phase Transition ,and Collective Inteligence (1994). Milonas mendefinisikan lima prinsip kecerdasan kawanan lebah ; yaitu proximity (kemampuan kawanan untuk membentuk ruang dan komputasi waktu yang sederhana), quality (kemampuan kawanan untuk merespon perubahan kualitas lingkungan), diverse response (kecenderungan kawanan untuk menghindari komputasional saluran yang panjang),stability (momentum pada kawanan seperti daya tahan kawanan ketika bereaksi pada perubahan-perubahan kecil atau temporal), dan adaptability (sebagai sebuah counter untuk prinsip stability, kawanan harus dapat berubah ketika merespon perubahan lingkungan).Menurut Kennedy dan Ebenhart, algoritma PSO memiliki prinsip-prinsip yang sama.
Metode ini menggunakan sekumpulan partikel yang bekerjasama, dimana masing-masing partikel merepresentasikan satu kandidat solusi, untuk mengeksplorasi solusi-solusi yang memungkinkan bagi permasalahan optimasi. Masing-masing partikel diinisialisasi secara acak, kemudian partikel-partikel tersebut diperbolehkan untuk “terbang”. Pada setiap langkah optimasi, masing-masing partikel akan mengevaluasi kemampuannya dan kemampuan partikel-partikel disekitarnya.
Masing-masing partikel dapat menyimpan solusi yang menghasilkan kemampuan terbaik sebagai salah satu kandidat solusi terbaik untuk semua partikel disekitarnya.
2.1.1 Analogi Optimasi Berbasis Particle Swarm
Seperti telah disebutkan, bahwa optimasi berbasis particle swarm diinspirasi dari tingkah laku sosial sekumpulan ikan.
Misalkan terdapat sekelompok ikan yang secara acak sedang mencari makanan dalam suatu daerah tertentu. Pada daerah tersebut, hanya ada satu potong makanan di wilayah tertentu.
Tidak ada seekor ikan pun yang tahu dimana makanan tersebut berada, tetapi ikan-ikan tersebut tahu seberapa jauh makanan itu melalui masing-masing pergerakannya. Lalu strategi apa yang
terbaik? Jalan yang paling efektif adalah dengan mengikuti ikan yang posisinya paling dekat dengan makanan.
Seperti diilustrasikan pada Gambar 2.1, terdapat lima ekor ikan pada satu wilayah, semua ikan tidak mengetahui dimana letak makanan, tapi ikan-ikan tersebut mengetahui jarak mereka dari makanan. Namun ada seekor ikan yang tidak tahu harus bergerak kemana, maka cara termudah untuk ikan ini adalah mencoba bergerak mengikuti ikan yang berjarak paling kecil dengan makanan dibandingkan ikan-ikan lainnya.
Gambar 2.1 Analogi Optimasi Berbasis Particle Swarm makanan = 100 m
makanan = 150 m makanan = 80 m makanan = 50 m
?????
2.1.2 Algoritma Continuous PSO
Pada versi yang paling mendasar, optimasi berbasis particle swarm dimulai dengan menginisialisasi populasi partikel- partikel secara acak lalu kemudian mencari yang paling optimal.
Partikel ini merupakan representasi dari calon solusi untuk permasalahan. Setiap partikel tersebut memiliki kemampuan sebagai berikut:
kemampuan untuk bertukar informasi satu sama lain.
kemampuan untuk mengingat posisi sebelumnya masing-masing.
kemampuan untuk menggunakan informasi untuk mengambil keputusan.
Metode ini akan terus melakukan iterasi sampai kondisi yang diharapkan tercapai (kondisi optimal). Pada tiap iterasi, tiap partikel diperbaharui oleh dua nilai, yang merupakan nilai terbaik.
Yang pertama adalah nilai terbaik yang telah dicapai tiap-tiap partikel, disebut sebagai pbest. Nilai yang lain adalah nilai terbaik secara keseluruhan yang dimiliki oleh partikel manapun dalam populasi, nilai ini disebut gbest.
Setelah mendapatkan dua nilai terbaik tersebut, partikel memperbaharui velocity dan posisinya masing-masing dengan persamaan berikut:
) (
) (
) 1 ( )
( i i 1 pi i 2 2 si i
i t v t cR x x c R x x
v = − + − + −
(2.1) )
( ) 1 ( )
(t x t v t
xi = i − + i (2.2) dimana:
i= Index particle
= iterasi
= velocity partikel ke-i vi = posisi partikel ke-i xi
= posisi terbaik dari semua partikel (gbest)
si
x
= posisi terbaik dari partikel ke-i (pbest)
pi
x
= learning rate
2 ,
c1
= bilangan acak
2 ,
R1
Dapat dilihat pada persamaan pembaharuan velocity, terdapat 3 term yang membentuk velocity. Yang pertama adalah inertia term,
) (
) (
) 1 ( )
( i i 1 pi i 2 2 si i
i t v t cR x x c R x x
v = − + − + −
term ini memaksa partikel untuk bergerak ke arah yang sama dengan arah pada pergerakan (iterasi) sebelumnya. Yang kedua adalah cognitive term,
) (
) (
) 1 ( )
( i i 1 pi i 2 2 si i
i t v t cR x x c R x x
v = − + − + −
term ini memaksa paticle untuk kembali kepada posisi terbaik nya. Yang ketiga adalah social term,
) (
) (
) 1 ( )
( i i 1 pi i 2 2 si i
i t v t cR x x c R x x
v = − + − + −
term ini memaksa partikel untuk bergerak ke posisi terbaik dari semua partikel.
Gambar 2.2 Tiga term utama yang membentuk velocity Panah berwarna abu-abu pada Gambar 2.2 menunjukkan pergerakan kombinasi dari ketiga term tersebut. Gambar 2.2 mengilustrasikan ketiga term yang membentuk velocity.
Studi lebih lanjut mengenai optimasi berbasis particle swarm di tahun 1999 menambahkan inertia ( ) dalam persamaan pembaharuan velocity. Persamaan ini kemudian menjadi algoritma optimasi berbasis particle swarm yang paling umum digunakan:
w
) (
) (
) 1 ( )
( i i 1 pi i 2 2 si i
i t wv t c R x x c R x x
v = − + − + −
(2.3) namun sistem ini bisa membuat partikel menjadi tidak stabil, disebabkan kecepatan nya yang tidak terkontrol. Teknik standard yang digunakan untuk menangani hal ini adalah membatasi velocity, vi є[-Vmax, +Vmax].
Studi yang dilakukan Clerc dan Kennedy di tahun 2002 memberikan persamaan yang dimodifikasi menjadi:
)) (
) (
) 1 ( ( )
( i i 1 pi i 2 2 si i
i t v t cR x x c R x x
v =κ − + − + − (2.4)
dimana
κ
(koefisien constriction) merupakan sebuah konstanta, yang jika dipilih dengan benar akan menjanjikan kestabilan dari optimasi berbasis particle swarm tanpa perlu membatasi velocity.Pseudo-code untuk prosedur optimasi berbasis particle swarm adalah sebagai berikut:
1. bentuk populasi awal dari partikel
2. hitung nilai kecocokan tiap partikel, jika lebih baik dari nilai kecocokan selama proses berjalan, set nilai tersebut sebagai pbest.
3. pilih partikel dengan nilai kecocokan terbaik, set nilai partikel ini sebagai gbest.
4. untuk setiap partikel:
a. hitung velocity berdasarkan fungsi update velocity
b. perbaharui posisi partikel berdasarkan fungsi update posisi
5. berhenti jika kondisi yang diharapkan tercapai. Jika belum, kembali ke langkah 2
.
Prosedur diatas juga dapat digambarkan dalam bentuk lain, Gambar 2.3 menggambarkan prosedur optimasi berbasis particle swarm dengan bentuk diagram alir. Aliran diagram dimulai dengan menginisialisasi partikel dengan posisi dan velocity secara acak. Kemudian nilai kecocokan dari populasi tersebut dihitung, lalu nilai kecocokan tersebut dibandingkan dan dibaharui. Jika memenuhi kriteria untuk berhenti, maka prosedur ini akan berhenti. Namun jika tidak, nilai velocity dan posisi akan dibaharui dan kembali pada langkah menghitung nilai kecocokan tiap-tiap partikel pada populasi
start
Inisialisasi particle dengan posisi random dan velocity
Hitung fitness value
Bandingkan dan update fitness value dengan
pbest dan gbest
Update velocity dan posisi Memenuhi stop
kriteria? stop
Gambar 2.3 Diagram alir optimasi berbasis particle swarm
2.1.3 Algoritma binary PSO
Optimasi berbasis particle swarm mula-mula diperkenalkan untuk permasalahan optimasi yang bersifat kontinyu, akan tetapi kita juga mengetahui bahwa terdapat permasalahan optimasi yang bersifat diskrit. Dari sinilah muncul berbagai percobaan untuk menyelesaikan permasalahan diskrit tersebut dalam term PSO. Salah satu percobaan yang dilakukan melalui eksperimen saat ini adalah binary PSO. Metode yang digunakan dalam binary PSO sama-sama dikembangkan oleh James Kennedy dan Russ Eberhart sehingga hanya terdapat perbedaan secara minor saja dengan continuous PSO. Partikel- partikel merepresentasikan suatu posisi tertentu dalam ruang biner dan dapat direpresentasikan dengan xri(t)∈{0,1}D. Pergerakan dari partikel-partikel tersebut dapat dilihat sebagai suatu loncatan dan pergerakan bit yang berpindah-pindah dalam suatu hypercube. Perbedaan utama yang terdapat pada binary PSO terhadap continuous PSO adalah representasi dari velocity dan bentuk pembaharuan persamaan posisi. Dimana nilai vector velocity merupakan nilai real dari dan diperbaharui berdasarkan persamaan (2.1). Sedangkan komponen vector posisi ke-
) (t
vri v (t)
ij
j dari classifier ke- diperbaharui dengan persamaan sebagai berikut :
i
⎪⎩
⎪⎨
⎧
= 0 1 )
, (t xi j
Dimana adalah bilangan acak yang dibangkitkan dengan distribusi uniform , Sehingga dapat disimpulkan bahwa pada binary PSO , pembaharuan posisi berdasarkan pada
R3
) 1 , 0 ( U
)
3 , (
1 1
t vij
e
R −
< + jika
(2.5) sebaliknya
probabilitas yang dihasilkan dari normalisasi komponen velocity dengan menggunakan fungsi sigmoid.
2.2 Classifier
Dalam permasalahan klasifikasi, classfier bisa dideskripsikan sebagai suatu objek pemroses pembelajaran yang dapat digunakan untuk memetakan suatu ruang cirix(baik itu bersifat diskrit atau kontinyu ) ke dalam set label yang bersifat diskrit. Dalam pengenalan pola ruang ciri didefinisikan sebagai suatu ruang abstrak dimana masing-masing sampel pola direpresentasikan sebagai sebuah poin dalam ruang n- dimensional. Classifier digunakan untuk mengidentifikasi objek berdasarkan perhitungan tertentu dari suatu data, dimana setelah melewati tahap pembelajaran dapat menghasilkan identifikasi yang sifatnya paling mirip atau dapat juga menghasilkan distribusi peluang untuk semua kemungkinan identifikasi. Sistem pada classifier dapat dilihat sebagai sebuah sistem keputusan yang akan menerima sebuah nilai dari beberapa karakteristik dan ciri dari suatu objek sebagai input untuk kemudian diproses dan menghasilkan output diskrit berdasarkan set labelnya.
y
Dalam tugas akhir ini digunakan berbagai macam classifier yaitu jaringan saraf tiruan (JST) feedforward, jaringan saraf tiruan probabilistic , dan parzen classifier. Penjelasan lebih detail masing-masing classifier terdapat pada sub bab selanjutnya.
2.2.1 Jaringan saraf tiruan
Jaringan syaraf tiruan (JST) adalah jaringan dari sekelompok unit pemroses kecil (neuron) yang dimodelkan berdasarkan jaringan saraf manusia. Jaringan saraf tiruan tersusun atas elemen-elemen sederhana yang beroperasi secara parallel.
Fungsi alami dari jaringan ini ditentukan oleh hubungan antar elemen. Jaringan saraf tiruan dapat dilatih untuk memecahkan suatu fungsi tertentu dengan mengatur nilai bobot koneksi antar neuron. Secara umum JST dilatih sehingga masukan yang diberikan dapat sama dengan target yang diinginkan atau jika
tidak bisa sama, selisih (error) antara masukan dengan target diharapkan dapat mencapai nilai tertentu. Gambar 2.4 berikut mengilustrasikan penjelasan tentang jaringan saraf tiruan
Gambar 2.4 Ilustrsi jaringan saraf tiruan
Pelatihan dengan menggunakan pasangan masukan atau target disebut dengan teknik pembelajaran terawasi (Supervised Learning). Walaupun kebanyakan jaringan saraf tiruan dijalankan dengan teknik pembelajaran terawasi, namun kebanyakan jaringan saraf tiruan juga dapat dijalankan dengan teknik lain, yaitu Pembelajaran Tak Terawasi (Unsupervised Learning).
Karena pada tugas akhir ini digunakan teknik pembelajaran terawasi, maka pembahasan jaringan saraf tiruan pada bab ini difokuskan pada jaringan saraf tiruan dengan teknik pembelajaran terawasi..
Jaringan saraf tiruan telah memiliki sejarah sepanjang 5 dekade dan telah digunakan untuk banyak aplikasi dalam berbagai bidang. Aplikasi JST antara lain digunakan untuk pengenalan pola, klasifikasi, clustering, analisis asosiasi, dan sistem kontrol.
JST digunakan antara lain dalam bidang Perbankan, Otomotif, Industri, Keuangan, Militer, dan Robotika.
2.2.2 Neuron
Neuron adalah unit pemroses dalam JST yang terdiri dari bobot dan fungsi aktivasi, namun seringkali ditambah dengan bias. Sebuah JST biasanya memiliki banyak neuron yang terbagi ke dalam beberapa lapisan atau layer. Masukan yang diberikan ke JST diproses oleh neuron-neuron ini hingga menghasilkan keluaran yang kemudian dibandingkan dengan target. Pada sub bab ini akan dibahas tentang neuron dan bagaimana proses pengolahan masukan yang dilakukan oleh neuron.Gambar 2.5 berikut menunjukkan model neuron pada suatu JST :
Gambar 2.5Neuron tanpa bias dan dengan bias
Pada gambar 2.5 paling kiri menunjukkan model neuron dengan satu input skalar tanpa menggunakan bias dan gambar 2.5 paling kanan menunjukkan model neuron dengan satu buah input skalar menggunakan bias.
Inputan p diteruskan melalui sebuah koneksi yang mengalikan input p dengan bobot w, sehingga menghasilkan wp yang juga skalar. Nilai wp ini kemudian dimasukkan ke dalam fungsi aktivasi f dan menghasilkan keluaran a. Neuron sebelah kanan memiliki bias b. Bias b ditambahkan terlebih dahulu dengan wp, kemudian hasil penambahan wp dengan b dimasukkan ke fungsi aktivasi f untuk menghasilkan keluaran a. Bias mirip dengan bobot w, tetapi bersifat konstan. Fungsinya untuk menggeser fungsi aktivasi ke kanan atau ke kiri sebanyak jumlah b.
Nilai wp+b adalah inputan atau masukan bagi fungsi aktivasi f. Seperti telah dijelaskan sebelumnya bahwa JST digunakan untuk berbagai aplikasi. Aplikasi-aplikasi ini seringkali membutuhkan keluaran yang bukanlah wp+b, misalnya klasifikasi linier menggunakan perceptron yang hanya memerlukan nilai keluaran 0 dan 1. Karena itulah dibutuhkan fungsi aktivasi yang merubah nilai wp+b menjadi nilai yang diperlukan. Ada berbagai macam fungsi aktivasi, antara lain hard limit, sigmoid, linear, dan lain-lain. Fungsi aktivasi mana yang digunakan ditentukan sesuai kebutuhan. Pada Tugas Akhir ini hanya akan dibahas tentang fungsi aktivasi hard-limit , sigmoid, dan radial basis yang digunakan untuk tipe permasalahan klasifikasi.
Sebelumnya telah dibahas tentang neuron dengan satu node pada lapisan masukan (input layer). Namun model neuron tersebut jarang digunakan. Biasanya pada lapisan masukan terdapat lebih dari satu node, sehingga masukan pada neuron bukan lagi berupa skalar tetapi berupa vektor.
Gambar 2.5 di bawah ini memodelkan neuron dengan masukan dan bobot sejumlah R buah. Elemen individu masukan adalah p = p1, p2, ..., pR yang dikalikan dengan bobot W = w1,1, w1,2, ..., w1,R.
a = f(wp+b)
p3 W1,3 Σ n f a
b pR
p1
p2
W1,R
W1,2
W1,1
. . .
Nilai n adalah Wp + b, yaitu dot product dari vektor baris bobot W dengan vektor kolom dari inputan p, kemudian ditambahkan dengan bias b.
b p w p
w p w
n= 1,1 1 + 1,2 2 +...+ 1,R R + (2.4) Seperti dijelaskan sebelumnya, bahwa nilai n dimasukkan ke fungsi aktivasi f untuk menghasilkan keluaran a.
2.2.3 Probabilistic neural network
Probabilistic Neural Network (PNN) merupakan salah satu varian dari jaringan saraf radial basis, dimana pada jaringan saraf radial basis, input yang menuju ke sebuah fungsi aktivasi radial basis adalah berupa vektor jarak (Distance vector) antara vektor bobot w dengan vektor input p , kemudian dikalikan dengan bias b. PNN ini dapat digunakan untuk menyelesaikan permasalahan klasifikasi. Model dari neuron jaringan saraf radial dapat dilihat pada gambar 2.7.a dibawah. Diasumsikan terdapat Q (jumlah pasangan input/target ) pasangan target atau pasangan input , masing-masing vektor target memiliki K (jumlah class input data) elemen, dimana satu elemen nilainya 1 dan yang lainnya 0, jadi masing-masing input vektor diasosiasikan dengan salah satu dari K kelas.
p1
p2
p
3pR
1 ,
w1 w1,R
b
dist
) ( w p b radbas
a = −
a n
Gambar 2.7 Model neuron radial basis
Pada dasarnya PNN digunakan untuk menyelesaikan berbagai permasalahan klasifikasi, dimana objektif dari probabilistik neural network ini adalah untuk mengklasifikasikan vector input yang diberikan kedalam salah satu dari K kelas yang spesifik , karena kelas tersebut memiliki probabilitas maksimum untuk menghasilkan nilai yang benar.
2.2.4 Feed-forward neural network
Pada sub bab sebelumnya telah dijelaskan mengenai model JST Perceptron. Bab ini akan menjelaskan mengenai model JST feedforward dengan menggunakan aturan pembelajaran
menggunakan algoritma gradien descent sebagai dasarnya.
Dimana algoritma ini digunakan untuk melakukan perubahan bobot dan bias pada JST . Feedforward network biasanya memiliki satu atau lebih lapisan tersembunyi
P1 11,
IW
b1
) ( tan 11, 1 1
1 sigIW P b
a = + a2=purelin(LW21,a1+b2) a1 21,
LW
b2
y a3=
Gambar 2.8 Model JST Feedforward
Arsitektur jaringan pada gambar 2.8 diatas merupakan arsitektur jaringan saraf tiruan feedforward-backpropagation, dimana fungsi aktivasi yang paling umum digunakan adalah fungsi aktivasi sigmoid dan purelin. Gambar berikut adalah gambar fungsi aktivasi tan-sigmoid dan purelin.
Gambar 2.9 Fungsi aktivasi tansig dan purelin
Fugsi aktivasi tansig akan membangkitkan nilai output dari jaringan saraf tiruan dengan rentang nilai antara -1 dan 1 dengan menggunkan fungsi sigmoid, sedangkan fungsi aktivasi purelin akan menghitung nilai output dari neuron dan mengembalikan nilai tersebut menggunakan fungsi linier.
2.2.5 Parzen classifier
Merupakan varian classifier yang menerapkan konsep dasar perhitungan distribusi kepadatan atau distribusi densitas dari instance yang ada pada masing-masing kelas dengan cara menambahkan bobot pada masing-masing instance dalam sebuah class. Pada permaslahan klasifikasi konsep yang digunakan, hampir sama dengan jaringan saraf tiruan , yaitu dengan menggunakan pembelajaran terawasi. Pasangan input dan target digunakan untuk melakukan pembelajaran, untuk kemudian dilakukan simulasi untuk melakukan klasifikasi.