Electrical Engineering Department

Menu

bismillah
Hidup itu indah hidup itu bahagia hidup itu bermakna ...ketika semua ditujukan untuk beribadah kepada ALLAH SWT

Minggu, 27 September 2015

On 03.11 by adnan in ,    No comments
Scilab adalah perangkat lunak aplikasi untuk menyelsaikan masalah komputasi, mirip seperti Matlab,  perangkat lunak ini bersifat gratis dan dapat di download dilink berikut ini  https://www.scilab.org
Pada tulisan kali ini saya akan mencoba menerangkan langkah demi langkah pembuatan program jaringan syaraf tiruan (JST) dengan menggunakan software Scilab 5.4.1
Jalankan software  Scilab, maka akan tampak tampilan seperti gambar berikut ini:
awal

pada menu kiri atas klik pada bagian Scinotes  :
note-klik
akan muncul tampilan Scinotes  seperti ini :
note2
Buat program JST di Scinotes seperti ini :
note3
Catatan : Scinotes adalah editor untuk menuliskan program Scilab
Aturan penulisan program :
tanda " // "  (garis miring dua kali) digunakan untuk menuliskan keterangan, jadi tidak akan diproses dalam program
tanda ";"  (titik koma)  untuk mengakhiri setiap perintah agar tidak muncul dalam editor consule di Scilab
Berikut ini gambar struktur JST yang akan kita buat programnya :
multilayer
Berikut ini listring program JST pada Scinotes,
scinote-jstscinote-jst1scinote-jst2scinote-jst3
Setelah program dibuat jalankan program dengan men-klik run seperti gambar dibawah ini:
note-run
Kemudian simpanlah program yang dibuat di folder yang anda kehendaki.
Untuk melihat hasil run/exsekusi program dapat dilihat di menu editor Scilab pada posisi kanan atas, seperti gambar berikut:
hasil
untuk melihat nilai varibel yang telah dibuat dalam program klik pada bagian varibelnya maka akan muncul seperti ini:
(contoh melihat variabel w / bobot klik variabel w)
hasil-w
atau untuk melihat nilai variabel yang telah dibuat dalam program dapat dituliskan pada editor/consule Scilab, dilanjutkan dengan menekan tombol enter maka akan muncul nilai variabel seperti gambar dibawah ini:
hasil-1
gambar diatas memperlihatkan nilai a dan nilai target yang hampir sama, ini menunjukan program tersebut sudah berjalan dengan baik.
Tahap demi tahap  program JST dapat dijabarkan sebagai berikut:
Inisialisasi awal menentukan struktur JST seperti:
  • Jumlah masukan/input
  • Jumlah neuron di lapisan tersembunyi (hidden layer)
  • Jumlah keluaran/output
  • Kecepatan Pembelajaran (Learing rate)
  • Bobot awal  input ke hidden layer
  • Bobot awal hiden layer ke output layer
  • Nilai masukan
  • Target
Berikut ini listing programnya untuk menentukan nilai masukan, neuron di hidden layer, output layer, kecepatan pembelajaran,
inisialisasi1
Listing program untuk membuat/men-generate bobot awal di layer input ke layer hidden adalah sebagai berikut:
ini-w
perhatikan banyaknya bobot antara masukan ke hidden layer adalah banyaknya input X banyaknya neuron di hidden layer atau jXi
program tersebut diatas dapat menghasilkan bobot sebanyak jXi
perhatikan notasi untuk w dimulai dari tujuan kemudian asal masukan atau ditulis  w(j,i) , j=adalah neuron tujuan dan i=adalah masukan
Berikut ini listing program untuk membuat/men-generate bobot awal di hidden layer ke output layer:
ini-v
program ini identik dengan program men-generate bobot awal w, bedanya hanya tergantung jumlah neuran di hidden layer dengan  di output layer.
Pemberian nilai target dan masukan/input dapat ditulis sebagai berikut:
target
tanda ";"(titik koma) menyatakan bentuk matrix [ix1] kalau menggunakan "," (koma) matrix [1xi]
Perhatikan pada gambar dj, dalam bentuk persamaan matematiknya dapat ditulis :
dj= ∑ (pi.wji)
dalam bentuk  program Scilab dapat ditulis :
dj
perhatikan pada gambar hj:
hj=f1(dj)   keluaran adalah fungsi aktifasi dari dj, jika menggunakan sigmoid fungsi dapat dituliskan
hj
dalam bentuk program Scilab dapat ditulis:
programhj

Nilai keluaran neuron pada hidden layer merupakan masukan bagi neuron pada layer output,
persamaannya dapat ditulis:
qm
dalam bentuk program scilab dapat ditulis:
qm-scilab
dan Keluaran JST (a) tergantung dari aktivasi fungsi yang digunakan, apada contoh ini menggunakan sigmoid fungsi dengan rumusan sebagai berikut:
am
dalam bentuk program scilab dapat ditulis:
am-scilab
Dalam proses pembelajaran maka keluaran JST dibandingkan dengan target yang ingin dicapai, jika terjadi perbedaan ini berarti masih ada error/kesalahan
yang harus diperbaiki,  persamaannya untuk error (e) dapat ditulis:
error = target -  keluaran JST
atau
e = t -a
dalam bentuk program scilab dapat ditulis:
error
perhatikan listring program diatas banyaknya error(e) adalah sebanyak target /keluaran JST.
Setelah didapat error maka proses selanjutnya adalah  "BACKPROPAGATION" yaitu proses meng-update bobot sehingga dihasilkan keluaran sesuai dengan target yang diinginkan, proses ini juga disebut proses belajar JST.
Secara umum update bobot dapat dirumuskan sebagai berikut:
wk1
artinya bobot berikutnya adalah bobot sekarang ditambah perubahan bobot, dimana perubahan bobot dapat ditulis:
deltawk
persamaan diatas menunjukan perubahan bobot  adalah negatif/berawanan dari adanya perubahan E terhadap w, dimana E adalah cost energi dari error (e) :
cost
E=cost energi fungsi, e=error
Proses  up-date bobot dilihat dari sisi kanan ke kiri atau dari sisi keluaran ke masukan JST,
error (e) bergerak ke belakang, untuk gambar JST diatas maka up-date bobot v (bobot antara hidden layer ke output layer)  dilakukan terlebih dahulu,  baru update bobot w (bobot antara masukan ke hidden layer).
perubahan  bobot di hidden layer dapat dijabarkan sebagi berikut:
dve
f'(q) dapat dicari sebagai berikut,  jika mengunakan fungsi sigmoid :
fq
maka :
   f'q
jadi :
aa1
dalam bentuk program scilab dapat ditulis:
dv-scilab
untuk perubahan  w  dapat dijabarkan sebagai berikut:
dw
dalam bentuk scilab dapat ditulis:
dw-scilab
Untuk meng-update bobot w dan v dapat dijabarkan sebagai berikut:
deltav
dan
wk1
dalam bentuk program scilab dapat dituliskan :
update-bobot
dan yang terakhir adalah untuk memyimpan data error :
data-e
Semua program mulai baris 31 s/d 104 berulang sampai k=iterasi, dimana banyaknya iterasi sdh di masukan pada inisilisasi awal.
Berikut ini ket program looping pada baris ke 30 dan diakhiri baris ke 105
looping

0 komentar:

Posting Komentar