You are on page 1of 32

Supervised Learning

Algoritma dan Contoh Kasus

Jenis Algoritma

Hebb Rule Perceptron Delta Rule Backpropagation (Galat Mundur)

Hebb Rule

Metode pembelajaran paling sederhana Dilakukan dg memperbaiki nilai bobot sedemikian rupa shg jika ada 2 neuron yg terhubung keduanya pada kondidi on pada saat yg sama, bobot keduanya dinaikkan Data direpresentasi bipolar perbaikan bobotnya
wij (baru) = wij(lama)+xi*yj (i = 1,2,.....n ; dan j=1,2....m)

Algoritma Hebb Rule


Inisialisasi semua bobot : wij = 0 ; dg i=1,2,.....n; dan j=1,2,.....m Untuk setiap pasangan input-output (s-t), lakukan langkah berikut : a. Set input dengan nilai sama dg vektor input xi = Sij; (i=1,2,....n) b. Set output dg nilai sama dg vektor output yj = tij; (j=1,2,.....m) c. Perbaiki bobot : wij (baru) = wij(lama)+xi*yj (i = 1,2,.....n ; dan j=1,2....m) d. Perbaiki bias : b (baru) = b(lama)+y Dg catatan nilai bias selalu 1

Contoh Kasus
Membuat jaringan saraf untuk melakukan pembelajaran terhadap fungsi OR dengan input dan target bipolar sbb

Input -1 -1 1 1 -1 1 -1 1

Bias 1 1 1 1

Target -1 1 1 1

Penyelesaian
Arsitektur jaringan untuk contoh adalah :

x1

w1
y_in

xw+b
w2 x2 b 1

y F (y_in)

Perhitungan bobot & bias


Bobot Awal : w = {0,0} Bobot bias awal : b = {0} - Data ke-1 w1 = 0 + (-1 * -1) = 1 w2 = 0 + (-1 * -1) = 1 b = 0 + (-1) = -1 - Data ke-2 w1 = 1 + (-1 *1) = 0 w2 = 1 + (1 * 1) = 2 b = -1 + (1)= 0 - Data ke-3 w1 = 0 + 1=1 w2 = 2 -1 = 1 b = 0 +1 = 1 - Data ke-4 w1 = 1 + 1 = 2 w2 = 1 + 1 = 2 b=1+1=2

Pengetesan
Pengetesan terhadap salah satu data. Misal ambil X [-1 -1] Y_in = (X1 * W1) + (X2 * W2) + b ; F ( Y_in) adalah fungsi bipolar; Hasil tes : Y_in = (-1 * 2) + (-1 * 2) + 2 = -2 F(Y_in) = -1 Nilai -1 cocok dengan output dari pasangan data [-1 -1]

Perceptron

Klasifikasi dari suatu pola dengan pemisahan secara linier. Yang diatur adalah bobot dan nilai ambang (threshold). Nilai threshold () dlm fungsi aktivasi adalah non negatif dibuat sedemikian rupa shg terjadi pembatsan daerah negatif dan daerah positif. Input bisa digunakan untuk input biner dan bipolar, dg tertentu.

Algoritma Perceptron
0. Inisialisasi semua bobot dan bias Untuk sederhananya, set semua bobot dan bias sama dengan nol. Set learning rate (0< 1) 1. Selama kondisi berhenti bernilai false, lakukan langkah sbb: (i) untuk setiap pasangan data s-t, kerjakan : a. Set input dg nilai sama dg vektor input : Xi = Si; b. Hitung respon utk unit output rumus :

yin=output data b = bobot bias xi = input ke-i

wi = bobot ke-i

Lanjutan ................
y= 1 jika yin > y= 0 jika yin y= -1 jika yin < c. Perbaiki bobot dan bias jika terjadi error (yt) : Jika terjadi error maka: Wi (baru) = Wi(lama) + *t*Xi; b (baru) = b(lama) + *t; Jika tidak terjadi error, maka : w (baru) = w (lama) b (baru) = b (lama) (ii) Tes kondisi berhenti : Jika tidak terjadi perubahan bobot dan nilai bias pada (i), maka kondisi TRUE. Namun jika bobot dan nilai bias masih berubah, maka tes kondisi FALSE.

Contoh Kasus
Misalkan kita ingin membuat jaringan syaraf utk melakukan pembelajaran terhadap fungsi AND dgn input biner dan target bipolar sbb :

Input
1 1 0 0 1 0 1 0

Bias
1 1 1 1

Target
1 -1 -1 -1

Penyelesaian
Arsitektur jaringan untuk contoh adalah :

x1

w1
y_in

xw+b w2 x2 b 1

F (y_in)

Perhitungan bobot dan bias


Bobot Awal : w = {0,0,0,0} Bobot bias awal : b = {0,0} Learning rate (alfa) : 0,8 Threshold : 0,5 Step 1 : - Data ke-1 yin = 0,0 + 0,0 + 0,0 = 0,0 Hasil aktivasi = 0 (-0,5 < yin >0,5) Target = 1 Bobot baru : w1 = 0,0 + 0,8 * 1,0 * 1,0 = 0,8 w2 = 0,0 + 0,8 * 1,0 * 1,0 = 0,8 Bobot bias baru (b) = 0,0 + 0,8 * 1,0 = 0,8

- Data ke-2 yin = 0,8 + 0,8 + 0,0 = 1,6 Hasil aktivasi = 1 (yin > 0,5) Target = -1 Bobot baru : w1 = 0,8 + 0,8 * -1,0 * 1,0 = 0,0 w2 = 0,8 + 0,8 * -1,0 * 0,0 = 0,8 Bobot bias baru (b) = 0,8 + 0,8 * -1,0 = 0,0

- Data ke-3 yin = 0,0 + 0,0 + 0,8 = 0,8 Hasil aktivasi = 1 (yin > 0,5) Target = -1 Bobot baru : w1 = 0,0 + 0,8 * -1,0 * 0,0 = 0,0 w2 = 0,8 + 0,8 * -1,0 * 1,0 = 0,0 Bobot bias baru (b) = 0,0 + 0,8 * -1,0 = -0,8

- Data ke-4 yin = -0,8 + 0,0 + 0,0 = -0,8 Hasil aktivasi = -1 (yin < -0,5) Target = -1 Karena masih ada bobot dan nilai bias yg diperbaharui, maka dilanjutkan tes kondisi dilanjutkan ke step kedua (Caranya sama dgn step pertama)

- Step 2 - Data ke-1 yin = -0,8 + 0,0 + 0,0 = -0,8 Hasil aktivasi = -1 (yin < 0,5) Target = 1 Bobot baru : w1 = 0,0 + 0,8 * 1,0 * 1,0 = 0,8 w2 = 0,0 + 0,8 * 1,0 * 1,0 = 0,8 Bobot bias baru (b) = -0,8 + 0,8 * 1,0 = 0,0

- Data ke-2 yin = 0,0 + 0,8 + 0,0 = 0,8 Hasil aktivasi = 1 (yin > 0,5) Target = -1 Bobot baru : w1 = 0,8 + 0,8 * -1,0 * 1,0 = 0,0 w2 = 0,8 + 0,8 * -1,0 * 0,0 = 0,8 Bobot bias baru (b) = 0,0 + 0,8 * -1,0 = -0,8
dst.

Perhitungan di atas diteruskan hingga mendapatkan suatu step dimana nilai input yang dihasilkan cocok dengan target yang dituju. Apabila yin = target, maka tes kondisi berhenti. Apabila perhitungan di atas dilanjutkan, maka pada step ke-10 proses tersebut akan berhenti, dan didapatkan nilai bobot w1 = 1,6 dan w2 = 2,4 dan bobot bias (b) = -3,2

Delta rule

Delta rule merubah bbobot yg menghubungkan jaringan input ke unit output, yaitu Y_in dan nilai target (t). Memperbaiki bobot ke-i (utk setiap pola) adalah ; Wi = (t Y_in)Xi dengan Y_in = Xi Wi Rumus diatas hanya dipake untuk satu unit output

Algoritma Delta Rule


0. Inisialisasi semua bobot set semua bobot (0< Wi 1). Set learning rate (0< 1) 1. Selama kondisi berhenti bernilai false, lakukan langkah sbb: (i) untuk setiap pasangan data s-t, kerjakan : a. Set input dg nilai sama dg vektor input : Xi = Si; b. Hitung respon utk unit output rumus :

Y_in = Xi Wi
yin=output data wi = bobot ke-i xi = input ke-i c. Hitung respon untuk fungsi aktifasi : F(Y_in)= fungsi aktifasi yg dipakai

c. Perbaiki bobot jika terjadi error (0) nilai error diukur dg (=t-y): Jika terjadi error maka: Wi (baru) = Wi(lama) + *(t-y)*Xi; atau Wi (baru) = Wi(lama) + **Xi; Jika tidak terjadi error, maka : w (baru) = w (lama) (ii) Tes kondisi berhenti : Jika error =0, maka kondisi TRUE. Namun jila error 0, maka tes kondisi FALSE.

Contoh kasus
Misalkan kita ingin membuat jaringan syaraf utk melakukan pembelajaran terhadap fungsi OR dgn input biner dan target biner sbb : Input 0 0 Target 0

0
1 1

1
0 1

1
1 1

Penyelesaian
Arsitektur jaringan untuk contoh adalah :
x1

w1
y_in

xw+b
w2 x2

y F (y_in)

Perhitungan bobot dilihat dari error


Target dlm bentuk biner, fungsi aktivasi adalah fungsi undak biner dg = 0,5; learning rate =0,2. bobot awal dipilih W1 =0,1 dan W2=0,3. Step 1: - Data ke-1 : X1=0 ; X2=0; t1 = 0 bobot awal W1 = 0,1 W2=0,3; Y_in = X1 W1 + X2 W2 = 0; F(Y_in) = 0 = t1 F(Y_in) = 0 0 = 0 bobot baru W1 = W1 (lama) + **X1 = 0,1 + 0,2*0 * 0 = 0,1 W2 = W2 (lama) + **X2 = 0,3 + 0,2*0 * 0 = 0,3

- Data ke-2 : X1=0 ; X2=1; t2 = 1 bobot awal W1 = 0,1 W2=0,3; Y_in = X1 W1 + X2 W2 = 0,3; F(Y_in) = 0 = t1 F(Y_in) = 1 0 = 1 bobot baru W1 = W1 (lama) + **X1 = 0,1 + 0,2*0 * 1 = 0,1 W2 = W2 (lama) + **X2 = 0,3 + 0,2*1 * 1 = 0,5 - Data ke-3 : X1=1 ; X2=0; t3 = 1 bobot awal W1 = 0,1 W2=0,5; Y_in = X1 W1 + X2 W2 = 0,1; F(Y_in) = 0 = t1 F(Y_in) = 1 0 = 1 bobot baru W1 = W1 (lama) + **X1 = 0,1 + 0,2*1 * 1 = 0,3 W2 = W2 (lama) + **X2 = 0,5 + 0,2*0 * 1 = 0,5

- Data ke-4 : X1=1 ; X2=1; t4 = 1 bobot awal W1 = 0,3 W2=0,5; Y_in = X1 W1 + X2 W2 = 0,8; F(Y_in) = 1 = t1 F(Y_in) = 1 1 = 0 bobot baru W1 = W1 (lama) + **X1 = 0,3 + 0,2*1 * 0 = 0,3 W2 = W2 (lama) + **X2 = 0,5 + 0,2*0 * 0 = 0,5 Step 2 : - Data ke-1 : X1=1 ; X2=0; t1 = 1 bobot awal W1 = 0,3 W2=0,5; Y_in = X1 W1 + X2 W2 = 0 ; F(Y_in) = 0 = t1 F(Y_in) = 0 0 = 0 bobot baru W1 = W1 (lama) + **X1 = 0,3 + 0,2*0 * 0 = 0,3 W2 = W2 (lama) + **X2 = 0,5 + 0,2*0 * 0 = 0,5

Demikian seterusnya, iterasi berhenti bila error = 0 untuk semua pasangan data. Coba anda hitung, pada iterasi ke berapa akan berhenti.

Backpropagation

Algoritma BAckpropagation

You might also like