0% menganggap dokumen ini bermanfaat (0 suara)
369 tayangan9 halaman

Coding Matlab Hebb Dan Perceptron

coding matlab

Diunggah oleh

Arafat
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
369 tayangan9 halaman

Coding Matlab Hebb Dan Perceptron

coding matlab

Diunggah oleh

Arafat
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 9

%Program Hebb AND

%Memasukkan data input dan target


p1=[-1 -1 1 1]';
p2=[-1 1 -1 1]';
t=[-1 -1 -1 1]';
%Memasukkan bobot dan bias hasil pelatihan
w=[2 2]
b=-2;
%Iterasi (1 sampai 4)
for i=1:4
% Menghitung n
n(i)=w(1)*p1(i)+w(2)*p2(i)+b;
%Menghitung output
if n(i)>=0
a(i)=1;
else
a(i)=-1;
end
end
%Menampilkan hasil
[p1 p2 t a']

%Program Hebb AND Pelatihan input dan output bipolar


%Memasukkan data input dan target
p1=[-1 -1 1 1]';
p2=[-1 1 -1 1]';
t=[-1 -1 -1 1];
%Inisialsasi
w1=0;
w2=0;
b=0;
%Iterasi (1 sampai 4)
for i=1:4
%Perbaiki bobot
w1=w1+p1(i)*t(i);
w2=w2+p2(i)*t(i);
b=b+t(i);
end
%Tampilkan hasil bobot dan bias terakhir
[w1 w2 b]

%Program neuron Hebb untuk NAND (input dan output bipolar)


%Memasukkan data input dan target
p1=[-1 -1 1 1]';
p2=[-1 1 -1 1]';
t=[-1 1 1 1];
%Inisialsasi
w1=0;
w2=0;
b=0;
%Iterasi untuk menghitung bobot(1 sampai 4)
for i=1:4
%Perbaiki bobot
w1=w1+p1(i)*t(i)
w2=w2+p2(i)*t(i)
b=b+t(i)
end

%Program neuron Hebb untuk NAND (input dan output bipolar)


%Memasukkan data input dan target
p1=[-1 -1 1 1];
p2=[-1 1 -1 1];
t=[-1 1 1 1];
%Inisialsasi
w1=0;
w2=0;
b=0;
%Iterasi untuk menghitung bobot(1 sampai 4)
for i=1:4
%Perbaiki bobot
w1=w1+p1(i)*t(i)
w2=w2+p2(i)*t(i)
b=b+t(i);
end
[w1 w2 b]

clear epoch
%Program perceptron tiga input biner bipolar AND (Contoh Soal 2.3)
%Memasukkan data input dan target
p1=[1 1 1 0];
p2=[1 1 0 1];
p3=[1 0 1 1];
t=[1 -1 -1 -1];
%Memasukkan bobot awal
w1=0;
w2=0;
w3=0;
b=0;
teta=0.1;
alpha=1;
for j=1:30
for i=1:4
%Menghitung n
n(i)=w1*p1(i)+w2*p2(i)+w3*p3(i)+b;
%Menghitung output y
if n(i)>teta
y(i)=1;
elseif n(i)<-teta
y(i)=-1;
else
y(i)=0;
end
%Memeriksa apakah keluaran = target
if y(i) == t(i)
%w1=w1;
%w2=w2;
%w3=w3;
%b=b;
else
%Menentukan perubahan bobot
dw1=alpha*p1(i)*t(i);
dw2=alpha*p2(i)*t(i);
dw3=alpha*p3(i)*t(i);
db=alpha*t(i);
%Menghitung bobot baru
w1=w1+dw1;
w2=w2+dw2;
w3=w3+dw3;
b=b+db;
end
end
%Memeriksa apakah semua keluaran = target
if y == t
k=j;
break
else
end
end
k
[w1 w2 w3 b]

clear epoch
%Program perceptron AND 2 masukan biner keluaran bipolar (Contoh Soal 2.2)
%Memasukkan data input dan target
p1=[1 1 0 0];
p2=[1 0 1 0];
t=[1 -1 -1 -1];
%Inisialisasi bobot awal
w1=0;
w2=0;
b=0;
teta=.1;
alpha=2;
k=0;
for j=1:20
for i=1:4
%Menghitung n
n(i)=w1*p1(i)+w2*p2(i)+b;
%Menghitung output y
if n(i)>teta
y(i)=1;
elseif n(i)<-teta
y(i)=-1;
else
y(i)=0;
end
%Memeriksa apakah keluaran = target
if y(i) == t(i)
w1=w1;
w2=w2;
b=b;
else
%Menentukan perubahan bobot
dw1=alpha*p1(i)*t(i);
dw2=alpha*p2(i)*t(i);
db=alpha*t(i);
%Menghitung bobot baru
w1=w1+dw1;
w2=w2+dw2;
b=b+db;
end
end
%Memeriksa apakah semua keluaran = target
if y == t
%epoch(j)=j;
k=j;
break
else
%epoch(j)=0;
end
end
%Menampilkan epoch dan bobot terakhir
x='Jumlah epoch adalah ';
yy=num2str(k);
z=[x yy];
disp(z)
[w1 w2 b]

clear all
%Program Perceptron AND input dan output bipolar Pelatihan (Contoh Soal 2.1)
% Memasukkan data input dan target
p1=[1 1 -1 -1]';
p2=[1 -1 1 -1]';
t=[1 -1 -1 -1]';
%Inisialsasi
w=[0 0];
b=0;
alpha=1;
teta=0;
%Iterasi (1 sampai 4)
for j=1:10
for i=1:4
% Menghitung n
n(i)=w(1)*p1(i)+w(2)*p2(i)+b;
if n(i)>teta
a(i)=1;
else n(i)<=teta
a(i)=-1;
end
if a(i)'==t(i)
w(1)=w(1);
w(2)=w(2);
b=b;
else
% Perbaiki bobot
w(1)=w(1)+alpha*p1(i)*t(i);
w(2)=w(2)+alpha*p2(i)*t(i);
b=b+alpha*t(i);
end
end
%Tampilkan hasil bobot dan bais terakhir
[w(1) w(2) b]
end

Example 4.5 Write a MATLAB program for perceptron net for an AND function with bipolar inputs and targets.
Solution The truth table for the AND function is given as
X1
X2
Y
1
1
1
1
1
1
1
1
1
1
1
1
The MATLAB program for the above table is given as follows.
Program
%Perceptron for AND funtion
clear;
clc;
x=[1 1 -1 -1;1 -1 1 -1];
t=[1 -1 -1 -1];
w=[0 0];
b=0;
alpha=input('Enter Learning rate=');
theta=input('Enter Threshold value=');
con=1;
epoch=0;
while con
con=0;
for i=1:4
yin=b+x(1,i)*w(1)+x(2,i)*w(2);
if yin>theta
y=1;
end
if yin <=theta & yin>=-theta
y=0;
end
if yin<-theta
y=-1;
end
if y-t(i)
con=1;
for j=1:2
w(j)=w(j)+alpha*t(i)*x(j,i);
end
b=b+alpha*t(i);
end
end
epoch=epoch+1;
end
disp('Perceptron for AND funtion');
disp(' Final Weight matrix');
disp(w);
disp('Final Bias');
disp(b);

Anda mungkin juga menyukai