Çok Katmanlı Perceptron İle XOR Problemi Çözümü

Matlab Yapay Sinir Ağları Örneği 6- Yapay sinir ağı örnekleri serisin devamı olan bu örnekte Çok katmanlı (multilayer) bir perceptronun Matlab uygulaması yer almaktadır. 

Örneğimizi şu şekilde özetleyebiliriz: 2 boyutlu bir girdi uzayında 4 veri kümesi (A, B, C, D) tanımlanır. (A, C) ve (B, D) kümeleri XOR sınıflandırma problemini temsil eder. Görev, XOR problemini çözmek için bir sinir ağı tanımlamaktır. 

XOR (eXclusive OR) Kapısı, girişindeki işaretler birbirinden farklı olduğu zaman çıkış olarak 1 verir, diğer tüm hallerde 0 verir ve a xor b = a'b+ab' şeklinde yazılır. Tablo 1'de XOR probleminin doğruluk tablosu yer almaktadır.

a

b

Çıkış (y)

0

0

0

0

1

1

1

0

1

1

1

0

Tablo 1. XOR Kapısının doğruluk tablosu

Problemin çözümü için uygulanacak işlem basamakları:
● 4 giriş verisi kümesi tanımlayın
● XOR problemi için çıktı kodlamasını tanımlayın.
● Ağ eğitimi için girdi ve çıktıları hazırlayın.
● Çok katmanlı bir algılayıcı oluşturun ve eğitin.
● Ağın verileri ne kadar iyi öğrendiğini görmek için hedefleri ve ağ yanıtını çizin.
● Tüm girdi alanı için sınıflandırma sonucunu çizin.

-- Matlab'da 4 giriş verisi kümesinin tanımlanması: 

close all, clear all, clc, format compact
% her sınıfın örnek sayısı
K = 100;
% 4 girdi verisi kümesi tanımlar
q = .6; % sınıfların ofseti
A = [rand(1,K)-q; rand(1,K)+q];
B = [rand(1,K)+q; rand(1,K)+q];
C = [rand(1,K)+q; rand(1,K)-q];
D = [rand(1,K)-q; rand(1,K)-q];
% sınıfların çizdirilmesi
figure(1)
plot(A(1,:),A(2,:),
'k+')
hold
on
grid on
plot(B(1,:),B(2,:),'bd')
plot(C(1,:),C(2,:),
'k+')
plot(D(1,:),D(2,:),
'bd')
% kümeler için metin etiketleri
text(.5-q,.5+2*q,'Class A')
text(.5+q,.5+2*q,
'Class B')
text(.5+q,.5-2*q,
'Class A')
text(.5-q,.5-2*q,
'Class B')

Şekil 1. Çizdirilmiş Giriş Veri Kümeleri

-- XOR problemi için çıktı kodlamasınının tanımlanması: 

% A ve c kümelerini bir sınıf olarak ve b ve d'yi başka bir sınıf olarak kodlayın.
a = -1; % a | b
c = -1; % -------
b = 1; % d | c
d = 1; %

-- Ağ eğitimi için girdi ve çıktıların hazırlanması: 

% girdileri tanımlayın (dört sınıfın tümünden örnekleri birleştirin)
P = [A B C D];
% hedefleri tanımlar
T = [repmat(a,1,length(A)) repmat(b,1,length(B)) ...
repmat(c,1,length(C)) repmat(d,1,length(D)) ];
% girişleri | çıkışları görüntüle
%[P' T']

-- Çok katmanlı bir algılayıcı oluşturulması ve eğitilmesi: 

% bir sinir ağı oluştur
net = feedforwardnet([5 3]);
% veri kümeleri
net.divideParam.trainRatio = 1; % eğitim seti [%]
net.divideParam.valRatio = 0; % doğrulama seti [%]
net.divideParam.testRatio = 0; % test seti [%]
% sinir ağını eğit
[net,tr,Y,E] = train(net,P,T);
% ağı göster
view(net)

Şekil 2. Multilayer Perceptron Ağının Görüntüsü

-- Ağın verileri ne kadar iyi öğrendiğini görmek için hedeflerin ve ağ yanıtının çizdirilmesi:

figure(2)
plot(T','linewidth',2)
hold on
plot(Y','r--')
grid on
legend('Targets','Network response','location','best')
ylim([-1.25 1.25])

Şekil 3. Hedeflerin ve Ağ Yanıtının Çizdirilmesi

-- Tüm girdi alanı için sınıflandırma sonucunun çizdirilmesi:

% bir ızgara oluşturun.
span = -1:.005:2;
[P1,P2] = meshgrid(span,span);
pp = [P1(:) P2(:)]';
% bir ızgarada sinir ağını simüle edin.
aa = net(pp);
% çıktıyı [-1,1] 'e çevir
%aa = -1 + 2*(aa>0);
% sınıflandırma bölgelerini çizdir
figure(1)
mesh(P1,P2,reshape(aa,length(span),length(span))-5);
colormap cool
view(2)

Şekil 4. Sınıflandırma Sonucu 

 

NOT : Sitede, yapay sinir ağı, yapay sinir ağları nelerdir, derin öğrenme nedir, deep learning nedir, bulanık mantık nedir, fuzzy logic nedir, yapay sinir ağları uygulamaları, makine öğrenmesi, yapay sinir ağı algoritmaları, makine öğrenmesi ve derin öğrenme, regresyon, machine learning nedir, matlab, matlab örnekleri, matlab machine learning gibi soruların cevaplarına yönelik içerikler yer almaktadır. Yapay sinir ağı’, ‘yapay sinir ağları nedir’, ‘derin öğrenme nedir’, ‘deep learning nedir’, ’bulanık mantık nedir’, ‘fuzzy logic nedir’, ‘yapay sinir ağları uygulamaları’, ‘makine öğrenmesi’, ‘yapay sinir ağı algoritmaları’, ‘makine öğrenmesi ve derin öğrenme’, regresyon, ‘machine learning nedir’, matlab, ‘matlab örnekleri’, ‘matlab machine learning’, 'artificial neural network', 'and kapısı ve ysa', 'and gate ysa', 've kapısı matlab', 'and gate ve kapısı', 'or kapısı ve ysa', 'or gate ysa', 'veya kapısı matlab', 'or gate veya kapısı', 'xor kapısı ve ysa', 'xor gate ysa', 'özel veya kapısı matlab', 'xor gate özel veya kapısı''multilayer perceptron', 'çok katmanlı algılayıcı'

Bilgilendirme

www.aliosmangokcan.com sayfasına gösterdiğiniz ilgiden dolayı teşekkür ederim. İçeriklerle ilgili duygu ve düşüncelerinizi mail adresim üzerinden iletebilirsiniz...

 

İstatistikler

  • Kullanıcılar 1
  • Makaleler 111
  • Makale Görüntüleme 777812