BAB I PENDAHULUAN Sejak komputer diciptakan pertama kali, komputer memiliki peranan yang besar dalam membantu menyelesaikan permasalahan-permasalahan yang sulit diselesaikan oleh manusia. Salah satu teknologi komputer yang sedang berkembang yaitu kecerdasan buatan. Jaringan saraf buatan merupakan salah satu ilmu yang mendukung perkembangan kecerdasan buatan. Bermacam-macam aplikasi berbasis jaringan saraf buatan telah dikembangkan di berbagai bidang. 1.1. Latar Belakang Pesatnya perkembangan teknologi komputer menyebabkan adanya perluasan lingkup yang membutuhkan kehadiran kecerdasan buatan. Kecerdasan buatan merupakan ilmu komputer yang membuat mesin komputer dapat melakukan pekerjaan sebaik mungkin seperti yang dilakukan oleh otak manusia [9]. Jaringan saraf buatan merupakan salah satu ilmu yang mendukung perkembangan kecerdasan buatan. Bermacam-macam aplikasi berbasis jaringan saraf buatan telah dikembangkan di berbagai bidang. Jaringan saraf buatan merupakan salah satu metode pembelajaran komputer yang efektif dan memiliki pendekatan berupa algoritma dalam menyelesaikan suatu masalah. Pada jaringan saraf buatan terdapat dua macam algoritma, yaitu algoritma untuk jaringan saraf buatan lapisan tunggal dan algoritma untuk jaringan saraf buatan lapisan banyak. Dalam 1
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
BAB I
PENDAHULUAN
Sejak komputer diciptakan pertama kali, komputer memiliki peranan yang
besar dalam membantu menyelesaikan permasalahan-permasalahan yang sulit
diselesaikan oleh manusia. Salah satu teknologi komputer yang sedang
berkembang yaitu kecerdasan buatan. Jaringan saraf buatan merupakan salah satu
ilmu yang mendukung perkembangan kecerdasan buatan. Bermacam-macam
aplikasi berbasis jaringan saraf buatan telah dikembangkan di berbagai bidang.
1.1. Latar Belakang
Pesatnya perkembangan teknologi komputer menyebabkan adanya
perluasan lingkup yang membutuhkan kehadiran kecerdasan buatan.
Kecerdasan buatan merupakan ilmu komputer yang membuat mesin
komputer dapat melakukan pekerjaan sebaik mungkin seperti yang
dilakukan oleh otak manusia [9]. Jaringan saraf buatan merupakan salah satu
ilmu yang mendukung perkembangan kecerdasan buatan. Bermacam-macam
aplikasi berbasis jaringan saraf buatan telah dikembangkan di berbagai
bidang.
Jaringan saraf buatan merupakan salah satu metode pembelajaran
komputer yang efektif dan memiliki pendekatan berupa algoritma dalam
menyelesaikan suatu masalah. Pada jaringan saraf buatan terdapat dua
macam algoritma, yaitu algoritma untuk jaringan saraf buatan lapisan
tunggal dan algoritma untuk jaringan saraf buatan lapisan banyak. Dalam
1
penulisan skripsi ini akan dibahas mengenai jaringan saraf lapisan banyak
dengan algoritma backpropagation. Pembahasan jaringan saraf buatan
lapisan tunggal dapat ditemukan di [1].
Algoritma backpropagation merupakan metode yang baik dalam
menangani masalah pengenalan pola-pola kompleks [4]. Beberapa aplikasi
yang menggunakan algoritma ini antara lain pengenalan suara, pengenalan
pola, sistem kontrol, dan pengolahan citra. Oleh karena itu skripsi ini
mencoba memberikan gambaran mengenai algoritma yang digunakan pada
jaringan saraf buatan lapisan banyak dengan judul ”Kajian Teoritis
Algoritma Backpropagation pada Jaringan Saraf Buatan Lapisan
Banyak”.
1.2. Permasalahan
Masalah yang dapat diidentifikasi penulis adalah sebagai berikut:
1. Bagaimana cara kerja algoritma backpropagation menentukan bobot
awal dan menghasilkan model yang tepat dalam multiklasifikasi ?
2. Bagaimana kecenderungan nilai error yang dihasilkan pada jaringan
saraf buatan lapisan banyak dengan data percobaan pengenalan huruf
alphabet, jika banyak unit pada dua lapisan tersembunyi yang digunakan
tetap, momentum ( α ) yang digunkan tetap, dan learning rate (η ) yang
digunakan berbeda-beda?
2
1.3. Pembatasan Masalah
Masalah di dalam skripsi ini terbatas pada ruang lingkup jaringan saraf
buatan lapisan banyak dengan beberapa unit menggunakan algoritma
backpropagation dan hasil prediksi output pada jaringan saraf buatan lapisan
banyak ini berupa bilangan n-arry.
1.4. Tujuan Penulisan
Skripsi ini mempunyai beberapa tujuan, yaitu:
1. Mengetahui cara kerja algoritma backpropagation menentukan bobot
awal dan menghasilkan model yang tepat dalam multiklasifikasi.
2. Mengetahui kecenderungan nilai error yang dihasilkan pada percobaan
pengenalan huruf alphabet, jika banyak unit pada dua lapisan
tersembunyi yang digunakan tetap, momentum (α ) yang digunakan
tetap, dan learning rate (η ) yang digunakan berbeda-beda.
1.5. Manfaat Penulisan
Manfaat penulisan ini antara lain:
1. Memberikan pengetahuan tentang algoritma-algoritma yang digunakan
dalam metode pembelajaran jaringan saraf buatan, serta cara kerja dari
algoritma tersebut sehingga mendapatkan model yang tepat.
2. Memberikan informasi mengenai jaringan saraf buatan sehingga dapat
dijadikan acuan atau referensi.
3
BAB II
JARINGAN SARAF BUATAN
Penjelasan mengenai sejarah perkembangan jaringan saraf buatan, serta
beberapa teori dasar yang mendukung pembelajaran jaringan saraf buatan akan
dibahas dalam bab ini, yaitu Teori-teori dasar yang mendukung pembelajaran
jaringan saraf buatan antara lain ide dasar jaringan saraf buatan yang terinspirasi
dari sistem jaringan otak manusia, definisi dan arsitektur jaringan saraf buatan,
model-model pembelajaran, fungsi transfer, perceptron rule dan delta rule pada
jaringan saraf buatan lapisan tunggal serta gambaran stokastik gradien descent.
2.1. Jaringan Saraf Manusia
Jaringan saraf buatan merupakan model yang cara kerjanya meniru
sistem jaringan biologis. Otak manusia terdiri atas sel-sel saraf yang disebut
neuron, yang berjumlah sekitar 1011
sel-sel saraf. Sel-sel saraf ini
berhubungan satu dengan yang lain membentuk jaringan yang disebut
jaringan saraf [4]. Proses yang terjadi dalam suatu sel saraf merupakan
proses elektrokimiawi. Di otak ini terdapat fungsi-fungsi yang sangat
banyak dan rumit, diantaranya adalah ingatan, belajar, bahasa, asosiasi,
penalaran, kecerdasan, dan inisiatif.
Semua sel saraf alami mempunyai empat komponen dasar yang
sama. Keempat komponen dasar ini diketahui berdasarkan nama biologinya
yaitu, dendrit, soma, akson, sinapsis. Dendrit merupakan suatu perluasan
4
dari soma yang menyerupai rambut dan bertindak sebagai saluran masukan.
Saluran input ini menerima masukan dari sel saraf lainnya melalui sinapsis.
Kemudian soma memproses nilai input menjadi sebuah output yang
kemudian dikirim ke sel saraf lainnya melalui akson dan sinapsis. Gambar
berikut menunjukkan komponen-komponen dari saraf [7].
Gambar 2.1 Komponen-Komponen Sel Saraf
Suatu jaringan saraf menerima ribuan informasi kecil dari berbagai
organ sensoris dan mengintegrasikannya untuk menentukkan reaksi yang
harus dilakukan. Kegiatan sistem jaringan saraf didasari oleh pengalaman
sensoris dari reseptor sensoris, baik berupa reseptor visual, reseptor
auditoris, reseptor raba dipermukaan tubuh, ataupun jenis reseptor lainnya.
Pengalaman sensoris ini dapat menyebabkan suatu reaksi segera dan
kenangannya dapat disimpan didalam otak [4]. Konsep dasar semacam
inilah yang ingin dicoba para ahli dalam menciptakan jaringan buatan.
5
2.2. Jaringan Saraf Buatan
Jaringan saraf buatan diperkenalkan pertama kali pada tahun 1943
oleh seorang ahli saraf Warren McCulloch dan seorang ahli logika Walter
Pitss [12]. Jaringan saraf buatan merupakan model yang meniru cara kerja
jaringan sel-sel saraf biologis. Penelitian yang berlangsung pada tahun
1950-an dan 1960-an mengalami hambatan karena minimnya kemampuan
komputer. Kemudian pada pertengahan tahun 1980-an dapat dilanjutkan lagi,
karena sarana yang dibutuhkan telah tersedia. Sistem saraf buatan dirancang
untuk menirukan karakteristik sel-sel saraf biologis. Beberapa definisi
tentang jaringan saraf buatan dikemukakan oleh para ahli.
Menurut [7] jaringan saraf didefinisikan sebagai sebuah prosesor yang
terdistribusi paralel dan mempuyai kecenderungan untuk menyimpan
pengetahuan yang didapatkannya dari pengalaman dan membuatnya tetap
tersedia untuk digunakan.
Sedangkan menurut [3]. Mendefinisikan jaringan saraf buatan sebagai
sebuah sistem yang dibentuk dari sejumlah elemen pemroses sederhana yang
bekerja secara paralel dan fungsinya ditentukan oleh stuktur jaringan,
kekuatan hubungan serta pengolahan dilakukan pada komputasi elemen-
elemennya.
2.2.1. Arsitektur Jaringan Saraf Buatan
Pemodelan struktur pemrosesan informasi terdistribusi
dilakukan dengan menentukan pola hubungan antar sel-sel saraf
buatan. Pola hubungan yang umum adalah hubungan antar lapisanr
6
(lapisan). Setiap lapisan terdiri dari sekumpulan sel saraf buatan
(unit) yang memiliki fungsi tertentu, misalnya fungsi masukan
(input) atau fungsi keluaran (output).
Sistem saraf buatan terdiri dari tiga lapisan unit, yaitu:
1. Unit input
Pada gambar 2.2 unit input dinotasikan dengan i. Unit input ini
menerima data dari jaringan saraf luar. Aktifasi unit-unit lapisan
input menunjukkan informasi dasar yang kemudian digunakan
dalam jaringan saraf buatan.
2. Unit tersembunyi
Unit tersembunyi dinotasikan dengan h pada gambar 2.2. Unit
tersembunyi menerima dan mengirim sinyal ke jaringan saraf.
Aktifasi setiap unit-unit lapisan tersembunyi ditentukan oleh
aktifasi dari unit-unit input dan bobot dari koneksi antara unit-
unit input dan unit-unit lapisan tersembunyi.
3. Unit output
Unit output dinotasikan dengan o. Unit output mengirim data ke
jaringan saraf. Karakteristik dari unit-unit output tergantung dari
aktifasi unit-unit lapisan tersembunyi dan bobot antara unit-unit
lapisan tersembunyi dan unit-unit output. Dalam jaringan saraf
buatan lapisan banyak unit output bisa digunakan kembali
menjadi unit input yang diproses dalam lapisan selanjutnya.
7
X1 X2 X3 X4
i1 i2 i3 i4
h1 h2 h3
o1 o2
Y1 Y2
Gambar 2.2 Jaringan Saraf Buatan
Sedangkan tipe arsitektur jaringan saraf buatan ada tiga yaitu :
1. Jaringan dengan lapisan tunggal (Single Lapisanr Net)
Jaringan dengan lapisan tunggal hanya memiliki satu lapisan dengan
bobot yang terhubung. Jaringan ini hanya menerima input kemudian
secara langsung akan mengolahnya menjadi output tanpa harus melalui
lapisan tersembunyi (Gambar 2.3).
Gambar 2.3. Jaringan Saraf Buatan Lapisan Tunggal Feedforward
8
2. Jaringan dengan lapisan banyak (Multilapisanr Net)
Pada tipe ini, diantara lapisan masukan dan keluaran terdapat satu atau
lebih lapisan tersembunyi (Gambar 2.4). Hubungan antar lapisan
berlangsung satu arah. Jaringan dengan banyak lapisan ini dapat
menyelesaikan permasalahan yang lebih sulit dari pada lapisan tunggal.
Gambar 2.4. Jaringan Saraf Buatan Lapisan Banyak Feedforward
3. Reccurent Network
Tipe reccurent berbeda dengan kedua tipe sebelumnya. Pada reccurent,
sedikitnya memiliki satu koneksi umpan balik (feedback).
Gambar 2.5. Jaringan dengan lapisan kompetitif reccurent
9
2.2.2. Model-Model Pembelajaran
Menurut [10] model pembelajaran dibedakan menjadi tiga, yaitu :
1. Supervised Learning
Pada model pembelajaran ini, jaringan saraf buatan menggunakan
variabel prediktor sebagai input yang akan dijadikan indikator untuk
menerangkan variabel target sebagai outputnya. Variabel-variabel
prediktor tersebut disesuaikan dengan target output yang ingin
dihasilkan. Tujuan model supervised learning adalah untuk
menentukan nilai bobot-bobot koneksi didalam jaringan sehingga
jaringan tersebut dapat melakukan pemetaan dari input ke output
sesuai dengan yang diinginkan. Jaringan perceptron, dan
backpropagation merupakan model-model dengan tipe supervised
learning [8].
Tabel 2.1 Data Sederhana Pengenalan Huruf Alphabet
Variabel Prediktor
Contoh
Posisi
horizontal
Posisi
vertikal
Panjang
box
Tinggi
box
Jumlah
pixel
Variabel
Target
1 2 8 3 5 1 T
2 5 12 3 7 2 I
3 4 11 6 8 6 D
4 7 11 6 6 3 N
5 2 1 3 1 1 G
Model pembelajaran supervised learning selalu memiliki satu
kolom yang merupakan variabel target, pada contoh data sederhana
pengenalan huruf diatas variabel targetnya adalah huruf alphabet. Pada
model pembelajaran ini tiap-tiap variabel memiliki suatu hubungan
10
yang tidak saling bebas. Sebagai contoh, Huruf T diprediksi berada
dalam posisi horizontal yang dihitung dari sebelah kiri gambar dan
huruf berada di tengah box pada titik koordinat 2 pixel, posisi vertikal
dihitung dari bagian bawah pada box di titik koordinat 8 pixel,
Sedangkan panjang box berada pada titik koordinat 3 pixel dan tinggi
box berada pada titik koordinat 5 pixel. Jika huruf alphabet berada
dalam karakteristik variabel target maka dapat dikatakan huruf tersebut
berhasil dalam mengklasifikasikan huruf alphabet.
2. Unsupervised Learning
Berbeda dengan model supervised learning, dalam model
unsupervised learning tidak terdapat variabel target dari kategori pola-
pola yang akan diklasifikasikan hanya terdiri dari variabel prediktor.
Untuk model pembelajaran ini biasanya hanya dilakukan proses
clustering lihat tabel 2.2. Bukan pengklasifikasian seperti pada model
pembelajaran supervised.
Tabel 2.2 Hak pilih USA senator pada 6 persoalan
Issue Class 1 Class 2 Toxic Waste Yes No Budget Cuts Yes No
SDI Reduction No Yes Contra Aid Yes No
Line-Item Veto Yes No
MX Production Yes No
3. Semi Unsupervised Learning
Model semi unsupervised learning awalnya adalah model
unsupervised learning, data percobaan untuk model ini biasanya tidak
11
memiliki variabel target. Oleh karena itu, proses klasifikasi dengan
model pembelajaran ini dilakukan dengan cara menentukan variabel
targetnya terlebih dahulu (two step analysis).
2.3 Fungsi Aktivasi
Pada setiap lapisan pada jaringan saraf buatan terdapat fungsi aktivasi.
fungsi ini adalah fungsi umum yang akan digunakan untuk membawa input
menuju output yang diinginkan. Fungsi aktivasi inilah yang akan
menentukan besarnya bobot.
Karakter dari jaringan saraf buatan tergantung pada bobot dan fungsi
input-output (Fungsi Transfer) yang mempunyai ciri-ciri tertentu untuk
setiap unit. Fungsi ini terdiri dari tiga kategori, yaitu : fungsi linear, fungsi
threshold, dan fungsi sigmoid (Gambar 2.6). Pada fungsi linear, aktivasi
output adalah sebanding dengan jumlah bobot output. Untuk fungsi
threshold, output diatur satu dari dua tingkatan tergantung dari apakah
jumlah input lebih besar atau lebih kecil dari nilai batasnya. Sedangkan
Fungsi sigmoid, outputnya terus menerus berubah tetapi tidak berbentuk
linear.
i
Threshold (sgn)
i i
Linear Sigmoid
Gambar 2.6. Jenis fungsi aktivasi yang digunakan dalam jaringan saraf buatan
12
Ada beberapa pilihan fungsi aktivasi yang digunakan didalam metode
backpropagation, seperti fungsi sigmoid biner dan sigmoid bipolar
(Gambar 2.7.). Untuk lebih jelasnya, berikut adalah penjelasan lebih lengkap
tentang fungsi sigmoid biner dan sigmoid bipolar, yaitu:
1. Fungsi Sigmoid Biner
Fungsi ini merupakan fungsi yang umum digunakan dalam metode
backpropagation. Nilai jangkauannya diantara (0,1) dan didefinisikan
sebagai :
f ( x) =
1
1 + e − x
dengan turunan : f ( x)' = f ( x)(1 − f ( x)) (2.1)
2. Fungsi Sigmoid Bipolar
Fungsi ini merupakan fungsi yang umum digunakan dalam metode
backpropagation. Range diantara (-1,1) dan didefinisikan sebagai:
g ( x) = 2 f ( x) − 1
dengan f ( x) = 1
1 + e − x
sehingga
g ( x) = 2 f ( x) − 1
1
= 2 − 1
1 + e
− x
1 − e ( − x )
= 1 + e
( − x )
(2.2)
13
dengan turunan : g ( x)' = 1
(1 + g ( x))(1 − g ( x)) 2
(2.3)
Gambar 2.7. Fungsi sigmoid biner dan fungsi sigmoid bipolar
2.4. Perceptron
Salah satu tipe dari sistem jaringan saraf buatan didasarkan pada
sebuah unit yang disebut perceptron, dan diilustrasikan pada gambar 2.8.
Sebuah perceptron menerima vektor input yang berupa nilai bilangan real.
Perceptron memiliki perhitungan kombinasi linear yang berasal dari
penjumlahan vektor input ( x1 , x
2 ,..., x
n ) , vektor bobot (w
1 , w
2 ,..., w
n ) dan
nilai thresholdnya (w0). Hasil output akan bernilai 1 jika perhitungan
kombinasi linearnya lebih besar dari pada 0 dan -1 jika perhitungan
kombinasi linearnya lebih kecil atau sama dengan 0. Kombinasi linear untuk
output perceptron dapat dituliskan sebagai:
1 jika
w0 + w1 x1 + w2 x2 + .... + wn x n > 0
o(x1, x2, ......., xn) = (2.4)
− 1 jika w0
+ w1 x
1 + w
2 x
2 + .... + w
n x
n ≤ 0
14
x0=1 w0
x1 w1
x2 w2
wn
∑
n
∑ wi x
i
i =0
o = 1
jika
n
∑ j =0
wi x j
xn − 1 untuk yang lainnya
Gambar 2.8 Perceptron
x1, x2, ... , xn adalah input, o(x1 ,..., xn ) adalah output dan wi adalah konstanta
real atau bobot (weight), dimana bobot menentukan kontribusi dari input xi
pada output perceptron. Fungsi perceptron dapat dituliskan sebagai :
r r r
o(x ) = sgn (w ⋅ x ) (2.5)
dan
dengan
1
sgn (y) = −1
jika
jika
r r
y>0
y≤0
(2.6)
y = w' ⋅ x (2.7)
2.4.1. Aturan Pembelajaran Perceptron
Masalah pembelajaran perceptron tunggal adalah
menentukan vektor bobot, karena perceptron menghasilkan output
± 1 untuk setiap contoh percobaan. Beberapa algoritma diketahui
dapat menyelesaikan permasalahan tersebut, antara lain: perceptron
rule dan delta rule. Algoritma tersebut sangat penting dalam jaringan
saraf buatan karena merupakan dasar dari pembelajaran jaringan
untuk lapisan banyak.
15
Salah satu cara untuk mempelajari vektor bobot yang tepat
yaitu dimulai dengan penentuan bobot secara acak, kemudian secara
iteratif dengan menggunakan perceptron untuk menghasilkan output
pada setiap contoh percobaan, setelah itu memodifikasikan bobot
perceptron. Proses ini terus diulang sampai pengklasifikasian
perceptron untuk semua contoh percobaan menjadi tepat. Bobot
dimodifiikasi pada setiap langkah berdasarkan aturan pembelajaran
perceptron (perceptron learning rule), yang meninjau kembali bobot
wi dengan input xi berdasarkan kaidah:
dengan
keterangan:
wi ← wi + ∆wi
∆wi = η (t − o )xi
(2.8)
(2.9)
t = target output contoh percobaan
o = output perceptron
η = konstanta positif yang disebut learning rate
2.4.2. Delta Rule
Perceptron rule dapat digunakan untuk mencari vektor bobot
yang paling tepat ketika contoh data percobaannya terpisah secara
linear. Namun, tidak semua data dapat dipisahkan secara linear.
Dalam hal ini perceptron rule tidak mampu mengatasi permasalahan
dengan kasus data yang tidak dapat dipisahkan secara linear, data
tersebut dikenal dengan istilah data non-linearly separable sets. Oleh
16
2
w
karena itu, pada pembahasan yang berikutnya digunakanlah delta
rule yang dapat mengatasi permasalahan tersebut.
Kunci dari delta rule dalam mencari ruang hipotesis dari
bobot vektor yang mungkin adalah dengan menggunakan gradient
descent sehingga didapatkan bobot yang paling tepat untuk suatu
contoh percobaan. Aturan ini penting karena gradient descent
merupakan dasar untuk algoritma backpropagation yaitu
pembelajaran untuk jaringan dengan banyak unit yang terhubung.
Terdapat banyak cara untuk mendefinisikan nilai error dari
model (vektor bobot). Salah satu ukuran yang dapat menurunkan
nilai error dengan tepat adalah :
r 1 2
E(w) ≡ ∑ (t d − od ) d∈D
(3.0)
dengan D adalah himpunan dari contoh data percobaan, td adalah
target output untuk contoh percobaan d dan od adalah output dari unit
linear untuk contoh percobaan d. Error E digolongkan sebagai fungsi
dari r
karena output unit linear o bergantung pada bobot vektor.
Karena permukaan error terdiri dari minimum global tunggal,
algoritma delta rule hanya akan mengkonvergenkan vektor bobot
dengan error minimum, tanpa memperhatikan apakah contoh
percobaannya terpisah secara linear atau tidak. Nilai η yang
digunakan pada algoritma ini awalnya adalah bilangan yang tidak
kecil namun juga tidak terlalu besar, kemudian untuk mendapatkan
17
bobot yang tepat nilai η diperkecil setelah langkah perbaikan ke-n.
Jika η terlalu besar, pencarian turunan gradient akan menimbulkan
resiko, yaitu terlalu banyaknya langkah yang dilakukan untuk
mencari permukan error yang minimum.
2.5. Gambaran Stokastik Untuk Gradient Descent
Salah satu pola model umum yang digunakan pada proses
pembelajaran adalah gradient descent. Gradient descent merupakan suatu
strategi untuk mencari ruang model yang tak terbatas atau besar yang dapat
digunakan ketika ruang model memuat parameter model yang kontinu dan
error dapat diturunkan dengan parameter modelnya tersebut. Namun,
gradient descent ini juga memiliki kelemahan yaitu tidak mudah digunakan
dan terkadang lambat dalam pengkonvergenan solusinya. Jika ada beberapa
minimum lokal pada permukaan error, maka tidak ada jaminan bahwa akan
didapatkan minimum global [11].
Tujuan digunakannya gradient descent yaitu untuk mempermudah
strategi pencarian model, hal tersebut dikenal dengan incremental gradient
descent atau stokastik gradient descent. Sedangkan ide dasar pada stokastik
gradient descent yaitu pencarian bobot yang tepat dilakukan berdasarkan
perhitungan error pada setiap contoh baris datanya. Stokastik gradient
descent biasanya menggunakan nilai learning rate η yang cukup kecil agar
langkah pengulangan yang dilakukan tidak terlalu besar, sehingga
didapatkan perkiraan gradient descent yang mendekati nilai sebenarnya.
18
2.6 Data Pengenalan Huruf Alphabet
Data pengenalan huruf berasal dari David J. Slate [5] (Northwestern
University) pada tahun 1991 dan telah banyak dipakai dalam berbagai
penelitian. Salah satunya adalah penelitian yang dilakukan P.W.Frey dan
D.J. Slate [2] dengan judul Letter Recognition Using Holland-Style Adaptive
Classifiers. Tingkat ketelitian pada penelitian ini mencapai 80% dan
memiliki nilai error mencapai 20%.
19
BAB III
JARINGAN SARAF BUATAN LAPISAN BANYAK
Jaringan saraf buatan lapisan banyak merupakan perluasan dari jaringan
saraf buatan lapisan tunggal. Pada jaringan saraf buatan lapisan tunggal
menggunakan pendekatan algoritma perceptron yang hanya menghasilkan fungsi
linear. Sebaliknya, Jaringan saraf buatan lapisan banyak menggunakan
pendekatan algoritma backpropagation yang akan merepresentasikan fungsi non
linear. Dalam jaringan ini selain unit input dan output terdapat unit tersembunyi.
Hubungan antar lapisan berlangsung satu arah.
3.1 Unit Sigmoid
Unit perceptron merupakan salah satu tipe dari jaringan saraf buatan
dengan unit tunggal dengan fungsi yang dihasilkan adalah fungsi yang
linear. Namun, unit perceptron tidak dapat menjelaskan fungsi yang non
linear, Oleh karena itu, Jaringan saraf buatan lapisan banyak mampu
menggambarkan fungsi yang non linear. Salah satu solusinya adalah dengan
unit sigmoid, yaitu sebuah unit yang mirip dengan perceptron, dan proses
dasar pekerjaan dilakukan sesuai tahapan.
Sama dengan perceptron, unit sigmoid pertama kali menghitung
kombinasi linear dari input, kemudian menggunakan nilai batas untuk
hasilnya. Pada kasus unit sigmoid, hasil output merupakan fungsi yang
kontinu dari input-inputnya dan unit sigmoid menghitung output ok, secara
singkat rumus yang digunakan dapat ditulis sebagai:
20
( )
x
Rumus fungsi sigmoid:
o( net )= n
∑ i =0
w ji.
xi
+ θ j 0
(3.1)
σ = 1
−o ( net )
(3.2)
Maka output ok
1 + e
n
ok = σ (∑ i =0
w ji.
xi
+ θ j 0
)
(3.3)
dimana x1, x2, ..., xn adalah input, o(x1 ,..., xn ) adalah output dan wi adalah
bobot yang menentukan kontribusi dari input xi pada output
backpropagation. σ disebut fungsi sigmoid atau fungsi logistik. Range
output yang dihasilkan oleh unit sigmoid antara 0 sampai 1, dan bersifat
monoton naik. Karena unit sigmoid memetakan domain bilangan input yang
sangat besar ke range output yang kecil, Sigmoid sering disebut dengan
pengkompresan hasil dari unit. Fungsi sigmoid memiliki sifat bahwa
turunannya secara mudah diperlihatkan dalam bentuk output
= σ (y ) ⋅ (1 − σ (y )) . Unit sigmoid diilustrasikan sebagai berikut:
dσ y dy
x0=1
w0
w1
1
x2 w2
w0
xn
∑
n
net = ∑ wi x j + θ j 0
j =0
Gambar 3.1. Sigmoid
o = σ (net) =
1
1 + e −o ( net )
21
= k k
3.2. Turunan dari Aturan Algoritma Backpropagation
Masalah yang paling pokok dalam bab ini adalah aturan penurunan
stokastik gradient descent yang diimplementasikan oleh algoritma
backpropagation. Berdasarkan persamaan (3.0) bahwa stokastik gradient
descent melibatkan iterasi pada sebuah waktu contoh percobaan, untuk
setiap contoh percobaan d menurunkan nilai gradient dari error Ed pada
contoh tunggal. Dengan kata lain, untuk setiap contoh percobaan d setiap
bobot wij di update oleh penambahan ∆wij dengan rumus sebagai berikut:
∆wi j
= −η =∂E
d
∂wi j
(3.4)
Dimana Ed adalah error pada contoh percobaan d ditambahkan dengan
semua unit output pada jaringan (persamaan 3.0)
1
Ed 2 ∑ (t − o )2
k∈output
outputnya disini adalah himpunan dari unit output pada jaringan, tk adalah
nilai target dari unit k untuk contoh percobaan d dan ok adalah output dari
unit k pada contoh percobaan d.
Notasi :
x ji = input ke i sampai input j
wji = bobot dengan input ke i sampai input j
netj = ∑i
w ji
x ji
(jumlahan bobot dari input untuk unit j)
oj = output dihitung berdasarkan unit j
tj = target output untuk unit j
22
j
σ = fungsi sigmoid
output = himpunan dari unit-unit pada lapisan terakhir dari
suatu jaringan
Downstream(j) =himpunan dari unit-unit yang berada satu lapisan
dibawahnya termasuk output dari unit j
Penurunan stokastik gradient descent =∂Ed
∂w ji
merupakan implementasi
dari persamaan (3.4). Dengan catatan bahwa bobot wij dapat mempengaruhi
sisa dari jaringan hanya sampai netj. Oleh karena itu,
=∂E d ∂E ∂net
j
= d
∂w ji ∂net j ∂w ji
= =∂E
d ∂∑i
w ji x ji
∂net j
= =∂Ed x ∂net
ji
∂w ji
(3.5)
dalam penurunan =∂Ed
∂w ji
terdapat dua pandangan kasus yaitu: kasus dimana
unit j adalah unit keluaran untuk jaringan dan kasus dimana j adalah unit
tersembunyi untuk jaringan.
Kasus 1 : Aturan percobaan untuk bobot unit output.
wij dapat mempengaruhi sisa dari jaringan hanya sampai netj, netj dapat
mempengaruhi jaringan hanya sampai o j. Oleh karena itu,
23
∂
( ) j j
( )
j
∂Ed
j j
=∂Ed =
=∂E d ∂o
j
(3.6) ∂net j ∂o j ∂net j
pandang bentuk pertama pada persamaan 3.0
∂Ed ∂ 1 2
= ∂o ∂o 2 ∑ (t k − ok )
j j k∈output
Penurunan (t k
∂o j − o
k )2
akan nol untuk semua unit output k kecuali saat k = j.
=∂E
d = ∂ 1 (t −o )2
∂oj ∂oj 2
1 ∂(t −o ) = 2 t −o 2
j j ∂o
j
= −(tj −o
j ) (3.7)
karena ∂o
j
o j = σ net j , penurunan ∂net j
merupakan penurunan dari fungsi
sigmoid, yang sama dengan σ (net j )(1 − σ (net j )) . Oleh karena itu,
∂o j ∂σ (net
j ) = ∂net j ∂net j
= σ ' (net )
= σ (net j )(1 − σ (net j ))
= o j (1 − o j )
(3.8)
substitusikan persamaan (3.7) dan (3.8) kedalam persamaan (3.6). Didapatkan,
=∂E
d = =∂E
d ∂o j
∂net j ∂o j ∂net j
= −(t j
− o j )o
j (1 − o
j )
∂net (3.9)
j
24
j
dan kombinasikan persamaan (3.9) dengan persamaan (3.4). Maka didapatkan
aturan stokastik gradient descent untuk unit output
∆wi j
= −η =∂E
d
∂wij
= −η =∂E
d ∂net j
∂net j ∂w ji
= η (t j − o j )o j (1 − o j )x ji
(3.10)
Kasus 2 : Aturan Percobaan untuk Bobot unit tersembunyi
Pada kasus ini j merupakan unit tersembunyi pada jaringan, turunan dari aturan
percobaan untuk wji harus mengmbil perhitungan secara tidak langsung dimana wji
dapat mempengaruhi output jaringan dan Ed. Notasikan himpunan semua unit
yang input-inputnya termasuk dalam output unit j dengan Downstream (j). Catat
bahwa netj dapat mempengaruhi jaringan keluaran dan Ed hanya sampai unit pada
Downstream (j). Oleh karena itu, dapat ditulis sebagai berikut:
=∂E
d = ∑ =∂E
d ∂net
k
∂net j k∈Downstream( j ) ∂net k ∂net j
= ∑ − δ =∂net k
k net
k∈Downstream( j ) ∂ j
∂net ∂o j
= ∑ − δ k
k∈Downstream( j )
k ∂o ∂net
j
= ∑ − δ w ∂o j
k∈Downstream( j ) k kj ∂net j
= ∑ − δ k wkj o j (1 − o j ) k∈Downstream( j )
(3.11)
25
setelah mengatur kembali bentuk persamaan di atas dan menggunakan δ j
untuk menotasikan − =∂E
d , didapatkan ∂net j
δ j = o j (1 − o j ) ∑δ k wkj
k∈Downstream( j )
(3.12)
dan
∆w ji = ηδ j x ji
(3.13)
3.3. Penggunaan Faktor Momentum
Banyak variasi yang dapat dikembangkan dari penggunaan algoritma
backpropagation, salah satunya adalah mengubah aturan perubahan bobot
pada algoritma backpropagation persamaan 3.13, yaitu membuat perubahan
bobot pada n iterasi yang secara parsial bergantung pada update yang terjadi
selama (n-1) iterasi, dengan persamaan:
∆w ji (n ) = ηδ j x ji + α∆w ji (n − 1)
(3.14)
∆w ji (n) adalah weight-update yang dilakukan selama n iterasi dan
0 ≤ α < 1 merupakan konstanta yang disebut momentum. Dengan
menambah variabel α ke dalam rumus perubahan bobot mengakibatkan
konvergensi akan lebih cepat untuk mendekati itersasi yang dilakukan sesuai
tahapan sampai bobot mencapai solusinya.
26
3.4. Pembelajaran Jaringan Sembang Acylic
Pada algoritma backpropagation yang telah dijelaskan dengan
menggunakan dua lapisan unit tersembunyi pada jaringan. Namun, jika
algoritma backpropagation menggunakan lebih dari dua lapisan unit
tersembunyi pada jaringan maka aturan perubahan bobot (Persamaan 3.13).
tetap digunakan, dan hanya mengubah cara perhitungan nilai δ . Secara
umum, nilai δ r untuk r unit pada m lapisanr dihitung dari nilai δ pada
lapisanr m+1.
δ r = or (1 − or ) ∑ wsr δ s
s∈layer m+1
(3.15)
Pembelajaran tersebut sama-sama mengeneralisasi algoritma untuk
graph langsung acyclic, tanpa memperhatikan apakah unit jaringan yang
ditetapkan ada pada lapisan uniform. Aturan untuk menghitung δ untuk
unit internal adalah
δ r = or (1 − or ) ∑ wsrδ s
s∈downstream( r )
(3.16)
dimana Downstream(r) adalah himpunan dari unit-unit yang turun dari unit r
pada jaringan, yaitu semua unit yang input-inputnya termasuk dalam output
dari unit r.
3.3 Algoritma Backpropagation
Algoritma backpropagation mempelajari bobot untuk jaringan saraf
buatan lapisan banyak dengan himpunan dari unit-unitnya dan saling
berhubungan. Algoritma ini menggunakan gradient descent untuk mencoba
27
2
meminimalisasi kuadrat error antara nilai input dan nilai target pada
jaringan.
Terdapat banyak cara untuk mendefinisikan nilai error dari model
(vektor bobot). Berbeda dengan persamaan (3.0) definisikan kembali E
sebagai penjumlahan error dari semua unit keluaran jaringan. Proses ini
merupakan salah satu ukuran yang dapat menurukan nilai error dengan tepat
adalah
r 1 2
E (w) ≡ ∑ ∑ (t kd − okd ) d∈D k∈outputs
(3.17)
D adalah himpunan dari contoh data percobaan, outputnya adalah himpunan
dari unit output pada jaringan, tkd dan okd masing-masing adalah nilai target
dan nilai output dengan unit output k dan contoh percobaan d.
Permasalahan yang digambarkan oleh algoritma backpropagation
adalah untuk mencari ruang hipotesis yang besar dan didefinisikan oleh
semua nilai bobot yang mungkin untuk setiap unit pada jaringan. Salah satu
perbedaan pokok pada kasus jaringan saraf buatan lapisan banyak yaitu
permukaan error dapat memiliki perkalian minimum lokal. Hal ini berarti
turunan gradient dapat menjamin kekonvergenan untuk beberapa minimum
lokal, dan bukan error minimum global.
Walaupun tidak dijaminnya konvergen ke arah global minimum,
Algoritma backpropagation merupakan fungsi yang efektif dalam metode
pembelajaran [11]. Fungsi error pada gradient descent dapat diilustrasikan
sebagai permukaan error dengan n-dimensi, ketika kemiringan gradient
28
descent menurun dalam lokal minimum sehingga akan berpengaruh dalam
perubahan bobot.
Perbedaan performa ruang hipotesis antara algoritma
backpropagation jaringan saraf buatan lapisan banyak dengan performa
pembelajaran algoritma pada metode yang lain, yaitu algoritma
backpropagation memiliki ruang hipotesis pada n-dimensi dari n-bobot
jaringan. Dengan catatan ruang hipotesis memiliki fungsi yang kontinu.
Sedangkan hipotesis pada pembelajaran algoritma yang lain seperti
pembelajaran decision tree dan metode yang lain memiliki proses pencarian
hipotesis yang berbeda-beda. Untuk jelasnya pembelajaran tentang decision
tree menggunakan algoritma ID3 dapat ditemukan di [6].
Seperti penjelasan sebelumnya, Algoritma backpropagation
diimplementasikan dengan mencari kemiringan gradient descent pada bobot
jaringan, nilai error E yang diperoleh akan mengurangi iterasi yang berada
diantara nilai target pada contoh percobaan dan hasil output. Karena
permukaan jaringan saraf buatan lapisan banyak menggambarkan
permukaan yang tidak linear pada lokal minima, Sehingga kemiringan
gradient descent terdapat pada permukaan error. Hasil algoritma
backpropagation akan menunjukan ke arah konvergen terhadap lokal
minimum dalam mencari nilai error dan tidak membutuhkan nilai error ke
arah global minimum.
Nilai error minimum dapat dicari pada saat jaringan saraf buatan
lapisan banyak menginisialisasikan dan dibangkitkan secara random atau
29
acak untuk mentukan bobot koneksi antar unit dari suatu lapisan dengan
lapisan sesudahnya, jadi antar unit-unit di lapisan tersembunyi saling
terkoneksi satu sama lain dengan unit-unit di lapisan tersembunyi, dan antar
unit-unit di tersembunyi lapisan akan saling terkoneksi satu sama lain
dengan unit-unit pada lapisan output. Nilai bobot inilah yang akan
menentukan proses pembelajaran kecerdasan buatan.
Pada saat proses training, nilai bobot tersebut akan terus berubah
sehingga didapatkan kesesuaian antara input dengan output dengan error
minimum. Dengan kata lain, Pada proses training akan menentukan nilai
minimum error yang bisa di tolerir oleh jaringan saraf buatan lapisan banyak
seperti yang disampaikan diatas bahwa algoritma backpropagation tidak
akan memberikan kepastian jawaban untuk suatu kasus yang tidak pernah
dilatihkan, pasti ada nilai error dari jawaban sistem pembelajaran dengan
jawaban yang seharusnya, nilai error tersebut yang harus di definisikan
sebelum melatih proses pembelajaran sehingga sistem tersebut bisa
menjawab dengan tingkat kebenaran semaksimal mungkin (misal: tingkat
kebenaran sistem 99,9999% dengan nilai Error 0.0001).
Algoritma backpropagation merupakan proses pembelajaran yang
mampu menjelaskan beberapa fungsi yang terdapat dalam data. Fungsi-
fungsi data tersebut dapat digambarkan secara keseluruhan dengan beberapa
unit yang digunakan pada lapisannya dan beberapa lapisan yang digunakan
dalam jaringan. Fungsi-fungsi ini dapat dibagi menjadi tiga yaitu fungsi
boolean, fungsi bernilai kontinu dan fungsi sembarang. Fungsi boolean
30
adalah fungsi yang rangenya hanya memiliki Z elemen, fungsi ini dapat
digambarkan dengan model struktur jaringan dengan baik menggunakan
jaringan terdiri dari dua lapisan. Sedangkan fungsi kontinu merupakan
fungsi yang rangenya berupa interval, fungsi ini juga dapat digambarkan
dengan struktur jaringan saraf buatan dengan baik menggunakan jaringan
terdiri dari dua lapisan. Terakhir fungsi sembarang adalah sebuah fungsi
yang berbeda dari kedua fungsi sebelumnya. fungsi ini dapat
menggambarkan model struktur jaringan cukup baik dengan menggunakan
tiga lapisan pada unit.
Induktif bias merupakan suatu cara yang digunakan algoritma
backpropagation dalam menginferensi populasi dari data percobaan. Sample
data di proses dalam proses pembelajaran, kemudian performa model dari
sample data tersebut diuji kembali ke populasi data percobaan. Hal ini secara
praktis biasanya dapat dilakukan dengan membagi dua data menjadi data
training dan data test. Tujuan pembelajaran induktif bias untuk mendapatkan
performa dari sample data dengan nilai error yang relatif kecil dan dapat
dibandingkan dengan performa yang dihasilkan pada data populasi.
Algoritma backpropagation menggunakan jaringan lapisanr
feedforward yang terdiri dari dua unit lapisan sigmoid dengan lapisan yang
dihubungkan ke semua unit dari lapisan yang terdahulu. Notasi yang
digunakan pada algoritma ini adalah :
31
a) Sebuah index menententukan setiap titik dari jaringan, dimana sebuah
”titik” merupakan salah satu input atau output dari beberapa unit pada
jaringan.
b) xij menotasikan input dari titik i ke unit j, dan wij menotasikan hubungan
bobot.
c) δ n menotasikan error dengan unit n.
Algoritma Backpropagation
BACKPROPAGATION (Contoh percobaan, η , nin , nout , nhidden )
r r r
Setiap contoh percobaan merupakan pasangan dari bentuk (x, t ) , dimana x
r adalah vektor dari nilai unit input, dan t
jaringan target.
adalah vektor dari nilai output
η adalah learning rate (0,05), nin adalah bilangan dari input jaringan,
ntersembunyi adalah bilangan dari unit pada lapisanr tersembunyi, dan nout adalah
bilangan dari unit output.
input dari unit i sampai j dinotasikan dengan xji, dan bobot dari i sampai j
dinotasikan dengan wji.
1. Buat jaringan feedforward dengan input nin, unit tersembunyi nhiiden, dan
unit output nout.
2. Inisialkan semua bobot awal jaringan ke bilangan acak yang kecil
(antara -0,05 sampai 0,05).
3. Hitung output o(net ) dari setiap unit k pada jaringan. n
o(net) = ∑ w ji xi
i =0
+ θ j 0 (3.1)
4. Hitung fungsi sigmoid( σ ) dari setiap unit k pada jaringan.
σ = 1
1 + e −o ( net )
(3.2)
32
5. Hitung output pada lapisan keluaran ( ok ).
n
ok = σ (∑ i =0
w
ji. x
i + θ
j 0 )
(3.3)
6. Hitung nilai error pada lapisan output ok, dengan bentuk error( δ k ).
δ k
← ok (1 − o
k )(t
k − o
k )
(3.9)
7. Hitung nilai error pada lapisan tersembunyi h, dengan bentuk error( δ h ).
δ h ← ok (1 − ok )∑ wkhδ k
(3.12)
δ r = or (1 − or ) ∑ wsr δ s ;Untuk jaringan uniform m-lapisan (3.15) s∈layer m+1
δ r = or (1 − or ) ∑ wsr δ s
s∈downstream( r )
; Untuk jaringan sembarang n-iterasi (3.16)
8. Hitung perubahan setiap bobot jaringan( ∆ wji ).
∆w ji
= ηδ j x
ji
; j = k , h
(3.13)
∆w ji (n) = ηδ j x ji + α∆w ji (n − 1)
9. Hitung perubahan bobot jaringan baru.
w ji ← w ji + ∆w ji
; Untuk n-iterasi (3.14)
(2.8)
Algoritma backpropagation akan lebih dipahami dengan melakukan
proses perhitungan pada data sederhana dibawah ini.
Tabel 3.1. Fungsi XOR
Variabel Prediktor Variabel Target
x1 x2 t
1 1 0 1 0 1 0 1 1 0 0 0
Langkah 1.
Membuat Jaringan feedforward dengan unit input nin yaitu x1 dan x2 , terdapat 2
lapisan unit tersembunyi nhiiden yaitu z1 , z2 , z3
, z4 dan unit output nout.
33
Y
w50 w31 w32
1 z3 z 4
w
30
1
w40
z1
w 21
w22
w23
w24
z
2
w10
1
w20
w11
w12
x1
w13
w14
x2
Gambar 3.2. Jaringan feedforward dengan dua lapisan unit tersembunyi
Langkah 2.
Setelah membuat jaringan feedforward kemudian inisialkan semua bobot jaringan
ke bilangan acak yang kecil antara -0,05 sampai 0,05 dan bobot awal ditentukan
secara random
- Misal bobot awal unit input ke unit tersembunyi
w11 = 0,05 w13 = 0,03
w12 = -0,05 w14 = -0,02
- dan bobot awal unit tersembunyi lapis 1 ke unit tersembunyi lapis 2
w21 = 0,03 w23 = 0,04
w22 = -0,01 w24 = 0,05.
34
1
2
3
4
- Lebih lanjut lagi bobot awal unit tersembunyi ke unit output
w31 = -0,04
w32 = 0,05,
- Bobot awal bias ke unit tersembunyi lapis 1
w10 = -0,03
w20 = 0,04,
- Bobot awal bias ke unit tersembunyi lapis 2
w30
= 0,02
w40
=0,01
- Serta terakhir bobot awal bias ke unit output adalah
w50 =0,03
Langkah 3.
Hitung output o(net ) dari setiap unit k pada unit tersembunyi :