www.aliosmangokcan.com

Matlab'da yapılan bir YSA ile XOR uygulaması daha önceden paylaşmıştım. Şimdi de başka bir örnek paylaşmak istedim. Matlab'da YSA uygulaması yapan arkadaşlara faydalı olması dileğiyle...

ÖZEL VEYA (XOR) problemi sahip olduğu doğrusal olmayan yapı sayesinde sınıflama ve modelleme algoritmalarının test edilmesi ve başarılarının ölçülmesinde önemli bir ölçüt haline gelmiştir. Doğruluk tablosu Tablo 1.1’de verilmiştir. Bu şekilden de anlaşılabileceği gibi basit bir doğru ile lojik 1 ve lojik 0 olan değerleri birbirlerinden ayrıştırılamamaktadır. Oysaki diğer lojik operatörler örneğin VE (AND), VEYA (OR) gibi işlemler bir doğru ile kolaylıkla sınırlanabilmektedir.  

Tablo 1.1.  XOR lojik operatörünün doğruluk tablosu

A

B

Y= A XOR B

Y= A OR B

0

0

0

0

0

1

1

1

1

0

1

1

1

1

0

1

  1. a) XOR operatörü                     b) OR operatörü 

   Xor problemi için hata 0,03 ,lamda değeri 0,5 seçilmiştir . Problemin Matlab kodu şu şekildedir :

 

              XOR Probleminin M-File Kodu:

input = [0 0; 0 1; 1 0; 1 1]; %giriş matrisi

output = [0;1;1;0]; %beklediğimiz değerler

bias = [-1 -1 -1]; %bias değerleri

hata=0.03;

lamda =0.5;

Ht =zeros(1,500);

m=1;

x=true;

t=0;% iterasyon sayıcı

weights = [0.341332 0.129952 0.570345 ;-0.115223 -0.923123 0.328932 ;-0.993423 0.164732 0.752621 ];

%w(1,1)-w(2,1)-w(3,1) eşik değerleri ,

%w(1,2)-w(1,3)-w(2,2)-w(2,3)girdi ağırlıkları,

%w(3,2)-w(3,3) ara katman ağırlıkları

while(x)

if(0.03<=hata)

out = zeros(4,1);

numIn = length (input(:,1)); %girişin satır sayısı

for j = 1:numIn

H1 = bias(1,1)*weights(1,1) + input(j,1)*weights(1,2)+input(j,2)*weights(1,3);

x2(1) = 0.5* (1+H1/(1+abs(H1)));

H2 = bias(1,2)*weights(2,1)+ input(j,1)*weights(2,2) +input(j,2)*weights(2,3);

x2(2) = 0.5* (1+H2/(1+abs(H2)));

x3_1 = bias(1,3)*weights(3,1) + x2(1)*weights(3,2) +x2(2)*weights(3,3);

out(j) = 0.5* (1+x3_1/(1+abs(x3_1)));

delta3_1 = out(j)*(1-out(j))*(output(j)-out(j));

delta2_1 = lamda*x2(1)*(1-x2(1))*weights(3,2)*delta3_1;

delta2_2 = lamda*x2(2)*(1-x2(2))*weights(3,3)*delta3_1;

for k = 1:3

if k == 1 % Bias

weights(1,k) = weights(1,k) + lamda*bias(1,1)*delta2_1;

weights(2,k) = weights(2,k) + lamda*bias(1,2)*delta2_2;

weights(3,k) = weights(3,k) + lamda*bias(1,3)*delta3_1;

else %  k=2 or 3 input,

weights(1,k) = weights(1,k) + lamda*input(j,1)*delta2_1;

weights(2,k) = weights(2,k) + lamda*input(j,2)*delta2_2;

weights(3,k) = weights(3,k) + lamda*x2(k-1)*delta3_1;

end

end

end

Ht(1,m)= abs(output(j)-out(j));

hata=Ht(1,m);

t=t+1;

m=m+1;

end

if(0.03>hata)

x=false;

end

end

figure(1)

plot(Ht(1,:),'r');

figure(2)

plot(output(:,1),'r')

hold on

plot(out(:,1),'b')

 

M-File Kodunun Çıktısı

Hata değerlerinin matlab çıktısı Şekil 1.1 de verilmiştir. Hata 0,03 , İterasyon sayısı 55626’dır.

 

                   Şekil 1.1. Hata değerinin çıktısı

Beklenen çıktı ile sistemin çıktısının aynı grafikte gösteren matlab çıktısı Şekil 1.2’te verilmiştir.

Şekil 1.2. Beklenen çıktı ve sistem çıktısının grafiği

 

Matlab koduna göre ağın verdiği çıkış ve hata değerleri Tablo 1.2’de gösterilmiştir. 

 

Tablo 1.2. XOR problemini öğrendikten sonra ağın ürettiği çözümler ve hata oranları

Durumlar

Girdi 1

Girdi 2

Beklenen Çıktı

ÇIKIŞ(OUTPUT)

Hata

1

0

0

0

0,025727

-0,025727

2

0

1

1

0,974568

0,025432

3

1

0

1

0,974217

0,025783

4

1

1

0

0.029999

-0,029999

 

ysa, matlab, 'matlab ysa', 'yapay sinir ağları', 'or kapısı ve ysa', 'or gate ysa', 'veya kapısı matlab', 'or gate veya kapısı', 'ysa ile hava sıcaklığı', 'ysa ile tahmin', 'Hande Erkaymaz', 'Ömer Yaşar', 'International Computer & Instructional Technologies Symposium', 'and kapısı ve ysa', 'and gate ysa', 've kapısı matlab', 'and gate ve kapısı', 'xor kapısı ve ysa', 'xor gate ysa', 'özel veya kapısı matlab', 'xor gate özel veya kapısı', 'matlab ysa uygulamaları', 'yapay zeka', 'ysa uygulaması', 'artificial neual networks', 'iki girişli tek çıkışlı', 'sinüsoidal fonksiyon', 'sinüzoydal fonksiyon ysa matlab', 'iki giriş tek çıkışlı sinüsoidal fonksiyonun ysa uygulaması', 'matlab uygulamaları', 'ysa uygulamaları', 'yapay sinir ağı uygulamaları', 'Ali Osman Gökcan', 'Ali Osman Hoca', 'Ali Osman','ali osman matlab'ysa, matlab, 'matlab ysa', 'yapay sinir ağları', 'matlab ysa uygulamaları', 'yapay zeka', 'ysa uygulaması', 'artificial neual networks', 'iki girişli tek çıkışlı', 'sinüsoidal fonksiyon', 'sinüzoydal fonksiyon ysa matlab', 'iki giriş tek çıkışlı sinüsoidal fonksiyonun ysa uygulaması', 'matlab uygulamaları', 'ysa uygulamaları', 'yapay sinir ağı uygulamaları', 'Ali Osman Gökcan', 'Ali Osman Hoca', 'Ali Osman','ali osman matlab', 'matlab ile ysa uygulaması', ysa, matlab, 'matlab ysa', 'yapay sinir ağları', 'or kapısı ve ysa', 'or gate ysa', 'veya kapısı matlab', 'or gate veya kapısı', 'ysa ile hava sıcaklığı', 'ysa ile tahmin', 'Hande Erkaymaz', 'Ömer Yaşar', 'International Computer & Instructional Technologies Symposium', 'and kapısı ve ysa', 'and gate ysa', 've kapısı matlab', 'and gate ve kapısı', 'xor kapısı ve ysa', 'xor gate ysa', 'özel veya kapısı matlab', 'xor gate özel veya kapısı', 'matlab ysa uygulamaları', 'yapay zeka', 'ysa uygulaması', 'artificial neual networks', 'iki girişli tek çıkışlı', 'sinüsoidal fonksiyon', 'sinüzoydal fonksiyon ysa matlab', 'iki giriş tek çıkışlı sinüsoidal fonksiyonun ysa uygulaması', 'matlab uygulamaları', 'ysa uygulamaları', 'yapay sinir ağı uygulamaları', 'Ali Osman Gökcan', 'Ali Osman Hoca', 'Ali Osman','ali osman matlab'

--->>> YSA ile OR Kapısı Problem Çözümü için TIKLAYINIZ <<<---

--->>> Matlab'da Analitik Yöntem & Euler Metodu karşılaştırması için TIKLAYINIZ <<<---  

--->>> YSA ile AND Gate Matlab Çözümü için TIKLAYINIZ <<<---