jbptunikompp gdl s1 2006 noorhardia 3269 bab ii
TRANSCRIPT
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
1/42
BAB II
LANDASAN TEORI
2.1. Sejarah Jaringan Syaraf Tiruan
Jaringan syaraf tiruan sederhana pertama kali diperkenalkan oleh McCulloch
dan Pitts di tahun 1943. McCulloch dan Pitts menyimpulkan bahwa kombinasi beberapa
neuron sederhana menadi sebuah sistem neural akan meningkatkan kemampuan
komputasinya. !obot dalam aringan yang diusulkan oleh McCulloch dan Pitts diatur
untuk melakukan fungsi logika sederhana. "ungsi akti#asi yang dipakai adalah fungsi
threshold .
$ahun 19%&' (osenblatt memperkenalkan dan mulai mengembangkan model
aringan yang disebut Perceptron. Metode pelatihan diperkenalkan untuk
mengoptimalkan hasil iterasinya.
)idrow dan *off +19,- mengembangkan perceptron dengan memperkenalkan
aturan pelatihan aringan' yang dikenal sebagai aturan delta +atau sering disebut kuadrat
rata/rata terkecil. 0turan ini akan mengubah bobot perceptron apabila keluaran yang
dihasilkan tidak sesuai dengan target yang diinginkan.
0pa yang dilakukan peneliti terdahulu hanya menggunakan aringan dengan
layer tunggal + single layer . (umelhart +19&, mengembangkan perceptron menadi
Backpropagation' yang memungkinkan aringan diproses melalui beberapa layer .
elain itu' beberapa model aringan syaraf tiruan lain uga dikembangkan oleh
2ohonen +19' *opfield +19&' dan sebagainya.
Pengembangan yang ramai dibicarakan seak tahun 199- an adalah aplikasi
model/model aringan syaraf tiruan untuk menyelesaikan berbagai masalah di dunia
nyata.
2.2. Jaringan Syaraf Tiruan
Jaringan syaraf tiruan +artificial neural networks atau disingkat J$ adalah
sistem pemroses informasi yang memiliki karakteristik mirip dengan aringan syaraf
biologi.
J$ dibentuk sebagai generalisasi model matematika dari aringan syaraf
biologi' dengan asumsi 5
a. Pemrosesan informasi teradi pada banyak elemen sederhana +neuron
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
2/42
b. inyal dikirimkan diantara neuron/neuron melalui penghubung/penghubung
c. Penghubung antar neuron memiliki bobot yang akan memperkuat atau
memperlemah sinyal
d. 6ntuk menentukan output ' setiap neuron menggunakan fungsi akti#asi +biasanya
bukan fungsi linier yang dikenakan pada umlahan input yang diterima. !esarnya
output ini selanutnya dibandingkan dengan suatu batas ambang.
J$ ditentukan oleh tiga hal 5
a. Pola hubungan antar neuron +disebut arsitektur aringan
b. Metode untuk menentukan bobot penghubung +disebut metode training 7
learning 7 algoritma
c. "ungsi akti#asi
ebagai contoh' perhatikan neuron 8 pada ambar .1.
ambar .1. Model ederhana Jaringan yaraf $iruan
8 menerima input dari neuron :1' : dan :3 dengan bobot hubungan masing/
masing adalah w1' w dan w3. 2etiga impuls neuron yang ada diumlahkan
net ; :1w1 < :w < :3w3
!esarnya impuls yang diterima oleh 8 mengikuti fungsi akti#asi y ; f+net.
0pabila nilai fungsi akti#asi cukup kuat' maka sinyal akan diteruskan. =ilai fungsi
akti#asi +keluaran model aringan uga dapat dipakai sebagai dasar untuk merubah
bobot.
2.3. Arsitektur Jaringan
!eberapa arsitektur aringan yang sering dipakai dalam aringan syaraf tiruan
antara lain 5
a. Jaringan >ayar $unggal + single layer network
J$ dengan layar tunggal pertamakali dirancang oleh )idrow dan *off
pada tahun 19,-. )alaupun J$ layar tunggal ini sangat terbatas penggunaannya'
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
3/42
namun konsep dan gagasannya banyak dipakai oleh beberapa pakar untuk membuat
model J$ layar amak.
?alam aringan ini' sekumpulan input neuron dihubungkan langsung dengan
sekumpulan output . ?alam beberapa model +misal perceptron' hanya ada sebuah
unit neuron output .
ambar .. Jaringan >ayar $unggal
ambar .. menunukkan arsitektur aringan dengan n unit input +:1':' ... '
:n dan m buah unit output +81' 8' ... ' 8m.
Perhatikan bahwa dalam aringan ini' semua unit input dihubungkan dengan
semua unit output ' meskipun dengan bobot yang berbeda/beda. $idak ada unit input
yang dihubungkan dengan unit input lainnya. ?emikian pula dengan unit output .
!esarnya w i menyatakan bobot hubungan antara unit ke/i dalam input
dengan unit ke/ dalam output . !obot/bobot ini saling independen. elama proses
pelatihan' bobot/bobot tersebut akan dimodifikasi untuk meningkatkan keakuratan
hasil.
b. Jaringan >ayar Jamak +multi layer network
Jaringan layar amak merupakan perluasan dari layar tunggal. ?alam
aringan ini' selain unit input dan output ' ada unit/unit lain +sering disebut layar
tersembunyi. ?imungkinkan pula ada beberapa layar tersembunyi. ama seperti
pada unit input dan output ' unit/unit dalam satu layar tidak saling berhubungan.
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
4/42
ambar .3. Jaringan >ayar Jamak
ambar .3. adalah aringan dengan n buah unit input +:1' :' ... ' :n' sebuah
layar tersembunyi yang terdiri dari p buah unit +@1' ... ' @ p dan m buah unit output
+81' 8' ... ' 8m
Jaringan layar amak dapat menyelesaikan masalah yang lebih kompleks
dibandingkan dengan layar tunggal' meskipun kadangkala proses pelatihan lebih
kompleks dan lama.
c. Model J$ dua lapisan dengan umpan balik
$okoh yang pertamakali mencetuskan ide tentang model aringan syaraf
tiruan dengan umpan balik adalah John *opfield dari California Anstitute of
$echnology pada tahun 19&. *opfield berpendapat bahwa kumpulan neuron tiruan
dalam umlah yang sangat besar dapat melakukan tugas/tugas tertentu.
*opfield uga membandingkan antara umlah neuron pada binatang dengan
umlah neuron diperkirakan sekitar 1--- buah dan bila dibandingkan dengan
manusia' umlah neuron-nya mencapai 1-- trilyun buah. ungguh umlah yang
sangat fantastis.
?engan umlah neuron yang sangat besar' J$ memiliki sifat yaitu fault
tolerance. ifat ini mengandung maksud kerusakan sedikit atau sebagian pada sel/
sel dalam aringan tidak akan mempengaruhi output yang akan dikeluarkan.Model J$ dua lapisan ini mempunyai sifat umpan balik' sehingga output
yang dihasilkan akan mempengaruhi input yang akan masuk lagi ke dalam aringan
syaraf tersebut.
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
5/42
ambar .4. Model J$ ?ua >apisan ?engan 6mpan !alik
d. Model J$ lapisan kompetitif
!entuk dari lapisan kompetitif merupakan bagian dari umlah yang besar
pada aringan syaraf. Pada dasarnya' hubungan antara neuron satu dengan neuron
yang lain pada lapisan kompetitif tidak ditunukkan secara arsitektur pada beberapa
aringan syaraf. Contoh dari model atau arsitektur lapisan kompetitif dapat dilihat
pada ambar .%' dimana koneksi dari lapisan tersebut memiliki bobot B.
ambar .%. Model J$ >apisan 2ompetitif
2.. !ungsi Akti"asi
Jaringan syaraf merupakan salah satu representasi buatan dari otak manusia
yang selalu mencoba untuk mensimulasikan proses pembelaaran pada otak manusia
tersebut. Astilah buatan disini digunakan karena aringan syaraf ini diimplementasikan
dengan menggunakan program komputer yang mampu menyelesaikan seumlah proses
perhitungan selama proses pembelaaran.
0da beberapa tipe aringan syaraf' namun demikian' hampir semuanya memiliki
komponen/komponen yang sama. eperti halnya otak manusia' aringan syaraf uga
terdiri dari beberapa neuron' dan ada hubungan antara neuron/neuron tersebut. Neuron/
neuron tersebut akan mentransformasikan informasi yang diterima melalui sambungan
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
6/42
keluarnya menuu ke neuron/neuron yang lain. Pada aringan syaraf' hubungan ini
dikenal dengan nama bobot. Anformasi tersebut disimpan pada suatu nilai tertentu pada
bobot tersebut. ambar ., menunukkan struktur neuron pada aringan syaraf.
ambar .,. truktur =euron Jaringan yaraf
Jika dilihat' neuron buatan ini sebenarnya mirip dengan sel neuron biologis.
Neuron/neuron buatan tersebut bekera dengan cara yang sama pula dengan neuron/neuron biologis. Anformasi +disebut dengan 5 input akan dikirim ke neuron dengan
bobot kedatangan tertentu. Input ini akan diproses oleh suatu fungsi perambatan yang
akan menumlahkan nilai/nilai semua bobot yang datang. *asil penumlahan ini
kemudian akan dibandingkan dengan suatu nilai ambang +threshold tertentu melalui
fungsi akti#asi setiap neuron. 0pabila input tersebut melewati suatu nilai ambang
tertentu' maka neuron tersebut akan diaktifkan' tapi kalau tidak' maka neuron tersebut
tidak akan diaktifkan. 0pabila neuron tersebut diaktifkan' maka neuron tersebut akan
mengirimkan output melalui bobot/bobot output nya ke semua neuron yang
berhubungan dengannya. ?emikian seterusnya.
Pada aringan syaraf' neuron/neuron akan dikumpulkan dalam lapisan/lapisan
+layer yang disebut dengan lapisan neuron +neuron layers. !iasanya neuron/neuron
pada satu lapisan akan dihubungkan dengan lapisan/lapisan sebelum dan sesudahnya
+kecuali lapisan input dan lapisan output . Anformasi yang diberikan pada aringan
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 . $ergantung pada algoritma pembelaarannya' bisa adi
informasi tersebut akan dirambatkan secara mundur pada aringan. ambar .
menunukkan aringan syaraf sederhana dengan fungsi akti#asi ".
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
7/42
ambar .. "ungsi 0kti#asi Pada Jaringan yaraf ederhana
Pada ambar .. tersebut sebuah neuron akan mengolah = input +:1' :' ... ' : =
yang masing/masing memiliki bobot wl' w' ... ' w = dan bobot bias b' dengan rumus 5
∑=
+= N
i
iiw xba1
kemudian fungsi akti#asi " akan mengakti#asi a menadi output aringan y.
0da beberapa fungsi akti#asi yang sering digunakan dalam aringan syaraf
tiruan. "ungsi 0kti#asi yang digunakan pada Backpropagation antara lain 5
a. "ungsi sigmoid biner
b. "ungsi sigmoid bipolar
c. "ungsi linear
a. "ungsi sigmoid biner
?alam backpropagation ' fungsi akti#asi yang dipakai harus memenuhi
beberapa syarat yaitu 5 kontinu' terdiferensial dengan mudah dan merupakan fungsi
yang tidak turun. alah satu fungsi yang memenuhi ketiga syarat tersebut sehingga
sering dipakai adalah fungsi sigmoid biner yang memiliki range +-'1.
"ungsi ini digunakan untuk aringan syaraf yang dilatih dengan
menggunakan metode backpropagation . "ungsi sigmoid biner memiliki nilai pada
range - sampai 1. Dleh karena itu' fungsi ini sering digunakan untuk aringan syaraf
yang membutuhkan nilai output yang terletak pada inter#al - sampai 1. =amun'
fungsi ini bisa uga digunakan oleh aringan syaraf yang nilai output nya - atau 1
+ambar .&.
"ungsi sigmoid biner dirumuskan sebagai 5
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
8/42
( ) xe
x f yσ −
+==
1
1
dengan 5
( ) ( ) ( )( ) x f x f x f −= 1E σ
ambar .&. "ungsi 0kti#asi igmoid !iner
b. "ungsi sigmoid bipolar
"ungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner' hanya
saa output dari fungsi ini memiliki range antara 1 sampai /1 +ambar .9.
"ungsi sigmoid bipolar dirumuskan sebagai 5
( ) x
x
e
e x f y
−
−
+
−==
1
1
dengan5
( ) ( )[ ] ( )[ ] x f x f x f −+= 11
E
σ
1-
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
9/42
ambar .9. "ungsi 0kti#asi igmoid !ipolar
c. "ungsi linear +identitas
"ungsi linear memiliki nilai output yang sama dengan nilai input +ambar
.1-.
"ungsi linear dirumuskan sebagai 5
y ; :
ambar .1-. "ungsi 0kti#asi >inear +Adentitas
2.#. Ba$k%r&%agati&n
2elemahan J$ yang terdiri dari layar tunggal membuat perkembangan J$
menadi terhenti pada sekitar tahun 19- an. Penemuan backpropagation yang terdiri
dari beberapa layar membuka kembali cakarawala. $erlebih setelah berhasil
ditemukannya berbagai aplikasi yang dapat diselesaikan dengan backpropagation'
membuat J$ semakin diminati orang.
J$ dengan layar tunggal memiliki keterbatasan dalam pengenalan pola.
2elemahan ini bisa ditanggulangi dengan menambahkan satu7beberapa layar
tersembunyi diantara layar masukan dan keluaran. Meskipun penggunaan lebih dari satu
layar tersembunyi memiliki kelebihan manfaat untuk beberapa kasus' tapi pelatihannya
memerlukan waktu yang lama. Maka umumnya orang mulai mencoba dengan sebuah
layar tersembunyi lebih dahulu.
eperti halnya model J$ lain' Backpropagation melatih aringan untuk
mendapatkan keseimbangan antara kemampuan aringan untuk mengenali pola yang
digunakan selama pelatihan serta kemampuan aringan untuk memberikan respon yang
11
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
10/42
benar terhadap pola masukan yang serupa +tapi tidak sama dengan pola yang dipakai
selama pelatihan.
2.#.1. Arsitektur Ba$k%r&%agati&n
Backpropagation memiliki beberapa unit yang ada dalam satu atau lebih layar
tersembunyi. ambar .11 adalah arsitektur backpropagation dengan n buah masukan
+ditambah sebuah bias' sebuah layar tersembunyi yang terdiri dari p unit +ditambah
sebuah bias' serta m buah unit keluaran.
# i merupakan bobot garis dari unit masukan :i ke unit layar tersembunyi @ +# -
merupakan bobot garis yang menghubungkan bias di unit masukan ke unit layar
tersembunyi @ . wk merupakan bobot dari unit layar tersembunyi @ ke unit keluaran yk
+wk- merupakan bobot dari bias di layar tersembunyi ke unit keluaran @k .
ambar .11. 0rsitektur !ackpropagation
2.#.2. Neur&n Neuron adalah unit pemroses informasi yang menadi dasar dalam
pengoperasian aringan syaraf tiruan. Neuron terdiri dari tiga elemen pembentuk 5
a. *impunan unit/unit yang dihubungkan dengan alur koneksi. Jalur/alur tersebut
memiliki bobot7kekuatan yang berbeda/beda. !obot yang bernilai positif akan
memperkuat sinyal dan yang bernilai negatif akan memperlemah sinyal yang
dibawanya. Jumlah' struktur dan pola hubungan antar unit/unit tersebut akan
menentukan arsitektur aringan +dan uga model aringan yang terbentuk.
1
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
11/42
b. uatu unit penumlahan yang akan menumlahkan input /input sinyal yang sudah
dikalikan dengan bobotnya.
Misalkan :1' :' ... ' :m adalah unit/unit input dan w 1' w ' ... ' w m adalah bobot
penghubung dari unit/unit tersebut ke unit keluaran 8 ' maka unit penumlah akan
memberikan keluaran sebesar u ; :1w 1 < :w < ... < :mw m
c. "ungsi akti#asi yang akan menentukan apakah sinyal dari input neuron akan
diteruskan ke neuron lain ataukah tidak.
2.#.3. Thresh&'(
Threshold adalah suatu perubahan antara gray-level image dan bilevel image.
Bilevel image terdiri dari banyak informasi yang penting dari sebuah image +contoh 5
angka' posisi dan bentuk obek' tetapi tidak dapat dibandingkan dengan informasi dari
gray-level image. 2ebanyakan dari time pixels dengan gray levels yang sama
mempunyai obek yang sama uga. elanutnya' pengelompokan image oleh pixel gray-
level dapat memperkecil dan memudahkan beberapa pengoperasian proses image seperti
membentuk recognition dan classification.
!eberapa operasi thresholding yang essential akan diseleksi oleh sebuah hasil
tunggal threshold . eluruh gray-levels menunukkan hasil yang dapat diklasifikasikan
menadi black +-' dan disekelilingnya adalah white +1. 6ntuk waktu tertentu' bagian
image tidak mungkin menadi obek dan background dengan hasil tunggal threshold
disebabkan oleh adanya noise. Pendekatan percobaan yang mudah harus menggunakan
tuuan gray-level dalam image seperti threshold . Ani dapat disebabkan sebagian pixels
menadi white dan bagian lain menadi black .
2.#.. )e'atihan Stan(ar Ba$k%r&%agati&n
Pelatihan Backpropagation meliputi tiga fase. "ase pertama adalah fase mau.
Pola masukan dihitung mau mulai dari layar masukan hingga layar keluaran
menggunakan fungsi akti#asi yang ditentukan. "ase kedua adalah fase mundur. elisih
antara keluaran aringan dengan target yang diinginkan merupakan kesalahan yang
teradi. 2esalahan tersebut dipropagasikan mundur' dimulai dari garis yang
berhubungan langsung dengan unit/unit di layar keluaran. "ase ketiga adalah modifikasi
bobot untuk menurunkan kesalahan yang teradi.
a. "ase A 5 Propagasi mau
13
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
12/42
elama propagasi mau' sinyal masukan +;:i dipropagasikan ke layar
tersembunyi menggunakan fungsi akti#asi yang ditentukan. 2eluaran dari setiap
unit layar tersembunyi +;@ tersebut selanutnya dipropagasikan mau lagi ke layar
tersembunyi di atasnya menggunakan fungsi akti#asi yang ditentukan. ?emikian
seterusnya hingga menghasilkan keluaran aringan +;yk .
!erikutnya' keluaran aringan +;yk dibandingkan dengan target yang harus
dicapai +;tk . elisih tk / yk adalah kesalahan yang teradi. Jika kesalahan ini lebih
kecil dari batas toleransi yang ditentukan' maka iterasi dihentikan. 0kan tetapi
apabila kesalahan masih lebih besar dari batas toleransinya' maka bobot setiap garis
dalam aringan akan dimodifikasi untuk mengurangi kesalahan yang teradi.
b. "ase AA 5 Propagasi mundur
!erdasarkan kesalahan tk / yk ' dihitung faktor Fk +k ; 1' ' ... ' m yang
dipakai untuk mendistribusikan kesalahan di unit yk ke semua unit tersembunyi yang
terhubung langsung dengan yk . Fk uga dipakai untuk mengubah bobot garis yang
berhubungan langsung dengan unit keluaran.
?engan cara yang sama' dihitung faktor F di setiap unit di layar tersembunyi
sebagai dasar perubahan bobot semua garis yang berasal dari unit tersembunyi di
layar di bawahnya. ?emikian seterusnya hingga semua faktor F di unit tersembunyi
yang berhubungan langsung dengan unit masukan dihitung.
c. "ase AAA 5 Perubahan bobot
etelah semua faktor F dihitung' bobot semua garis dimodifikasi bersamaan.
Perubahan bobot suatu garis didasarkan atas faktor F neuron di layar atasnya.
ebagai contoh' perubahan bobot garis yang menuu ke layar keluaran didasarkan
atas Fk yang ada di unit keluaran.
2etiga fase tersebut diulang/ulang terus hingga kondisi penghentian
dipenuhi. 6mumnya kondisi penghentian yang sering dipakai adalah umlah iterasi
atau kesalahan. Aterasi akan dihentikan ika umlah iterasi yang dilakukan sudah
melebihi umlah maksimum iterasi yang ditetapkan' atau ika kesalahan yang teradi
sudah lebih kecil dari batas toleransi yang diiinkan.
0lgoritma Backpropagation
1. Anisialisasi bobot +ambil bobot awal dengan nilai random
yang cukup kecil.
14
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
13/42
. 2erakan langkah/langkah berikut selama kondisi berhenti
bernilai salah.
3. 6ntuk tiap/tiap pasangan elemen yang akan dilakukan
pembelaaran' kerakan 5
Feedforward
a. $iap/tiap unit input +G i' i;1''3'...'n menerima sinyal :i dan meneruskan sinyal
tersebut ke semua unit pada lapisan yang ada di atasnya +lapisan tersembunyi.
b. $iap/tiap unit pada suatu lapisan tersembunyi +H ' ;1''3'...'p menumlahkan
sinyal/sinyal input terbobot 5
∑=
+=n
i
iji j j v xbin 1
1 I
gunakan fungsi akti#asi untuk menghitung sinyal output 5
@ ; f+@Iin
dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya +unit/unit output .
c. $iap/tiap unit output +8k ' k;1''3'...'m menumlahkan sinyal/sinyal input
terbobot.
∑=
+=n
i
jk ik k w bin y1
4 I
gunakan fungsi akti#asi untuk menghitung sinyal output 5
yk ; f+yIink
dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya +unit/unit output .
Catatan 5
>angkah +b dilakukan sebanyak umlah lapisan tersembunyi.
Backpropagation
d. $iap/tiap unit output +8k ' k;1''3'...'m menerima target pola yang berhubungan
dengan pola input pembelaaran' hitung informasi errornya 5
Fk ; +tk / yk f E+yIink
ϕ k ; Fk @
k ; Fk
kemudian hitung koreksi bobot +yang nantinya akan digunakan untuk
memperbaiki nilai w k 5
Kw k ; αϕ k
1%
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
14/42
hitung uga koreksi bias +yang nantinya akan digunakan untuk memperbaiki
nilai bk 5
Kbk ; αk
>angkah +d ini uga dilakukan sebanyak umlah lapisan tersembunyi' yaitumenghitung informasi error dari suatu lapisan tersembunyi ke lapisan
tersembunyi sebelumnya.
e. $iap/tiap unit tersembunyi +H ' ;1''3'...'p menumlahkan delta input +dari unit/
unit yang berada pada lapisan di atasnya 5
∑=
=m
k
jk k j win1
4 I δ δ
kalikan nilai ini dengan turunan dari fungsi akti#asinya untuk menghitung
informasi error 5
F1 ; FIin f E+@Iin
ϕ1i ; F1 :
1 ; F1
kemudian hitung koreksi bobot +yang nantinya akan digunakan untuk
memperbaiki nilai #i 5
K#i ; αϕ1i
hitung uga koreksi bias +yang nantinya akan digunakan untuk memperbaiki
nilai b1 5
Kb1 ; α1
f. $iap/tiap unit output +8k ' k;1''3'...'m memperbaiki bias dan bobotnya
+;-'1''...'p 5
w k +baru ; w k +lama < Kw k
bk +baru ; bk +lama < Kbk
$iap/tiap unit tersembunyi +H ' ;1''3'...'p memperbaiki bias dan bobotnya
+i;-'1''...'n 5
#i+baru ; #i+lama < K#i
b1 +baru ; b1 +lama < Kb1
4. $es kondisi berhenti.
2.#.#. O%ti*a'itas Arsitektur Ba$k%r&%agati&n
1,
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
15/42
Masalah utama yang dihadapi dalam Backpropagation adalah lamanya iterasi
yang harus dilakukan. Backpropagation tidak dapat memberikan kepastian tentang
berapa epoch yang harus dilalui untuk mencapai kondisi yang diinginkan. Dleh karena
itu orang berusaha meneliti bagaimana parameter/parameter aringan dibuat sehingga
menghasilkan umlah iterasi yang relatif lebih sedikit.
a. Anisialisasi bobot awal secara random
Pemilihan bobot awal sangat mempengaruhi aringan syaraf dalam mencapai
minimum global +atau mungkin hanya lokal saa terhadap nilai error ' serta cepat
tidaknya proses pelatihan menuu kekon#ergenan. 0pabila nilai bobot awal terlalu
besar' maka input ke setiap lapisan tersembunyi atau lapisan output akan atuh pada
daerah dimana turunan fungsi sigmoidnya akan sangat kecil. ebaiknya' apabila
nilai bobot awal terlalu kecil' maka input ke setiap lapisan tersembunyi atau lapisan
output akan sangat kecil' yang akan menyebabkan proses pelatihan akan beralan
sangat lambat. !iasanya bobot awal diinisialisasi secara random dengan nilai antara
/-.% sampai -.% +atau /1 sampai 1' atau inter#al yang lainnya.
b. Jumlah unit tersembunyi
*asil teoritis yang didapat menunukkan bahwa aringan dengan sebuah
layar tersembunyi sudah cukup bagi Backpropagation untuk mengenali sembarang
pola antara masukan dan target dengan tingkat ketelitian yang ditentukan. 0kan
tetapi penambahan umlah layar tersembunyi kadangkala membuat pelatihan lebih
mudah.
?alam propagasi mau' keluaran harus dihitung untuk tiap layar' dimulai dari
layar tersembunyi paling bawah +terdekat dengan masukan. ebaliknya' dalam
propagasi mundur' faktor F perlu dihitung untuk tiap layar tersembunyi' dimulai dari
layar keluaran.
c. Jumlah pola pelatihan
$idak ada kepastian tentang berapa banyak pola yang diperlukan agar
aringan dapat dilatih dengan sempurna. Jumlah pola yang dibutuhkan dipengaruhi
oleh banyaknya bobot dalam aringan serta tingkat akurasi yang diharapkan. 0turan
kasarnya dapat ditentukan berdasarkan rumusan 5
Jumlah pola ; Jumlah bobot 7 tingkat akurasi
1
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
16/42
6ntuk aringan dengan &- bobot dan tingkat akurasi -.1' maka &-- pola
masukan diharapkan akan mampu mengenali dengan benar 9- L pola diantaranya.
d. >ama iterasi
$uuan utama penggunaan Backpropagation adalah mendapatkan
keseimbangan antara pengenalan pola pelatihan secara benar dan respon yang baik
untuk pola lain yang seenis +disebut data penguian. Jaringan dapat dilatih terus
menerus hingga semua pola pelatihan dikenali dengan benar. 0kan tetapi hal itu
tidak menamin aringan akan mampu mengenali pola penguian dengan tepat. Jadi
tidaklah bermanfaat untuk meneruskan iterasi hingga semua kesalahan pola
pelatihan ; -.
6mumnya data dibagi menadi dua bagian' yaitu pola data yang dipakai
sebagai pelatihan dan data yang dipakai untuk penguian. Perubahan bobot
dilakukan berdasarkan pola pelatihan. 0kan tetapi selama pelatihan +misal setiap 1-
epoch' kesalahan yang teradi dihitung berdasarkan semua data +pelatihan dan
penguian. elama kesalahan ini menurun' pelatihan terus dialankan. 0kan tetapi
ika kesalahannya sudah meningkat' pelatihan tidak ada gunanya untuk diteruskan
lagi. Jaringan sudah mulai mengambil sifat yang hanya dimiliki secara spesifik oleh
data pelatihan +tapi tidak dimiliki oleh data penguian dan sudah mulai kehilangan
kemampuan melakukan generalisasi.
2.#.+. ,ariasi Ba$k%r&%agati&n
?isamping model standar Backpropagation' kini sudah berkembang berbagai
#ariasinya. ariasi tersebut bisa berupa model Backpropagation yang digunakan untuk
keperluan khusus' atau teknik modifikasi bobot untuk mempercepat pelatihan dalam
kasus tertentu.
a. Momentum
Pada standar Backpropagation' perubahan bobot didasarkan atas gradien
yang teradi untuk pola yang dimasukkan saat itu. Modifikasi yang dapat dilakukan
adalah melakukan perubahan bobot yang didasarkan atas arah gradien pola terakhir
dan pola sebelumnya +disebut momentum yang dimasukkan. Jadi tidak hanya pola
masukan terakhir saa yang diperhitungkan.
Penambahan momentum dimaksudkan untuk menghindari perubahan bobot
yang mencolok akibat adanya data yang sangat bearbeda dengan yang lain + outlier .
1&
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
17/42
0pabila beberapa data terakhir yang diberikan ke aringan memiliki pola serupa
+berarti arah gradien sudah benar' maka perubahan bobot dilakukan secara cepat.
=amun apabila data terakhir yang dimasukkan memiliki pola yang berbeda dengan
pola sebelumnya' maka perubahan dilakukan secara lambat.
?engan penambahan momentum' bobot baru pada waktu ke +t
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
18/42
6ntuk membuat program dengan Matlab dapat dilakukan dengan menggunakan Matlab
Qditor.
2.+.1. -e*u'ai -at'a
2etika pertama kali membuka Matlab' akan muncul beberapa form seperti pada
ambar .1.
ambar .1. "orm Matlab
ecara keseluruhan Matlab memiliki enam buah endela 5a. Jendela perintah +command window seperti yang tampak di sebelah kanan
ambar .1. Jendela perintah merupakan tempat untuk memasukkan perintah/
perintah yang diinginkan. !aik perintah maupun keluaran Matlab muncul dalam
endela perintah. 0pabila terlalu lama dipakai' biasanya endela perintah akan terasa
sangat panang. 6ntuk menghapus semua teks dalam endela perintah' anda dapat
memilih !lear command window dari menu edit . emua perintah dan keluaran yang
terdapat di endela perintah dapat di copy +setelah diblok terlebih dahulu dan paste
ke perangkat lunak lain +misal word.
b. Jendela daftar perintah +command history seperti yang tampak di kiri bawah
ambar .1. Jendela ini memuat daftar perintah yang pernah diketikkan dalam
endela perintah. 6ntuk mengeksekusi kembali perintah yang pernah dipakai' drag
perintah tersebut dari endela daftar perintah ke endela perintah.
c. Jendela launch pad . Jendela ini berisi fasilitas yang disediakan Matlab untuk
menalankan paket perangkat lunak +toolbox untuk menyelesaikan masalah tertentu.
-
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
19/42
ebagai contoh' untuk melihat demo program aringan syaraf tiruan' anda bisa
memilih folder Neural Network Toolbox' dan memilih subfolder demo.
d. Jendela "elp yang dipakai ika mengalami kesulitan sewaktu memilih perintah
atau formatnya.
e. Jendela direktori.
f. Jendela workspace.
elain endela/endela tersebut' Matlab uga menyediakan fasilitas editor
program. Program dalam Matlab mirip dengan bahasa C
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
20/42
d. !aris matriks yang berbeda dapat dituliskan dalam satu baris ataupun dalam
baris yang berbeda.
ebagai respon setelah penekanan enter' Matlab akan menampilkan
matriks yang baru saa dimasukkan
A =
1 2 3 4
5 6 7 8
9 10 11 12
0pabila tidak ingin ditampilkan' ketikkan semicolon +R pada akhir perintah.
?alam Matlab' dibedakan nama #ariabel yang berupa huruf besar dengan
huruf kecil.6ntuk menampilkan isi suatu #ariabel G' digunakan perintah disp +G.
Matlab akan menampilkan isi #ariabel G +baik berupa numerik' #ektor' matriks
maupun string tanpa menuliskan nama #ariabelnya.
0pabila teradi kesalahan pemasukan elemen matriks +misal umlah
elemen dalam sebuah baris tidak sama' tanda kurung tidak seimbang atau
elemennya berupa non numerik Matlab akan memunculkan pesan kesalahan.
>> A = [2 3 1 ; 3 2]
??? Error using ==> vertcat
A ro!s in t"e #rac$ete% e&'ression (ust "ave t"e sa(e nu(#er
o) cou(ns*
>> A = [2 3 1 ; 3 2 a]
??? +n%e)ine% )unction or varia#e ,a,*
. Membentuk matriks dengan cara mengambil dari file data eksternal.
Misalkan file ?ata2u.dat berisi data/data 5
1 3
4 % ,
& 9
1- 11 1
Maka dapat dibuat matriks 0 dengan mengambil data/data pada file
?ata2u.dat tersebut sebagai elemen/elemennya.
$uliskan instruksinya 5
>> A = oa% -./atau*%atA =
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
21/42
1 2 3
4 5 6
7 8 9
10 11 12
!. Matriks 2husus
Matlab menyediakan fasilitas bagi pemakai untuk membuat matriks khusus
secara cepat.
1. Matriks ?iagonal
Matriks diagonal adalah matriks buur sangkar yang semua elemen diluar
diagonal utamanya ; -. Qlemen/elemen matriks diagonal dapat dipandang
sebagai #ektor. ebagai contoh' matriks diagonal
=
-
-
#
-
1
-
−
3
-
-
memiliki elemen diagonal berupa #ektor ; S /1 3T
?alam Matlab' perintah %iag - dipakai untuk membentuk matriks
diagonal yang elemen diagonalnya adalah #ektor . 6ntuk membentuk matriks
diagonal 0 diatas' dipakai perintah 5
>> = [2 1 3]
>> A = %iag -
. Matriks Adentitas
Matriks identitas adalah matriks diagonal yang semua elemen
diagonalnya;1. Perintah yang dipakai untuk membentuk matriks identitas ordo
n:n adalah ee -n. ebagai contoh' ika n; 35
>> ee -3
ans =
1 0 0
0 1 0
0 0 1
3. Matriks (andom
6ntuk beberapa keperluan' kadangkala diinginkan suatu matriks yang
elemennya diambil secara acak. ?alam Matlab' bilangan acak yang digunakan
berdistribusi seragam +U 6 S-' 1T atau normal standar +U = +-' 1.
3
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
22/42
Perintah ran% -( n digunakan untuk membentuk matriks ordo m:n
yang elemennya bilangan acak U 6 S-' 1T. 6ntuk membentuk matriks yang
elemennya U = +-' 1' digunakan perintah ran%n -( n. 6ntuk membentuk
sebuah bilangan acak' gunakan perintah ran% +atau ran%n.
6ntuk membuat matriks 0 berordo 3:4 yang elemennya berdistribusi
seragam' perintah Matlab adalah sebagai berikut 5
>> A = ran% -34
A =
0*9501 0*4860 0*4565 0*4447
0*2311 0*8913 0*0185 0*6154
0*6068 0*7621 0*8214 0*7919
"ungsi round bisa dipakai untuk membentuk matriks yang elemennya
berupa bilangan acak bulat. Misal elemen matriks bulat - / 1--' maka kalikan
bilangan/ bilangan acak dengan 1-- kemudian dibulatkan.
>> = roun% -100 ran% -34
=
92 41 41 35
74 94 89 81
18 92 6 1
4. Matriks =ol
Matriks nol adalah matriks yang semua elemennya ; -. Perintah eros
-(n menghasilkan matriks berordo m:n yang semua elemennya ; -. 6ntuk
membentuk matriks buur sangkar n:n yang semua elemennya ; -' gunakan
perintah eros -n
>> A = eros -35
A =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
%. Matriks atuan
4
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
23/42
Matriks satuan mirip dengan matriks nol' tapi dengan semua elemen ; 1.
Perintah yang dipakai adalah ones -(n . Jika matriksnya buur sangkar ordo
n:n' gunakan perintah ones -n
>> ones -3
ans =
1 1 1
1 1 1
1 1 1
,. Matriks Pascal
Matriks segitiga pascal adalah matriks yang berisi koefisien segitiga
pascal.
>> A = 'asca -5
A =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
. Matriks 0aib
Membentuk matriks berukuran n:n dengan umlah elemen/elemen untuk
setiap baris' kolom' dan diagonalnya sama.
>> : = (agic -4
: =
1 6 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
$abel .1 merupakan ringkasan perintah untuk membuat matriks khusus.
elain perintah yang tercantum dalam tabel .1' masih banyak lagi matriks
khusus yang dapat dibuat dengan mudah menggunakan Matlab. Perintah lain
dapat dilihat dari help.
$abel .1. Perintah Matriks 2husus
Matriks Perintah 2eterangan
%
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
24/42
?iagonal %iag -v# ; #ector yang elemennya merupakan elemen matriks
diagonal
Adentitas ee -n n ; ordo matriks buur sangkar
(andom
ran% -(n
ran%n -(n
Drdo matriks ; m:n
(and menghasilkan elemen U 6 +-'1 sedangkan randn
U = +-'1
=ol eros -(n Drdo matriks ; m:n
atuan ones -(n Drdo matriks ; m:n
Pascal 'asca -n
0aib (agic -n
2.+.2.2. -ani%u'asi -atriks
0pabila telah memiliki suatu matriks' maka dapat dilakukan manipulasi
terhadap matriks tersebut' antara lain 5
1. Mengubah ukuran matriks menadi =:M dari matriks G yang berukuran P:V.
0pabila memiliki matriks G yang berukuran P:V' maka dapat dimanipulasi matriks
tersebut menadi matriks 8 yang berukuran =:M dimana P:V ; =:M' dengan
urutan per kolom.
Misal matriks G yang berukuran ,:4 sebagai berikut 5
=
,
%
4
3
1
$
1
11
1-
9
&
1&
1
1,
1%
14
13
4
3
1
-
19
0kan dibuat matriks 8 yang berukuran &:3 dari matriks G
>> = res"a'e -
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
25/42
>> = res"a'e -
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
26/42
Anformasi yang diperoleh dari suatu matriks
0pabila suatu matriks G atau #ektor ' maka bisa didapatkan beberapa informasi
yang berkaitan dengan matriks G tersebut antara lain 5
1. 6kuran matriks G
Misalkan matriks G dengan elemen/elemen' sebagai berikut 5
=
13
1-
4
1
$
14
11
&
%
1%
1
9
,
3
0pabila ingin diketahui ukuran matriks G maka tuliskan instruksinya 5>> [n (] = sie-
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
27/42
Jika
=
3 #
1
1
−−%
4 ' maka keluaran Matlab terhadap perintah 0X adalah
sebagai berikut 5
>> A
ans =
3 2
1 1
4 5
. An#ers matriks
Misalkan 0 adalah matriks buur sangkar. An#ers 0 +simbol 0/1 adalah suatu
matriks sedemikian sehingga 0.0/1 ; 0/1.0 ; A
?alam Matlab digunakan perintah An# untuk mencari in#ers suatu matriks. Misalkan
−=
3
#
%
1−
−
1
1
1
>> A = [2 1 1 ; 3 2 1 ; 2 5 1]
A =
2 1 1
3 2 1
2 5 1
>> = inv -A
=
0*3750 0*5000 0*1250
0*6250 0*5000 0*1250
2*3750 1*5000 0*1250
>> A
ans =
1*0000 0 0*0000
0 1*0000 0*0000 0 0 1*0000
3. Menumlahkan elemen/elemen matriks
Misalkan 0 adalah suatu matriks berordo m:n. Perintah su( -A atau su(
-A1 akan menumlahkan semua elemen dalam satu kolom. *asilnya berupa suatu
#ektor baris 1:n. Jika diinginkan penumlahan dilakukan per baris' maka gunakan
perintah su( -A2. 0kan tetapi bila 0 berupa suatu #ektor +baik #ektor baris
9
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
28/42
maupun #ektor kolom' maka su( -A akan menghasilkan skalar berupa umlah
semua elemen dalam 0.
>> A = [2 1 1 ; 3 2 1 ; 2 5 1]
A =
2 1 1
3 2 1
2 5 1
>> su( -A
ans =
1 6 1
>> su( -A2
ans =
0
0
8
>> v =[4 ; 2; 3]
v =
4
2
3
>> su( -v
ans = 5
>> u = [1 3 4]
u =
1 3 4
>> su( -u
ans =
6
2.+.3. )e*r&gra*an -at'a
2.+.3.1. -e*entuk -!i'e
Pemrograman dengan M/"ile memberikan kontrol lebih banyak dibandingkan
dengan command line. ?engan M/"ile bisa dilakukan percabangan' perulangan dan
lain/lain. truktur Program M/"ile mirip dengan bahasa C yang membagi program
dalam blok program berupa fungsi/fungsi. $iap fungsi dapat memanggil fungsi yang
lain. %cript dalam endela perintah berguna untuk menyelesaikan permasalahan yang
3-
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
29/42
pendek. ebaliknya M/file dapat dipakai untuk berbagai aplikasi sesuai keinginan
pemakai.
Program/program yang membutuhkan fungsi yang lebih kompleks dapat dilihat
pada endela launch pad atau help.
Jendela M/file dapat dibuka melalui menu "ile / =ew B M/file atau dengan
menekan Ctrl/=. Jendela M/file tampak pada ambar .13. !agian/bagiannya mirip
dengan editor teks biasa. !agian tengah dipakai untuk mengetikkan program. ?i bagian
atas adalah menu yang dapat dipakai untuk mengedit dan menalankan +running
program.
ambar .13. Qditor Matlab
"ungsi dalam Matlab terdiri dari dua bagian yaitu definisi fungsi dan tubuh
fungsi
a. ?efinisi "ungsi
!entuk definisi fungsi adalah sebagai berikut 5
unction @argu(en $euaran> = @na(a )ungsi> -@argu(en (asu$an>
ebagai contoh 5
unction = average -&
!aik argumen masukan maupun keluaran bisa berupa #ariabel berupa skalar' #ektor
maupun matriks' atau tanpa argumen sama sekali.
0rgumen masukan boleh lebih dari satu. Masing/masing dipisahkan dengan tanda
koma. ?emikian uga apabila argumen keluaran lebih dari satu elemen' maka
argumen tersebut dipisahkan dengan tanda koma dan diletakkan diantara kurung
siku.
31
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
30/42
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
31/42
teks tersebut. Perhatikan disini bahwa argumen perintah %is' adalah tunggal. Jika
ingin dicetak nilai beberapa #ariabel +atau teks dan #ariabel' maka perintah disp
harus dituliskan beberapa kali.
Perintah )'rint). "ormatnya adalah 5
)'rint) -)or(at A ***
"ormat adalah bentuk penulisan yang akan ditampilkan di layar seperti
umlah angka desimal' tab' lebar karakter' penulisan di baris baru' dan lain/lain.
0' ... adalah nama #ariabel yang isinya dicetak di layar.
"ormat penulisan bilangan riil adalah sebagai berikut 5
L /1.% e
2on#ersi karakter yang umum dipakai tampak pada $abe1 ..
$abel .. 2on#ersi 2arakter
2on#ersi 2eterangan
W Lc X 2arakter tunggal
W Ld W =otasi desimal dengan tanda
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
32/42
)i% = )o'en-)iena(e'er(ission
)i% adalah #ariabel identitas file yang nantinya dipakai ketika akan
membaca atau menulis. Filename adalah string berisi nama file +dan direktorinya
yang dibaca7ditulis. &ermission adalah kondisi file yang dibaca7ditulis. ?efaultnya
adalah file hanya dibuka untuk dibaca. 2onsisi yang umum dipakai tampak pada
$abel .4.
$abel .4. $ipe !erkas
Permission 2eterangan
WrX !uka file hanya untuk dibaca +default
WwX !uka file' atau buat file baru untuk ditulisi +rewrite
WaX
!uka file' atau buat file baru untuk ditulisi +append di akhir file yang
telah ada
Wr
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
33/42
2.+.3.3. State*en 0en(a'i
tatemen kendali memungkinkan untuk mengontrol alur program. "ormat
perintahnya adalah sebagai berikut 5
i) e&'ression
state(ents
en%
e&'ression adalah kondisi yang menentukan arah percabangan. Jika kondisi ini benar'
maka state(ents akan dilakukan. Jika salah maka program akan melompat ke perintah
setelah en%.
truktur tersebut digambarkan dalam bagan alir ambar .14.
ambar .14. !agan 0lir if / then
!entuk yang lebih umum adalah menentukan state(en apa yang dilakukan ika
kondisi e&'ression bemilai salah. 6ntuk itu ditambahkan perintah ese. Jika
e&'ression bernilai benar' maka state(ens yang akan dilakukan. 0kan tetapi ika
salah' maka state(ents 2 yang dilakukan.
i) e&'ression
state(ents
ese
state(ents2
en%
ambar .1%. menunukkan bagan alir proses dengan perintah if/then/eAse
ambar .1%. !agan 0lir if / then / else
3%
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
34/42
E&'ression dalam kedua bentuk if tersebut berisi #ariabel/#ariabel yang
dihubungkan dengan operator logika +atau fungsi yang memiliki return boolean true
atau false. Dperator logika yang dapat dipakai tampak pada $abe1 .%.
$abel .%. Dperator >ogika
Dperator 0rti
[ >ebih kecil dari
[; >ebih kecil atau sama dengan
\ >ebih besar dari
\; >ebih besar atau sama dengan
; ; ama dengan
U ; $idak sama dengan
2.+.3.. State*en )eru'angan
tatemen perulangan digunakan untuk mengulang/ulang suatu blok perintah.
0da dua bentuk perulangan yang umumnya dipakai 5
a. truktur "or
?alam struktur ini' umlah perulangan yang akan dilakukan ditentukan oleh
pemakai. Jadi sebelum statemen dalam perulangan dieksekusi' sudah diketahui
berapa kali nantinya statemen tersebut dieksekusi
b. truktur )hile
?alam struktur while' banyaknya perulangan ditentukan dari kondisi syarat
yang ditetapkan. elama kondisi tersebut bernilai benar' maka perulangan terus
dilakukan. Perulangan bisa dilakukan beberapa kali' tidak pernah dilakukan sama
sekali' atau bahkan dilakukan terus menerus tanpa pernah berhenti. Pembuat
program harus memastikan bahwa suatu saat nantinya' kondisi syarat bernilai salah
+sehingga perulangan berhenti
a. truktur "or
!entuk struktur "or adalah sebagai berikut 5
)or varia#e = s$aar s$aar
state(ent
3,
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
35/42
***
state(ent
en%
truktur for dapat dibuat bersarang +nested loop. Pada kasus ini' loop "or
yang paling dalam akan dieksekusi dahulu hingga selesai' baru kemudian ke loop
"or sebelah luarnya. ebagai contoh' perhatikan program
n =4
a = eros -nn :atri$s a!a
or i = 1n
or D = 1n
a-iD = 1B-iD 1;
En%
En%Program tersebut akan secara ieratif mengisi elemen matriks baris/i kolom/ dengan
1
1
−+ ji
b. truktur )hile
!entuk umum struktur )hile adalah sebagai berikut 5
!"ie e&'ression o'Fre e&'ression
state(ents
en%
dimana o'Fre adalah ;;'[' \' [;' \;' atau U;.
tatemen akan dieksekusi terus menerus selama ekspresi setelah kata kunci
!"ie bernilai benar.truktur while dipakai ika akan dihentikan iterasi segera setelah dicapai
kesimpulan. ebagai contoh' misalkan ingin dicek apakah dalam matriks yang
diinputkan ada elemen -. Pengecekan tidak perlu dilakukan pada semua elemen
matriks. Misalkan pengecekan dimulai dari elemen kiri atas. egera setelah
ditemukan elemen -' maka pengecekan dihentikan dan bisa diambil kesimpulan
tentang matriks tersebut.
2.+.. )e*r&gra*an Ba$k%r&%agati&n Dengan -at'a
3
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
36/42
2.+..1. -e*entuk Jaringan
0. Anisialisasi Jaringan
>angkah pertama yang harus dilakukan untuk memprogram
backpropagation dengan Matlab adalah membuat inisialisasi aringan. Perintah yang
dipakai untuk membentuk aringan adalah ne!)) yang formatnya adalah sebagai
berikut 5
net = ne!))-CG[H1 H2***HI]JK1 K2***KILKMC
?engan
net = Daringan ac$'ro'agation ang ter%iri %ari n aar
CG = (atri$s or%o G&2 ang #erisi niai (ini(u( %an (a$si(u( G #ua"
ee(en (asu$anna
Hi -i=12***n = Du(a" unit 'a%a aar $ei -i=12***n
K)i -i=12***n = )ungsi a$tivasi ang %i'a$ai 'a%a aar $ei
-i=12***n* /e)aut = tansig -sig(oi% #i'oar
K = )ungsi 'eati"an Daringan* /e)aut = traing%&
M = )ungsi 'eru#a"an #o#otB#ias* /e)aut = earng%(
C = )ungsi 'er"itungan error* /e)aut = (se
!eberapa fungsi akti#asi yang dipakai Matlab dalam pelatihan backpropagation
adalah 5
a. tansig +sigmoid bipolar ( ) 11
4−
+=
−net enet f . "ungsi ini adalah default yang
dipakai. "ungsi sigmoid bipolar memiliki range S/1'1T
b. logsig +sigmoid biner ( )net e
net f −
+=
1
1. "ungsi sigmoid biner memiliki bentuk
serupa dengan sigmoid bipolar' hanya rangenya adalah S-'1T
c. purelin +fungsi identitas ( ) net net f =
Pelatihan yang dilakukan dalam Matlab dapat menggunakan berbagai fungsi'
tuuannya adalah mempercepat pelatihan. "ungsi default yang dipakai oleh Matlab
adalah traingd:. ?alam fungsi ini' perubahan bobot dilakukan dengan
menambahkan momentum. Perubahan dilakukan dengan memperhatikan perubahan
bobot pada iterasi sebelumnya. ?isamping itu lau pemahaman +learning rate ;α
bukan merupakan konstanta yang tetap' tetapi dapat berubah/ubah selama iterasi.
3&
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
37/42
6mumnya' pelatihan backpropagation dalam Matlab dilakukan secara
berkelompok +batch training . emua pola dimasukkan dulu' baru kemudian bobot
diubah. ?alam pelatihan berkelompok' semua data masukan harus diletakkan dalam
sebuah matriks.
!. Anisialisasi !obot
etiap kali membentuk aringan backpropagation' Matlab akan memberi
nilai bobot dan bias awal dengan bilangan acak kecil. !obot dan bias ini akan
berubah setiap kali dibentuk aringan. 0kan tetapi ika diinginkan memberi bobot
tertentu' dapat dilakukan dengan memberi nilai pada net*NO' net*MO dan net*#.
Perhatikan perbedaan antara net*NO dan net*MO. net*NOJDiL digunakan
sebagai #ariabel untuk menyimpan bobot dari unit masukan layar i ke unit
tersembunyi +atau unit keluaran layar . 2arena dalam backpropagation' unit
masukan hanya terhubung dengan layar tersembunyi paling bawah' maka bobotnya
disimpan dalam net*NOJ11L.
ebaliknya' net*MOJ$DL dipakai untuk menyimpan bobot dari unit di layar
tersembunyi ke/ ke unit di layar tersembunyi ke/k. ebagai contoh' net*MOJ21L
adalah penyimpan bobot dari layar tersembunyi paling bawah +layar tersembunyi
ke/1 ke layar tersembunyi diatasnya +layar tersembunyi ke/.
C. imulasi Jaringan
Perintah si( digunakan pada backpropagation untuk menghitung keluaran
aringan berdasarkan arsitektur' pola masukan dan fungsi akti#asi yang dipakai.
[C)A)E'er)] = si(-netCCiAiK
/engan 'ara(eter (asu$an
net na(a Daringan %aa( 'erinta" ne!))C ve$tor (asu$an Daringan
Ci $on%isi %ea a!a (asu$an* /e)aut = eros
Ai $on%isi %ea aar* /e)aut = eros
K ve$tor target Daringan* /e)aut = eros
/an 'ara(eter "asi
$euaran Daringan
C) $on%isi a$"ir %ea (asu$an
A) $on%isi a$"ir %ea aar
39
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
38/42
E error Daringan = K
Cer) unDu$ $erDa Daringan
Ci Ai C) A) hanya dipakai bagi aringan yang memiliki delay masukan
dan layar. 6ntuk sekedar menghitung keluaran aringan' dapat dipakai statemen
sederhana 5
= si( -net';
Perhatikan bahwa untuk menghitung keluaran aringan' tidak perlu diketahui
targetnya. 0kan tetapi ika ingin dihitung error yang teradi +selisih antara target
dengan keluaran aringan' maka harus diketahui targetnya.
2.+..2. )e'atihan Ba$k%r&%agati&n
Matlab menyediakan berbagai #ariasi pelatihan backpropagation. ?alam sub
bab ini akan dibahas pelatihan standar yang digunakan untuk melatih aringan.
Pelatihan backpropagation menggunakan metode pencarian titik minimum
untuk mencari bobot dengan error minimum. ?alam proses pencarian ini dikenal dua
macam metode yaitu metode incremental dan metode kelompok +batch.
?alam metode incremental ' bobot diubah setiap kali pola masukan diberikan ke
aringan. ebaliknya' dalam metode kelompok' bobot diubah setelah semua pola
masukan diberikan ke aringan. 'rror +dan suku perubahan bobot yang teradi dalamsetiap pola masukan diumlahkan untuk menghasilkan bobot baru. Matlab
menggunakan metode pelatihan kelompok dalam iterasinya. Perubahan bobot dilakukan
per epoch.
6ntuk melatih aringan digunakan perintah train yang formatnya adalah
sebagai berikut5
[nettrEC)A)] = train-netCKCiAiK
?engan
net Daringan ang %i%e)inisi$an %aa( ne!))
C (asu$an Daringan
K target Daringan* /e)aut = eros
Ci $on%isi %ea a!a (asu$an* /e)aut = eros
Ai $on%isi %ea a!a aar* /e)aut = eros
stru$tur vai%asi ve$tor* /e)aut = []
K stru$tur ve$tor uDi* /e)aut = []
Perintah train akan menghasilkannet Daringan ang #aru
4-
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
39/42
tr recor% 'eati"an -e'oc" %an 'er)or(a
$euaran Daringan
E error Daringan
C) $on%isi a$"ir %ea (asu$an
A) $on%isi a$"ir %ea aar
Metode paling sederhana untuk merubah bobot adalah metode penurunan
gradien + gradient descent . !obot dan bias diubah pada arah dimana unuk kera fungsi
menurun paling cepat' yaitu dalam arah negatif gradiennya.
Jika wk adalah #ektor bobot pada iterasi ke/k' gk adalah gradien dan αk adalah
lau pemahaman' maka metode penurunan gradien memodifikasi bobot dan bias
menurut persamaan wk
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
40/42
(earning rate adalah lau pembelaaran. emakin besar nilai learning rate akan
berimplikasi pada semakin besarnya langkah pembelaaran. Jika learning rate diset
terlalu besar' maka algoritma akan menadi tidak stabil. ebaliknya' ika learning
rate diset terlalu kecil' maka algoritma akan kon#ergen dalam angka waktu yang
sangat lama.
Anstruksi 5 net.trainParam.lr ; >earning(ate
=ilai default untuk learning rate adalah -'-1.
e. )aktu maksimum untuk pelatihan
Menunukkan waktu maksimum yang diiinkan untuk melakukan pelatihan. Aterasi
akan dihentikan apabila waktu pelatihan melebihi waktu maksimum.
Anstruksi 5 net.trainParam.time ; Ma:$ime
=ilai default untuk waktu maksimum adalah tak terbatas +inf.
2.+..3. -e*%er$e%at )e'atihan Ba$k%r&%agati&n
Metode standar backpropagation seringkali terlalu lambat untuk keperluan
praktis. !eberapa modifikasi dilakukan terhadap standar backpropagation dengan cara
mengganti fungsi pelatihannya.
ecara umum' modifikasi dapat dikelompokkan dalam dua kategori. 2ategori
pertama adalah metode yang menggunakan teknik heuristik yang dikembangkan dari
metode penurunan tercepat yang dipakai dalam standar backpropagation. 2ategori
kedua adalah menggunakan metode optimisasi numerik selain penurunan tercepat.
!eberapa metode yang dipakai sebagai modifikasi adalah metode gradien conugate'
]uasi =ewton' dan lain/lain. ?alam sub bab berikut ini dibicarakan dahulu tentang
beberapa modifikasi yang masuk dalam kategori pertama +backpropagation dengan
momentum' #ariabel lau pemahaman' dan backpropagation resilient . !erikutnya
barulah dibahas tentang beberapa metode yang masuk dalam kategori kedua.
0. Metode Penurunan radien dengan Momentum +traingdm
Meskipun metodenya paling sederhana' tapi metode penurunan gradien
sangat lambat dalam kecepatan proses iterasinya. Ani teradi karena kadang/kadang
arah penurunan tercepat bukanlah arah yang tepat untuk mencapai titik minimum
globalnya.
4
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
41/42
Modifikasi metode penurunan tercepat dilakukan dengan menambahkan
momentum. ?engan momentum' perubahan bobot tidak henya didasarkan atas error
yang teradi pada epoch pada waktu itu. Perubahan bobot saat ini dilakukan dengan
memperhitungkan uga perubahan bobot pada epoch sebelumnya. ?engan demikian
kemungkinan terperangkap ke titik minimum lokal dapat dihindari.
!esarnya efek perubahan bobot terdahulu +disebut faktor momentum bisa
diatur dengan suatu bilangan antara - dan 1. "aktor momentum ; - berarti
perubahan bobot hanya dilakukan berdasarkan error saat ini +penurunan gradien
murni. ?alam Matlab' pelatihan backpropagation dengan menggunakan metode
penurunan gradien dengan momentum dilakukan dengan mendefinisikan fungsi
pelatihan .traing%( dalam pembentukan aringannya. !esarnya faktor momentum
dilakukan dengan memberi nilai antara - B 1 pada net*trainCara(*(c +default ;
-'9. Parameter lain yang dapat diatur dalam traing%( sama dengan traing%.
!. ariabel >au Pemahaman +traingda' traingd:
?alam standar backpropagation' lau pemahaman berupa suatu konstanta
yang nilainya tetap selama iterasi. 0kibatnya' unuk kera algoritma sangat
dipengaruhi oleh besarnya lau pemahaman yang dipakai. ecara praktis' sulit untuk
menentukan besarnya lau pemahaman yang paling optimal sebelum pelatihan
dilakukan. >au pemahaman yang terlalu besar maupun terlalu kecil akan
menyebabkan pelatihan menadi lambat.
Pelatihan akan lebih cepat apabila lau pemahaman dapat diubah ubah
besarnya selama proses pelatihan. Jika error sekarang lebih besar dibandingkan
error sebelumnya' maka lau pemahaman diturunkan. Jika sebaliknya' maka lau
pemahaman diperbesar. ?engan demikian lau pemahaman dapat dibuat sebesar
besarnya dengan tetap mempertahankan kestabilan proses.
?alam Matlab' penggunaan #ariabel lau pemahaman dilakukan dengan
menggunakan .traing%a pada parameter fungsi pelatihan ne!)).
Penggunaan lau pemahaman uga bisa dikombinasikan dengan
menambahkan faktor momentum. "ungsi pelatihan yang dipakai di Matlab adalah
.traing%&. "ungsi pelatihan ini memiliki kecepatan pelatihan yang tinggi
sehingga dipakai sebagai default dalam pelatihan backpropagation di Matlab.
43
-
8/16/2019 Jbptunikompp Gdl s1 2006 Noorhardia 3269 Bab II
42/42
C. (esilient !ackpropagation +trainrp
Jaringan backpropagation umumnya menggunakan fungsi akti#asi sigmoid.
"ungsi sigmoid akan menerima masukan dari range tak berhingga menadi keluaran
pada range S-'1T. emakin auh titik dari : ; -' semakin kecil gradiennya. Pada titik
yang cukup auh dari : ; -' gradiennya mendekati -. hal ini menimbulkan masalah
pada waktu menggunakan metode penurunan tercepat +yang iterasinya didasarkan
atas gradien. radien yang kecil menyebabkan perubahan bobot uga kecil'
meskipun masih auh dari titik optimal.
Masalah ini diatasi dalam resilient backpropagation dengan cara membagi
arah dan perubahan bobot menadi dua bagian yang berbeda. 2etika menggunakan
penurunan tercepat' yang diambil hanya arahnya saa. !esarnya perubahan bobot
dilakukan dengan cara lain.
?alam Matlab resilient backpropagation dilakukan dengan menuliskan
WtrainrpX pada fungsi pelatihannya.
?. 0lgoritma radien Conugate +traincgf' traincgp' traincgb
?alam standar backpropagation' bobot dimodifikasi pada arah penurunan
tercepat. Meskipun penurunan fungsi beralan cepat' tapi tidak menamin akan
kon#ergen dengan cepat. ?alam algoritma gradien konugate' pencarian dilakukan
sepanang arah conugate. ?alam banyak kasus' pencarian ini lebih cepat. 0da
berbagai metode pencarian yang dilakukan berdasarkan prinsip gradien conugate'
antara lain "letcher/(ee#es +.traincg)' Polak/(ibiere +.traincg'' Powel
!eale +.traincg#.