5
LANDASAN TEORI
2.1 Teori Pengenalan Objek
2.1.1 Teori Pengenalan Objek pada Manusia
Dalam kehidupan sehari-hari manusia melihat dan mengenali berbagai bentuk objek di sekitarnya. Objek dikenali berdasarkan perbedaan titik-titik (dari sisi depan, samping, atau belakang) pada tempat yang berbeda dan ukuran yang berbeda. Ada beberapa teori pengenalan objek, masing-masing dengan cara pengenalan yang berbeda, diantaranya adalah PFT (Particulate Feature Theory) dan RBC (Recognition by
Component) [http 6].
PFT merupakan teori pengenalan objek dimana objek hanya dilihat secara lokal saja, jika seluruh keistimewaan lokal dipenuhi maka objek akan tetap dikenali dengan tidak mempertimbangkan hubungan antar komponen lokal yang seharusnya dipenuhi. Sebagai ilustrasi, suatu objek tetap dikenali sebagai manusia ketika komponen-komponennya dapat dikenali (adanya kepala, badan, dan kaki) walaupun hubungan antar komponennya tidak sesuai dengan yang seharusnya (misal, kepala di bawah, kaki di tengah, dan badan di atas).
RBC adalah sebuah teori tentang pengenalan objek pada manusia yang bekerja untuk keberhasilan identifikasi objek meskipun terdapat perubahan dalam ukuran atau orientasi objek.
Dalam hal ini RBC merupakan penerapan pengenalan PFT tetapi dengan mempertimbangkan hubungan komponen-komponen lokal yang harus dipenuhi agar suatu objek dapat dikenali secara tepat. Jika dikenali sebagai manusia tetapi memiliki kaki di atas, badan di bawah, dan kepala di antaranya maka pengenalan tersebut adalah pengenalan yang salah. RBC tidak akan melakukan pengenalan objek seperti itu sebagai manusia, karena selain melakukan pengenalan lokal juga pengenalan secara global.
2.1.2 Batasan Pengenalan Objek
Pengenalan objek tidak dipengaruhi oleh hal-hal berikut: 1. Rotational Invariance (perubahan sudut pandang)
Objek harus tetap dapat dikenali walaupun dilihat dari berbagai sudut pandang yang belum pernah terlihat sebelumnya. Jika sebuah pesawat terbang memperlihatkan sisi bagian lain yang belum pernah terlihat, maka pesawat terbang tersebut harus tetap dapat dikenali sebagai pesawat terbang.
2. Size Invariance (perubahan ukuran)
Objek harus tetap dapat dikenali walaupun tampil dengan berbagai ukuran yang berbeda. Perahu layar yang terlihat dari kejauhan berbeda jika dilihat dari jarak dekat, tetapi hal ini tidak mengubah deskripsinya secara struktural. Oleh karena itu, perahu layar tersebut harus tetap dikenali sebagai perahu layar.
Gambar 2.2 Size Invariance
3. Translational Invariance (perubahan posisi)
Objek harus tetap dapat dikenali pada saat objek berpindah tempat. Perpindahan ini tidak boleh mengganggu keakuratan pengenalan.
2.2 Model Warna RGB
Model warna RGB (Red, Green, Blue) merupakan perpaduan intensitas warna merah, hijau, dan biru yang masing-masing umumnya bernilai dari 0 sampai 255 pada satu pixel. Model warna ini pada umumnya digunakan pada layar CRT (Cathode Ray
Tube) seperti televisi dan monitor komputer. Sebagai contoh, jika satu pixel memiliki
nilai R 246, nilai G 20, dan nilai B 50, maka perpaduan ketiga unsur tersebut akan menghasilkan pixel berwarna merah terang pada layar monitor.
Gambar 2.4 Model Warna RGB
“The RGB color model is used with self-luminous devices such as television
tubes and computer monitors. It mixes the three primary RGB colors to reproduce all colors found in nature.” [http 2]. Menyatakan bahwa model warna RGB digunakan
oleh peralatan seperti televisi dan monitor komputer yang menggabungkan tiga warna primer untuk menghasilkan warna-warna alami.
2.3 Image
2.3.1 Pengertian Image
Menurut Foley et al. (1996, p816), image adalah array dari nilai-nilai dimana sebuah nilai adalah sekumpulan angka yang mendeskripsikan atribut dari pixel didalamnya. Sedangkan pengertian image berdasarkan Windows XP Experiences
Glossary, “A stored description of a graphic picture, either as a set of brightness and color values of pixels or as a set of instructions for reproducing the picture.” [http 10].
Menyatakan bahwa image adalah deskripsi dari gambar grafik yang tersimpan sebagai kumpulan nilai warna dan brightness dari pixel atau kumpulan instruksi untuk menghasilkan gambar.
2.3.2 Pengertian Pixel
Menurut Oliver et al. (1996, p4), “Your computer display images as a
two-dimensional collection of dots, called pixels.” Menyatakan pixel adalah titik yang
merupakan penyusun dari image yang ditampilkan komputer. Pixel adalah unsur image yang menunjuk pada satuan terkecil yang dapat diamati dalam grafik. Pada image berformat bitmap, pixel adalah titik-titik yang digunakan untuk membangun image.
Pixel terdiri atas tiga komponen, yaitu R (Red), G (Green), dan B (Blue),
masing-masing komponen tersebut merupakan warna dasar cahaya. Perpaduan ketiga komponen tersebut menentukan kualitas image secara optimal.
2.3.3 Image Bitmap
Image bitmap adalah image yang tersusun dari pixel-pixel yang masing-masing
mempunyai warna tertentu. Format ini sering digunakan pada foto hasil kamera digital dan gambar-gambar digital lainnya. Ukuran dari format ini adalah yang terbesar di antara format-format gambar lain seperti GIF (Graphic Interchange Format), JPEG (Joint Photographic Expert Group), dan PNG (Portable Network Graphics), karena tidak dilakukan kompresi pada format ini.
Image bitmap disebut juga image raster. Dibentuk dari titik-titik tunggal yang
disebut pixel yang diatur dan berwarna-warni untuk membentuk suatu pola [http 11].
2.3.4 Format Pixel 24-Bit
Pada image bitmap keanekaragaman warna diperoleh dari perpaduan nilai dari masing-masing unsur warna R, G, dan B dimana pada umumnya bernilai dari 0 sampai 255 atau bisa dikatakan menggunakan format pixel 24-bit. Hal ini dikarenakan masing-masing unsur R, G, dan B mempunyai nilai sebesar 28 yang menghasilkan kombinasi
warna sebanyak 28 x 28 x 28 = 224 = 16.777.216 warna [http 1]. Menurut Oliver (1996, p566), pada model RGB pixel direpresentasikan dengan 24-bit warna, 8-bit untuk masing-masing R, G, dan B. Dengan ini masing-masing warna R, G, dan B memiliki 256 tingkatan intensitas, yang menghasilkan sekitar 16 juta kombinasi warna.
2.4 Image Processing
Pengertian image processing (pengolahan citra) berdasarkan Windows XP
Experiences Glossary adalah sebagai berikut “The analysis, manipulation, storage, and display of graphical images from sources such as photographs, drawings, and video.”
[http 10]. Disebutkan bahwa image processing adalah analisis, manipulasi, penyimpanan, dan tampilan dari image grafik yang bersumber dari fotografi, lukisan, dan video.
Image processing terdiri dari tiga urutan langkah. Tahap masukan (image
ditangkap dan di-digitalisasi) mengubah perbedaan warna dan bayangan pada gambar ke dalam nilai biner yang dapat diproses komputer. Tahap proses dapat melibatkan image
enhancement (seperti grayscaling dan edge detection) dan kompresi data. Tahap
keluaran terdiri dari tampilan atau cetakan dari image yang diproses. Image processing digunakan di beberapa aplikasi seperti televisi dan bioskop, pengobatan, pemetaan cuaca, mata robot, dan pengenalan pola berbasis komputer.
2.4.1 Grayscaling
Grayscale merupakan model warna yang terdiri atas 256 macam warna abu-abu.
Ke-256 warna ini terdiri atas warna hitam murni, putih murni, dan 254 macam warna abu-abu diantaranya seperti terlihat pada Gambar 2.5 berikut.
Proses grayscaling menghilangkan informasi hue dan saturation dari pixel dan hanya meninggalkan nilai brightness. Setiap pixel dari image grayscale memiliki nilai
brightness antara 0 (hitam) sampai 255 (putih). Foto hitam putih merupakan contoh
umum dari model warna grayscale. Meskipun disebut foto hitam putih, sesungguhnya foto tersebut terbentuk dari banyak warna abu-abu yang berbeda.
2.4.2 Corner Detection
Corner merupakan suatu daerah di sekitar image yang sering menjadi titik fokus
perhatian. Corner Detection (deteksi titik sudut) bertujuan untuk mengidentifikasikan objek yang ada. Ada dua pendekatan yang digunakan, yaitu dengan menelusuri edge untuk mencari corner, atau dengan bekerja secara langsung pada gray-level image [http 8]. Corner Detection harus memenuhi beberapa kriteria penting berikut [http 9, p5]:
1. Semua corner yang ada harus dapat terdeteksi 2. Tidak ada corner yang salah terdeteksi
3. Posisi corner harus sesuai
4. Corner detector harus tahan terhadap adanya noise 5. Corner detector harus efisien.
2.4.3 Edge Detection
Menurut Green [http 5] Edge Detection (deteksi sisi) suatu image mengurangi jumlah data dan membuang informasi yang tidak berguna sambil menjaga properti
struktural yang penting dari image tersebut. Dalam sebuah image, edge merupakan batas antara objek dengan background (latar belakang) yang memiliki perbedaan intensitas yang kuat antara satu pixel dengan pixel lainnya. Edge Detection merupakan suatu proses mencari lokasi pixel-pixel edge suatu objek.
Menurut Canny [http 12, p3] Edge detection yang optimal harus memenuhi kondisi berikut:
1. Edge detection dapat menemukan seluruh edge yang ada, tidak ada satu edge pun yang hilang
2. Selisih jarak antara pixel edge yang ditemukan dengan edge yang sesungguhnya harus seminimal mungkin
3. Jika hanya ada satu edge maka edge detection tidak boleh mendeteksinya sebagai
pixel ganda.
2.5 Prinsip SUSAN
SUSAN (Smallest Univalue Segment Assimilating Nucleus) diperkenalkan oleh S.M. Smith dan J.M. Brady [http 7]. Prinsip ini digunakan dalam image processing, terutama dalam Edge Detection dan Corner Detection. Perhatikan gambar berikut ini.
boundary of mask nucleus of mask a b c d e
Gambar 2.6 Posisi Circular Mask pada Image Sederhana
Circular mask merupakan inti dari prinsip SUSAN, pada Gambar 2.6 terlihat circular mask di posisi yang berbeda pada sebuah image. Bagian tengah dari mask
disebut nucleus (pada image nucleus ini merupakan sebuah pixel pusat). Mask ini bekerja pada grayscale image, terlihat pada Gambar 2.6 bahwa di dalam mask ini terdapat dua daerah yaitu daerah dengan intensitas pixel sama dengan intensitas pixel dari nucleus dan daerah dengan intensitas pixel berbeda dengan intensitas pixel dari
nucleus. Daerah dengan intensitas pixel sama dengan intensitas pixel dari nucleus
disebut USAN (Univalue Segment Assimilating Nucleus). Dengan melihat luas daerah dari USAN dapat ditentukan sebuah pixel merupakan edge pixel (pixel sisi) atau corner
pixel (pixel sudut), terlihat bahwa luas USAN akan maksimum jika nucleus berada pada
sisi dari image, dan semakin menyempit ketika makin mendekati titik sudut dari image. Untuk menentukan edge dan corner dari image, nucleus dari mask ditempatkan di setiap pixel dari image untuk mendapatkan USAN yang minimum secara lokal (SUSAN). Pada image, circular mask biasanya terdiri dari 37 pixel dengan posisi seperti ditunjukkan pada gambar berikut ini.
Gambar 2.7 Posisi Pixel Penyusun Circular Mask pada Image
2.6 Feature Extraction
Menurut Parker (1993, p244), feature adalah semua pengukuran yang dilakukan terhadap suatu image, dapat berupa panjang dan kemiringan garis, jari-jari, dan lain sebagainya. Lebih baik mempergunakan banyak feature yang mudah untuk dihitung secara akurat daripada feature yang sedikit tapi kompleks dengan tingkat keakuratan
yang kecil. Cara untuk menemukan feature dalam image juga harus mendapat perhatian khusus karena hal tersebut tidaklah mudah dilakukan.
Untuk proses pengenalan poligon diperlukan feature yang unik, yang dapat membedakan antara poligon yang satu dengan poligon yang lain, yang sering dikenal dengan istilah feature extraction.
2.7 Poligon
“Polygon is a closed plane figure formed by three or more line segments that
do not cross over each other.” [http 4]. Menyatakan bahwa poligon adalah bidang datar
tertutup yang dibentuk oleh tiga atau lebih segmen garis yang tidak saling bersilangan. “Polygon A plane figure bounded by a number of straight lines. In a regular polygon,
all the sides are equal and all the internal angles are equal.” [http 3]. Menyatakan
bahwa poligon adalah bidang datar yang dibatasi oleh beberapa garis lurus. Secara umum poligon memiliki panjang sisi dan besar sudut dalam yang sama. Menurut Cormen et al. (2002, p939), “A polygon is a piecewise-linear, closed curve in the plane.
That is, it is a curve ending on itself that is formed by a sequence of straight-line segments, called the sides of the polygon.” Menyatakan bahwa poligon adalah kurva
tertutup pada bidang datar. Sebuah kurva tertutup yang dibentuk oleh serangkaian segmen garis lurus yang disebut sisi poligon. Ada dua macam poligon yaitu poligon cembung (poligon dengan sudut dalam kurang dari 180 derajat) dan poligon cekung (poligon yang memiliki sudut dalam lebih dari 180 derajat).
2.8 Convex Hull
Menurut Cormen (2002, p947) “The convex hull of a set Q of points is the
smallest convex polygon P for which each point in Q is either on the boundary of P or in its interior.” Menyatakan bahwa convex hull dari sekumpulan titik Q adalah poligon
cembung terkecil P sehingga setiap titik pada Q berada pada sisi dari P atau berada di dalam P. Pada Gambar 2.8 berikut poligon P(P0, P1, P3, P7) adalah convex hull dari kumpulan titik-titik Q(P0, P1, P2, P3, P4, P5, P6, dan P7).
Gambar 2.8 Convex Hull
2.9 Graham’s Scan
Menurut Cormen (2002, p949) graham’s scan adalah sebuah algoritma untuk permasalahan pencarian titik-titik pembentuk poligon P yang merupakan convex hull dari sekumpulan titik Q. Algoritma ini bekerja dengan cara mempertahankan isi stack S dengan titik-titik kandidat pembentuk convex hull. Setiap titik pada Q dimasukkan ke dalam S, jika titik tersebut bukan merupakan vertex dari P maka titik tersebut akan dikeluarkan dari S. Pada akhirnya isi dari S dari bawah ke atas adalah titik-titik
pembentuk P yang urutannya adalah berlawanan arah jarum jam. Algoritma ini menerima input titik-titik Q yang jumlahnya lebih besar atau sama dengan 3. Seperti terlihat pada Gambar 2.8 urutan titik-titik P0, P1, P3, dan P7 adalah berlawanan arah jarum jam. Algoritma graham’s scan adalah sebagai berikut:
GRAHAM’S SCAN (Q)
Tetapkan p0 adalah titik dalam Q dengan ordinat terkecil atau dengan
ordinat terkecil dan absis terkecil jika ordinat sama.
Tetapkan p1, p2, …, pn adalah titik-titik lain dalam Q yang diurutkan
berdasarkan besar sudut relatifnya terhadap p0 (jika ada titik dengan
besar sudut sama maka hilangkan titik tersebut kecuali titik yang paling jauh dari p0).
PUSH (p0, S)
PUSH (p1, S)
PUSH (p2, S)
FOR i = 3 TO n
DO WHILE sudut yang dibentuk pi-2, pi-1, dan pi belok kanan
POP (S)
END DO
PUSH (pi, S)
END FOR
RETURN S
END GRAHAM’S SCAN
2.10 Algoritma Midpoint
Garis lurus didefinisikan sebagai kumpulan titik-titik yang tak terhingga jumlahnya yang terletak di antara dua titik [http 14, p1]. Algoritma midpoint adalah sebuah algoritma untuk membuat garis lurus dengan menggunakan operasi bilangan bulat yang memberikan kecepatan tinggi dalam membuat sebuah garis lurus dibandingkan dengan algoritma pembuatan garis dengan operasi bilangan floating dengan menggunakan persamaan garis y = mx + c.
Algoritma midpoint dijabarkan sebagai berikut dengan asumsi bahwa gradien garis (m = dy / dx ) adalah terhingga dan bernilai dari -1 sampai 1 atau memiliki |dy| <= |dx| dimana |dy| adalah selisih ordinat dari titik awal garis dan titik akhir garis sedangkan |dx| adalah selisih absis dari titik awal garis dan titik akhir garis, x0 < x1 dan
y0 < y1.
MIDPOINT (x0, y0, x1, y1) IF x0 > x1 THEN
MIDPOINT (x1, y1, x0, y0) EXIT END IF dx = x1 – x0 dy = y1 – y0 IF dy < 0 THEN slope = -1 dy = -dy ELSE slope = 1 END IF incE = 2 * dy incNE = 2 * dy – 2 * dx d = 2 * dy – dx y = y0 x y (x0, y0) (x1, y1) dy = y1 – y0 dx = x1 – x0 c
FOR x = x0 TO x1 PUTPIXEL (x, y) IF d <= 0 THEN d = d + incE ELSE d = d + incNE y = y + slope END IF END FOR END MIDPOINT
Perbaikan algoritma midpoint agar dapat digunakan untuk membentuk garis lurus dengan m < -1 atau m > 1 adalah sebagai berikut.
MIDPOINT (x0, y0, x1, y1) IF x0 > x1 THEN
MIDPOINT (x1, y1, x0, y0) EXIT END IF dx = x1 – x0 dy = y1 – y0 IF dy < dx THEN IF dy < 0 THEN slope = -1 dy = -dy ELSE slope = 1 END IF incE = 2 * dy incNE = 2 * dy – 2 * dx d = 2 * dy – dx y = y0 FOR x = x0 TO x1 PUTPIXEL (x, y) IF d <= 0 THEN d = d + incE ELSE d = d + incNE y = y + slope END IF END FOR
ELSE IF dx < 0 THEN slope = -1 dx = -dx ELSE slope = 1 END IF incE = 2 * dx incNE = 2 * dx – 2 * dy d = 2 * dx – dy x = x0 FOR y = y0 TO y1 PUTPIXEL (x, y) IF d <= 0 THEN d = d + incE ELSE d = d + incNE x = x + slope END IF END FOR END IF END MIDPOINT
2.11 Artificial Neural Networks
Pengertian ANN (Artificial Neural Networks) menurut Fausett (1994, p3): “An
artificial neural networks is an information-processing system that has certain performance characteristics in common with biological neural networks. Artificial neural networks have been developed as generalizations of mathematical models of human cognition or neural biology.” Menyatakan bahwa ANN adalah sistem
pemrosesan informasi yang memiliki cara kerja secara umum sama seperti biological
neural networks (jaringan saraf hidup).
Suatu ANN merupakan suatu bentuk pengolahan informasi alternatif yang memiliki dasar pemikiran baru sehingga menjadi suatu disiplin ilmu baru. Walaupun
demikian, model ini tidak menggantikan pengolahan secara algoritma, sebab keduanya memiliki dasar pemikiran yang berbeda. Dalam penerapannya, kedua dasar pemikiran ini dapat saling melengkapi dengan baik.
ANN dikembangkan sebagai turunan model matematis pencerapan manusia (Fausett, 1994, p3), didasarkan asumsi bahwa:
1. Pemrosesan informasi terjadi pada banyak elemen sederhana yang disebut
neuron.
2. Sinyal dari neuron satu ke neuron lain dikirim melalui suatu penghubung. 3. Masing-masing penghubung memiliki weight, yang dalam jaringan saraf normal
merupakan kekuatan sinyal yang dikirim.
4. Setiap neuron menggunakan sebuah activation function untuk memproses sinyal masukan menjadi sinyal keluaran.
Sebuah ANN dapat dikarakteristikkan berdasarkan hal-hal berikut ini (Fausett, 1994, p3):
1. Pola koneksi antara neuron (arsitekturnya).
2. Kemampuan untuk menentukan weight pada koneksi (training, learning, atau algoritma).
3. Activation function yang dimiliki.
ANN memiliki kemampuan yang lebih baik untuk melakukan pekerjaan seperti mengenali pola yang kompleks, mengerti percakapan kontinyu, mengenali tulisan tangan, untuk suatu pekerjaan dimana teknik algoritma tidak dapat menunjukkan kemampuan yang memuaskan. Model ANN khususnya digunakan untuk komputasi tidak terstruktur, seperti pengenalan pola, kecerdasan buatan, pemecahan masalah, dan
aproksimasi dalam masalah optimasi. Gambar sebuah NN (Neural Network) dapat dilihat pada Gambar 2.9 berikut ini.
X1 X2 X3 Y Z2 Z1 w1 w3 w2 v1 v2 Input Units Hidden Units Output Units Gambar 2.9 Neural Network Sederhana
X1, X2, X3, Y, Z1, dan Z2 adalah neuron, sedangkan w1, w2, w3, v1, dan v2 merupakan weight. Neuron adalah tempat akumulasi sinyal-sinyal input dari neuron lain dan juga tempat untuk menghasilkan sinyal output untuk diteruskan ke neuron lainnya. Weight merupakan penghubung antar neuron dan menyimpan informasi yang akan digunakan oleh network untuk menyelesaikan masalah. Sebuah neuron mempunyai struktur seperti terlihat pada Gambar 2.10 berikut ini.
2.11.1 Cara Kerja Neural Network
Dengan mengacu pada Gambar 2.9 dan 2.10 di atas, penjelasan tentang bagaimana NN bekerja adalah sebagai berikut, ambil contoh neuron Y, neuron Y akan menerima sejumlah input dari output neuron-neuron X1, X2, dan X3, misalnya x1, x2, dan x3 dengan weight yang menghubungkan neuron-neuron X1, X2, dan X3 adalah w1, w2, dan w3, maka input yang diterima neuron Y adalah y_in = x1 * w1 + x2 * w2 + x3 * w3, kemudian y_in ini akan dibangkitkan oleh activation function, misalnya fungsi sigmoid f(x) = 1 / 1 + exp(-x) dan menghasilkan output dari neuron Y yaitu y = f(y_in), kemudian output ini akan diteruskan ke neuron-neuron Z1 dan Z2 dengan
weight v1 dan v2. Jadi cara kerja NN terdiri dari tiga tahap yaitu menerima input dari neuron lain, membangkitan input menjadi output, dan meneruskan output ke neuron
lain.
2.11.2 Arsitektur Neural Network
Arsitektur NN secara umum dapat diartikan sebagai penempatan neuron-neuron ke dalam layer-layer (lapisan-lapisan) dan pola koneksi pada layer dan antar layer. NN diklasifikasikan menjadi single layer atau multilayer. Sebuah single layer net memiliki satu layer koneksi weight seperti terlihat pada Gambar 2.11, sedangkan sebuah
multilayer net memiliki satu atau lebih layer di antara input units dan output units yang
X1 Xi Xn . . . . . . Y1 Yj Ym . . . . . . w11 w1j w1m wi1 wij wim wn1 wnj wnm Input Units One Layer of Weights Output Units
Gambar 2.11 Single Neural Net
X1 Xi Xn . . . . . . Z1 Zj Zp . . . . . . v11 v1j v1p vi1 vij vip vn1 vnj vnp Input
Units of WeightsLayer Hidden Units
Y1
Yk
Ym
Layer
of Weights OutputUnits w11 w1k w1m wj1 wjk wjm wp1 wpk wpm . . . . . .
2.11.3 Training
Tujuan dari training adalah untuk mengubah nilai weight pada network yang juga membedakan network yang satu dengan network yang lain. Ada dua macam tipe
training. Pertama, supervised training, tipe training ini diselesaikan dengan
memberikan urutan pola input yang memiliki target output yang berbeda, kemudian nilai dari weight akan disesuaikan menurut algoritma pembelajarannya. Kedua,
unsupervised training, pada tipe training ini urutan pola input diberikan tetapi target output tidak diberikan, network akan menyesuaikan nilai dari weight sehingga pola input yang paling serupa akan dikelompokkan ke dalam output yang serupa pula.
2.11.4 Activation Function
Activation function adalah fungsi yang mengubah input ke sebuah neuron
menjadi output dari neuron tersebut (Fausett, 1994, p422). Beberapa macam fungsi yang digunakan sebagai activation function:
1. Binary sigmoid )] ( 1 )[ ( ) ( ' ) exp( 1 1 ) ( x f x f x f x x f − = − + = σ σ
σ adalah stepness parameter
Binary sigmoid digunakan untuk neural nets dengan nilai output harapan berkisar dari 0 sampai 1.
2. Bipolar sigmoid a a b x f x f x f x x f − = − = − − + = − − + = η γ η γ η γ σ η σ γ )] ( )][ ( [ ) ( ' ) exp( 1 ) (
a adalah batas bawah dari output yang diharapkan
b adalah batas atas dari output yang diharapkan
Bipolar sigmoid pada umumnya memiliki nilai output yang berkisar dari -1 sampai 1 atau dengan kata lain memiliki nilai a = -1 dan nilai b = 1, tetapi nilai ini tidak mutlak karena fungsi ini memungkinkan kita untuk mengubah kisaran nilai output yang diharapkan.
Kedua fungsi sigmoid di atas memberikan keuntungan khusus untuk digunakan pada
neural nets dengan metode training menggunakan backpropagation, karena hubungan yang sederhana antara fungsi dengan turunan fungsi dari sigmoid mengurangi beban komputasi pada saat training (Fausett, 1994, p17). Turunan dari activation function disebut deactivation function.
2.11.5 Backpropagation
Diperkenalkan pertama kali oleh G.E. Hinton, E. Rumelhart, dan R.J. Williams pada tahun 1986, backpropagation merupakan sebuah teknik umum untuk melakukan
training pada multilayer neural network [Rumelhart, Hinton, and Williams, 1986a, 1986b; McClelland and Rumelhart, 1988] memegang peranan penting yang membuat
2.11.5.1 Arsitektur Neural Network Metode Backpropagation Arsitektur dari NN ini dapat dilihat pada gambar berikut ini.
I0 Ia Ix H0 Hb Hy O0 ... Oc ... Oz ... ... ... ... ia0 ix0 1 i0b i00 i0y
iab iay ixb ixy
1 1 h00 h0c h0z hb0 hbc hbz hy0 hyc hyz 1 1 1
i_in0 i_ina i_inx
o_out0 o_outc o_outz
Hy+1 Ix+1 Input Units Hidden Units Output Units bias bias
Gambar 2.13 Arsitektur Neural Network Metode Backpropagation
Secara umum NN dengan metode backpropagation memiliki arsitektur seperti terlihat pada Gambar 2.13 di atas. NN terdiri dari input units atau biasa disebut input layer, minimal satu hidden units atau biasa disebut hidden layer, dan output units atau biasa disebut output layer. NN pada Gambar 2.13 memiliki pola 3-3-3 (3 unit pada input
units, 3 unit pada hidden units pertama, dan 3 unit pada output units). Misal NN dengan pola 5-10-4-2 maka NN memiliki 5 unit pada input units, 10 unit pada hidden
(node/elemen) pada hidden units dan output units juga bisa memiliki bias yang pada Gambar 2.13 yaitu Ix+1 dan Hy+1. Bias seperti unit, tetapi tidak menerima input dan
mempunyai output konstan yaitu 1. Bias juga memiliki weight yang menghubungkannya ke unit-unit lainnya.
2.11.5.2 Tahapan Training Backpropagation
Backpropagation terdiri dari tiga tahapan, yaitu: 1. Feedforward
Pada tahap ini setiap unit pada input units menerima input dari feature yang telah diekstrak, kemudian input tersebut akan diproses oleh unit-unit tersebut dengan activation function yang digunakan untuk menghasilkan output. Hasil
output yang didapatkan akan diteruskan oleh input units ke setiap unit pada
hidden units pertama, kedua, dan seterusnya. Setiap unit pada hidden units akan menjumlahkan semua input yang diterima, kemudian memprosesnya dengan
activation function yang digunakan untuk menghasilkan output yang akan diteruskan ke hidden units berikutnya atau ke output units. Terakhir, setiap unit pada output units akan menjumlahkan semua input yang diterima dari hidden
units terakhir yang akan diproses dengan activation function yang digunakan untuk mendapatkan sebuah nilai output yang akan dibandingkan dengan target
output yang telah ditentukan.
2. Backpropagation of the Associated Error
Hasil perbandingan nilai output yang dihasilkan oleh output units dengan nilai target output yang telah ditentukan akan digunakan untuk menghitung error
system (nilai mutlak dari selisih output pada output units dengan target output yang telah ditentukan). Kemudian nilai error tersebut digunakan untuk menghitung error di setiap unit pada hidden units yang akan digunakan pada saat weights adjustment.
3. Adjustment of the Weights
Setelah didapatkan nilai error disetiap unit pada hidden units semua weights yang menghubungkan input units dengan hidden units, hidden units dengan
hidden units lain, dan hidden units dengan output units akan diperbaharui berdasarkan learning rate (kecepatan belajar dari network) dan nilai error yang didapatkan disetiap unit.
2.11.5.3 Algoritma Training Backpropagation
Seperti telah dijelaskan pada subbab 2.11.5.2, berikut ini adalah algoritma untuk melakukan tahapan-tahapan training metode backpropagation untuk sebuah pola (berdasarkan Gambar 2.13).
feedforward:
input dan output untuk input units: FOR a = 0 TO x
i_ina = feature ke-a yang diekstrak dari pola
i_outa = i_ina END FOR
input dan output untuk hidden units: FOR b = 0 TO y
h_inb = 0
FOR a = 0 TO x+1
h_inb = h_inb + i_outa * iab
END FOR
h_outb= activation (h_inb) END FOR
input dan output untuk output units: FOR c = 0 TO z
o_inc = 0
FOR b = 0 TO y+1
o_inc = o_inc + h_outb * hbc
END FOR
o_outc = activation (o_inc) END FOR
backpropagation of error:
error input dan error output pada output units: FOR c = 0 TO z
o_errinc = (target output dari pola yang ke-c – o_outc) *
deactivation (o_inc)
o_erroutc = o_errinc FOR b = 0 TO y+1
h_correctionbc = α * o_erroutc * h_outb dimana α adalah learning rate
END FOR
END FOR
error input dan error output pada hidden units: FOR b = 0 TO y
h_errinb = 0 FOR c = 0 TO z
h_errinb = h_errinb + o_erroutc * hbc
END FOR
h_erroutb = h_errinb * deactivation (h_inb) FOR a = 0 TO x+1
i_correctionab = α * h_erroutb * i_outa
END FOR
END FOR
weights adjustment:
weights dari hidden units ke output units: FOR b = 0 TO y+1
FOR c = 0 TO z
hbc = hbc + h_correctionbc
END FOR
END FOR
weights dari input units ke hidden units: FOR a = 0 TO x+1
FOR b = 0 TO y
iab = iab + i_correctionab
END FOR
2.11.6 Inisialisasi Nguyen–Widrow
Inisialisasi Nguyen–Widrow digunakan untuk melakukan inisialisasi awal terhadap weights yang menghubungkan input units dan hidden units pertama. Umumnya inisialisasi ini memberikan waktu training yang lebih singkat, karena dirancang untuk meningkatkan kemampuan belajar dari hidden units. Penerapan inisialisasi Nguyen–Widrow (berdasarkan Gambar 2.13) dilakukan dengan algoritma sebagai berikut:
Inisialisasi awal dari weights dari input units ke hidden units pertama: FOR a = 0 TO x DO
FOR b = 0 TO y DO
iab (lama) = nilai acak antara -0.5 sampai 0.5
END FOR END FOR
( )
p 1/n 7 . 0 = β dimana: β = scale factorp = jumlah unit pada hidden units
n = jumlah unit pada input units Inisialisasi Nguyen–Widrow: FOR b = 0 TO y
jumlahweight = 0
jumlahkan nilai absolut weight dari semua unit pada input units ke unit ke-b pada hidden units:
FOR a = 0 TO x
jumlahweight = jumlahweight + |iab (lama)|
END FOR
inisialisasi ulang weight dari semua unit pada input units ke unit ke-b pada hidden units:
FOR a = 0 TO x
iab (baru) = β * iab (lama) / jumlahweight
END FOR
set nilai weight dari bias:
a = x + 1
iab = nilai acak dari –β sampai β END FOR