• Tidak ada hasil yang ditemukan

Jaringan Saraf Tiruan (Neural Network)

A B C Gambar 2.12 Ide Dasar Corner Detection

2.3 Jaringan Saraf Tiruan (Neural Network)

Ketika manusia berpikir, aktivitas yang terjadi adalah aktivitas untuk mengingat, memahami, menyimpan, dan memanggil kembali apa yang pernah dipelajari oleh otak. Jaringan saraf tiruan hanya menirukan aktivitas tersebut. Hanya saja, manusia memiliki cara kerja yang lebih kompleks dan lebih rumit daripada yang diperkirakan (Pustpitaningrum, 2006).

Jaringan saraf tiruan (JSS) atau Neural Network (NN) merupakan salah satu bidang komputer yang menirukan aktivitas otak manusia, dimana komputer diusahakan agar berpikir seperti manusia. Jaringan Saraf Tiruan direpresentasikan sebagai toplogi graf yang terhubung antara yang satu dengan yang lain. Dimana dalam tiap garis (edge) memiliki titik (node) yang saling menghubungkan antara yang satu dengan yang lain. Titik-titik tersebutlah yang akan memasukkan sekaligus mengeluarkan informasi.

Jaringan saraf tiruan akan mengonfirmasi informasi dalam bentuk bobot dari satu neuron ke neuron yang lainnya. Informasi tersebut diproses oleh sebuah fungsi dan semua input yang datang akan dijumlahkan, lalu dibandingkan dengan nilai ambang tertentu melalui fungsi aktivasi setiap neuron. Bila nilai melampaui nilai ambang maka neuron diaktifkan dan informasi output diteruskan ke neuron yang tersambung dengannya. Struktur jaringan saraf tiruan dapat dilihat dalam Gambar 2.19 berikut.

Pembagian arsitektur jaringan saraf tiruan bisa dilihat dari kerangka kerja dan skema interkoneksi, yang dapat dilihat dari jumlah lapisan (layer) dan jumlah node pada setiap lapisan. Lapisan-lapisan penyusunnya dapat dibagi menjadi tiga, yaitu:

1. Lapisan input (input layer), yang menerima input dari dari luar dan merupakan penggambaran dari sebuah masalah.

2. Lapisan tersembunyi (hidden layer), yang tidak dapat secara langsung diamatai, di sini dilakukan proses pengolahan informasi.

3. Lapisan keluaran (output layer), yang merupakan hasil dari informasi terhadap sebuah permasalahan.

Berdasarkan lapisan ini, maka Jaringan Saraf Tiruan dapat dibagi ke dalam tiga macam arsitektur, yaitu:

1. Jaringan kompetitif (competitive layer), pada jaringan ini, sekumpulan neuron bersaing untuk mendapatkan hak aktif. Pada lapisan ini terdapat jaringan dengan lapisan kompetitif yang memiliki bobot -ε seperti yang ditunjukkan pada Gambar 2.20.

2. Jaringan lapisan tunggal (single layer net), dimana aristekturnya hanya memiliki satu buah lapisan. Jaringan ini hanya menerima input, kemudian langsung mengolahnya menjadi output tanpa harus melalui lapisan tersembunyi. Seperti yang ditunjukkan pada Gambar 2.21 terlihat lapisan input memiliki 3 neuron, yaitu X1, X2, dan X3. Lapisan output terdiri dari 2 neuron,

yaitu Y1 dan Y2. Dimana kedua neuron tersebut saling berhubungan, yang

thubungan masing-masing neuron memiliki bobot yang bersesuaian. Semua input akan berhubungan dengan setiap unit output.

Gambar 2.21 Jaringan Lapisan Tunggal (Single Layer Net) (Hermawan, 2006)

3. Jaringan multilapis (multilayer net), memiliki satu atau lebih lapisan tersembunyi pada sebuah arsitektur. Dengan banyaknya lapisan tersembunyi, maka jaringan memiliki kemampuan yang lebih baik memecahkan masalah dibandingkan dengan jaringan lapisan tunggal. Hanya saja, pelatihan yang dilakukan menjadi lebih rumit. Untuk lebih jelasnya, dapat dilihat pada Gambar 2.22.

Gambar 2.22 Jaringan Saraf Multilapis (Multilayer Net) (Hermawan, 2006)

2.3.2 Paradigma Pembelajaran

Masing-masing hubungan antar-unit pengolah yang terdapat pada jaringan saraf tiruan, berperan sebagai jalur penghubung. Kekuatan hubungan pada tiap sambungan akan disesuaikan selama pelatihan atau pembelajaran sehingga pada akhirnya dihasilkan jaringan saraf tiruan dengan bobot-bobot yang mantap. Sebagian besar jaringan saraf melakukan penyesuaian selama menjalani proses pelatihan atau pembelajaran. Proses ini pada dasarnya menghasilkan suatu nilai yang memengaruhi nilai bobot secara terus-menerus.

2.3.2.1 Pembelajaran Tak Terawasi (Unsupervised Learning)

Pada pembelajaran ini, tidak terjadi proses penglasifikasian pola, sehingga sistem akan melakukan proses dengan sendirinya. Algoritma ini sehing kali memiliki perhitungan yang kompleks dan akurasinya lebih rendah dibandingkan dengan pembelajaran terawasi. Algoritma ini dirancang untuk belajar dengan cepat dan lebih praktis dalam hal kecepatan.

2.3.2.2 Pembelajaran Terawasi (Supervised Learning)

Pada pembelajaran ini mengasumsikan ketersediaan contoh-contoh penglasifikasian kelas-kelas pembelajaran, yang memanfaatkan keanggotan kelas dari setiap contoh pelatihan. Dengan informasi ini, sistem dapat mendeteksi kesalahan klasifikasi pola sebagai umpan balik ke dalam jaringan, sehingga mampu menghasilkan jawaban yang semirip mungkin dengan jawaban benar yang telah diketahui oleh jaringan.

Pembelajaran ini mengacu pada pencarian kemungkinan kombinasi bobot yang naik ataupun turun derajat kesalahannya. Sistem akan memanfaatkan informasi tersebut untuk mendefinisikan kesalahan numerik yang mencari penurunan kesalahan.

2.3.3 Backpropagation

Backpropagation (BP) merupakan salah satu algoritma yang sering digunakan untuk menyelesaikan masalah-masalah yang rumit. Hal ini disebabkan karena jaringan dengan algoritma ini dilatih dengan menggunakan metode pembelajaran terbimbing. Pada jaringan diberikan pola masukan dan pola keluaran yang diinginkan.

Ketika suatu pola diberikan kepada jaringan, bobot-bobot diubah untuk memperkecil perbedaan pola keluaran dan pola yang diinginkan. Latihan ini dilakukan sehingga semua pola yang dikeluarkan jaringan dapat memenuhi pola yang diinginkan, seperti yang terlihat di arsitektur backpropagation pada Gambar 2.23.

Backpropagation menggunakan nilai eror output untuk mengubah nilai bobot dalam arus mundur dan termasuk ke dalam jaringan yang memiliki banyak lapisan. Di dalam algoritma ini, setiap unit yang berada pada lapisan input terhubung dengan setiap unit yang berada di lapisan tersembunyi. Unit-unit pada lapisan tersembunyi juga terhubung dengan lapisan keluaran.

Gambar 2.23 Arsitektur Jaringan Backpropagation (Muis, 2009)

Algoritma backpropagation dimulai dengan memberikan pola masukan ke dalam lapisan. Setiap pola merupakan nilai aktivasi unit-unit masukan, yang memiliki bobot dan dihitung jumlahnya dengan menggunakan:

=

(2.19)

dimana: Xj = jumlah bobot unit masukan j

Yi = nilai masukan yang berasal dari unit i Wij = bobot dari unit i sampai ke j

Setelah jumlah bobot dari Xj dihitung dan ditemukan hasilnya, maka diterapkankanlah fungsi sigmoid yang akan menghasilkan nilai antara 0 dan 1. Pada algoritma backpropagation, fungsi sigmod yang dipakai memiliki persamaan:

( ) = 1 1 +

(2.20)

Hasil perhitungan Yj merupakan nilai aktivasi pada unit pengolah j. Nilai ini dikirimkan ke seluruh keluaran j. Setelah umpan maju (feedforward) dikerjakan, maka jaringan siap melakukan umpan mundur (backpropagation). Yang dilakukan di langkah ini adalah menghitung eror dan mengubah bobot-bobot pada semua interkoneksinya.

Di sini eror dihitung pada semua unit pengolah dan bobotpun diubah pada semua sambungan. Perhitungan dimulai dari lapisan keluaran dan mundur sampai lapisan masukan. Hasil keluaran dari umpan maju dibandingkan dengan hasil keluaran yang diinginkan. Berdasarkan perbedaan ini kemudian dihitung eror untuk tiap-tiap lapisan pada jaringan.

Pertama-tama, dihitung eror untuk lapisan keluaran, kemudian disesuaikan dengan setiap sambungan bobot-bobot yang menuju ke lapisan keluaran. Setelah itu dihitung nilai eror pada lapisan tersembunyi dan dihitung perubahan bobot yang menuju lapisan tersembunyi. Demikian proses dilakukan mundur sampai ke lapisan masukan secara iteratif. Jika j adalah salah satu unit pada lapisan keluaran, maka eror lapisan keluaran dapat ditentukan dengan persamaan:

= ( − ) ′( ) (2.21)

dimana: tj = keluaran yang diinginkan dari unit j aj = keluaran dari unit j

′( ) = turunan dari fungsi sigmoid Xj = hasil penjumlahan berbobot

Jika j adalah suatu lapisan tersembunyi, maka eror lapisan tersembunyi dapat ditentukan dengan menggunakan persamaan:

= ′( )

(2.22)

∆ = ŋ (2.23)

dimana: ∆ = perubahan bobot dari unit i ke unit j

ŋ = laju belajar (konvergensi)

δj = eror lapisan tersembunyi

kadang mengalami penurunan sampai mencapai suatu kondisi minimum, yang kadang bisa naik kembali. Eror yang paling mimum, merupakan eror yang diinginkan. Eror minimum E dapat dipakai menggunakan persamaan:

= 1

2 ( − )

(2.24)

dimana: E = nilai eror minumum Yj = fungsi sigmoid dari unit j

dj = nilai keluaran yang ditetapkan dari unit j

Dalam backpropagation satu buah lapisan tersembunyi bisa dikatakan cukup memandai untuk menyelesaikan masalah sembarang fungsi sigmoid. Dengan menggunakan lebih dari satu buah lapisan tersembunyi, satu masalah lebih mudah untuk diselesaikan. Meskipun begitu, tidak ada ketentuan khusus mengenai banyaknya jumlah lapisan tersembunyi yang dibutuhkan (Ganatra et al. 2011). Dalam penelitian ini, penulis menggunakan 4 (empat) buah lapisan tersembunyi.

Prosedur pembaharuan bobot (update bobot) dapat dimodifikasi dengan menggunakan momentum. Dengan menambahkan momentum ke dalam rumus pembaharuan bobot, biasanya konversi akan lebih cepat dicapai. Ini disebabkan karena momentum memaksa proses perubahan bobot terus bergerak sehingga tidak terperangkap ke dalam minimum-minimum lokal. Bobot antara lapisan masukan ke lapisan tersembunyi (∆ ) dan dari lapisan tersembunyi ke lapisan keluaran (∆ ) dapat ditentukan dengan persamaan:

∆ = (2.25)

∆ = (2.26)

Jika eror tidak terjadi, maka menjadi 0 (nol) dan hal ini akan menyebabkan koreksi ∆ = 0, dengan kata lain pembaharuan bobot berlanjut dalam arah yang sama seperti yang sebelumnya. Jika parameter momentum digunakan, maka persamaan pembaharuan bobot dengan pelatihan t, dan t+1 untuk pelatihan selanjutnya, mengalami modifikasi sebagai berikut:

( + 1) = ( ) + + [ ( ) − ( −1) ] (2.27) atau ( + 1) = + ∆ ( ) (2.28) dan, ( + 1) = ( ) + + [ ( )− ( −1) ] (2.29) atau ( + 1) = + ∆ ( ) (2.30)

dimana: Z1 … Zn = nilai lapisan tersembunyi

Vij = bobot dari lapisan masukan dan lapisan tersembunyi Wij = bobot dari lapisan tersembunyi dan lapisan keluaran

δ = eror informasi

α = konstanta berkelanjutan

µ = momentum

Kecepatan konvergensi juga dapat ditingkatkan dengan memodifikasi laju belajar menjadi adpatif yang berubah selama proses pelatihan. Jika eror yang muncul lebih besar daripada eror sebelumnya, maka nilai bobot-bobot, indeks, keluaran, dan eror yang baru diabaikan, dan nilai laju belajar diturunkan. Jika eror yang muncul lebih kecil daripada eror sebelumnya, maka nilai nilai bobot-bobot, indeks, keluaran, dan eror yang baru disimpan, dan laju belajar ditingkatkan.

0. Inisialisasi bobot.

Tentukan angka pembelajaran (α).

Tentukan nilai ambang atau set siklus pelatihan (epoch) sebagai kondisi berhenti. 1. While kondisi berhenti tidak terpenuhi.

Do langkah ke-2 (dua) sampai ke-9 (sembilan).

2. Untuk setiap pasangan pelatihan, kerjakan langkah ke-3 (tiga) sampai langkah ke- 8 (delapan).

Tahap umpan maju (feedforward)

3. Tiap unit masukan (xi, i = 1, …, n) menerima masukan xi dan diteruskan ke lapisan

tersembunyi.

4. Tiap unit tersembunyi (zj, j = 1, …, p) menjumlahkan nilai masukan terbobot

_ = +

(2.31)

dengan menerapkan fungsi aktivasi hitung:

= ( _ ) (2.32)

dan dikirim ke unit-unit keluaran.

5. Tiap unit keluaran (yk, k = 1, …, m) menjumlahkan nilai masukan terbobot

_ = +

dengan menerapkan fungsi aktivasi hitung:

= ( _ ) (2.34)

Tahap backpropagation error

6. Tiap unit keluaran (yk, k = 1, …, m) menerima target pola yang berkaitan dengan pola input pembelajaran, yang kemudian dihitung nilai erornya menggunakan persamaan (2.19) dan dimodifikasi menjadi:

= ( − ) ′( _ ) (2.35)

gunakan koreksi bobot untuk memperbaiki nilai wjk pada persamaan (2.25) dan koreksi bias untuk memperbaiki nilai w0k menggunakan:

= (2.36)

lalu kirim ke lapisan tersembunyi di bawahnya.

7. Tiap unit tersembunyi (zj, j = 1, …, p) menjumlahkan delta inputnya dari unit-unit yang berada di atasnya.

_ =

(2.37)

Nilai ini dikalikan dengan turunan dari fungsi aktivasinya untuk mendapatkan nilai eror, seperti pada persamaan (2.24), sehingga menghasilkan:

= _ ′( _ ) (2.38)

gunakan koreksi eror pada persamaan (2.26) untuk memperbaiki nilai vij dan koreksi bias untuk memperbaiki nilai v0j menggunakan:

= 0, 1, …, n) menggunakan persamaan (2.30), yang dapat disederhanakan sebagai:

Dokumen terkait