hebb, perceptro dan adaline
DESCRIPTION
Jaringan syaraf tiruanTRANSCRIPT
Tugas Komputasi Jaringan Syaraf Tiruan Nntool in MATLAB
Nama : Petrus Fendiyanto NRP : 1213201002 Dosen: Prof. Dr. M. Isa Irawan, M.T
PROGRAM PASCA SARJANA JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT TEKNOLOGI SEPULUH NOMPEMBER (ITS) SURABAYA
2014
Fungsi HEBB menggunakan m-file MATLAB
function [Tabel output bobot bias] = Hebb(s1_input,s2_input,t_input) p = [s1_input;s2_input]; t = t_input; x1=p(1,:); x2=p(2,:); n = length(x1); y=t;
y_tampil=[]; w1_tampil=[]; w2_tampil=[]; b_tampil=[];
% Implementasi aloritma HEBB dalam MATLAB for i=0:n if i==0 b=0; w1=0; w2=0; else w1=w1+y(i)*x1(i); w2=w2+y(i)*x2(i); b=b+y(i);
end
if i>0 y_tampil=[y_tampil y]; w1_tampil=[w1_tampil w1]; w2_tampil=[w2_tampil w2]; b_tampil=[b_tampil b];
end end
% Mengambil nilai bobot, output, dan bias Tabel = [x1' x2' t' y_tampil(1:n)' abs(t'-y_tampil(1:n)')]; output = y_tampil(1:n); bobot = [w1_tampil(n) w2_tampil(n)]; bias = b_tampil(n);
% Menggambar kurva figure(1) plotpv(p,t>0); plotpc([w1 w2],b); axis([-2 2 -2 2]);
AND
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [1 -1 -1 -1]
NAND
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [-1 1 1 1]
AND NOT
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [-1 1 -1 -1]
OR
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [1 1 1 -1]
NOR
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [-1 -1 -1 1]
OR NOT
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [1 1 -1 1]
Fungsi PERCEPTRON menggunakan m-file MATLAB function [input, target, output, bobot, bias] = Perceptron(p1, p2, t, iterasi)
% Membuat jaringan perceptron net = newp([-1 1; -1 1], 1, 'hardlims','learnpn');
% Mendefinisikan nilai awal untuk bobot dan bias net.IW{1,1} = [0 0]; net.b{1} = [0];
input = [p1; p2]; target = t;
% Memasukkan jumlah iterasi net.trainParam.epochs = iterasi;
% Proses training net = train(net, input, target);
% Mengambil nilai bobot, bias, dan output bobot=net.IW{:}; bias=net.b{:}; output = sim(net,input);
AND
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [1 -1 -1 -1]
NAND
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [-1 1 1 1]
AND NOT
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [-1 1 -1 -1]
OR
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [1 1 1 -1]
NOR
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [-1 -1 -1 1]
OR NOT
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [1 1 -1 1]
Fungsi ADALINE menggunakan m-file MATLAB
function [input, target, output, bobot, bias] = Adaline(p1, p2, t, iterasi)
% Membuat jaringan perceptron net = newlin([-1 1; -1 1], 1);
% Mendefinisikan nilai awal untuk bobot dan bias net.IW{1,1} = [0 0]; net.b{1} = [0];
input = [p1; p2]; target = t;
% Memasukkan jumlah iterasi net.trainParam.epochs = iterasi;
% Proses training net = train(net, input, target);
% Mengambil nilai bobot, bias, dan output bobot=net.IW{:}; bias=net.b{:}; output = sim(net,input);
AND
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [1 -1 -1 -1]
NAND
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [-1 1 1 1]
AND NOT
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [-1 1 -1 -1]
OR
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [1 1 1 -1]
NOR
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [-1 -1 -1 1]
OR NOT
Input s1 : [1 1 -1 -1]
Input s2 : [1 -1 1 -1]
Target : [1 1 -1 1]
Langkah-langkah implementasi Preceptron menggunakan nntool pada
MATLAB.
1. Membukan program MATLAB sehingga tampak seperti pada gambar berikut
2. Ketikkan perintah “nntool” pada Command Window MATLAB
3. Tunggu sampai tampil jendela “Network/Data Manager” di bawah ini
4. Klik “New” dan klik tab “Data”, Isikan data input stelah itu klik “Create”. Lalu tekan “OK”.
5. Buatlah target untuk “AND”. Tekan “Create”
6. Buat target untuk NAND, AND NOT, OR, NOR, dan OR NOT sehingga muncul seperti di
bawah ini.
7. Membuat perceptron untuk masing-masing logika. Pertama untuk “AND”. Klik tab Network,
Isikan nama network, misalnya dengan “perceptronAND” seperti gambar di bawah ini.
Kemudian klik “Create”
8. Demikian juga dengan logika yang lain sehingga tampak seperti pada gambar di bawah ini.
9. Double click seriap jaringan yang terbentuk.
Untuk perceptronAND, sehingga muncul jendela di bawah ini. Ini merupakan tampilan
jaringan yang terbentuk.
10. Train jaringan tersebut dengan menyesuaikan input dan target dengan jaringannya. Sehingga
muncul seperti berikut. Kemudian klik performance, sehingga muncul jendela sebelah kanan.
Di sini terlihat bawah terjadi sebanyak 2 iterasi selama 0.1 detik dan error = 0 pada iterasi
kedua.
11. Kemudian kembali ke nntraintool dan lakukan simulasi dengan click simulate.
12. Sehingga dihasilkan output, bobot dan bias seperti pada gambar berikut.
Sehingga didapat weight dan bias sebagai berikut
Untuk NAND
Weight Bias
Untuk OR
Weight Bias
Untuk NOR
Weight Bias
Untuk AND NOT
Weight Bias
Untuk OR NOT
Weight Bias
Jadi dapat disimpulkan bahwa untuk jaringan perceptron pada M-file dan GUI
Sebagai berikut
GUI M_File (dg fungsi)
AND Weight {1.1547 , 1.1547} {1.1547 , 1.1547}
Bias -1.4142 -1.4142
NAND Weight {-1.1547 , -1.1547} {-1.1547 , -1.1547}
Bias 1.4142 1.4142
OR Weight {1.1547 , 1.1547} {1.1547 , 1.1547}
Bias 1.4142 1.4142
NOR Weight {-1.1547 , -1.1547} {-1.1547 , -1.1547}
Bias -1.4142 -1.4142
AND NOT Weight {1.1547 , 1.1547} {1.1547 , 1.1547}
Bias -1.4142 -1.4142
OR NOT Weight {1.1547 , 1.1547} {1.1547 , 1.1547}
Bias 1.4142 1.4142
Langkah-langkah implementasi Adaline menggunakan nntool pada MATLAB.
Network type yang digunakan dalam nntool untuk ADALINE yaitu linear layer (train). Langkah-
langkah berikutnya sama dengan perceptron di atas. Sehingga di dapatkan hasil di bawah ini.
And
or
not or
not and
and not
or not
Jadi dapat disimpulkan bahwa untuk jaringan adaline pada M-file dan GUI
Sebagai berikut
GUI M_File (dg fungsi)
AND Weight {0.5 , 0.5} {0.4916 , 0.4916 }
Bias -0.5 -0.4916
OR Weight {0.5, 0.5 } {0.4916, 0.4916 }
Bias 0.5 0.4916
NOR Weight {-0.5 , -0.5 } {-0.4916 , -0.4916 }
Bias -0.5 -0.4916
NAND Weight {-0.5, -0.5 } {-0.4916, -0.4916 }
Bias 0.5 0.4916
AND NOT Weight {0.5, 0.5 } {0.4916, 0.4916 }
Bias -0.5 -0.4916
OR NOT Weight {0.5, 0.5 } {0.4916, 0.4916 }
Bias 0.5 0.4916