Top Banner
PEMROGRAMAN ADALINE DENGAN MATLAB Kelompok: Asydicky Firmanto M. Dany Ridwan Fahril
17

Pemrograman Adaline Dengan Matlab

Dec 07, 2015

Download

Documents

herrizon

matlab
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Pemrograman Adaline Dengan Matlab

PEMROGRAMAN ADALINE DENGAN

MATLAB

Kelompok:Asydicky Firmanto

M. DanyRidwan Fahril

Page 2: Pemrograman Adaline Dengan Matlab

Pemrograman ADALINE• Pemrograman ADALINE (Linear Filter) mirip dengan

pemrograman Perceptron. Fasilitas yang disediakan Matlab: menhitung keluaran jaringan, menghitung perubahan robot, dan melakukan pelatihan.

• Spesifikasi ADALINE:a. Masukan dan target berbentuk bebasb. Fungsi aktifasi adalah fungsi identitas, tidak ada batas

ambang (threshold)c. Parameter pelatihan (bobot, bias, kriteria penghentian, batas

toleransi, dll) bisa diatur.d. Perubahan robot dilakukan sedemikian sehingga error

minimum (least mean square error)

Page 3: Pemrograman Adaline Dengan Matlab

Pembentukan Jaringan• Jaringan ADALINE harus dibentuk dengan perintah newlin yang

akan membentuk ADALINE dengan spec tertentu. Bentuk fungsi newlin:

net = newlin (PR,S,ID,LR)Dengan:

PR : matriks R x 2 yang berisi nilai minimum dan maksimum elemen masukan RS : jumlah elemen vektor keluaran.ID : Vektor delay masukan (default = [0])LR : laju pemahaman (default α = 0.01)Dan menghasilkan sebuah ADALINE (layer linier) baru.

Page 4: Pemrograman Adaline Dengan Matlab

• Laju pemahaman dapat diatur dari perintah newlin. Perintah newlin menset robot dan bias awal ke 0. seperti perceptron, untuk mengubahnya dapat digunakan penugasan net.IW{i, j} dan net.b {i}. Indeks i dan j dalam net.IW menunjukkan bobot awal dari layar –j ke-i.

• Misalkan ada 2 unit masukan dan 1 neuron target dengan bobot seperti gambar dan range [0, 10]. Perintah yang sesuai:

net = newlin ([0 10 ; 0 10],1)net.IW {1,1} = [2 3]net.b {1} = [-4]

Page 5: Pemrograman Adaline Dengan Matlab

Contoh 14.1Bentuklah perceptron untuk mengenali pola fungsi logika “dan” 2 variabel x1 dan x2 dengan masukan dan target bipolar.

PenyelesaianLogika “dan” dengan 2 variabel bipolar memiliki range [-1,1], dan sebuah target.

net = newlin ([-1 1 ; -1 1],1)Parameter [-1 1 ; -1 1] menunjukkan kedua unit masukan x1 dan x2 memiliki range [-1, 1]. Parameter s = 1 menunjukkan jaringan hanya memiliki sebuah target (neuron)

Page 6: Pemrograman Adaline Dengan Matlab

Pembentukan Vektor Masukan dan Target• Setelah membentuk ADALINE, berikutnya harus ditentukan pola

masukan dan target yang akan dikenali. Masukan dan keluaran berupa kolom. Jumlah unit tiap pola masukan serta range nilai harus sesuai dengan spec ADALINE yang dibuat.

Contoh 14.2Buatlah vektor masukan-keluaranADALINE dari contoh 14.1

Perintah matlab:net = newlin ([-1 1 ; 1 -1],1)p = [ [1 ; 1] [1 ; -1] [-1 ; 1] [-1 ; -1] ]t = [1 -1 -1 -1]

Page 7: Pemrograman Adaline Dengan Matlab

Menghitung Keluaran ADALINE• Setelah pola masukan diberikan, kita dapat menghitung keluaran

ADALINE. Perintah Matlab sama seperti Perceptron:[Y, Pf, Af, E, perf] = sim (net, P, Pi, Ai, T)

Parameter masukannet : nama jaringan dalam perintah NewlinP : Vektor masukan jaringanPi : Kondisi delay awal masukan, default = zerosAi : Kondisi delay layar. Default = zerosT : Vektor target jaringan. Default = zeros

Page 8: Pemrograman Adaline Dengan Matlab

Parameter hasilY : keluaran jaringanPf : kondisi akhir delay masukanAf : kondisi akhir delay layarE : error jaringan = T – Yperf : untuk kerja jaringan

• Pi, Ai, Pf, Af hanya dipakai bagi jaringan yang memiliki delay masukan dan layar.

y = sim (net, p);

Page 9: Pemrograman Adaline Dengan Matlab

Contoh 14.3Hitung keluaran jaringan contoh 14.1 dengan pola masukan 14.2, bobot awal w1 = 2, w2 = 3, bias = -4

Penyelesaiannet = newlin ([-1 1 ; -1 1],1);p = [ [1 ; 1] [1 ; -1] [-1 ; 1] [-1 ; -1] ];t = [1 -1 -1 -1];net.IW {1,1} = [2 3];net.b {1} = [-4];a = sim (net , p)

Page 10: Pemrograman Adaline Dengan Matlab

Hasil:a =

1 -5 -3 -9• Vektor a merupakan keluaran jaringan untuk p1 hingga p4

dengan bobot dan bias = [2 3] dan [-4]. f(net) = net.

Page 11: Pemrograman Adaline Dengan Matlab

• Perintah sim (net,p) hanya menampilkan hasil keluaran jaringan (f(net) pada tabel 14.2. untuk menampilkan besarnya error dan tingkat untuk kerja:[a, Pf, Af, e, perf] = sim (net, p, [ ], [ ], t)Jika perintah dijalankan, maka hasilnya:>> [a, Pf, Af, e, perf] = sim (net, p, [ ], [ ], t)a =

1 -5 -3 -9Pf =

[ ]Af =

[ ]e =

0 4 2 8perf =

21

Page 12: Pemrograman Adaline Dengan Matlab

Modifikasi Bobot dan Bias• Setelah menghitung keluaran jaringan, langkah berikutnya

mengubah bobot berdasarkan selisih antara keluaran jaringan dengan target. Untuk mengubah bobot dan bias digunakan learnwh (learn Widrow-Hoff)

[dw, LS] = learnwh(W, P, Z, N, A, T, E, gW, gA, D, LP, LS)[db, LS] = learnwh (b, ones (1,Q), Z, N, A, T, E, gW, gA, D, LP, LS)

DenganW : matriks bobotP : vektor masukanZ : vektor masukan dengan bobot

Page 13: Pemrograman Adaline Dengan Matlab

N : vektor masukan netA : vektor keluaranT : vektor layar targetE : vektor layar targetgW : gradien bobot thd unjuk kerjagA : gradien keluaran thd unjuk kerjaD : jarak neuronLP : parameter pemahamanLS : state pemahaman

Page 14: Pemrograman Adaline Dengan Matlab

Pelatihan Adaline

• Matlab menyediakan fasilitas pelatihan untuk memodifikasi bobot dalam adaline hingga memenuhi kriteria tertentu (misal jumlah epoch, error dll).

• Formatnya mirip dengan perceptron, hanya saja error dihitung berdasarkan rata-rata kuadrat kesalahan terkecil (LMS)

• Rata-rata uadrat MSE dihitung dengan rumus :

• MSE = 1/Q ∑ e2k = 1/Q ∑ ( tk – ak )2

• Q = jumlah pola yang dihitung• Tk = vektor target• Ak = vektor keluaran jaringan• Ek = tk - ak

Page 15: Pemrograman Adaline Dengan Matlab

• Contoh 14.4Hitunglah MSE untuk fungsi logika “dan” pada contoh 14.3Penyeleseaian

• Pada contoh 14.3, t = [1  -1  -1  -1] dan keluaran jaringan = a = [1  -5  -3  -9] sehingga error = =[0  4  2  8]

Maka MSE = ¼ (02 + 42 + 22 + 82) = 21

• Contoh 14.5Hitunglah bobot untuk mengenali fungsi logika “dan” menggunakan bobot dan bias awal seperti contoh 14.3PenyelesaianJika dalam contoh 14.3 ditambahkan perintah train (net,p), diperoleh hasil :

• >> train (net,p)• TRAINB, Epoch 0/100, MSE 29/0.• TRAINB, Epoch 25/100, MSE 3.76669/0.• TRAINB, Epoch 50/100, MSE 0.489239/0.• TRAINB, Epoch 75/100, MSE 0.0635452/0.• TRAINB, Epoch 100/100, MSE 0.00825362/0.• TRAINB, Maximum epoch reached.

Page 16: Pemrograman Adaline Dengan Matlab

• Default perintah train pada ADALINE adalah jumlah epoch = 100, dan error = 0. Iterasi akan dihentikan jika salah satunya tercapai.

• Umumnya error = 0 tidak pernah tercapai. Orang akan puas jika errornya cukup kecil dan dapat diabaikan.

•  Akan tetapi bobot setelah iterasi tidak dapat diperoleh. Untuk menyimpan perubahan bobot maka digunakan perintah :>> net = train (net,p,t)Hasilnya

• TRAINB, Epoch 0/100, MSE 21/0.• TRAINB, Epoch 25/100, MSE 2.94513/0.• TRAINB, Epoch 50/100, MSE 0.600059/0.• TRAINB, Epoch 75/100, MSE 0.295468/0.• TRAINB, Epoch 100/100, MSE 0.255906/0.• TRAINB, Maximum epoch reached.

Page 17: Pemrograman Adaline Dengan Matlab

• Bobot hasil iterasi bisa ditampilkan dengan perintah disp

>>disp (net.iw{1,1})0.5253     0.5422>>disp (net.b{1})-0.5590

• Keluaran jaringan setelah iterasi dilakukan dapat diketahui dengan perintah sim>>sim (net,p)

• Dan error yang terjadi = t – sim (net,p) :>> t – sim (net,p)

ans =    0.4916  -0.4241  -0.4578  0.6265• Maka MSE = ¼ (0.49162 + -0.42412 + -0.45782 + 0.62652) =

0.2559• Seperti yang ditampilkan pada MSE epoch 100.