BAB 2 LANDASAN TEORI
2.1 Jaringan Saraf Tiruan (JST) Saat ini, komputer modern dengan teknologi canggih merupakan sebuah kekuatan bagi perkembangan zaman. Meskipun demikian banyak hal yang masih tetap belum dapat diselesaikan dengan menggunakan komputer, baik karena algoritmanya yang belum diketahui ataupun walaupun algoritma penyelesaiannya sudah diketahui namun run time nya masih sangat lama. Hal inilah yang menjadi tantangan bagi para ahli untuk mendapatkan metode lain untuk memecahkan masalah ini, sehingga kegiatan manusia bahkan yang paling sederhana dapat dikerjakan secara komputasi. Cara kerja jaringan saraf manusia menjadi inspirasi untuk menyelesaikan masalah tersebut [5]. Minat yang sangat besar pada jaringan saraf tiruan yang terjadi baru-baru ini dapat disebabkan oleh beberapa faktor. Pertama, pola training yang telah dikembangkan menjadi sebuah model jaringan yang lebih pintar yang dapat mengatasi masalah. Kedua, komputer digital dengan kecepatan tinggi membuat simulasi proses jaringan lebih mudah dikerjakan. Ketiga, teknologi zaman sekarang menyediakan hardware yang spesifik untuk jaringan saraf. Bagaimanapun, pada saat yang bersamaan perkembangan pada komputasi tradisional telah membuat pembelajaran jaringan saraf tiruan lebih mudah, keterbatasan yang dihadapi oleh komputer tradisional telah memotivasi beberapa arah dari penelitian mengenai jaringan saraf tiruan [3].
Universitas Sumatera Utara
2.1.1 Pengertian Jaringan Saraf Tiruan Jaringan saraf tiruan merupakan implementasi dari teknologi artificial intelligence. Jaringan saraf tiruan adalah salah satu representasi buatan dari otak manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut [9]. Istilah buatan digunakan karena jaringan saraf ini diimplementasikan dengan menggunakan program komputer yang mampu menyelesaikan sejumlah proses perhitungan selama proses pembelajaran. Jaringan saraf tiruan merupakan sistem pemroses informasi yang memiliki karakteristik mirip dengan jaringan saraf biologi [14]. Menurut Subiyanto [16], jaringan saraf tiruan adalah membuat model sistem komputasi yang dapat menirukan cara kerja jaringan saraf biologi. Secara umum Haykin [4] mendefinisikan sebuah jaringan saraf tiruan adalah sebuah mesin yang dirancang untuk mempolakan cara bagaimana otak mengerjakan sebuah fungsi tertentu. Jaringan biasanya diimplementasikan dengan menggunakan komponen elektronika atau disimulasikan dalam sebuah perangkat lunak pada komputer digital. Untuk mencapai tampilan yang baik, jaringan saraf tiruan memakai interkoneksi yang sangat besar antara sel-sel komputasi yang disebut “neuron” atau “unit pemroses”. Sebagai mesin yang adaptif, sebuah jaringan saraf tiruan adalah sebuah prosessor besar terdistribusi yang paralel yang tersusun dari unit pemroses sederhana yang mempunyai kecenderungan untuk menyimpan pengalaman dan pengetahuan dan membuatnya siap untuk digunakan. Hal itu menyerupai otak dalam dua aspek: 1. Pengetahuan dibutuhkan oleh jaringan dari lingkungannya melalui proses pembelajaran. 2. Kekuatan koneksi interneuron, dikenal sebagai bobot sinapsis, digunakan untuk menyimpan pengetahuan yang dibutuhkan. Menurut Fausett [3] sebuah jaringan saraf tiruan adalah sistem pemroses informasi yang mempunyai karakter tampilan tersendiri yang hampir sama dengan jaringan saraf pada biologi. Jaringan saraf tiruan telah dikembangkan sebagai generalisasai model matematika dari jaringan saraf biologi, berdasarkan asumsi:
Universitas Sumatera Utara
1. Pemrosesan informasi terjadi pada elemen sederhana yang disebut neuron. 2. Sinyal dilewatkan antarneuron melalui link penghubung. 3. Setiap link penghubung mempunyai sebuah bobot dimana pada jaringan saraf tertentu bobot digandakan oleh sinyal yang dipancarkan. 4. Setiap neuron menggunakan fungsi aktivasi (biasanya nonlinear) pada jaringan inputnya (penjumlahan bobot sinyal input) untuk menentukan sinyal output. Jaringan saraf tiruan dikarakteristikkan dengan pola koneksi antarneuron yang disebut arsitektur, metode penentuan bobot pada setiap koneksinya (yang disebut training atau learning, algoritma) dan fungsi aktivasinya [10]. Jaringan saraf terdiri dari elemen pemroses sederhana yang dinamakan neuron, unit, sel atau node. Setiap neuron terkoneksi dengan neuron yang lain masing-masing dengan bobot terhubung. Bobot merepresentasikan informasi yang digunakan oleh jaringan untuk menyelesaikan masalah. Jaringan saraf dapat diaplikasikan untuk masalah yang sangat luas, seperti penyimpanan dan pemanggilan kembali data atau pola, mengklasifikasian pola, menampilkan pemetaan secara umum dari pola input menjadi pola output, mengelompokkan pola yang sama, atau menemukan solusi untuk mengoptimisasikan masalah [12]. Setiap neuron mempunyai fungsi aktivasi atau level aktivitas, yang merupakan fungsi dari input yang telah diterima. Neuron mengirimkan aktivasinya sebagai sebuah sinyal ke beberapa neuron yang lain. Sebuah neuron hanya dapat mengirimkan sebuah sinyal dalam satu waktu, walaupun sinyalnya disebarkan pada beberapa neuron yang lain. Ciri utama yang dimiliki oleh jaringan saraf tiruan adalah kemampuannya untuk belajar. Belajar (learning) pada jaringan saraf tiruan dapat diartikan sebagai proses penyesuaian parameter pembobot karena keluaran yang diinginkan tergantung pada harga pembobot interkoneksi yang dimiliki oleh sel. Proses belajar akan dihentikan jika nilai kesalahan atau error sudah dianggap cukup kecil untuk semua
Universitas Sumatera Utara
pasangan data latihan. Jaringan yang sedang melakukan proses belajar disebut berada dalam tahap latihan (training). Pada tahap awal pelatihan ini perlu dilakukan terlebih dahulu sebelum melakukan pengujian suatu objek [21]. Berdasarkan tingkat kemampuannya, jaringan saraf tiruan dapat diterapkan pada beberapa aplikasi yang cocok bila diterapkan pada klasifikasi pola, yakni memilih suatu input data ke dalam suatu kategori tertentu yang diterapkan. Di samping itu jaringan saraf tiruan dapat diterapkan pada prediksi dan self organizing, yakni menggambarkan suatu obyek secara keseluruhan hanya dengan mengetahui bagian dari obyek lain dan memiliki kemampuan untuk mengolah data-data tanpa harus memiliki data sebagai target. Selanjutnya jaringan saraf tiruan juga mampu diterapkan pada masalah optimasi, yakni mencari jawaban atau solusi terbaik dari suatu masalah [1]. Prosedur yang digunakan untuk menampilkan proses pembelajaran disebut algoritma pembelajaran yang fungsinya memodifikasi bobot sinapsis pada jaringan dalam sebuah cara yang teratur untuk mencapai rancangan objek yang diinginkan. Modifikasi bobot sinapsis menyediakan sebuah metode untuk merancang jaringan saraf tiruan. Seperti sebuah pendekatan yang mendekati teori linear adaptif, yang telah didirikan dan sukses diaplikasikan pada bermacam-macam bidang. Bagaimanapun, sangat mungkin bagi jaringan saraf tiruan untuk memodifikasi topologinya sendiri yang dimotivasi dengan fakta bahwa neuron pada otak manusia dapat mati dan koneksi sinapsis baru dapat bertumbuh [4]. Kemampuan JST untuk belajar dan memperbaiki dirinya telah menghasilkan banyak algoritma atau aturan belajar alternatif yang dapat digunakan, dari sekian banyak aturan yang ada, yang paling sering digunakan adalah aturan belajar backpropagation yang termasuk kategori supervised learning yang dapat digunakan memperbaiki kinerja jaringan saraf tiruan [19].
Universitas Sumatera Utara
2.1.2 Manfaat Jaringan Saraf Tiruan Sangat jelas jika sebuah jaringan saraf tiruan mendapatkan kekuatan komputasinya melalui stuktur distribusi paralel yang sangat besar dan kemampuannya untuk belajar dan menggeneralisasikan data. Generalisasi merujuk pada jaringan saraf tiruan yang menghasilkan output yang sesuai walaupun input belum pernah ditemukan sebelumnya selama pembelajaran (training). Kemampuan memproses informasi yang seperti inilah yang memungkinkan jaringan saraf tiruan mampu mencari solusi atas masalah dalam skala yang besar dan sulit. Dalam prakteknya, jaringan saraf tiruan tidak dapat menyediakan solusi dengan bekerja sendiri. Jaringan saraf tiruan harus diintegrasikan ke dalam sebuah sistem yang konsisten dengan keahlian teknik, khususnya pada masalah yang kompleks [4]. Jaringan saraf tiruan menawarkan kemampuan sebagai berikut: 1. Nonlinearity. Sebuah neuron buatan bisa saja linear atau tidak linear. Jaringan saraf tiruan yang terdiri dari interkoneksi neuron yang nonlinear yang membuat jaringan saraf tersebut nonlinear. Ketidaklinearan adalah sifat yang sangat penting secara khusus jika mekanisme fisik yang berperan untuk membangkitkan sinyal input bersifat nonlinear. 2. Input-output mapping. Sebuah paradigma populer dari pembelajaran disebut learning with a teacher (belajar dengan guru) atau supervised learning (pembelajaran terbimbing) yang melibatkan modifikasi bobot sinapsis jaringan saraf tiruan dengan mengaplikasikan kumpulan sampel training. Setiap contoh terdiri dari sebuah input signal yang sangat unik dan respon yang diinginkan. Jaringan dipresentasikan dengan sebuah contoh yang diambil secara acak, dan bobot sinapsis (parameter bebas) dari jaringan, dimodifikasikan untuk meminimalisasi perbedaan antara hasil yang diinginkan dengan hasil yang sebenarnya yang dihasilkan oleh jaringan dengan sinyal input sesuai dengan kriteria statistika. Pelatihan jaringan diulangi sampai mencapai kondisi dimana tidak ada perubahan yang signifikan pada bobot sinapsis.
Universitas Sumatera Utara
3. Adaptivity. Neural network memiliki kemampuan untuk menyesuaikan bobot sinaptik mereka terhadap perubahan pada lingkunganya. Secara khusus, jaringan saraf dilatih untuk beroperasi pada lingkungan tertentu terlebih dalam menghadapi perubahan kecil yang terjadi dalam kondisi lingkungan operasi. Arsitektur alami jaringan saraf untuk klasifikasi pola, pemrosesan sinyal dan aplikasi kontrol, ditambah dengan kemampuan adaptif jaringan, membuatnya menjadi alat yang berguna dalam klasifikasi pola adaptif, pengolahan kemampuan adaptif dan kontrol adaptif. Secara umum, dapat dikatakan bahwa semakin adaptif kita membuat sebuah sistem memastikan bahwa sistem akan semakin stabil dan semakin kuat daya gunanya ketika sistem diperlukan untuk beroperasi di lingkungan nonstasioner. Harus ditekankan, bagaimanapun adaptivitas tidak selalu menimbulkan kekuatan, sebaliknya dapat berlawanan. Misalnya. sistem adaptif dengan konstanta waktu yang singkat cenderung untuk merespon gangguan palsu, menyebabkan penurunan drastis pada kinerja sistem. 4. Evidential Response. Dalam konteks klasifikasi pola, jaringan saraf dapat dirancang untuk memberikan informasi tidak hanya tentang pola yang khusus, tetapi juga kepercayaan (confidence) tentang keputusan yang dibuat. Informasi yang terakhir ini dapat digunakan untuk menolak pola ambigu, dengan demikian meningkatkan kinerja klasifikasi jaringan. 5. Contextual Information. Pengetahuan direpresentasikan oleh struktur dan aktivasi dari jaringan saraf. Setiap neuron dalam jaringan berpotensi dipengaruhi oleh aktivitas global semua neuron lain dalam jaringan. Akibatnya, informasi kontekstual ditangani dengan secara alami oleh jaringan saraf.
6. Fault Tolerance. Jaringan saraf yang diimplementasikan pada bentuk hardware, memiliki potensi untuk bersifat fault tolerant (toleran terhadap kesalahan), dalam arti bahwa kinerjanya menurun dalam kondisi operasi buruk. Contohnya, jika neuron atau link penghubung rusak, pemanggilan pola
Universitas Sumatera Utara
yang tersimpan akan terganggu kualitasnya. Berhubungan dengan sifat distribusi informasi yang tersimpan dalam jaringan, kerusakan harus segera diperbaiki sebelum respon keseluruhan jaringan menurun secara drastis. Pada prinsipnya, sebuah jaringan saraf menunjukkan penurunan dalam kinerjanya. Ada beberapa bukti empiris untuk komputasi yang kuat, tetapi biasanya hal ini tidak terkendali. Untuk memastikan bahwa jaringan saraf toleran terhadap kesalahan, mungkin perlu untuk membuat pengukuran korektif dalam merancang algoritma yang digunakan untuk melatih jaringan.
7. VLSI Implementability. Sifat dasar dari jaringan saraf tiruan yang paralel membuatnya berpotensi untuk mengkomputasikan tugas-tugas tertentu dengan cepat. Fitur yang sama ini membuat jaringan saraf tiruan tepat pada implementasi penggunaan teknologi VLSI (very large scale integrated). Salah satu manfaat dari VLSI adalah menyediakan sebuah cara untuk mendapatkan sebuah tingkah laku yang kompleks dalam sebuah kebiasaan yang hirarki. 8. Uniformity of Analysis and Design. Pada dasarnya, jaringan saraf tiruan dikenal sebagai pemroses informasi. Dikatakan demikian sama dengan notasi yang digunakan pada semua domain yang melibatkan aplikasi jaringan saraf tiruan. Fitur ini memanifestasikan dirinya dengan cara yang berbeda: a. Neuron, antara satu dengan yang lain, merepresentasikan sebuah bahan yang sama terhadap semua jaringan saraf tiruan. b. Keadaan yang sama ini membuat jaringan saraf tiruan mungkin untuk berbagi teori dan algoritma pembelajaran dalam aplikasi yang berbeda. c. Jaringan modular dapat dibangun melalui integrasi tanpa hubungan pada modul-modul. 9. Neurobiological Analogy. Rancangan jaringan saraf tiruan dianalogikan dengan otak manusia, yang merupakan bukti nyata bahwa toleransi terhadap kesalahan pada pemrosesan paralel tidak hanya mungkin tetapi juga cepat dan kuat.
Universitas Sumatera Utara
2.1.3
Struktur Dasar Jaringan Saraf Tiruan Out 1
Out m
Out 2
Internal processing
In 1
In 1
In n
Gambar 2.1 Jaringan Feedforward Gambar 2.1 diatas mengilustrasikan struktur jaringan saraf tiruan secara umum. Biasanya terdapat satu atau lebih masukan. Gambar di atas juga menunjukkan bahwa neuron input terkoneksi dengan neuron output melalui sebuah proses dalam “kotak”. Model jaringan yang sebenarnya menentukan sifat dari kotak ini. Susunan ini sangat umum, namun bukanlah satu-satunya. Beberapa model menghilangkan media penghubung dan langsung menghubungkan neuron input dengan neuron output. Dalam kasus ini, seluruh beban dari jaringan diambil alih oleh proses yang dikerjakan oleh neuron output. Model yang lain memperbolehkan neuron output terkoneksi satu sama lain sabagaimana dengan lapisan sebelumnya. Hanya model lain tidak membedakan secara jelas antara neuron input dan neuron output. Jika neuron masukan telah masuk, jaringan mengolah neuron sampai kepada sebuah kesimpulan dimana neuron input telah menjadi neuron output. Sebuah jaringan saraf tiruan biasanya dilatih dalam dua metode. Yang paling umum adalah pelatihan terbimbing (supervised training). Setiap contoh pada pelatihan ini secara lengkap menspesifikasikan semua input sebagaimana output yang diinginkan ketika input direpresentasikan. Kemudian kita memilih subset dari
Universitas Sumatera Utara
pelatihan dan merepresentasikan contoh pada subset pada jaringan pada waktu yang sama. Untuk setiap contoh, kita membandingkan output yang dihasilkan jaringan dengan output yang kita harapkan untuk dihasilkan. Setelah semua subset pelatihan telah diproses, kita memperbaharui bobot yang mengkoneksikan neuron dalam jaringan. Pembaharuan ini dilakukan dengan harapan mengurangi error pada hasil jaringan. Metode pelatihan lain adalah pelatihan tak terbimbing (unsupervised training). Sebagaimana pelatihan terbimbing, kita juga harus memasukkan contoh input. Tetapi tidak menyediakan output target untuk jaringan. Diasumsikan setiap input berasal dari kelas yang berbeda-beda, dan output jaringan adalah identifikasi dari kelas dimana input berasal. Proses dari pelatihan yaitu, menemukan fitur yang menonjol pada pelatihan dan menggunakannya untuk mengelompokkan input dalam kelas-kelas dan menemukan perbedaannya. Pelatihan tak terbimbing biasanya tidak digunakan sepopuler pelatihan terbimbing. Dan yang ketiga adalah metode pelatihan hibrid. Gabungan antara pelatihan terbimbing dan tak terbimbing. Tak terbimbing dikarenakan output target tidak dispesifikasikan. Disebut terbimbing dikarenakan pada waktu yang bersamaan, jaringan memberikan respon pada pelatihan dimana responnya baik atau buruk. Sangat sulit melatih sebuah jaringan dan langsung menggunakannya. Kompetensinya harus diuji terlebih dahulu. Proses pengujian sebuah pelatihan disebut validasi. Pelatihan digunakan untuk melatih jaringan sedangkan validasi digunakan untuk menguji jaringan yang telah dilatih. Validasi tidak dapat diangggap remeh. Dalam banyak bidang, validasi yang baik lebih penting daripada pelatihan yang baik.
Universitas Sumatera Utara
2.1.4
Arsitektur Jaringan
Menurut Fausett [3], sering kali sangat tepat memvisualisasikan neuron sebagai lapisan. Umumnya, neuron-neuron pada lapisan yang sama berkelakuan sama. Faktor kunci untuk menentukan perilaku dari sebuah neuron adalah dengan fungsi aktivasinya dan pola koneksi dengan neuron yang lain sehingga neuron dapat mengirim dan menerima sinyal. Lebih spesifik lagi, pada banyak jaringan saraf tiruan, neuron pada sebuah lapisan bisa saja terkoneksi sepenuhnya atau tidak terkoneksi sama
sekali.
Jika
setiap
neuron
pada
sebuah
lapisan
(misalkan
lapisan
tersembunyi/hidden layer) terkoneksi dengan neuron pada lapisan yang lain (misalkan lapisan output) maka setiap unit tersembunyi terkoneksi dengan setiap unit output. Penyusunan neuron pada lapisan-lapisan dan pola koneksinya dalam dan antarlapisan disebut arsitektur jaringan. Banyak jaringan memiliki lapisan input yang aktivasi dari setiap unitnya sama dengan sinyal input external. Jaringan saraf diklasifikasikan sebagai lapisan tunggal dan lapisan banyak. Dalam menentukan jumlah dari lapisan, unit input tidak terhitung sebagai lapisan karena unit tersebut tidak melakukan proses komputasi. Atau bisa dikatakan bahwa jumlah lapisan pada jaringan ditentukan berdasarkan lapisan yang berisikan bobot antar koneksi dari kumpulan neuron-neuron. Hal inilah yang mendasari bahwa bobot pada jaringan saraf berisikan informasi yang sangat penting. Sebuah lapisan adalah kumpulan dari neuron-neuron yang berbagi input yang sama. Setiap neuron pada sebuah lapisan mempunyai dendrit yang berhubungan dengan axon pada neuron pada lapisan sebelumnya. Lapisan pertama sebagai lapisan input dimana neuron tidak mempunyai dendrit. Neuron tersebut hanya sebagai placeholder atau penopang sehingga lapisan berikutnya dapat menyadap
nilai
inputnya sama dengan cara kerja lapisan berikutnya. Lapisan terakhir merupakan lapisan output. Lapisan diantara lapisan input dan lapisan output disebut lapisan tersembunyi atau “hidden layer”. Lapisan pertama hanya memberikan nilai input pada jaringan. Pada lapisan berikutnya, neuron ditugasi untuk mengidentifikasi karakter dari input [8]. Adapun jenis arsitektur jaringan yang sering dipergunakan yaitu:
Universitas Sumatera Utara
1. Jaringan berlapis tunggal Jaringan berlapis tunggal mempunyai satu lapisan bobot terkoneksi. Pada lapisan ini, unit input dapat dibedakan dengan unit output. Dimana unit input merupakan unit yang menerima sinyal dari dunia luar sedangkan unit output adalah unit dimana respon dari jaringan dapat terlihat. Pada Gambar 2.2 jelas terlihat bahwa unit input sepenuhnya terkoneksi dengan unit output, sedangkan unit input dengan masing-masing unit input tidak terkoneksi demikian juga pada antara unit output dengan unit output yang lain tidak terkoneksi.
W1j
X
Wi1
Y
Wn1 W1j
Xi
Wij
Yj
Wnj W1
X
Wim
Y
Wnm
Gambar 2.2 Topologi jaringan lapis tunggal
2. Jaringan berlapis banyak Jaringan berlapis banyak adalah jaringan dengan satu atau lebih lapisan diantara lapisan input dan lapisan output yang biasa disebut lapisan tersembunyi (hidden layer). Jaringan berlapis banyak dapat memecahkan masalah yang lebih kompleks daripada jaringan berlapis tunggal, namun pada pelatihannya akan lebih sulit. Pada beberapa kasus, pelatihan pada jaringan ini lebih baik karena memungkinkan bagi jaringan untuk memecahkan masalah yang tidak dapat
Universitas Sumatera Utara
diselesaikan jaringan berlapis tunggal karena jaringan tidak dapat dilatih untuk menampilkan secara benar.
X 1
W11
V11
Wj1
Vi1
Z1
Vn1 V1j
Xi
Y 1
Wn1
W1k
Zj
Vij
Y k
Wjk
Vnj
Wnk
V1p Vip
Z
W1m Wjm
X
Vnp Wpm
Y m
Gambar 2.3 Topologi jaringan berlapis banyak
3. Jaringan dengan lapisan kompetitif Bentuk lapisan kompetitif merupakan jaringan saraf tiruan yang sangat besar. Interkoneksi antarneuron pada lapisan ini tidak ditunjukkan pada arsitektur seperti jaringan yang lain. Prinsip dari prosesnya adalah winner-take-all atau yang menanglah yang mengambil bagiannya.
Universitas Sumatera Utara
1
1 -
A1
-
-
Ai 1
Am
-
-
-
Aj 1
Gambar 2.4 Topologi Jaringan dengan Lapisan Kompetitif
2.2
Backpropagation
Jaringan saraf tiruan backpropagation pertama kali diperkenalkan oleh Rumelhart, Hinton dan William pada tahun 1986, kemudian Rumelhart dan Mc Clelland mengembangkannya pada tahun 1988[14]. Algoritma backpropagation untuk neural network umumnya diterapkan pada perceptron berlapis banyak (multilayer perceptrons). Perceptron paling tidak mempunyai bagian input, bagian output dan beberapa lapis yang berada di antara input dan output. Lapis di tengah ini, yang juga dikenal dengan lapis tersembunyi (hidden layers), bisa satu, dua, tiga dst. Dalam praktek, banyaknya hidden layer paling banyak adalah tiga lapis. Dengan tiga lapis ini hampir semua permasalahan dalam dunia industri telah bisa diselesaikan. Output lapis terakhir dari hidden layer langsung dipakai sebagai output dari neural network. Training pada metode backpropagation melibatkan 3 tahapan: pola training feedfoward, penghitungan error dan penyesuaian bobot. Setelah training aplikasi jaringan hanya menggunakan komputasi tahapan pertama yaitu feedfoward. Walaupun tahap training sangat lambat, namun jaringan dapat mengasilkan output dengan sangat cepat. Metode backpropagation telah divariasikan dan dikembangkan untuk meningkatkan kecepatan proses training. Walaupun satu lapisan jaringan sangat
Universitas Sumatera Utara
terbatas dalam pembelajarannya, jaringan dengan lapis banyak dapat memperlajari lebih banyak lagi. Lebih dari satu lapisan tersembunyi mungkin bermanfaat untuk beberapa aplikasi, namun satu lapisan tersembunyi adalah cukup. Metode backpropagation dapat digunakan untuk melakukan pendeteksian suatu jenis penyakit, gangguan, maupun kasus yang memiliki data masa lalu dan dengan metode backpropagation target output yang diinginkan lebih mendekati ketepatan dalam melakukan pengujian karena terjadi penyesuaian nilai bobot dan bias yang semakin baik pada proses pelatihan (Kusumadewi, 2003). Bahkan, jaringan saraf tiruan telah digunakan untuk menganalisa perilaku panas pada kultur jaringan. Pada tahun 1997, prinsip plant speaking digunakan untuk memonitor perkembangan tanaman selada di phytotron dimana jaringan saraf tiruan digunakan sebagai otak untuk mengendalikan pemberian air dan unsur hara untuk pertumbuhannya[15]. Selain itu jaringan saraf tiruan dengan metode backpropagation, juga diterapkan dalam lokalisasi target through-the-wall dengan metode time reversal music dan terbukti sangat efisien secara komputasi [21]
2.2.1 Arsitektur Jaringan Backpropagation Gambar 2.5 menunjukkan jaringan saraf tiruan banyak lapis dengan satu lapisan tersembunyi (unit Z) , unit output (unit Y) dan unit tersembunyi yang juga mempunyai bias. Bias pada unit output Y k ditandai dengan w 0k , bias pada unit tersembunyi Z j ditandai dengan v 0j . Bias bertindak sebagaimana halnya bobot dimana outputnya selalu 1. Selama proses pembelajaran backpropagation, sinyal dikirim dalam arah yangberlawanan.
Universitas Sumatera Utara
Y1
w01
w11
1
v01
1
Yk
wj1
wp1
w0k
w1k
Z1
v11
Ym
wjk
wpk
w0m
w1m
Zj
vi1
vn1
v0j
v1j
X1
wjm
wpm
vip
vnp
Zp
vij
vnj
v0p
v1p
Xi
Xn
Gambar 2.5 Topologi Jaringan Backpropagation
Simbol-simbol yang digunakan ini tidaklah mutlak, bisa saja berganti dengan simbolsimbol yang lainnya asalkan fungsi logika yang dimaksudkannya tetap sama.
2.2.2 Algoritma Algoritma pelatihan jaringan backpropagation: 1. Langkah 0
: Inisialisasi bobot.
2. Langkah 1
: Selama kondisi berhenti bernilai salah, kerjakan:
a. Untuk masing-masing pasangan pelatihan, lakukan: 1) Masing-masing unit input (X i , i = 1,2,3,…,n) menerima sinyal x i dan meneruskan sinyal tersebut ke semua unit pada lapisan yang ada di atasnya (lapisan tersembunyi). 2) Masing-masing unit tersembunyi (Z j , j = 1,2,3,..p) menjumlahkan sinyal-sinyal input berbobot: Z_in j = v 0j +
X i v ij
v0 = bias ; v = bobot
Universitas Sumatera Utara
Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: Z j = (Z_in j ) Kirimkan sinyal tersebut ke semua unit lapisan atasnya (unit-unit output). 3) Masing-masing unit output (Y k , k=1,2,3,…,m) menjumlah sinyalsinyal input berbobot: Y_in k = w 0k +
Z j w jk
w0 = bias ; v = bobot
Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: Y k = (Y_in k ) Dan kirimkan sinyal tersebut ke semua unit di lapisan sisanya (unitunit output). b. Untuk masing-masing pasangan pelatihan, lakukan: Backpropagation (perambatan mundur): 1) Masing-masing unit output (Y k ,k = 1,2,3,…,m) menerima target pola yang berhubungan dengan pola input pembelajaran, hitung informasi errornya δ k = (t k – Y k )
’ (Y_in k ) t = target output
Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperoleh nilai w jk ): Δw jk = αδ k Z j α = learning rate Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai w 0k ): Δw 0k = αδ k Kirimkan ini ke unit-unit yang ada di lapisan bawahnya. 2) Masing-masing unit tersembunyi (Z j , j=1,2,3,…,p) menjumlahkan delta inputnya (dari unit-unit yang berada pada lapisan diatasnya): δ_in j =
δ k w jk
Kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi error:
Universitas Sumatera Utara
δ j = δ_in j
(Z_in j )
Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai v ij ): Δv ij = αδ k X i Hitung koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai v ij ) Δv 0j = αδ j c. Perbaharui bobot dan biasnya: 1) Masing-masing unit output (Y k , k=1,2,3,…m) memperbaiki bias dan bobotnya (j = 1,2,3,…p): w jk (baru) = w jk (lama) + Δw jk w 0k (baru) = w 0k (lama) + Δw 0k
(bobot) (bias)
2) Masing-masing unit tersembunyi (Z j , j=1,2,3,…p) memperbaiki bias dan bobotnya (l = 0,1,2,3,…n): v ij (baru) = v ij (lama) + Δv ij
(bobot)
v 0j (baru) = v 0j (lama) + Δv 0j
(bias)
d. Tes kondisi berhenti. Setelah algoritma pelatihan di atas dilakukan, dan didapat output yang paling mendekati target, maka bobot dan bias akhir dari pelatihan disimpan dan dilakukan proses pengujian. Algoritma pengujian jaringan backpropagation: 1. Langkah 0 : inisialisasi bobot (dari algoritma pelatihan) 2. Langkah 1 : untuk setiap vektor masukan, lakukan langkah 2-4. 3. Langkah 2 : for i=1...n: atur aktivasi unit masukan x
4. Langkah 3 : for j=1...p Z_in j = v 0j +
X i v ij
Z j = (Z_in j ) 5. Langkah 4 : for k=1..m:
Universitas Sumatera Utara
Y_in k = w 0k + Y k = (Y_in k ) 6. Langkah 5 : jika Y k ≥ 0.5 maka Y k = 1, else Y k = 0.
Sekali pelatihan subset dengan pembaharuan bobot jaringan disebut epoch. Banyaknya contoh pada subset disebut epoch size/ukuran epoch. Beberapa peneliti menggunakan sebuah epoch bernilai satu yang berarti bobot diperbaharui setelah setiap kasus pelatihan ditampilkan. Ketika ukuran epoch lebih kecil dari seluruh pelatihan, maka subset dipilih secara acak setiap waktunya atau gangguan bisa saja terjadi. Epoch pelatihan diulang sampai hasil dari jaringan memuaskan atau sampai waktunya berakhir. Keterangan: 1. x
input pelatihan, x = (x 1 . . .x i . . .x n )
2. t
output target, t = (t 1 . . .t k . . .t m )
3. δ k
penyesuaian bobot dari koreksi error untuk w jk yang disebabkan oleh
error pada unit output Y k yang dipropagasikan kembali terhadap lapisan tersembunyi. 4. δ j
penyesuaian bobot dari koreksi error untuk v ij yang disebabkan oleh
propagasi balik dari informasi error dari lapisan output terhadap lapisan tersembunyi Z j . 5. α
periode pembelajaran / learning rate.
6. x i
input unit i. Untuk unit input, sinyal input dan sinyal output adalah
sama, yaitu x i . 7. v oj
bias pada unit tersembunyi j.
8. Z j
unit tersembunyi j.
9. w 0k
bias pada unit output k.
10. Y k
unit output k.
2.2.3
Fungsi Aktivasi
Universitas Sumatera Utara
Fungsi aktivasi pada jaringan backpropagation harus mempunyai beberapa karakteristik penting, berlanjut (continue), dapat dibedakan, dan tidak meningkat secara monoton. Demi keefisiensian komputasi, diharapkan turunan dari fungsi tersebut mudah untuk dikomputasikan. Fungsi diharapkan memenuhi pendekatan nilai maksimum dan nilai minimum. Fungsi-fungsi aktivasi yang umum di gunakan menurut Fausett[2] adalah:
1. Fungsi Identitas Fungsi identitas disebut juga sebagai fungsi linear. Fungsi linear memiliki nilai output yang sama dengan nilai inputnya. y = x
Gambar 2.6 Fungsi Identitas (Linear)
f x x
untuk semua harga x
Fungsi ini biasanya digunakan pada unit input untuk memberi nilai awal harga setiap unitnya.
2. Fungsi Tangga Binary Fungsi tangga binary atau Fungsi Hard Limit
Universitas Sumatera Utara
Gambar 2.7 Fungsi Tangga Binary Neural network berlapis tunggal sering menggunakan fungsi tangga untuk mengkonversi unit input, di mana nilai variabelnya bersifat kontinu yang menghasilkan nilai output bernilai biner (yaitu 1 atau 0) atau bipolar (1 atau -1). Fungsi tangga binary ini juga dikenal sebagai fungsi threshold atau fungsi heaviside. 1 y 0
jika jika
x x
3. Fungsi Symetric Hard Limit Berfungsi mengkonversikan input dari suatu variabel yang bernilai kontinyu ke suatu output berupa nilai 1,0 atau -1. 1 y 1
jika jika
x0 x0
Gambar 2.8 Fungsi Symetric Hard Limit.
4. Fungsi Sigmoid Binary Fungsi sigmoid (kurva dengan bentuk S) adalah fungsi aktivasi yang berguna. Fungsi sigmoid yang umum adalah fungsi logistik dan fungsi tangent hyperbolic. Kedua fungsi ini bermanfaat khususnya untuk penggunaan neural network karena hubungan yang sederhana antara nilai fungsi pada sebuah point dan nilai dari derivatif pada point itu mengurangi hambatan komputasi selama training.
Universitas Sumatera Utara
Gambar 2.9 Fungsi Sigmoid Binary.
Untuk fungsi logistik yang memiliki range 0 sampai 1, sering di gunakan untuk menghasilkan output yang diinginkan bernilai binary atau berada pada interval 0 dan 1. Fungsi dengan range ini juga dikenal dengan binary sigmoid.
f x
1 1 exp x
f ' x f x 1 f x
5. Fungsi Sigmoid Bipolar Fungsi sigmoid bipolar adalah fungsi logistik yang memiliki range output dari -1 sampai 1.
Gambar 2.10 Fungsi Sigmoid Bipolar.
g x 2 f x 1
1 1 1 exp x
1 exp x
1 exp x
g ' x
1 g x 1 g x 2
Universitas Sumatera Utara
Fungsi bipolar sigmoid erat kaitannya dengan fungsi tangent hyperbolic, yang sering juga di gunakan sebagai fungsi aktivasi ketika range output yang di inginkan bernilai -1 sampai dengan 1.
6. Fungsi Saturating Linear
Fungsi dirumuskan sebagai berikut:
1 y x 0.5 0
jika x 0.5 jika 0.5 x 0.5 jika
x 0.5
Gambar 2.11 Fungsi saturating linear. 7. Fungsi Symetric Saturating Linear
Fungsi dirumuskan sebagai berikut:
1 y x 1
jika x 1 jika 1 x 1 jika x 1
Gambar 2.12 Fungsi Symetric Saturating Linear
Universitas Sumatera Utara
8. Fungsi Invers Sigmoid Bipolar
Fungsi merupakan invers Sigmoid Bipolar umum dipakai untuk recurrent network misal model jaringan Hopfield (Haykin,1999).
Gambar 2.13 Fungsi Invers Sigmoid Bipolar
9. Fungsi Tangent Hyperbolic
h x
exp x exp x
exp x exp x 1 exp 2 x
1 exp 2 x
h ' x 1 h x 1 h x
2.2.4 Bobot dan Bias
Pemilihan bobot dan bias akan mempengaruhi apakah jaringan mencapai error minimum global atau error minimum lokal, dan bagaimana mengatasinya dengan cepat. Pembaharuan bobot antara dua unit bergantung pada turunan aktivasi fungsi unit di atasnya dan aktivasi fungsi unit di bawahnya. Dalam hal ini, sangat penting menghindari pemilihan bobot dan bias yang membuat fungsi aktivasi atau turunannya mendekati nol. Nilai inisialisasi bobot tidak dapat terlalu besar atau sinyal input terhadap unit tersembunyi atau unit output akan jatuh di wilayah dimana turunan fungsi sigmoid mempunyai nilai yang sangat kecil. Dengan kata lain, jika inisialisasi
Universitas Sumatera Utara
bobot terlalu kecil, input jaringan terhadap unit tersembunyi dan unit output akan mendekati nol dan menyebabkan proses pembelajaran yang sangat lambat. Prosedur yang umum untuk menginisialisasi bobot dan bias adalah dengan membuat nilai acak dengan range -0,5 dan 0,5 atau -1 dan 1 atau interval lain yang sesuai. Nilai bobot mungkin saja positif atau negatif karena nilai akhirnya setelah pelatihan dapat berubah tanda. Modifikasi sederhana untuk inisialisasi acak dikembangkan oleh Nguyen dan Widrow. Pada inisialisasasi Nguyen dan Widrow, modifikasi inisialisasi bobot secara acak biasanya menghasilkan pelatihan yang lebih cepat. Pendekatannya berdasarkan analisi geometris respon neuron tersembunyi terhadapt sebuah input, analisis dilanjutkan pada kasus untuk beberapa input dengan menggunakan tranfromasi fourier. Bobot dari unit tersembunyi terhadap unit output (dan bias pada unit output) diinisialisasikan dengan acak antara nilai -0.5 dan 0.5. Inisialisasi bobor dari unit input ke unit tersembunyi dirancang untuk meningkatkan kemampuan unit tersembunyi untuk belajar diselesaikan dengan mendistribusikan bobot dan bias sehingga untuk setiap pola input berada dalam rentang dimana neuron tersembunyi akan belajar dengan cepat. Definisi yang digunakan adalah:
n
jumlah unit input
p
jumlah unit tersembunyi
β
faktor skala
β = 0.7 (p)1/n = 0.7 n
Prosedur terdiri dari langkah berikut:
Untuk setiap unit tersembunyi (j = 1,...,p):
Universitas Sumatera Utara
Inisialisasikan vektor bobot dari unit input: v ij (lama) = jumlah acak antara -0.5 dan 0.5 (atau antara –γ dan γ) v ij (lama) = inisialisasi ulang bobot:
Set bias: v 0j = nilai acak antara –β dan β. Analisis Nguyen dan Widrow didasarkan pada fungsi aktivasi
2.2.5
Lapisan Tersembunyi dan Neuron Tersembunyi
Tidak ada alasan yang teoritis yang menyatakan untuk menggunakan lebih dari dua lapisan tersembunyi. Masalah penggunaan lebih dari dua lapisan tersembunyi dapat kita temukan pada konsisi kehidupan nyata. Masalah yang sering terjadi adalah pelatihan seringkali berjalan sangat lambat ketika menggunakan lebih lapisan tersembunyi, hal ini disebabkan oleh dua efek: 1. Lapisan tambahan dimana error harus dipropagasikan kembali membuat gradient semakin tidak stabil. Keberhasilan dari algoritma optimisasi gradient terarah tergantung pada tingkat dimana gradient tidak berubah sebagaimana bobot pada jaringan saraf tiruan. 2. Periode iterasi yang sangat besar akan membuat proses terhenti pada minimum lokal dan berulang-ulang.
Universitas Sumatera Utara
Satu lapisan tersembunyi harus menjadi pilihan pertama dalam merancang jaringan saraf tiruan. Jika dengan neuron tersembunyi yang sangat banyak tidak memuaskan
dalam
memecahkan
masalah,
kemudian
menggunakan
lapisan
tersembunyi yang kedua dan mengurangi neuron tersembunyi menjadi solusi bagi permasalahan. Menentukan banyaknya neuron tersembunyi merupakan hal yang sangat penting. Menggunakan neuron yang sangat sedikit akan membuat jaringan kekurangan sumber daya pada saat memecahkan masalah. Menggunakan neuron terlalau banyak akan membuat waktu pelatihan menjadi sangat lama dan akan mengakibatkan masalah yang disebut overfitting. Salah satu cara untuk menentukan jumlah neuron tersembunyi adalah dengan aturan piramida geometris. Dimana jumlah neuron mengikuti bentuk piramida dengan menurunnya jumlah input terhadap output. Diilustrasikan pada Gambar 2.14. Output = m
Hidden =
Input = n
Gambar 2.14 Ilustrasi Paramida Geometris
Pendekatan yang terbaik untuk menentukan jumlah optimal neuron yang akan dipergunakan dalam jaringan adalah komsumsi waktu. Mulai dengan jumlah neuron
Universitas Sumatera Utara
yang sangat kecil. Latih dan uji jaringan sesuai dengan tampilannya. Kemudian tingkatkan jumlahnya, latih dan uji kembali. Ulangi sampai error yang dihasilkan sangat kecil. Jika validasi mudah diperoleh, kita mungkin akan mencoba menaikkan jumlah neuron, dengan perhitungan pada validasi akan mengingatkan akan terjadinya overfitting. Jaringan juga bisa saja mengalami overtraining, dimana terjadi kelebihan pelatihan pada jaringan. Ada beberapa alasan mengapa kita harus membatasi pelatihan pada jaringan: 1. Hal itu memperbaiki gejala bukan penyakitnya. Mengurangi jumlah neuron pada titik dimana jaringan tidak mempunyai kapasitas untuk memperlajari hal aneh yang terjadi, atau meningkatkan ukuran dan jenis pelatihan dan penyakitnya disembuhkan. 2. Jangan melupakan bahwa pelatihan dimulai dengan inisialisasi bobot secara acak. Kita dapat menghentikan pelatihan sebelum waktunya, kita mungkin telah memperoleh apa yang ingin kita ketahui, atau mungkin saja belum. Untuk setiap pelatihan neuron tersembunyi, membangkitkan inisialisasi bobot acak dapat diabaikan. Kemudian membangkitkan lebih banyak lagi bobot acak dan latih. Ketika pengulangan ini telah cukup dikerjakan namun gagal meningkatkan daya guna jaringan lagi, kita dapat dengan yakin bahwa jaringan telah dilatih dengan sangat baik. Kemudian periksa dengan proses validasi. Jika setelah semua pelatihan daya guna pada saat validasi lebih buruk daripada saat pelatihan atau ada terlalu banyak neuron tersembunyi, maka jaringan tidak overtrained.
Universitas Sumatera Utara