modul - keseluruhan updated

Upload: mitbal

Post on 21-Jul-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Workshop Jaringan Neural Buatan

PENDAHULUAN

SEJARAH Pengembangan jaringan neural buatan (JNB) sudah dimulai pada sekitar 50 tahun yang lalu. Pengembangan ini didorong oleh keinginan untuk lebih memahami organ otak sekaligus mencoba meniru sebagian keunggulannya. Kemajuan dalam bidang neurobiologi memungkinkan para peneliti untuk membangun model-model matematika dari sel-sel syaraf untuk mensimulasikan perilaku jaringan syaraf. Model neuron yang pertama diperkenalkan oleh McCulloch dan Pitts (1943). Hebb (1949) mengusulkan sebuah aturan pembelajaran yang menjelaskan bagaimana sebuah jaringan sel-sel syaraf belajar. Kemudian Rosenblatt (1958) menemukan algoritma pembelajaran perceptron, serta Widrow dan Hoff mengusulkan varian dari pembelajaran perceptron yang disebut aturan Widrow-Hoff. Kemudian, pada tahun 1969, Minsky dan Papert (1969) menunjukkan keterbetasan teoritis dari jaringan neural lapis tunggal (single-layer neural networks) sehingga menyebabkan penurunan riset dalam bidang ini. Tetapi, pada tahun 1980-an, pendekatan JNB kembali hidup dimulai dari Hopfield (1982) yang memperkenalkan ide minimisasi energi dalam fisika ke dalam JNB. Pada pertengahan dekade tersebut, algoritma propagasi-balik (backpropagation) yang dikembangkan Rumelhart, Hinton dan Williams memberikan pengaruh besar tidak hanya bagi riset-riset JNB, bahkan bagi ilmu komputer, kognitif dan biologi yang lebih luas. Algoritma ini menawarkan solusi untuk pembelajaran jaringan neural lapis-banyak (multi-layer neural networks) sehingga dapat mengatasi keterbatasan jaringan neural lapis tunggal. Kesuksesan pendekatan ini ditunjukkan oleh sistem NETTalk yang dikembangkan Sejnowski dan Rosenberg (1987), yakni suatu sistem yang melakukan konversi teks bahasa Inggris menjadi suara bicara manusia. PEMROSESAN INFORMASI NEURAL (NEURAL INFORMATION PROCESSING) Neuron-neuron biologis memancarkan sinyal elektrokimia pada jalur-jalur syaraf. Setiap neuron menerima sinyal-sinyal dari neuron lain melalui sambungan khusus yang disebut synapses. Sebagian sinyal input cenderung menyebabkan neuron

1

Workshop Jaringan Neural Buatan

tereksitasi; sementara sebagian yang lain justru menghalanginya. Ketika efek kumulatif dari sinyal tersebut melebihi suatu batas threshold, neuron yang bersangkutan akan menembakkan sinyal ke neuron lainnya. Jaringan neural buatan merupakan sistem pemrosesan informasi yang memiliki karakteristik serupa dengan jaringan neural biologis di atas. Setiap neuron buatan menerima satu set input. Setiap input dikalikan dengan sebuah bobot (weight) yang bersesuaian dengan kekuatan synapsis. Jumlahan seluruh input berbobot tersebut menentukan kemungkinan neuron untuk menembakkan sinyal. Nilai ini yang disebut level aktivasi (activation level). Secara matematis, untuk suatu neuron, setiap input Xi yang dimodulasikan oleh sebuah bobot Wi sehingga jumlah total input adalah:

i

X iWi . Atau dalam bentuk vektor, X W di mana X = [X1, X2, , Xn] dan W =

[W1, W2, , Wn].

X1W

X2 ...

1

W

2

Y

Wn

Xn Y = X 1W1 + X 2W2 + + X nWn

Gambar 1. Model komputasi JNB Total sinyal input tersebut kemudian diproses oleh sebuah fungsi aktivasi (activation function) untuk menghasilkan sinyal output, yang jika tidak nol, akan ditransmisikan sebagai keluaran. Dengan demikian, suatu JNB dicirikan dari tiga hal: 1. pola hubungan antara elemen-elemen sederhananya, yakni neuron; 2. metode penentuan bobot koneksi tersebut; 3. fungsi aktivasinya.

2

Workshop Jaringan Neural Buatan

Suatu jaringan neural buatan dimodelkan dalam suatu himpunan nodes dan arrows. Sebuah node mewakili sebuah neuron dan sebuah arrow mewakili sebuah hubungan/koneksi di mana sinyal mengalir di antara neuron. Pada setiap koneksi inilah diasosiasikan sebuah nilai bobot. Sebagian nodes berhubungan dengan masukan sistem dan sebagian lain terhubung dengan keluaran sistem untuk pemrosesan informasi. Perilaku dinamis dari JNB digambarkan oleh suatu persamaan diferensial atau persamaan diferensi yang menggambarkan bagaimana bobot koneksi jaringan berubah dari waktu ke waktu. Representasi pertama mengasumsikan variabel waktu yang kontinyu dan dapat digunakan untuk simulasi jaringan pada komputer analog, sementara yang kedua menggunakan variabel waktu diskrit dan biasanya dipakai untuk melakukan simulasi jaringan pada komputer digital. JNB memecahkan masalah dengan pembelajaran dan pengorganisasian secara mandiri. Intelegensinya didapatkan dari perilaku kolektif mekanisme komputasi yang sederhana. JNB menawarkan kelebihan-kelebihan: Akuisisi pengetahuan di bawah derau (noise) dan ketidakpastian (uncertainty): JNB dapat melakukan generalisasi, abstraksi dan ekstraksi sifat-sifat statistik dari data. Representasi pengetahuan yang fleksibel: JNB membuat representasinya sendiri dengan pengorganisasian mandiri. Pemrosesan pengetahuan yang efisien: JNB dapat melakukan komputasi secara paralel, yang dikenal parallel-distributed processing atau PDP. Toleransi kesalahan: Dengan representasi pengetahuan terdistribusi dan pengkodean informasi yang redundan, kinerja sistem tidak menurun drastis berkaitan dengan responsnya terhadap kesalahan (faults/errors). JARINGAN NEURAL BUATAN UNTUK PENGENALAN POLA JNB dapat mengenali, mengklasifikasikan, mengkonversi dan mempelajari pola-pola, seperti yang disampaikan pada workshop ini. Sebuah pola (pattern) merupakan deskripsi kualitatif atau kuantitatif dari sebuah objek atau konsep atau kejadian. Sebuah kelas pola (pattern class) adalah sebuah himpunan pola yang memiliki sifat-sifat yang serupa. Pengenalan pola (pattern recognition) merujuk kepada kategorisasi data masukan ke dalam kelas-kelas yang teridentifikasi dengan mengenali ciri-ciri atau atribut-atribut signifikan dari data tersebut.

3

Workshop Jaringan Neural Buatan

Dalam teori pengenalan pola tradisional, sebuah pola diwakili oleh sebuah vektor ciri n-dimensi (n-dimensional feature vector) atau sebuah titik dalam ruang ndimensi. Vektor ciri merupakan vektor dari nilai-nilai ciri yang disusun dalam suatu urutan tertentu. Contohnya, satu orang dapat digambarkan sebagai vektor dari [usia, tinggi badan, berat badan]. Dalam pendekatan JNB, sebuah pola direpresentasikan dengan sebuah himpunan nodes bersama level aktivasinya. FUNGSI-FUNGSI AKTIVASI Fungsi aktivasi merupakan fungsi yang menentukan level aktivasi, yakni keadaan internal sebuah neuron dalam JNB. Keluaran aktivasi ini biasanya dikirim sebagai sinyal ke beberapa neuron lainnya. Adalah penting bahwa sebuah neuron hanya dapat mengirim sinyal satu kali dalam satu waktu, meskipun sinyal tersebut dapat dikirim sekaligus ke beberapa neuron lainnya. Seperti di atas, operasi dasar dari sebuah neuron buatan melibatkan penjumlahan sinyal input berbobotnya dan menerapkan hasil jumlahan itu ke sebuah fungsi aktivasi. Untuk unit input yang berhubungan dengan input dari sistem secara keseluruhan, fungsi aktivasinya adalah fungsi identitas. Sementara biasanya terdapat fungsi aktivasi lain yang sama digunakan pada seluruh neuron pada semua lapisan lainnya, meskipun ini tidak mutlak. Fungsi-fungsi aktivasi yang digunakan antara lain: Fungsi Identitas f ( x ) = x, untuk semua x .

Fungsi ini biasanya digunakan pada neuron-neuron lapisan input dari sistem. Artinya aktivasi dari neuron-neuron input biasanya sama dengan inputnya itu sendiri, yang dalam hal ini merupakan input dari sistem secara keseluruhan.

4

Workshop Jaringan Neural Buatan

f(x)

x

Gambar 2. Fungsi identitas Fungsi Tangga Biner (Binary Step Function) 1, if x f ( x) = 0, if x < di mana adalah suatu nilai threshold. Jaringan lapis tunggal sering menggunakan fungsi tangga ini untuk mengubah input bersih (net input), yang merupakan variabel kontinu, menjadi output berupa nilai biner (0 atau 1). Nilai threshold di sini menjadi garis pemisah antara daerah dengan respons aktivasi positif dan daerah dengan respons aktivasi negatif. Fungsi tangga biner sering disebut juga sebagai fungsi threshold atau fungsi Heaviside.f(x)

1

0

x

Gambar 3. Fungsi tangga biner Fungsi Tangga Bipolar 1, if x f ( x) = 1, if x <

5

Workshop Jaringan Neural Buatan

di mana adalah suatu nilai threshold. Fungsi tangga bipolar serupa dengan fungsi tangga biner. Hanya saja, fungsi tangga bipolar memiliki daerah hasil {-1, 1}.

f(x) 1

x

-1

Gambar 4. Fungsi tangga bipolar

Fungsi Sigmoid Biner Fungsi sigmoid (kurva berbentuk S) ternyata cukup berguna. Fungsi logistik dan fungsi tangen hiperbolik merupakan fungsi sigmoid yang paling sering digunakan. Fungsi-fungsi tersebut terutama memiliki kelebihan dalam melatih JNB menggunakan algoritma propagasi-balik karena hubungan yang sederhanan antara nilai fungsi pada suatu titik dengan nilai turunannya, sehingga mengurangi biaya komputasi selama pembelajaran. Fungsi logistik adalah fungsi sigmoid dengan daerah hasil pada interval 0 sampai dengan 1. Fungsi ini khususnya digunakan sebagai fungsi aktivasi untuk JNB di mana nilai outputnya biner atau terletak pada interval 0 sampai dengan 1. Fungsi ini disebut juga fungsi sigmoid biner karena daerah hasilnya terletak pada interval 0 sampai dengan 1. f ( x) = 1 , 1 exp( x )

di mana merupakan parameter kecuraman (steepness parameter) yang diberikan. Umumnya nilai dipilih sama dengan 1. Fungsi ini memiliki turunan pertama: f ( x ) = f ( x ) [1 f ( x ) ]

6

Workshop Jaringan Neural Buatan

f(x) 1

x

Gambar 5. Fungsi sigmoid biner

Fungsi Sigmoid Bipolar Fungsi sigmoid biner bisa diskalakan sehingga memiliki daerah hasil pada sembarang interval sesuai dengan permasalahan yang diberikan. Yang paling umum adalah daerah hasil dari -1 sampai dengan 1. Fungsi hasil proses skala ini disebut fungsi sigmoid bipolar, sesuai dengan daerah hasilnya. Jika f(x) adalah fungsi sigmoid biner, maka fungsi sigmoid bipolarnya: g ( x) = 2 f ( x) 1 2 = 1 1 + exp( x ) 1 exp( x ) = 1 + exp( x ) dengan sebagai parameter kecuraman, yang biasanya dipilih sama dengan 1. Turunan pertama fungsi ini adalah: g ( x) =

[1 + g ( x ) ] [1 g ( x ) ] 2Perhatikan bahwa fungsi sigmoid bipolar ini berhubungan dengan fungsi

hiperbolik tangen: exp( x ) exp( x ) exp( x ) + exp( x ) 1 exp( 2 x ) = 1 + exp( 2 x ) h ( x ) = [1 + h( x ) ] [1 h( x ) ] h( x ) =

7

Workshop Jaringan Neural Buatan

f(x) 1

x

-1

Gambar 6. Fungsi sigmoid bipolar

APLIKASI-APLIKASI JARINGAN NEURAL BUATAN DI DUNIA NYATA Pemrosesan sinyal (Signal Processing) Salah satu aplikasi komersial pertama dari JNB adalah untuk menekan gangguan (noise) pada saluran telepon. JNB yang digunakan adalah Adaline. Aplikasi ini didasari oleh kebutuhan akan penghilang gema adaptif sejalan dengan pengembangan hubungan satelit antar benua untuk sirkuit telepon jarak jauh. Idenya sederhana. Di ujung saluran jarak jauh, sinyal yang datang dimasukkan ke dua modul, yakni komponen sistem telepon (disebut hybrid)dan filter adaptif berupa JNB-Adaline. Perbedaan antara keluaran dua modul tersebut dijadikan sebagai tingkat kesalahan (error) yang digunakan untuk melakukan penyesuaian atas bobotbobot dalam Adaline. Di sini Adaline dilatih untuk menghilangkan noise (gema) dari sinyal keluaran modul hybrid. Sistem Kendali Salah satu contoh aplikasi JNB pada sistem kendali adalah untuk memberikan arah-arah kemudi kepada sebuah truk trailer yang akan menaikkan muatan trailer kontainernya ke anjungan bongkar muat. Informasi yang ada adalah posisi kepala truk, posisi bagian belakang trailer, posisi anjungan yang tetap, serta sudut antara truk dengan trailernya. Solusi JNB untuk masalah ini menggunakan dua modul: emulator dan kontroler. Emulator melakukan pembelajaran untuk menghitung posisi baru truk jika

8

Workshop Jaringan Neural Buatan

diberikan posisi sekarang dan sudut kemudinya. Truk bergerak dengan laju tetap. Modul ini mempelajari bagaimana rasa dari respon truk terhadap berbagai sinyal kemudi, seperti halnya seorang pengemudi belajar hal tersebut. Emulator memiliki beberapa unit tersembunyi dan dilatih menggunakan algoritma propagasi-balik. Modul kontroler menjalani pembelajaran setelah emulator selesai dilatih, untuk memberikan deretan sinyal kemudi yang tepat kepada truk agar trailer dapat masuk ke anjungan, dari sembarang posisi awal (jika sebuah solusi memungkinkan). Di sini awalnya, truk dapat berada dalam posisi berhadapan dengan anjungan, posisi membelakangi anjungan atau pada berbagai sudut terhadap anjungan. Serta terdapat berbagai kemungkinan sudut antara kepala truk dengan trailernya. Proses pembelajaran ini dilakukan dengan algoritma propagasi-balik berulang. Pengobatan Aplikasi JNB dalam dunia pengobatan, salah satunya adalah Instant Physician. Idenya adalah melatih sebuah jaringan neural memori auto-asosiatif (autoassociative memory neural network) untuk menyimpan sejumlah besar catatan medis, di mana setiap catatan memuat informasi mengenai gejala-gejala, diagnosadiagnosa dan perawatan untuk suatu kasus tertentu. Setelah pembelajaran, JNB dapat diaplikasikan pada input yang terdiri dari sekumpulan gejala. JNB tersebut kemudian akan mencari diagnosis dan perawatan yang terbaik. Kinerjanya ternyata cukup baik dengan struktur yang sederhana. Ketika kumpulan gejala tertentu terjadi dalam himpunan pelatihan, bersamaan dengan suatu diagnosa dan perawatan yang unik, JNB-nya akan memberikan diagnosa dan perawatan yang sama. Dalam kasus-kasus di mana terdapat ambiguitas dalam data pelatihan, JNB-nya akan memberikan diagnosa dan perawatan yang paling umum. Dalam situasi-situasi sederhana, JNB-nya akan memberikan suatu perawatan yang berhubungan dengan gejala-gejala yang sudah pernah dilihat sebelumnya, tanpa peduli gejala-gejala lain yang terlihat sekarang. Pembangkitan Suara (Speech Production) Membaca teks bahasa Inggris secara keras merupakan hal yang sulti, karena pengucapan suatu huruf tergantung kepada konteks di mana huruf tersebut muncul. Pendekatan tradisional untuk masalah ini adalah dengan mengkonstruksikan sebuah

9

Workshop Jaringan Neural Buatan

himpunan aturan (rules) untuk pengucapan standar untuk berbagai kelompok huruf beserta sebuah tabel look-up untuk pengecualian-pengecualian yang ada. Pendekatan JNB untuk masalah di atas yang paling terkenal adalah NETTalk, suatu JNB lapis-banyak. Berlawanan dengan perlunya membuat aturan-aturan dan tabel look-up untuk pengecualian, NETalk cukup membutuhkan sebuah himpunan contoh-contoh dari input tertulis beserta pengucapan yang benar untuk input tersebut. Input tertulis tersebut memasukkan baik huruf yang sedang diucapkan dan tiga huruf sebelum dan setelahnya (untuk memberikan konteks). Simbol-simbol tambahan digunakan untuk menandai akhir kata atau jeda. JNB ini dilatih menggunakan 1000 kata yang paling umum dalam bahasa Inggris. Setelah pembelajaran, ternyata JNB tersebut dapat membaca kata-kata baru dengan sangan sedikit kesalahan. Kesalahankesalahan yang terjadi adalah sedikit salah pengucapan, sedangkan intelligibility dari suara bicara yang dihasilkan cukup baik. Pengenalan Suara (Speech Recognition) Salah satu JNB yang digunakan untuk melakukan pengenalan suara yang independen terhadap pembicaranya adalah self-organized map dari Kohonen. Kohonen sendiri menyebut JNB-nya sebagai phonetic typewriter. Unit-unit outputnya disusun dalam sebuah larik 2-dimensi (persegi atau heksagonal). Input JNB-nya didasarkan pada segmen-segmen pendek sepanjang beberapa milidetik dari bentuk gelombang suara bicara. Bersamaan dengan pengelompokan yang dilakukan JNB, potongan-potongan (clusters) yang dibentuk diposisikan sedemikian hingga contoh-contoh suara berbeda dari suatu ucapan yang sama akan muncul pada unit-unit keluaran yang berdekatan dalam larik keluaran. Setelah sinyal input suara bicara dipetakan ke dalam daerah-daerah fonem (ucapan) tanpa perlu menginformasikan apa itu fonem kepada jaringan, unit-unit output dapat dihubungkan dengan tombol mesin ketik yang sesuai untuk membentuk mesin ketik fonetik. Karena korespondensi antara fonem dengan huruf tertulis sangat teratur dalam bahasa Finlandia (di mana JNB ini dikembangkan), maka ejaan yang diperoleh sering kali benar. Pengenalan Pola (Pattern Recognition)

10

Workshop Jaringan Neural Buatan

Salah satu aplikasi JNB di bidang ini adalah pengenalan karakter tulisan tangan. Problem ini merupakan contoh yang bagus dari pemrosesan informasi yang dapat dilakukan manusia dengan cukup mudah. JNB lapis-banyak seperti jaringan propagasi-balik sudah digunakan untuk mengenali kode pos yang ditulis dengan tangan. Pendekatan alternatif adalah menggunakan JNB neocognitron. JNB ini memiliki beberapa lapisan tersembunyi dengan masing-masing memiliki pola koneksi yang sangat terstruktur antara suatu lapisan dengan lapisan yang berikutnya. Namun di sini pembelajaran dilakukan sebagai proses lapis-demi-lapis, yang dikhususkan untuk aplikasi tersebut saja.

11

Workshop Jaringan Neural Buatan

METODE PEMBELAJARANSebelum suatu Jaringan Neural Buatan (JNB) digunakan untuk

mengklasifikasikan pola, terlebih dahulu dilakukan proses pembelajaran untuk menentukan struktur jaringan, terutama dalam penentuan nilai bobot. Dalam bagian ini akan dijelaskan beberapa metode pembelajaran yaitu metode Hebb, Perceptron, Adaline/Madaline, Backpropagation, Self Organizing Map (SOM), dan Learning Vector Quantization (LVQ). Pada umumnya suatu jaringan diberi nama sesuai dengan metode pembelajaran yang digunakan. 1. HEBB Jaringan Hebb adalah jaringan neural buatan yang mempunyai aturan pembelajaran yang sederhana. Hebb mengusulkan bahwa pembelajaran dilakukan dengan memodifikasi bobot dimana jika 2 neuron yang terhubung adalah on dalam waktu yang sama, maka bobot diantara keduanya harus ditingkatkan. Metode ini kemudian dikembangkan dengan menambah satu prinsip lainnya yaitu bobot juga akan ditingkatkan bila kedua neuron off dalam waktu yang sama. Karakteristik Jaringan Hebb mempunyai karakteristik sebagai berikut : Jaringan lapis tunggal o Jaringan terdiri dari satu atau lebih unit masukan dan satu unit keluaran. o Mempunyai sebuah bias yang berperilaku seperti bobot yang bisa disesuaikan yang terletak pada koneksi dari sebuah unit yang selalu mengeluarkan sinyal +1 agar bobot bias bisa dilatih seperti bobot lainnya dengan proses yang sama dalam algoritma pelatihan. Fungsi aktivasi Fungsi yang digunakan adalah fungsi identitas, artinya keluaran layer input sama dengan masukannya. F(y_in) = y_in Arsitektur Arsitektur jaringan Hebb ditunjukkan pada gambar 1. Pada jaringan ini, terdapat n unit masukan, yaitu X1, , Xi, , Xn dengan bobot w1, , wi, , wn, dan sebuah (1)

12

Workshop Jaringan Neural Buatan

unit keluaran, yaitu Y. Selain itu, terdapat sebuah unit yang selalu memberikan sinyal +1 dimana bobotnya diberi nama bias (b).1 X1 w1 wi wn b

...Xi Y

...Xn

Gambar 1. Arsitektur Hebb

Algoritma Pembelajaran Untuk melatih jaringan, dilakukan langkah-langkah berikut ini : Langkah 0. Inisialisasi seluruh bobot wi = 0 i = 1, 2, , n Langkah 1. Untuk setiap pasangan vektor masukan pelatihan dan target keluaran, s:t (s adalah vektor masukan pelatihan dan t adalah vektor target keluaran), lakukan langkah 2-4 Langkah 2. Set aktivasi untuk unit masukan : xi = si y=t Langkah 4. Sesuaikan bobot untuk wi (new) = wi (old) + xi y Sesuaikan bias : b(new) = b(old) + y i = 1, 2, , n Perlu dicatat bahwa bias disesuaikan sama seperti sebuah bobot dari sebuah unit yang keluaran sinyalnya selalu +1. Perubahan bobot dapat juga diekspresikan dalam bentuk vektor sebagai wi (new) = wi (old) + xy Hal ini sering ditulis dalam bentuk perubahan bobot, w, sebagai w = xy sehingga wi (new) = wi (old) + w (4) (3) (2) i = 1, 2, , n i = 1, 2, , n Langkah 3. Set aktivasi untuk unit keluaran :

13

Workshop Jaringan Neural Buatan

Algoritma Pengujian Untuk menguji suatu masukan, dilakukan langkah-langkah berikut ini : Langkah 0. Inisialisasi bobot (digunakan nilai bobot yang diperoleh dari algoritma pelatihan) Langkah 1. Untuk setiap vektor masukan x, lakukan langkah 2-4 Langkah 2. Set nilai aktifasi dari unit masukan, i = 1, ., n x i = si Langkah 3. Hitung total masukan ke unit keluaran y _ in = b +

i

xiwi

Langkah 4. Gunakan fungsi aktifasi F(y_in) = y_in Dimana nilai F(y_in) menjadi nilai keluaran dari unit keluaran (Y). 2. PERCEPTRON Aturan pembelajaran perceptron mempunyai kemampuan yang lebih baik daripada aturan pembelajaran Hebb dalam memecahkan permasalahan. Dengan beberapa asumsi, diantaranya adalah bobot yang ingin dicari harus ada, Perceptron dapat selalu menemukan bobot yang sesuai. Dimana bobot yang sesuai ialah bobot jaringan yang dapat menghasilkan keluaran yang benar untuk setiap pola masukan pelatihan. Karakteristik Jaringan Perceptron mempunyai karakteristik sebagai berikut : Jaringan lapis tunggal o Terdiri dari satu atau lebih unit masukan dan satu unit keluaran. o Mempunyai sebuah bias yang berperilaku seperti bobot yang bisa disesuaikan yang terletak pada koneksi dari sebuah unit yang selalu mengeluarkan sinyal +1 agar bobot bias bisa dilatih seperti bobot lainnya dengan proses yang sama dalam algoritma pelatihan. Fungsi aktivasi Fungsi yang biasa digunakan adalah fungsi tangga bipolar dengan suatu nilai batas tetap ()

14

Workshop Jaringan Neural Buatan

y _ in > 1 jika f ( y _ in ) = 0 jika y_in 1 jika y _ in < sesuai dengan formula wi (new) = wi (old) + t xi

(5)

Apabila kesalahan terjadi untuk suatu pola masukan pelatihan, bobot akan diubah (6)

dimana nilai target t adalah +1 atau 1 dan adalah laju pembelajaran. Jika kesalahan tidak terjadi, maka bobot tidak akan diubah. Pelatihan akan dilakukan terus sampai tidak ada kesalahan yang terjadi. Arsitektur Arsitektur jaringan Perceptron ditunjukkan pada gambar 1. Pada jaringan ini, terdapat n unit masukan, yaitu X1, , Xi, , Xn dengan bobot w1, , wi, , wn, dan sebuah unit keluaran, yaitu Y. Selain itu, terdapat sebuah unit yang selalu memberikan sinyal +1 dimana bobotnya diberi nama bias (b).1

X1Xi Xn

w1wi

b

Gambar 2. Arsitektur Perceptron untuk melakukan klasifikasi 1 kelas

Tujuan dari jaringan dengan arsitektur seperti pada gambar 2 adalah untuk mengklasifikasi setiap pola masukan, apakah termasuk atau tidak termasuk ke dalam suatu kelas. Bila termasuk maka unit keluaran akan menghasilkan respon +1, dan bila tidak termasuk maka unit keluaran akan menghasilkan respon -1. Algoritma Pelatihan Untuk melatih jaringan, dilakukan langkah-langkah berikut ini : Langkah 0. Inisialisasi seluruh bobot dan bias (Agar sederhana, set bobot dan bias menjadi 0) Set laju pembelajaran (0 < 1)) (Agar sederhana, bisa diset menjadi 1)

... ...

Y

wn

15

Workshop Jaringan Neural Buatan

Langkah 1. Selama kondisi berhenti adalah salah, lakukan langkah 2-6 Langkah 2. Untuk setiap pasangan pelatihan s :t, lakukan langkah 3-5 Langkah 3. Set aktifasi dari unit masukan x i = si Langkah 4. Hitung respon dari unit keluaran y _ in = b +

i

xiwi y _ in > y_in y _ in <

1 jika y = 0 jika 1 jika Jika y t , maka

Langkah 5. Sesuaikan bobot dan bias jika kesalahan terjadi untuk pola ini wi (new) = wi (old) + t xi b (new) = b (old) + t jika tidak, maka wi(new) = wi(old) b(new) = b(old) Langkah 6. Tes kondisi berhenti : Jika masih ada bobot yang berubah pada langkah 2, kembali ke langkah 1; Jika tidak, kembali ke langkah 2. Algoritma Pengujian Setelah pelatihan, sebuah jaringan perceptron bisa digunakan untuk mengklasifikasi pola masukan. Langkah-langkah pengujian adalah sebagai berikut Langkah 0. Inisialisasi bobot (digunakan nilai bobot yang diperoleh dari algoritma pelatihan) Langkah 1. Untuk setiap vektor masukan x, lakukan langkah 2-4 Langkah 2. Set nilai aktifasi dari unit masukan, i = 1, ., n xi = si Langkah 3. Hitung total masukan ke unit keluaran y _ in = b +

i

xiwi

Langkah 4. Gunakan fungsi aktifasi

16

Workshop Jaringan Neural Buatan

y _ in > 1 jika f ( y _ in ) = 0 jika y_in 1 jika y _ in < Dimana nilai f(y_in) menjadi nilai keluaran dari unit keluaran (Y). 3. ADALINE Adaline (Adaptive Linear Neuron) dikembangkan oleh Widrow dan Hoff pada tahun 1960. Adaline dilatih dengan menggunakan aturan delta, yang juga dikenal sebagai aturan least mean squares (LMS) atau Widrow-Hoff. Karakteristik Jaringan Adaline mempunyai karakteristik sebagai berikut : Jaringan lapis tunggal o Jaringan terdiri dari satu atau lebih unit masukan dan satu unit keluaran. o Mempunyai sebuah bias yang berperilaku seperti bobot yang bisa disesuaikan yang terletak pada koneksi dari sebuah unit yang selalu mengeluarkan sinyal +1 agar bobot bias bisa dilatih seperti bobot lainnya dengan proses yang sama dalam algoritma pelatihan. o Beberapa jaringan Adaline yang menerima sinyal dari unit masukan yang sama dalam dikombinasikan menjadi sebuah jaringan lapis tunggal seperti perceptron. o Beberapa Adaline juga bisa dikombinasikan sehingga keluaran dari sebagian Adaline menjadi masukan untuk Adaline yang lain, dan akan membentukan jaringan lapis banyak yang disebut Madaline (Many Adaptive Linear Neuron). Fungsi aktivasi Fungsi yang digunakan adalah fungsi tangga 1 jika F( y _ in ) = 1 jika Arsitektur Arsitektur jaringan Adaline ditunjukkan pada gambar 3. Pada jaringan ini, terdapat n unit masukan, yaitu X1, , Xi, , Xn dengan bobot w1, , wi, , wn, y _ in 0 y _ in < 0 (7)

17

Workshop Jaringan Neural Buatan

dan sebuah unit keluaran, yaitu Y. Selain itu, terdapat sebuah unit yang selalu memberikan sinyal +1 dimana bobotnya diberi nama bias (b).

1 X1 w1 wi wn b

Gambar 3. Arsitektur Adaline

...Xi Y

...Xn

Algoritma Pembelajaran Langkah 0. Inisialisasi bobot (biasanya digunakan bilangan acak yang kecil) Set laju pembelajaran (0,1 n 1, dimana n adalah jumlah unit masukan) Langkah 1. Selama syarat henti salah, lakukan langkah 2-6 Langkah 2. Untuk setiap pasangan pelatihan (masukan dan target) bipolar s:t, lakukan langkah 3-5 Langkah 3. Set nilai aktifasi dari unit masukan, i = 1, ., n xi = si Langkah 4. Hitung total masukan ke unit keluaran y _ in = b +

i

xiwi

Langkah 5. Perbarui bobot dan bias, i = 1, ., n b(new) = b(old) + (t y_in) wi(new) = wi(old) + (t y_in) xi Langkah 6. Uji syarat henti : Jika perubahan bobot ( (t y_in)) terbesar yang terjadi dalam langkah 2 adalah lebih kecil dari toleransi () yang telah ditentukan, maka selesai; jika tidak maka kembali ke langkah 1 Nilai toleransi () yang digunakan adalah 1 < 0.

18

Workshop Jaringan Neural Buatan

Dalam menentukan nilai laju pembelajaran (), umumnya digunakan nilai yang kecil (misalkan = 0.1). Apabila nilai terlalu besar, proses pembelajaran tidak akan konvergen. Jika terlalu kecil nilai yang dipilih, pembelajaran akan menjadi terlalu lambat. Agar praktis, kisaran nilai yang bisa dipilih adalah 0,1 n 1 dimana n adalah jumlah unit masukan. Algoritma Pengujian Setelah pelatihan, sebuah jaringan Adaline bisa digunakan untuk mengklasifikasi pola masukan. Bila nilai target adalah bivalen (biner atau bipolar), fungsi tangga bisa digunakan sebagai fungsi aktivasi dari unit keluaran. Prosedur umum ini adalah langkah-langkah yang digunakan apabila target adalah bipolar : Langkah 0. Inisialisasi bobot (digunakan nilai bobot yang diperoleh dari algoritma pelatihan) Langkah 1. Untuk setiap vektor masukan x, lakukan langkah 2-4 Langkah 2. Set nilai aktifasi dari unit masukan, i = 1, ., n xi = si Langkah 3. Hitung total masukan ke unit keluaran y _ in = b +

i

xiwi

Langkah 4. Gunakan fungsi aktifasi 1 jika F( y _ in ) = 1 jika y _ in 0 y _ in < 0

Dimana nilai F(y_in) menjadi nilai keluaran dari unit keluaran (Y). 4. MADALINE Madaline (Many Adaptive Linear Neuron) merupakan kombinasi dari beberapa Adaline yang diatur sedemikian rupa sehingga membentuk jaringan lapis banyak. Karakteristik Jaringan Madaline mempunyai karakteristik sebagai berikut : Jaringan lapis banyak Fungsi aktivasi

19

Workshop Jaringan Neural Buatan

Fungsi aktivasi digunakan untuk menghitung sinyal keluaran dari setiap jaringan Adaline yang membentuk jaringan Madaline. Dimana Fungsi yang digunakan adalah fungsi tangga 1 jika F( y _ in ) = 1 jika Arsitektur Arsitektur Madaline tergantung kepada kombinasi Adaline yang digunakan. Pada gambar 4 ditunjukkan sebuah Madaline sederhana yang mempunyai 2 Adaline tersembunyi dan sebuah Adaline keluaran. Keluaran dari 2 Adaline tersembunyi, Z1 dan Z2, ditentukan oleh sinyal yang berasal dari unit masukan yang sama yaitu X1 dan X2. Penggunaan lapisan tersembunyi, Z1 dan Z2, memberikan kemampuan komputasi jaringan yang tidak ditemukan pada jaringan lapis tunggal, tetapi juga menyebabkan pelatihan menjadi lebih rumit. Persamaan (8) digunakan sebagai fungsi aktivasi oleh setiap unit keluaran Adaline (Z1, Z2, dan Y).1 b1 X1 w11 w12 w21 X2 w22 b2 1 Z2 Z1 v1 v2 1 b3 Y

y _ in 0 y _ in < 0

(8)

Gambar 4. Arsitektur Madaline dengan 2 Adaline tersembunyi dan sebuah Adaline keluaran

Algoritma Pembelajaran Terdapat 2 macam algoritma pembelajaran untuk Madaline yang disebut MRI dan MRII. Dalam algoritma MRI, hanya bobot-bobot pada Adaline tersembunyi saja yang disesuaikan, sedangkan bobot pada unit keluaran nilainya tetap. Pada algoritma MRII terdapat metode untuk menyesuaikan seluruh bobot dalam jaringan. Untuk menjelaskan langkah-langkah dalam MRI dan MRII, digunakan contoh arsitektur Madaline yang terdapat pada gambar 4. Algoritma MRI

20

Workshop Jaringan Neural Buatan

Pada MRI, bobot v1 dan v2 serta bias b3, yang memberikan sinyal masukan ke unit keluaran Y, ditentukan sedemikian rupa sehingga respon dari unit Y adalah 1 jika sinyal Z1 atau/dan Z2 adalah 1, dan adalah -1 jika Z1 dan Z2 mengirimkan sinyal -1. Dengan kata lain, unit Y melakukan fungsi logika OR terhadap sinyal yang diterima dari Z1 dan Z2. Sehingga bobot-bobot yang menuju ke Y adalah : v1 = 1 2 , v2 = 1 2 , b3 = 1 2

Bobot pada Adaline tersembunyi pertama (w11 dan w21) dan bobot pada Adaline tersembunyi kedua (w12 dan w22) disesuaikan menurut langkah-langkah berikut ini : Fungsi aktivasi untuk unit Z1, Z2, dan Y adalah 1 jika f (x) = 1 jika Langkah 0. Inisialisasi bobot Set bobot v1, v2 dan b3 menggunakan nilai yang telah dijelaskan sebelumnya. Set bobot lainnya (w11, w21, w12, w22, b1, dan b2) menggunakan bilangan acak kecil. Set laju pembelajaran dengan bilangan acak kecil (0,1 n 1, dimana n adalah jumlah unit masukan). Langkah 1. Selama syarat henti salah, lakukan langkah 2-8 Langkah 2. Untuk setiap pasangan pelatihan (masukan dan target) bipolar s:t, lakukan langkah 3-7 Langkah 3. Set aktifasi dari unit masukan, i = 1, ., n xi = si Langkah 4. Hitung masukan jaringan ke setiap unit Adaline tersembunyi z_in1 = b1 + x1 w11 + x2 w21 z_in2 = b2 + x1 w12 + x2 w22 Langkah 5. Tentukan keluaran dari setiap unit Adaline tersembunyi z1 = f(z_in1) z2 = f(z_in2) Langkah 6. Tentukan keluaran dari jaringan y_in = b3 + z1 v1 + z2 v2 y = f(y_in) x 0 x< 0

21

Workshop Jaringan Neural Buatan

Langkah 7. Tentukan kesalahan dan penyesuaian bobot : Jika t = y, tak ada penyesuaian bobot. Sebaliknya, jika t = 1, maka sesuaikan bobot pada ZJ, yaitu unit yang masukan jaringannya paling mendekati 0, bJ(new) = bJ(old) + (1 z_inJ) wiJ(new) = bJ(old) + (1 z_inJ) jika t = -1, maka sesuaikan bobot pada seluruh unit Zk yang memiliki masukan jaringan yang positif, bk(new) = bk(old) + (-1 z_ink) wik(new) = wik(old) + (-1 z_ink) xi Langkah 8. Uji syarat henti. Jika tidak ada perubahan bobot (atau telah mencapai level yang cukup), atau jika telah mencapai lanjutkan. Algoritma MRII Pada aturan pembelajaran ini, seluruh bobot dari setiap lapisan dalam jaringan akan dilatih. Langkah-langkah yang dilakukan adalah sebagai berikut : Langkah 0. Inisialisasi bobot Set laju pembelajaran dengan bilangan acak kecil (0,1 n 1, dimana n adalah jumlah unit masukan). Langkah 1. Selama syarat henti salah, lakukan langkah 2-8 Langkah 2. Untuk setiap pasangan pelatihan (masukan dan target) bipolar s:t, lakukan langkah 3-7 Langkah 3. Set aktifasi dari unit masukan, i = 1, ., n xi = si Langkah 4. Hitung masukan jaringan ke setiap unit Adaline tersembunyi z_in1 = b1 + x1 w11 + x2 w21 z_in2 = b2 + x1 w12 + x2 w22 Langkah 5. Tentukan keluaran dari setiap unit Adaline tersembunyi z1 = f(z_in1) jumlah maksimum dari iterasi perubahan bobot (pada langkah 2), maka berhenti; jika tidak

22

Workshop Jaringan Neural Buatan

z2 = f(z_in2) Langkah 6. Tentukan keluaran dari jaringan y_in = b3 + z1 v1 + z2 v2 y = f(y_in) Langkah 7. Tentukan kesalahan dan sesuaikan bobot jika perlu : Jika t y, lakukan langkah 7a-b untuk setiap unit tersembunyi yang masukan jaringannya adalah cukup dekat dengan 0 (katakan, antara 0,25 dan 0,25). Mulai dengan unit yang masukan jaringannya adalah paling dekat dengan 0, lalu untuk yang paling dekat berikutnya, dan seterusnya. Langkah 7a : Ubah keluaran unit (dari +1 menjadi 1, atau sebaliknya) Langkah 7b : Hitung kembali respon dari jaringan. Jika kesalahan berkurang : Sesuaikan bobot pada unit ini (gunakan nilai keluaran yang baru sebagai target dan lakukan aturan Delta). Langkah 8 : Uji syarat henti. Jika tidak ada perubahan bobot (atau telah mencapai level yang cukup), atau jika telah mencapai lanjutkan. Algoritma Pengujian Setelah pelatihan, sebuah jaringan Madaline bisa digunakan untuk mengklasifikasi pola masukan. Bila nilai target adalah bivalen (biner atau bipolar), fungsi tangga bisa digunakan sebagai fungsi aktivasi dari unit keluaran. Prosedur umum ini adalah langkah-langkah yang digunakan apabila target adalah bipolar : Langkah 0 : Inisialisasi bobot (digunakan nilai bobot yang diperoleh dari algoritma pelatihan) Langkah 1 : Untuk setiap jaringan Adaline, lakukan langkah 2-5 Langkah 2 : Untuk setiap vektor masukan x, lakukan langkah 2-4 Langkah 3 : Set nilai aktifasi dari unit masukan, i = 1, ., n xi = si jumlah maksimum dari iterasi perubahan bobot (pada langkah 2), maka berhenti; jika tidak

23

Workshop Jaringan Neural Buatan

Langkah 4 : Hitung total masukan ke unit keluaran y _ in = b +

i

xiwi

Langkah 5 : Gunakan fungsi aktivasi Dimana nilai F(y_in) menjadi nilai keluaran dari unit keluaran jaringan. 5. BACKPROPAGATION Keterbatasan jaringan neural lapis tunggal menyebabkan penurunan minat dalam JNB pada tahun 1970-an. Pada sekitar tahun 1985 minat tersebut mulai bangkit kembali setelah penemuan metode pembelajaran yang efektif untuk jaringan neural lapis banyak. Jaringan Propagasi-Balik dikembangkan oleh Rumelhart, Hinton dan Williams dan dipopulerkan pada buku Parallel Distributed Processing (Rumelhart and McLelland, 1986). Prinsip dasar algoritma propagasi-balik memiliki tiga fase: o Fase feedforward pola input pembelajaran o Fase kalkulasi dan backpropagation error yang didapat. o Fase penyesuaian bobot. Arsitektur yang digunakan adalah jaringan perceptron lapis banyak (multilayer perceptrons). Hal ini merupakan generalisasi dari arsitektur perceptron lapis tunggal (single-layer perceptron). Secara umum, algoritma jaringan ini membutuhkan waktu pembelajaran yang memang lambat, namun setelah pembelajaran/pelatihan selesai, aplikasinya akan memberikan output yang sangat cepat. Karakteristik Jaringan Backpropagation mempunyai karakteristik sebagai berikut : Jaringan lapis banyak o Terdiri dari satu lapisan unit-unit masukan, satu atau lebih lapisan tersembunyi dan satu lapisan unit keluaran. Arsitektur jaringannya pada dasarnya serupa dengan perceptron, namun memiliki lapisan tersembunyi (hidden layers), sehingga disebut multi-layer perceptrons. o Setiap neuron pada suatu lapisan dalam jaringan Propagasi-Balik mendapat sinyal masukan dari semua neuron pada lapisan sebelumnya beserta satu sinyal bias.

24

Workshop Jaringan Neural Buatan

Fungsi aktivasi o Fungsi aktivasi untuk jaringan propagasi-balik harus memiliki beberapa karakteristik : kontinyu, dapat didiferensiasikan, dan monoton tidak turun. Juga lebih diinginkan demi efisiensi komputasi, turunan fungsinya juga mudah dihitung. Biasanya, fungsinya diharapkan untuk bersaturasi atau mendekati maksimum dan minimumnya secara asimtotik. o Fungsi yang sering digunakan adalah : fungsi sigmoid biner (range : [0,1]), f ( x) = dengan turunannya, f ' ( x) = f ( x) [ 1 f ( x) 2 1 1 + e x 1 1 + e x (9)

]

(10)

fungsi sigmoid bipolar (range : [-1,1]), f ( x) = dengan turunannya, f ' ( x) = 1 [1 + f ( x)] [1 f ( x)] 2 (12) (11)

25

Workshop Jaringan Neural Buatan

1

1

vv 00j p vX1

01k w 00 m w

w

01

v1 1v1j

Z1

w1 1w1k

Y1

v 1p

w 1m

...

...

v i1Xi

w j1Zj

vijvip

wjkwjm

v

n1

w

v nj

Xn

vn p

p1

w pkZp

wp m

Gambar 5. Arsitektur Backpropagation

Arsitektur Suatu jaringan neural lapis-banyak (MLP) dengan satu lapis tersembunyi ditunjukkan oleh gambar 5. Pada gambar tersebut, lapis masukan (input layer) ditunjukkan oleh unit-unit Xi, sementara lapis keluaran (output layer) ditunjukkan oleh unit-unit Yk. Lapis tersembunyi (hidden layer) ditunjukkan oleh unit-unit Zj. Dalam hal ini, lapis tersembunyi dapat terdiri lebih dari satu lapisan. Bias untuk suatu unit output Yk, diberikan oleh w0k. Bias ini bertindak seolah sebagai bobot pada koneksi yang berasal dari suatu unit/neuron yang keluarannya selalu 1. Unit-unit tersembunyi juga dapat memiliki bias. Aliran sinyal pada gambar dinyatakan dengan arah panah. Sedangkan, pada fase propagasi-balik, sinyal dikirim pada arah yang berlawanan.

Algoritma o Algoritma ini didasarkan pada aturan error-correction learning rule. Pelatihannya terdiri dari tiga tahap: proses pelatihan pola masukan secara feedforward;

26

...Yk Ym

Workshop Jaringan Neural Buatan

penghitungan dan propagasi-balik dari error yang didapat; penyesuaian bobot.

o Penerapan JNB cukup dengan melibatkan proses feedforward-nya saja. o Algoritma ini mengasumsikan hanya terdapat satu lapisan tersembunyi (hidden layer) saja. Untuk jaringan dengan lebih dari satu lapisan tersembunyi, algoritma di bawah cukup dimodifikasikan sedikit. Pada algoritma di bawah, pada fase feedforward langkah 4 dilakukan berulang-ulang untuk setiap lapisan tersembunyi dengan menganggap sinyal masukan terbobot berasal dari unit di lapisan sebelumnya. Sedangkan pada fase backpropagation, langkah 7 dilakukan berulang-ulang untuk setiap lapisan tersembunyi. Pada dasarnya satu lapisan tersembunyi sudah cukup untuk sembarang pemetaan kontinyu dari pola input ke pola output pada sembarang tingkat akurasi. Meskipun, dua lapis tersembunyi bisa membuat pembelajaran lebih mudah pada beberapa situasi. o Algoritma Pembelajaran Langkah 0. Inisialisasi bobot (biasanya digunakan nilai acak yang kecil) Set laju pembelajaran Langkah 1. Selama syarat henti salah, lakukan langkah 2 9 Langkah 2. Untuk setiap pasangan pelatihan (masukan dan target), lakukan langkah 3 8. Feedforward: Langkah 3. Setiap unit masukan (Xi, i = 1, , n) menerima sinyal masukan xi dan meneruskannya ke seluruh unit pada lapisan di atasnya (hidden units). Langkah 4. Setiap unit tersembunyi (Zj, j = 1, , p) menghitung total sinyal masukan terbobot, z _ in j = v0 j +n

i= 1

xi vij ,

lalu menghitung sinyal keluarannya dengan fungsi aktivasi, z j = f ( z _ in j ) ,

27

Workshop Jaringan Neural Buatan

dan mengirimkan sinyal ini ke seluruh unit pada lapisan di atasnya (lapisan output). Langkah 5. Setiap unit output (Yk, k = 1, , m) menghitung total sinyal masukan terbobot, y _ in k = w0 k +p

j= 1

x j w jk ,

lalu menghitung sinyal keluaran dengan fungsi aktivasi, y k = f ( y _ in k ) . Backpropagation of error: Langkah 6. Setiap unit output (Yk, k = 1, , m) menerima sebuah pola target yang sesuai dengan pola masukan pelatihannya. Unit tersebut menghitung informasi kesalahan,

k = ( t k yk ) f ' ( y _ ink )kemudian menghitung koreksi bobot (digunakan untuk mengubah wjk nanti), w jk = k z j dan menghitung koreksi bias w0 k = k , serta mengirimkan nilai k

ke unit pada lapisan di bawahnya.

Langkah 7. Setiap unit tersembunyi (Zj, j = 1, , p) menghitung selisih input (dari unit-unit pada layer di atasnya),m

_ in j =

k= 1

k w jk ,

lalu mengalikannya dengan turunan fungsi aktivasi untuk menghitung informasi errornya,

j

= _ in j f ' ( z _ in j ) ,

selanjutnya menghitung koreksi bobot untuk mengubah vij nanti, vij = j xi , dan menghitung koreksi biasnya, v 0 j = j . Perubahan bobot dan bias:

28

Workshop Jaringan Neural Buatan

Langkah 8. Setiap unit output (Yk, k = 1, , m) mengubah bias dan bobotbobotnya (j = 0, , p): w jk (new) = w jk (old ) + w jk . Setiap unit tersembunyi (Zj, j = 1, , p) mengubah bias dan bobotnya (i = 1, , n): vij (new) = vwij (old ) + vij Langkah 9. Uji syarat henti : Jika besar total squared-error

n

k=1

(t k y k ) 2 lebih kecil dari

toleransi yang telah ditentukan atau jumlah epoh pelatihan sudah mencapai epoh maksimum, maka selesai; jika tidak maka kembali ke langkah 1 Nilai toleransi ( ) yang digunakan adalah 1 < 0 . o Algoritma Pengujian Langkah 0. Inisialisasi bobot (digunakan nilai bobot yang diperoleh dari algoritma pelatihan) Langkah 1. Untuk setiap vektor masukan x, lakukan langkah 2-4 Langkah 2. Set nilai aktivasi dari unit masukan, i = 1, ., n x i = si Langkah 3. Untuk j = 1, , p z _ in j = v0 j +n

i= 1

xi vij ,

z i = f ( z _ in j ) . Langkah 4. Untuk k = 1, , m y _ in k = w0 k +

m

j= 1

z j w jk ,

y k = f ( y _ in k ) . o Pemilihan bobot awal dan bias Pemilihan bobot awal mempengaruhi apakah jaringan akan mencapai error minimum global (atau lokal), dan jika tercapai, seberapa cepat konvergensinya.

29

Workshop Jaringan Neural Buatan

Update bobot tergantung pada fungsi aktivasi unit yang lebih

dalam (pemberi sinyal input) dan turunan fungsi aktivasi unit yang lebih luar (penerima sinyal input), sehingga perlu dihindari pemilihan bobot awal yang menyebabkan keduanya bernilai 0. Jika menggunakan fungsi sigmoid, nilai bobot awal tidak boleh terlalu besar karena dapat menyebabkan nilai turunannya menjadi sangat kecil (jatuh di daerah saturasi). Sebaliknya juga tidak boleh terlalu kecil, karena dapat menyebabkan net input ke unit tersembunyi atau unit output menjadi terlalu dekat dengan nol, yang membuat pembelajaran terlalu lambat. Di sini diberikan dua contoh model inisialisasi bobot dan bias. Inisialisasi Acak. Bobot dan bias diinisialisasi nilai acak antara -0.5 dan 0.5 (atau antara -1 dan 1, atau pada interval lain yang sesuai). Inisialisasi Nguyen-Widrow. Cara ini memberikan laju pembelajaran yang lebih cepat. Berikut contohnya untuk arsitektur dengan satu lapis tersembunyi. o o (1). Bobot dari unit/neuron tersembunyi ke unit/neuron Bobot dari neuron input ke neuron tersembunyi Set : output diinisialisasi dengan nilai acak antara -0.5 dan 0.5. diinisalisasi sebagai berikut : n = jumlah unit input p = jumlah unit tersembunyi = faktor skala = 0.7 ( p ) 1 / n = 0.7 (2). lakukan (3) (6). (3). (4). (5). = 1, , n) : Untuk i = 1, , n (semua unit input), vij(old) Hitung nilai norm ||vj(old)||. Inisialisasi ulang bobot-bot dari unit input (i = bilangan acak antara -0.5 dan 0.5 (atau antara dan ).n

p.

Untuk setiap unit tersembunyi (j = 1, , p).

30

Workshop Jaringan Neural Buatan

(6). Contoh A

Set bias : v0j = bilangan acak antara dan .

6. SELF ORGANIZING MAP (SOM) Jaringan SOM ini disebut juga topology-preserving maps, yang mengasumsikan suatu struktur topologis di antara unit-unit output/cluster. Sifat ini teramati pada otak, namun tidak ditemukan pada jaringan neural buatan lainnya. Jaringan tipe ini pertama dikembangkan oleh Kohonen dan merupakan salah satu jaringan neural berdasarkan mekanisme kompetisi. Prinsipnya, vektor bobot untuk suatu unit cluster merupakan wakil dari polapola input untuk cluster tersebut. Pada proses self-organization, unit cluster yang vektor bobotnya paling dekat dengan vektor input, dipilih sebagai pemenang. Kemudian update bobot dilakukan oleh unit pemenang bersama unit-unit tetangganya sesuai dengan radius topologinya. Misalnya untuk topologi linear dengan m unit cluster, neighborhood unit pemenang J dengan radius R, terdiri dari seluruh unit j yang memenuhi: max(1, J R) j min(J + R, m). Karakteristik Jaringan SOM mempunyai karakteristik sebagai berikut : Jaringan lapis tunggal tanpa hidden layers o Terdiri dari satu lapis input dengan satu lapis output untuk komputasi. o Lapis output (unit-unit cluster) disusun menurut suatu topologi tertentu, misalnya linear, persegi (rectangular) atau heksagonal. o Dalam lapisan output setiap unit/neuronnya merepresentasikan satu kelas atau cluster tertentu. o Untuk suatu topologi yang dipilih, diberikan suatu parameter tetangga topologis (topological neighborhood parameter) berupa radius tertentu. Parameter radius ini menentukan batas neighborhood dari suatu unit pemenang, di mana semua unit dalam batas tersebut mengalami perubahan bobot. Fungsi aktivasi

31

Workshop Jaringan Neural Buatan

Fungsi yang digunakan adalah fungsi identitas, artinya keluaran layer input sama dengan masukannya. Arsitektur

Gambar 6. Arsitektur Self Organizing Map (SOM)

Arsitektur jaringan self-organized map ditunjukkan pada gambar 6. Di situ terdapat n unit input dengan m unit output. Setiap unit output merepresentasikan satu kelas atau cluster untuk klasifikasi. Di sini lapisan output dipandang memiliki suatu topologi tertentu misalnya seperti pada gambar-gambar berikut. Pada gambar 7, unit-unit output menyusun suatu topologi linear. Di sini ditunjukkan neighborhoods untuk unit-unit dengan R = 0 (lingkaran garis penuh), R = 1 (garis putus-putus) dan R = 2 (garis titik-titik). Pada gambar 8, unit-unit output menyusun suatu topologi segi empat (persegi atau rectangular) dengan 49 unit output. Di sini ditunjukkan neighborhoods untuk unit-unit dengan R = 0 (lingkaran garis penuh), R = 1 (garis putus-putus) dan R = 2 (garis titik-titik).

Gambar 7. Topologi Linear

32

Workshop Jaringan Neural Buatan

Gambar 8. Topologi Persegi (Rectangular)

Gambar 9. Topologi Heksagonal

Pada gambar 9, unit-unit output menyusun suatu topologi segi enam (hexagonal) dengan 49 unit output. Di sini ditunjukkan neighborhoods untuk unit-unit dengan R = 0 (lingkaran garis penuh), R = 1 (garis putus-putus) dan R = 2 (garis titiktitik). Algoritma Pembelajaran Langkah 0. Inisialisasi bobot Definisikan parameter tetangga topologis (topological neighborhood parameters) : tipe topologi, dan radius dalam topologinya.

33

Workshop Jaringan Neural Buatan

Set laju pembelajaran Langkah 1. Selama syarat henti salah, lakukan langkah 2 8 Langkah 2. Untuk setiap vektor masukan x, lakukan langkah 3 5. Langkah 3. Untuk setiap j, hitung: D( j ) =

(wi

ij

xi ) .2

Langkah 4. Cari unit/neuron pemenang dengan mencari suatu indeks J sedemikian rupa sehingga D(J) minimum. Langkah 5. Untuk setiap unit/neuron j dalam neighborhood dari J, dan untuk semua i: wij ( new) = wij ( old ) + ( xi wij ( old ) )

Langkah 6. Lakukan perubahan pada laju pembelajaran. Langkah 7. Kurangi radius dari topological neighborhood pada saat-saat tertentu. Langkah 8. Uji syarat berhentinya. Jika terpenuhi, maka selesai, jika tidak, proses diulangi dari langkah 2. Algoritma Pengujian Langkah 0. Inisialisasi bobot dengan bobot yang didapat dari pembelajaran. Set parameter tipe topologi dan radiusnya. Langkah 1. Untuk setiap vektor masukan x, lakukan langkah 2 3. Langkah 2. Untuk setiap j, hitung: D( j ) =

(wi

ij

xi ) .2

Langkah 3. Cari neuron cluster pemenang dengan cara mencari suatu indeks J sedemikian rupa sehingga D(J) minimum. Hasilnya, vektor masukan x diklasifikasikan ke cluster terpilih ini.

7. LEARNING VECTOR QUANTIZATION (LVQ) Learning vector quantization yang dikembangkan oleh Kohonen (1989) merupaakn suatu metode klasifkasi pola di mana setiap unit output merepresentasikan suatu kelas atau kategori (beberapa unit output dapat digunakan untuk setiap kelas). Vektor bobot untuk suatu unit output sering dirujuk sebagai vektor reference (atau codebook) untuk kelas yang direpresentasikan unit output tersebut. Diasumsikan

34

Workshop Jaringan Neural Buatan

bahwa satu set pola pembelajaran dengan klasifikasi yang diketahui, diberikan pada jaringan, bersama dengan distribusi awal dari vektor reference-nya. Setelah pembelajaran, jaringan LVQ mengklasifikasikan suatu vektor input dengan memasukkannya pada kelas yang sama dengan unit output yang vektor bobot-nya paling dekat ke vektor input. Karakteristik Jaringan LVQ mempunyai karakteristik sebagai berikut : Jaringan lapis tunggal tanpa hidden layers o Memiliki arsitektur jaringan yang serupa dengan Kohonen Self-Organized Map tanpa adanya asumsi topologi tertentu. o Terdiri dari satu lapis input dengan satu lapis output untuk komputasi. o Dalam lapisan output setiap unit/neuronnya merepresentasikan suatu kelas atau cluster tertentu. Fungsi aktivasi Fungsi yang digunakan adalah fungsi identitas, artinya keluaran layer input sama dengan masukannya.Y1

...w w n1i1

Yj

...ww1m w im

Ym

w 1j

nj

w11

wi j

X1

...

Xi

...

Gambar 10. Arsitektur Learning Vector Quantization (LVQ)

Arsitektur Arsitektur jaringan LVQ (terdapat pada gambar 10) serupa dengan jaringan selforganized map, namun di sini tidak diasumsikan suatu bentuk topologi tertentu. Di sini dari setiap unit output, kelas yang direpresentasikannya sudah diketahui.

Algoritma

35

wnmXn

Workshop Jaringan Neural Buatan

o Motivasi algoritma LVQ adalah untuk mendapatkan unit output yang terdekat dengan vektor masukan. Menuju bagian akhirnya, jika x dan w berada pada kelas yang sama, maka bobot digerakkan ke arah vektor masukan yang baru tersebut ; jika sebaliknya, x dan w berada pada kelas yang berbeda, maka bobot digerakkan menjauhi vektor masukan tersebut. o Notasi yang digunakan : x T wj Cj ||x wj|| : vektor pelatihan (x1, , xi, , xn) : kategori atau kelas yang benar untuk vektor : vektor bobot untuk unit output ke-j (w1j, , wij, , wnj) : kateogir atau kelas yang diwakili oleh unit output ke-j. : jarak Euclidean antara vektor input dengan (vektor

pelatihannya.

bobot untuk) unit output ke-j. o Algoritma Pembelajaran Langkah 0. Inisialisasi reference vectors (dibahas di bawah). Set laju pembelajaran Langkah 1. Selama syarat henti salah, lakukan langkah 2 6 Langkah 2. Untuk setiap vektor masukan pelatihan x, lakukan langkah 3 4. Langkah 3. Cari J, sedemikian hingga ||x wj|| minimum. Langkah 4. Update wj sebagai berikut : Jika T = Cj, maka wj(new) = wj(old) + [x wj(old)] ; Jika T Cj, maka wj(new) = wj(old) [x wj(old)] ; Langkah 5. Kurangi (reduksi) laju pembelajaran. Di sini boleh digunakan cara linear, misalnya dengan menggunakan skala 1/n untuk setiap iterasi. Langkah 6. Uji syarat berhentinya. Syarat tersebut dapat berupa jumlah iterasi maksimum (eksekusi dari langkah 1) atau dapat pula kondisi laju pembelajaran yang telah mencapai nilai yang cukup kecil. o Algoritma Pengujian

36

Workshop Jaringan Neural Buatan

Metode yang paling sederhana dalam inisialisasi vektor bobot (reference) adalah dengan mengambil m vektor pelatihan yang pertama dan menggunakannya sebagai vektor bobot. Sementara itu, vektor pelatihan sisanya digunakan untuk pelatihan. Metode lain yang cukup sederhana adalah dengan memberikan nilai bobot awal klasifikasi secara random. Metode lain untuk inisialisasi bobot adalah menggunakan K-means clustering, atau menggunakan self-organizing map untuk menentukan bobot. Kemudian setiap vektor bobot yang sudah didapat, dikalibrasi dengan mecari vektor masukan yang terdekat dengannya, lalu mencari kelas di mana jumlah terbesar dari vektor masukan berada, dan memasangkan kelas tersebut ke vektor bobot yang bersangkutan tadi.

37