Jaringan Syaraf Tiruan

1. Pengertian Jaringan Syaraf Tiruan

Jaringan syaraf tiruan (artifical neural network) adalah sistem komputasi yang arsitektur dan operasinya diilhami dari pengetahuan tentang sel syaraf biologis di dalam otak. Jaringan syaraf tiruan merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba menstimulasi proses pembelajaran pada otak manusia tersebut. Jaringan syaraf tiruan dapat digambarkan sebagai model matematis dan komputasi untuk fungsi aproksimasi non-linear, klasifikasi data cluster dan regresi non-parametrik atau sebuah simulasi dari koleksi model jaringan syaraf biologi.

Model jaringan syaraf ditunjukkan dengan kemampuannya dalam emulasi, analisis, prediksi dan asosiasi. Kemampuan yang dimiliki jaringan syaraf tiruan dapat digunakan untuk belajar dan menghasilkan aturan atau operasi dari beberapa contoh atau input yang dimasukkan dan membuat prediksi tentang kemungkinan output yang akan muncul atau menyimpan karakteristik input yang diberikan kepada jaringan syaraf tiruan.

Salah satu organisasi yang sering digunakan dalam paradigma jaringan syaraf tiruan adalah perambatan galat mundur  atau backpropagation. (Hermawan, 2006)

2. Konsep Dasar Jaringan Syaraf Tiruan

Jaringan syaraf tiruan terdiri dari beberapa neuron dan ada hubungan antar neuron- neuron seperti pada otak manusia. Neuron/selsaraf adalah sebuah unit pemroses informasi yang merupakan dasar operasi jaringan syaraf tiruan.

Jaringan syaraf tiruan terdiri atas beberapa elemen penghitung tak linier yang masing-masing dihubungkan melalui suatu pembobot dan tersusun secara paralel. Pembobot inilah yang nantinya akan berubah (beradaptasi) selama proses pelatihan.

Pelatihan perlu dilakukan pada suatu jaringan syaraf tiruan sebelum digunakan untuk menyelesaikan masalah. Hasil pelatihan jaringan syaraf tiruan dapat diperoleh tanggapa yang benar (yang diinginkan) terhadap masukan yang diberikan. Jaringan syaraf tiruan dapat memberikan tanggapan yang benar walaupun masukan yang diberikan terkena derau atau berubah oleh suatu keadaan. (Hermawan, 2006)

3. Karakteristik Jaringan Syaraf Tiruan

Penyelesaian masalah dengan jaringan syaraf tiruan tidak memerlukan pemrograman. Jaringan syaraf tiruan menyelesaikan masalah melalui proses belajar dari contoh-contoh pelatihan yang diberikan. Biasanya pada jaringan syaraf tiruan diberikan sebuah himpunan pola pelatihan yang terdiri dari sekumpulan contoh pola. Proses belajar jaringan syaraf tiruan berasal dari serangkaian contoh-contoh pola yang diberikan.metode pelatihan yang sering dipakai adalah metode belajar terbimbing. Selama proses belajar itu pola masukan disajikan bersama-sama dengan pola keluaran yang diinginkan. Jaringan akan menyesuaikan nilai bobotnya sebagai tanggapan atas pola masukan dan sasaran yang disajikan tersebut. (Hermawan, 2006)

3.1. Faktor Bobot

Bobot merupakan suatu nilai yang mendefinisikan tingkat atau kepentingan hubungan antara suatu node dengan node yang lain. Semakin besar bobot  suatu hubungan menandakan semakin pentingnya hubungan kedua node tersebut.

Bobot merupakan suatu hubungan berupa bilangan real maupun integer, tergantung dari jenis permasalahan dan model yang digunakan. Bobot-bobot tersebut bisa ditentukan untuk berada didalam interval tertentu. selama proses pelatihan, bobot tersebut dapat menyesuaikan dengan pola-pola input.

Jaringan dengan sendirinya akan memperbaiki diri terus-menerus karena adanya kemampuan untuk belajar. Setiap ada suatu masalah baru, jaringan dapat belajar dari masalah baru tersebut, yaitu dengan mengatur kembali nilai bobot untuk menyesuaikan karakter nilai. (Puspaningrum, 2006)

3.2. Fungsi Aktivasi

Setiap neuron mempunyai keadaan internal yang disebut level aktivasi atau level aktivitas yang merupakan fungsi input yang diterima. Secara tipikal suatu neuron mengirimkan aktivitasnya kebeberapa neuron lain sebagai sinyal. Yang perlu diperhatikan adalah bahwa neuron hanya dapat mengirimkan satu sinyal sesaat, walaupun sinyal tersebut dapat dipancarkan ke beberapa neuron yang lain.

Ada beberapa pilihan fungsi aktivasi yang digunakan dalam metode backpropagation, seperti fungsi sigmoid biner, dan sigmoid bipolar. Karakteristik yang harus dimiliki fungsi fungsi aktivasi tersebut adalah kontinue, diferensiabel, dan tidak menurun secara monoton. Fungsi aktivasi diharapkan dapat mendekati nilai-nilai maksimum dan minimum secara baik. Berikut ini adalah fungsi aktivasi yang sering digunakan yaitu: (Puspaningrum, 2006)

  1. Fungsi Sigmoid Biner

Fungsi ini digunakan untuk jaringan syaraf yang dilatih dengan menggunakan metode backpropagation. Fungsi sigmoid biner memiliki nilai pada range 0 sampai 1. Fungsi ini sering digunakan untuk jaringan syaraf yang membutuhkan nilai output yang terletak pada interval 0 sampai 1. Definisi fungsi sigmoid biner adalah segabai berikut:

f1(x) = 1/(1+ e–x)

dengan turunan

f1’(x) = f1(x) (1- f1(x))

berikut ini ilustrasi fungsi sigmoid biner:

Gambar 1. Ilustrasi fungsi sigmoid biner dengan range (0,1)

  1. Fungsi Sigmoid Bipolar

Fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner, hanya saja output dari fungsi ini memiliki range antara 1 sampai    -1. Definisi fungsi sigmoid bipolar adalah sebagai berikut:

f2(x) = 2 f2(x) -1

dengan turunan

f2’(x) = ½ (1+ f2(x)) (1- f2(x))

Berikut ini adalah ilustrasi fungsi sigmoid bipolar:

Gambar 2. Ilustrasi fungsi sigmoid bipolar dengan range (-1,1)

4. Model Jaringan Syaraf Backpropagation

Pelatihan pada jaringan syaraf backpropagation, feedfoward (umpan maju) dilakukan dalam rangka perhitungan bobot sehingga pada akhir pelatihan akan diperoleh bobot-bobot yang baik. Selama proses pelatihan, bobot-bobot diatur secara iteratif untuk meminimumkan error (kesalahan) yang terjadi. Error (kesalahan) dihitung berdasarkan rata-rata kuadrat kesalahan (MSE). Rata-rata kuadrat kesalahan juga dijadikan dasar perhitungan unjuk kerja fungsi aktivasi. Sebagian besar pelatihan untuk jaringan feedfoward (umpan maju) menggunakan gradien dari fungsi aktivasi untuk menentukan bagaimana mengatur bobot-bobot dalam rangka meminimumkan kinerja. Gradien ini ditentukan dengan menggunakan suatu teknik yang disebut backpropagation.

Algoritma pelatihan standar backpropagation akan menggerakkan bobot dengan arah gradien negatif. Prinsip dasar dari algoritma backpropagation adalah memperbaiki bobot-bobot jaringan dengan arah yang membuat fungsi aktivasi menjadi turun dengan cepat.

Pelatihan backpropagation meliputi 3 tahapan sebagai berikut.

1. Propagasi maju.

Pola masukan dihitung maju mulai dari input layer hingga output layer menggunakan fungsi aktivasi yang ditentukan.

2. Propagasi mundur.

Selisih antara keluaran jaringan dengan target yang diinginkan merupakan kesalahan yang terjadi. Kesalahan yang terjadi itu dipropagasi mundur. Dimulai dari garis yang berhubungan langsung dengan unit-unit di output layer.

3. Perubahan bobot.

Modifikasi bobot untuk menurunkan kesalahan yang terjadi. Ketiga fase tersebut diulang-ulang terus hingga kondisi penghentian dipenuhi. (Puspaningrum, 2006)

5. Algoritma Jaringan Syaraf Backpropagation

Backpropagation merupakan algoritma pembelajaran yang terwarisi dan biasanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya. Algoritma backpropagation menggunakan error output untuk mengubah nilai-nilai bobotnya dalam arah mundur (backward). Tahap perambatan maju (forward propagation) harus dikerjakan terlebih dahulu untuk mendapatkan nilai error tersebut. Saat perambatan maju neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi sigmoid biner yaitu:

Arsitektur jaringan syaraf backpropagation seperti terlihat pada gambar dibawah ini:

Gambar 3. Arsitektur backpropagation

Keterangan       :

x1 s/d xn : input layer

z1 s/d zp : hidden layer

y1 s/d ym : output layer

Algoritma backpropagation (Kusumadewi, 2003):

  1. Inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup kecil).
  2. Kerjakan langkah-langkah berikut selama kondisi berhenti belum terpenuhi.
  • Tiap-tiap pasangan elemen yang akan dilakukan pembelajaran, kerjakan:

Feedforward

[1]. Tiap unit input (xi, i=1,2,3,…n) menerima sinyal xi dan meneruskan sinyal tersebut pasa lapisan yang ada diatasnya (lapisan tersembunyi).

[2]. Tiap unit tersembunyi (zj, j=1,2,3,…,p) menjumlahkan sinyal-sinyal input terbobot:

gunakan fungí aktivasi untuk menghitung sinyal outputnya:

zj = f (z_inj)

dan kirimkan sinyal tersebut ke semua unit dilapisan atasnya (unit-unit output).

[3]. Tiap unit output (yk, k=1,2,3,…,m) menjumlahkan sinyal-sinyal input terbobot

gunakan fungsi aktivasi untuk menghitung sinyal outputnya.

yk= f (y_ink)

dan kirimkan sinyal tersebut kesemua unit dilapisan atasnya (unit-unit output).

Backpropagation

[4]. Tiap-tiap unit output (yk, k=1,2,3,…,m) menerima target pola yang berhubungan dengan pola input pembelajaran. Hitung informasi errornya.

σk = (tk – yk) f’(y_ink)

kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki wjk)

Δwjk = α σk zij

Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai w0k) :

Δwjk = α σk

Kirimkan σk ini ke unit-unit yang ada dilapisan bawahnya.

[5]. Tiap-tiap unit tersembunyi (zj, j=1,2,3,…,p) menjumhlahkan delta inputnya (dari unit-unit yang berada pada lapisan diatasnya) :

kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi error:

σj = σ_inj f’(z_inj)

kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai vij):

Δvjk = α σj xi

Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki  nilai v0j):

Δv0j = α σj

Tiap unit output (yk, k=1,2,3,…,m) memperbaiki bias dan bobotnya (j=0,1,2,3,…,p).

wjk (baru) = wjk(lama) + Δwjk

Tiap-tiap unit tersembunyi (zj, j=1,2,3,…,p) memperbaiki bias dan bobotnya (i=0,1,2,3,…,n)

vij(baru) = vij(lama) + Δvij

  • Tes kondisi berhenti.

Daftar pustaka

Hermawan, A. (2006). Jaringan Syaraf Tiruan Teori dan Aplikasi. Yogyakarta: Penerbit Andi

Kusumadewi, S. (2003). Artifical Intellegence (Teknik dan Aplikasinya). Yogyakarta: Graha Ilmu

Puspaningrum, D. (2006). Pengantar Jaringan Syaraf Tiruan. Yogyakarta : Andi Offset

  1. feni
    9 Januari 2011 pukul 3:27 pm

    mohon maaf, saya mau tanya. jia sudah dimasukan ke dalam program, apa memang output yang dihasilkan nanti akan berbeda-beda setiap kali programnya di run?

    untuk jawabannya terima kasih banyak..

    • 12 Januari 2011 pukul 7:17 am

      Jaringan syaraf tiruan kan cuma sebatas sistem komputasi aja mbak, jadi tergantung permasalahan yang akan kita buat jaringan syarafnya. Ada macem2 metode juga yang bisa digunakan, seperti perceptron, backpropagation, logika fuzy etc. JST bisa digunakan untuk menentukan penyakit berdasarkan gejala yang tidak lengkap dll. Semoga bermanfaat.. Tx

    • Anonymous
      15 April 2011 pukul 1:16 pm

      outputnya memang akan berubah-ubah jika di run berulang2.
      hasil yang sebenarnya ada di hasil run pertama.

    • 5 Juli 2011 pukul 12:13 am

      Menurut saya, perbedaan output yang dihasilkan pada tiap eksekusi program terjadi jika inisialisasi bobot dan bias dilakukan secara random di setiap eksekusi. Namun jika bobot dan bias ditentukan dengan range tertentu misal -1 s/d 1 dan dengan parameter (learning rate, momentum, epoch dan fungsi aktivasi yang dipakai) sama, maka hasil keluaran program atau output akan sama.
      Semoga membantu.

  2. taufiq
    15 Januari 2011 pukul 10:00 am

    Ada contoh programnya gak ya, yang pakai Delphi??
    kalau ada Mohon informasinya, bagaimana agar saya bisa mendapatkan contoh programnya..Tx

    • 16 Januari 2011 pukul 2:32 am

      ada mas,, besok coba ak carikan lagi contoh aplikasi nya

    • 9 Maret 2011 pukul 12:20 am

      guyz, kalau backpropagation basic saya banyak ada contoh :D develop pake Delphi. Ini lagi develop pake PHP. Sudah diimplementasikan tapi tentunya untuk education purpose.checking …Untuk skripsi juga ada, baca deh http://kumpulanjudultugasakhir.blogspot.com/

  3. indra
    1 Februari 2011 pukul 3:51 am

    saya mau tanya,
    apa kegunaan bobot dan target? trus apa harus ada bobot dan target di pemrograman nantinya?

  4. valentino
    15 April 2011 pukul 1:31 pm

    bedanya dengan regresi linier???

  5. valentino
    15 April 2011 pukul 2:50 pm

    apa kelebihan backpropagation dgn metode2 yg lain, misalnya perceptron dan logika fuzy

  6. farid
    12 Mei 2011 pukul 8:40 am

    kalo boleh tau, pengenalan pola pada JST seperti apa ya? (^_^)

  7. 27 Juni 2011 pukul 2:13 pm

    Tolong email contoh aplikasinya mas.. delphicommunity@gmail.com Thank U…

  8. Anonymous
    7 Juli 2011 pukul 3:40 am

    mas, link untuk download programnya sudah tidak bisa..ada lagi link-nya?
    thanks

  9. 7 Juli 2011 pukul 3:42 am

    mas, link contoh program backpropagation sudah tidak bisa..ada link lainnya mas?
    thanks

  10. komang aryasa
    10 Juli 2011 pukul 12:11 pm

    iya contoh programnya mas….

  11. 12 Juli 2011 pukul 12:12 pm

    kalau jaringannya udah di training tuh trus kalau ditraining dengan pola yang baru pola yang lama ndak dikenali lagi itu gimana??

  12. fue
    15 Juli 2011 pukul 10:37 am

    maaf, klo mo download contoh aplikasinya bgmna? kok linknya sdah g ada ya? trima kasih..

  13. fue
    15 Juli 2011 pukul 10:59 am

    oiya klo tutorial pembuatan jst menggunakan delphi ada gak mas, sya minta tolong minta dong,.. ini lg skripsi, bingung,.. terima kasih, klo ada yang screenshot biar faham, terima kasih bgt sblumnya..

  14. aini
    15 Juli 2011 pukul 1:41 pm

    mohon maaf sya mau tanya, apakah ada penjelasan mengenai JST counterpropagation pada penerapan pengenalan wajah?
    klo ada, tlong kirim di email sya avira_aini@yahoo.com
    terima kasih sebelumnya.

  15. 15 September 2011 pukul 3:43 pm

    H

  16. ardi
    13 Oktober 2011 pukul 1:50 pm

    saya memakai JST back propagation untuk memprediksi curah hujan,,,saya mau tanya ; mengapa setiap di-run hasilnya selalu berbeda meskipun tidak ada parameter yang diganti ????????????,,,,apa karena inisialisasi bobotnya yg selalu acak ( net=init (net)) ???????…so bgmn solusinya????????????,mohon di balas yach…thank’s

  17. Anonymous
    15 Oktober 2011 pukul 3:26 am

    mw nanya ne Mas…
    bagaimana pandangan islam tentang JST???

  18. Anonymous
    15 Oktober 2011 pukul 3:27 am

    mau nanya ne Mas…
    bagaimana menurut pandangan islam tentang JST???

  19. Anonymous
    4 Januari 2012 pukul 1:43 pm

    Maaf gan, mau tanya contoh aplikasi JST kira2 apa aja yaa ??
    Thanks gan . . .

  20. iha
    28 April 2012 pukul 9:50 pm

    Mas kalo contoh programnya dengan matlab ada ga??

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.

%d bloggers like this: