Anda di halaman 1dari 3

clc;

clear all;
%0. inisiasi bobot awal
v=[0.2 0.3 -0.1; 0.3 0.1 0.3; -0.3 0.2 0.2; -0.5 0.2 -0.2; 0.1 0 -0.3; 0.1 -
0.2 0.2; 0.2 0.3 0.1; 0.3 0.4 0.1; -0.1 -0.3 -0.2; 0 -0.1 0.1];
biasV=[-0.3; 0.3; 0.3];
w=[0.5; -0.3; -0.4];
biasW=[-0.1];
bias=1;
disp([biasW']);
%1. ketika kondisi stop tidak terpenuhi. lakukan langkah berikut:
%2. Untuk setiap pasangan data pelatihan.lakukan perambatan maju;
%3. Setiap unit masukan (Xi. i=1. 2. .... n) menerima sinyal dan meneruskan
sinyal ini ke unit tersembunyi diatasnya.
X=[0.557; 0.443; 0.329; 0.443; 0.1; 0.214; 0.157; 0.271; 0.329; 0.214];
T=0.271;
maksepoh=1000;
epsilon=10^(-6);
alpa=0.2; %learning rate
for epoch=1:maksepoh
%Menghitung semua keluaran di unit tersembunyi z (j=1.2.....p)
for j=1:3
sum=0;
for i=1:10
xv1=X(i)*v(i,j);
sum=sum+xv1;
end
sum;
z_net(j)=biasV(j)+sum;
f(j)=1/(1+exp(-z_net(j)));
z(j)=f(j);
end
z
%Menghitung semua keluaran di unit output y(j=1)
for j=1:3
sum=0;
zw=z(j)*w(j);
sum=sum+zw;
sum;
y_net=biasW+sum;
f=1/(1+exp(-y_net));
y=f;
end
y
%menghitung Error di unit keluaran y
ey=(T-y)*y*(1-y);
for j=1:3
deltaW(j)=alpa*ey*z(j); %koreksi nilai bobot
end
deltaW
deltabiasW=alpa*ey; %koreksi nilai biasW
%menghitung Error dari unit hidden z
for j=1:3
ez_net(j)=ey*w(j);
end
ez_net
for j=1:3
ez(j)=ez_net(j)*z(j)*(1-z(j));
end
ez
%koreksi bobot tersembunyi
for i=1:10
for j=1:3
deltaV(i,j)=alpa*ez(j)*X(i); %koreksi nilai v
end
end
deltaV
for j=1:3
deltabiasV(j)=alpa*ez(j);
end
deltabiasV
%perubahan bobot output
for j=1:3
wbaru(j)=w(j)+deltaW(j);
end
wbaru
%perubahan bobot bias keluaran
biasWbaru=biasW+deltabiasW
%perubahan bobot hidden
for i=1:10
for j=1:3
vbaru(i,j)=v(i,j)+deltaV(i,j);
end
end
vbaru
for j=1:3
biasVbaru(j)=biasV(j)+deltabiasV(j);
end
biasVbaru
A=norm(ez(j));
E=T-y;
MSE=mse(E)
%perf=mse(ey, ez)
v=vbaru;
w=wbaru;
biasV=biasVbaru;
biasW=biasWbaru;
epoch
if MSE<=epsilon
break
else
continue
end
end
%cek
v=vbaru;
w=wbaru;
biasV=biasVbaru;
biasW=biasWbaru;
for j=1:3
sum=0;
for i=1:10
xv1=X(i)*v(i,j);
sum=sum+xv1;
end
sum;
z_in(j)=biasV(j)+sum;
f(j)=1/(1+exp(-z_in(j)));
z(j)=f(j);
end
z
for j=1:3
sum=0;
zw=z(j)*w(j);
sum=sum+zw;
sum;
y_in=biasW+sum;
f=1/(1+exp(-y_in));
y=f;
end
y
disp(['Iterasi berhasil dengan nilai ', num2str(y), ' sebagai hasil
peramalan'])