RSS

BACKPROPOGATION

14 Nov

Jaringan Syaraf Tiruan (JST) merupakan salah satu sistem pemrosesan informasi atau data yang didisain dengan menirukan cara kerja otak manusia dalam menyelesaikan suatu masalah dengan melakukan proses belajar melalui perubahan bobot sinapsisnya. JST yang berupa susunan sel-sel saraf tiruan (neuron) dibangun berdasarkan prinsip-prinsip organisasi otak manusia. Salah satu metode yang digunakan dalam JST adalah Backpropagation.

  • Pengertian Backpropagation

Backpropagation adalah algoritma pembelajaran untuk memperkecil tingkat error dengan cara menyesuaikan bobotnya berdasarkan perbedaan output dan target yang diinginkan. Backpropagation juga merupakan sebuah metode sistematik untuk pelatihan multilayer JST. Backpopagation dikatakan sebagai algoritma pelatihan multilayer karena Backpropagation memiliki tiga layer dalam proses pelatihannya, yaitu input layer, hidden layer dan output layer, dimana backpropagation ini merupakan perkembangan dari single layer network (Jaringan Layar Tunggal) yang memiliki dua layer, yaitu input layer dan output layer. Dengan adanya hidden layer pada backpropagation dapat menyebabkan besarnya tingkat error pada backpropagation lebih kecil dibanding tingkat error pada single layer network. Hal tersebut dikarenakan hidden layer pada backpropagation berfungsi sebagai tempat untuk mengupdate dan menyesuaikan bobot, sehingga didapatkan nilai bobot yang baru yang bisa diarahkan mendekati dengan target output yang diinginkan.

  • Arsitektur Backpropagation

Arsitektur algoritma backpropagation terdiri dari tiga layer, yaitu input layer, hidden layer dan output layer. Pada input layer tidak terjadi proses komputasi, namun pada input layer terjadi pengiriman sinyal input X ke hidden layer. Pada hidden dan output layer terjadi proses komputasi terhadap bobot dan bias dan dihitung pula besarnya output dari hidden dan output layer tersebut berdasarkan fungsi aktivasi tertentu. Dalam algoritma backpropagation ini digunakan fungsi aktivasi sigmoid biner, karena output yang diharapkan bernilai antara 0 sampai 1.


Gambar 3.1 Arsitektur Backpropagation Secara Horizontal

Gambar 3.2 Arsitektur Backpropagation Secara Horizontal

Tiga layer backpropagation adalah input layer, hidden layer dan output layer. Pada input layer, inputan divariabelkan dengan Xn. Pada hidden layer, terdapat bobot (Vij) dan bias (Voj), serta Z sebagai data hidden layer. Pada output layer juga demikian, terdapat bobot (Wij) dan bias (Woj) dengan data output divariabelkan dengan Y.

  • Algoritma Backpropagation

Algoritma backpropagation adalah sebuah algoritma untuk memperkecil tingkat error dengan menyesuaikan bobot berdasarkan perbedaan output dan target yang diinginkan.

Secara umum algoritmanya terdiri dari tiga langkah utama, yaitu :

  1. Pengambilan input
  2. Penelusuran error
  3. Penyesuaian bobot

Pada pengambilan input, terlebih dahulu dilakukan inisialisasi bobot, kemudian masuk ke dalam algoritma proses backpropagation yang terdiri dari komputasi maju yang bertujuan untuk menelusuri besarnya error dan komputasi balik untuk mengupdate dan menyesuaikan bobot. Dalam mengupdate bobot daapat dilakukan dengan dua cara, yaitu tanpa momentum dan dengan momentum. Namun, yang dijelaskan di bawah ini dalam mengupdate bobotnya dilakukan tanpa memperhatikan besarnya momentum. Dengan demikian dalam metode backpropagation, algoritma yang harus dilakukan adalah inisialisasi bobot, komputasi feed forward dan backpropagation dan inisialisasi kondisi stopping berdasarkan nilai batas error atau jumlah batas epoch. Epoch merupakan rangkaian langkah dalam pembelajaran ANN. Satu epoch diartikan sebagai satu kali pembelajaran ANN.

Gambar 3.3 Algortima Training Backpropagation

Algoritma lengkap sebuah pembelajaran ANN adalah sebagai berikut :

  1. Inisialisasi bobot

Ada dua cara untuk menginisialisasi bobot, yaitu inisialisasi secara random dan inisialisasi dengan menggunakan Nguyen-Widrow.

Inisialisasi acak merupakan cara yang paling sering digunakan dalam inisialisasi bobot. Pada inisialisasi bobot secara random, bobot diinisialisasi secara acak tanpa menggunakan faktor skala, sedangkan pada inisialisasi Nguyen-Widrow, inisialisasi dilakukan dengan memodifikasi inisialisasi acak dengan menggunakan faktor skala β dengaan tujuian untuk mempercepat proses pelatihan.

Algoritma inisialisasi dengan Nguyen-Widrow adalah sebagai berikut :

  1. Menentukan besarnya skala β.

β=0.7(p)1/n                                 (3.1)

, dengan p : jumlah unit hidden dan n : jumlah unit input.

  1. Inisialisasi bobot Vij secara random dengan nilai inisialisasi Vij adalah

    -0.5 ≤ Vij ≤ 0.5.

  2. Menghitung besarnya magnitude bobot Vij.

    (3.2)

  3. Mengupdate bobot Vij.

    (3.3)

  4. Mengatur nilai bias Voj sebesar -β ≤ V0j ≤ β

  1. Proses feed forward dan backpropagation

Pada dasarnya proses algoritma backpropagation terdiri dari komputasi maju (feed forward) dan komputasi balik (backpropagation).

Komputasi maju digunakan sebagai algoritma untuk menghitung nilai aktivasi yang ada pada semua neuron baik yang ada di lapis tersembunyi atau hidden layer taupun lapis keluaran atau output layer. Berikut ini merupakan algoritma yang digunakan dalam komputasi maju.

  1. Neuron yang berada pada lapisan tersembunyi melakukan perhitungan nilai total masukan dari lapisan tersembunyi dengan cara menjumlahkan perkalian sinyal masukan dengan bobot antara lapisan masukan (input layer) dan lapisan tersembunyi (hidden layer) dan nilai bias.
  2. Neuron tersebut melakukan perhitungan nilai aktivasi.
  3. Sinyal keluaran dari lapisan tersembunyi berguna sebagai lapisan masukan pada lapisan keluaran. Kemudian neuron yang berada pada lapisan keluaran melakukan perhitungan untuk menghitung nilai keluaran.
  4. Neuron keluaran tersebut menghitung nilai aktivasi dengan menerapkan fungsi aktivasi pada lapisan keluarannya.

Algoritma proses feed forwardnya adalah :

  1. Unit input (Xi, i=1,2,…..,n)
    1. Menerima input Xi
    2. Mengirimkannya ke semua unit layer diatasnya (Hidden layer).
  2. Unit Hidden (Zj, j=1,2,….,n)
    1. Menghitung semua sinyal input dengan bobotnya :

      z_inj = voj + S
      xi vij                              (3.4)

    2. Menghitung nilai aktivasi setiap unit hidden
      sebagai output unit hidden

      zj = f(z_inj)                             (3.5)


                        
    (3.6)

    1. Mengirim nilai aktivasi sebagai input untuk unit output.
  1. Unit Output (Yk, k=1,2,…..,n)
    1. Menghitung semua sinyal inputnya dengan bobotnya :

      y_ink = wok + S
      zj wjk                         (3.7)

    2. Menghitung nilai aktivasi setiap unit output sebagai output jaringan.

      yk = f(y_ink)                               (3.8)

                                         (3.9)

Gambar 3.4 Algoritma Komputasi Maju

Backpropagation merupakan sebuah algoritma yang berfungsi untuk melakukan perhitungan balik dari neuron keluaran agar memiliki nilai bobot yang sesuai dalam jaringan neural network. Dengan komputasi balik ini nilai error atau kesalahan bisa dikurangi dengan cukup baik. Berikut ini adalah gambaran kasar dari algoritma komputasi balik yang digunakan pada Artificial Neural Network.

  1. Sinyal keluaran yang dihasilkan pada komputasi maju kemudian dicocokkan dan dilakukan perhitungan untuk menghitung selisih antara target dengan sinyal keluaran yang ada pada neuron keluaran.
  2. Hasil perhitungan ini kemudian digunakan untuk menyesuaikan bobot hubungan antara lapisan keluaran dengan semua neuron yang berada pada lapisan tersembunyi.
  3. Setelah itu kirimkan sinyal kesalahan ke dalam lapisan tersembunyi sehingga setiap neuron yang berada pada lapisan tersembunyi bisa menyesuaikan beban yang ada agar niali keluarannya mempunyai nilai yang mendekati dengan target.

Algoritma proses backpropagationnya adalah sebagai berikut :

  1. Unit Output (Yk, k=1,2,…..,m)
    1. Menerima pola target yang bersesuaian dengan pola input
    2. Menghitung informasi error :

      dk = (tk – yk) f'(y_ink)                         (3.10)

    3. Menghitung besarnya koreksi bobot unit output :


(3.11)

  1. Menghitung besarnya koreksi bias output :

    Dw0k = a
    dk                             (3.12)

  2. Mengirimkan dk ke unit-unit yang ada pada layer di bawahnya, yaitu ke hidden layer.
  1. Unit Hidden (Zj, j=1,2,….,p)
    1. Menghitung semua koreksi error :

    d_inj = S
    dk wjk                             (3.13)

    1. Menghitung nilai aktivasi koreksi error :

      dj = d_inj f'(z_inj)                             (3.14)

    2. Menghitung koreksi bobot unit hidden :

      Dvij = a
      dj xi                             (3.15)

    3. Menghitung koreksi error bias unit hidden
      :

      Dv0j = a
      dj                                 (3.16)

  2. Update bobot dan bias
    1. Unit Output (Yk, k = 1,2,…,m)
  • Mengupdate bobot dan biasnya (j = 0,…,p) :

wjk(baru) = wjk(lama) + Dwjk                     (3.17)

w0k(baru) = w0k(lama) + Dw0k                 (3.18)

  1. Unit hidden (Zj, j = 1,…,p)
  • Mengupdate bobot dan biasnya (i = 0,…,n) :

    vij(baru) = vij(lama) + Dvij                     (3.19)

    v0j(baru) = v0j(lama) + Dv0j                     (3.20)

Gambar 3.5 Algortima Komputasi Balik

  1. Stopping

Terdapat dua kondisi stopping pada algoritma backpropagation ini, yaitu :

  1. Error < Error maksimum

    Error adalah perbedaan yang terjadi antara ouput terhadap target yang diinginkan. Proses ANN akan berhenti jika bessarnya error yang terjadi telah bernilai lebih kecil dari nilai error maksimum yang telah ditetapkan. Besarnya nilai error dihitung dengan menggunakan fungsi error kuadratis.

  2.                                  (3.21)

        Fungsi eror tersebut merupakan bagian dari algoritma backpropagation yang menggunakan gradient descent yaitu dengan cara menuruni lembah permukaan error untuk mencapai nilai error yang convergen.

  1. Epoch > Epoch maksimum

    Epoch adalah suatu langkah yang dilakukan dalam pembelajaran pada ANN. Jika besarnya epoch lebih besar dari besarnya epoch maksimum yang telah ditetapkan, maka proses pembelajaran akan berhenti.

    Kedua kondisi stopping di atas digunakan dengan logika OR. Jadi kondisi stopping adak terjadi jika besarnya Error < Error maksimum atau Epoch > Epoch maksimum.

 
Leave a comment

Posted by on November 14, 2012 in Artificial Neural Network, Materi

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: