yapay sinir ağları dönem sonu projesi

Transkript

yapay sinir ağları dönem sonu projesi
YAPAY SİNİR AĞLARI DÖNEM SONU PROJESİ
Muhammet Emre Irmak
081501014
Mustafa Kemal Üniversitesi Mühendislik Fakültesi
Elektrik Elektronik Mühendisliği Bölümü
[email protected]
ÖZET
Bu projede , bir robot kolunun herhangi bir andaki tork değeri tahmin edilmeye çalışılacaktır. Bunun için Matlab programında
farklı özelliklerdeki yapay sinir ağları oluşturulacak ve daha önceden robot kolundan alınmış verilerlerle bu yapay sinir ağları
eğitilecek ve yine robot kolundan alınmış verilerlerle test edilip performansları değerlendirilecektir.
1.GİRİŞ
Öncelikle Matlab programı açılır ve ardından YSA eğitim ve testinde kullanılacak olan ROBTRAIN.DAT , ROBTEST1.DAT ve
ROBTEST2.DAT dosyaları Matlab menüsünden Import seçilerek Workspace bölümüne alınır. Bu 3 dosyanın hepsi 1000 satır 4
sütundan oluşmaktadır. Bu sütunlardan ilk üçü , bir eksenli robot kolundan saniyede 200 örnek hızı ile aynı örnekleme
periyodunda elde edilmiş olan açısal konum , hız ve ivme verileridir. 4. sütun ise tork verisidir. Öncelikle YSA’larımızın eğitimi
için giriş ve çıkış verileri bu matrislerden ayrılmalıdır. Aşağıdaki Matlab kodları ile bu işlem sağlanmıştır.
ROBTRAIN matrisinin 1000 satırın tamamını ve 1. , 2. ve 3. sütunu alınıp “ GIRDI ” matrisine atanır.
ROBTRAIN matrisinin 1000 satırın tamamını ve sadece 4. sütunu alınıp “ CIKTI “ matrisine atanır.
GIRDI=ROBTRAIN(1:1000,1:3);
CIKTI=ROBTRAIN(1:1000,4);
ROBTEST1 matrisinin 1000 satırın tamamını ve 1. , 2. ve 3. sütunu alınıp “ TEST1 ” matrisine atanır.
ROBTEST1 matrisinin 1000 satırın tamamını ve sadece 4. sütunu alınıp “ TEST1SONUC “ matrisine atanır.
TEST1=ROBTEST1(1:1000,1:3);
TEST1SONUC=ROBTEST1(1:1000,4);
ROBTEST2 matrisinin 1000 satırın tamamını ve 1. , 2. ve 3. sütunu alınıp “ TEST2 ” matrisine atanır.
ROBTEST2 matrisinin 1000 satırın tamamını ve sadece 4. sütunu alınıp “ TEST2SONUC “ matrisine atanır.
TEST2=ROBTEST2(1:1000,1:3);
TEST2SONUC=ROBTEST2(1:1000,4);
Ardından GIRDI , CIKTI , TEST1 , TEST2 , TEST1SONUC , TEST2SONUC matrislerinin transpozları alınmıştır. Çünkü YSA
eğitimi sırasında 3 adet veri girişi ve 1 adet very çıkışı olacaktır. Transpoz işlemiyle 1000 satır 3 sütunluk matrisler 3 satır 1000
sütun olacaktır .1000 satır 1 sütunluk çıkış matrisleride 1 satır 1000 sütun olacaktır. Bu işlemi yapan Matlab kodları aşağıdaki
gibidir.
GIRDI=GIRDI';
CIKTI=CIKTI';
1
TEST1=TEST1';
TEST2=TEST2';
TEST1SONUC=TEST1SONUC';
TEST2SONUC=TEST2SONUC';
Şimdi YSA’ların eğitimine geçilebilir. 2 gizli katmanı olan 3 YSA ve 3 gizli katmanı olan 3 YSA olmak üzere 6 adet YSA
oluşturulacaktır. YSA’ların gizli katmanlardaki nöron sayıları farklı farklı seçilmiştir. Bu YSA’ların özellikleri aşağıdaki kodlarda
gösterilmektedir.
2 gizli katmanı olan YSA’lar (1. 2. 3. YSA’lar)
net=newff(minmax(GIRDI),[3,5,1],{'tansig','tansig','purelin'},'trainlm');
net=newff(minmax(GIRDI),[10,30,1],{'tansig','tansig','purelin'},'trainlm');
net=newff(minmax(GIRDI),[20,50,1],{'tansig','tansig','purelin'},'trainlm');
3 gizli katmanı olan YSA’lar (4. 5. 6. YSA’lar)
net=newff(minmax(GIRDI),[4,9,12,1],{'tansig','tansig','tansig','purelin'},'trainlm');
net=newff(minmax(GIRDI),[15,25,5,1],{'tansig','tansig','tansig',','purelin'},'trainlm');
net=newff(minmax(GIRDI),[25,35,45,1],{'tansig','tansig','tansig',','purelin'},'trainlm');
Öğrenme algoritması “ trainlm ( Levenberg-Marquardt backpropagation)” olarak seçilmiştir.
Giriş matrisindeki veriler artı ve eksi değerler içerdiğinden gizli katmanların aktivasyon fanksiyonu olarak “tansig” aktivasyon
fonksiyonu kullanılmıştır. Çıkış katmanında ise sonuca etki etmemesi için doğrusal aktivasyon fonksiyonu olan” purelin”
kullanılmıştır.
Ağın eğitim parametleri aşağıdaki gibi seçilmiştir.
net.trainParam.epochs = 3000;
“Eğitimim kaç iterasyona kadar devam edeceğini ifade eder. “
net.trainParam.show = 50;
“Eğitimin ilerleyişinin kaç döngüde bir gösterileceğini ifade eder. ”
net.trainParam.goal = 1e-10;
“Hata karelerinin toplamı kaç olduğunda döngü sonlansın sorusuna cevaptır. Eğer yukarıda verdiğimiz azami 3000 iterasyon
sonunda bu hata oranına ulaşılamazsa eğitim başarısız demektir. “
net.trainparam.min_grad = 1e-10;
2
“Ağın performans değeridir. Düşük olursa istediğimiz MSE (mean squared error- ortalama karesel hata ) değerine
ulaşamayabiliriz, bu anlamda yüksek tutmakta fayda var. “
Ağın eğitimine başlamak için ise ;
[net,tr]=train(net,GIRDI,CIKTI);
komutu kullanılır. Bu komut matlaba girildiği anda nntool arayüzü açılır ve eğitim işlemi başlar. Eğitim bittikten sonra ise
performans analizine geçilebilir. Eğer eğitimden tatmin olmamış isek ;
net = init(net);
komutu ile ağ sıfırlanır tekrar eğitim işlemi yapılır.
Eğitim işlemi bitirildikten sonra aşağıdaki komutlar girilerek ağ test edilir.
T1S1=sim(net,TEST1);
T2S1=sim(net,TEST2);
Ağın eğitim işlemi ve test işlemi bitirildikten sonra ise analiz işlemini kolaylaştırmak için test sonuçlarımız ile asıl test
sonuçlarının arasındaki farklar hesaplanıp FARK isimli matrislere atanır. Workspace bölümünden bu FARK matrislerimizdeki
min ve max değerlerine bakarak analiz yapılır.
for i=1
for j=1:1000
FARKT11(i,j)=T1S1(i,j)-TEST1SONUC(i,j)
FARKT21(i,j)=T2S1(i,j)-TEST2SONUC(i,j)
j=j+1
end
i=i+1
end
Eksi değerler ise kafa karışıklığını önlemek amacıyla aşağıdaki kod satırları aracılığıyla artıya çevrilmiştir.
FARKT11=abs(FARKT11)
FARKT21=abs(FARKT21)
(Not : 6 farklı YSA için yukarıdaki işlemler tekrarlanır.)
2. PERFORMANS ANALİZİ
3
1. YSA’ nın ANALİZİ
1702 iterasyonda istenen performans değerine 10^(-10) yani ortalama karesel hata değerine ulaşıldığı için eğitim
sonlandırılmıştır. Burada ortalama karesel hata değeri istenen değere ulaştığı halde minimum gradient istenilen değere
ulaşamamıştır. Gradient yani eğim azaltma , ağın eğitiminde ağırlıkların güncellenmesi açısından önemlidir. Fakat karesel hata
ortalaması düşük değerlere ulaştığı için gradient değeride düşük değerlere ulaşmış demektir.
T1S1 : TEST1 girdilerine ağın verdiği sonuçlar
T2S1 : TEST2 girdilerine ağın verdiği sonuçlar
TEST1SONUC : TEST1 beklenen değerleri
TEST2SONUC : TEST2 beklenen değerleri
FARKT11 : T1S1 ile TEST1SONUC verileri arasındaki farklar
FARKT21 : T2S1 ile TEST2SONUC verileri arasındaki farklar
FARKT11 ve FARKT21 bulunma amacı eğitmiş olduğumuz
YSA’mızın TEST1 ve TEST2 verilerine ürettiği sonuçla , bizim
beklediğimiz test sonuçları arasındaki farkları ve bunların mutlak
değerlerini almak ve eğer farklar küçükse YSA’mız
beklenen değerlere yakın değerler üretebilmiştir diyebilmektir.
4
Şekildeki kırmızı kare içindeki matrislerden T1S1 ve T2S1 matrisleri TEST1 ve TEST2 matrislerine ağın verdiği çıktı
matrisleridir. Görüldüğü üzere T1S1 matrisi ile TEST1SONUC matrisinin min max değerleri arasında çok az fark vardır.
Ancak T2S1 veTEST2SONUC matrislerinin minimum değerleri arasında 0.4 lük, maksimum değeri arasında ise 0.3 lük
bir fark vardır. Bu fark diğer 5 YSA’nın test sonuçlarındada görülmektedir. Bunun sebebi ise interpolasyon ve ekstrapolasyon ile
ilgilidir. Giriş verilerini içeren GIRDI isimli matrisle TEST1 ve TEST2 isimli matrislere bakıldığında açıkca görülmektedir.
GIRDI matrisinin min max değerleri ile TEST1 matrisinin minimum maksimum değerleri birbirine yakınken , TEST2 matrisinin
minimum maksimum değerleri ile GIRDI matrisinin minimum maksimum değerleri arasında 10 birimlik fark vardır.
Sonuçta ağımızın eğitildiği verilere yakın veriler içeren TEST1 matrisiyle test edildiği zaman ağımız daha iyi çıktılar verir. Çünkü
eğitim sonunda ağırlıklar belirlenmiştir ve değişmez. TEST1 verileri GIRDI verileriyle uyumlu yani birbirine yakın olduğundan ,
ağırlıklarla çarpıldığında ve toplanıp aktivasyon fonksiyonlarından geçirildiğinde elbette beklenen değerlere yakın sonuçlar
verecektir. Ancak TEST2 verileri GIRDI verilerinden uzak seçildiğinden , GIRDI verileri ile eğitilmiş ağdaki ağırlıklarla
çarpılıp toplanarak aktivasyon fonksiyonlarından geçirildiğinde sonuçlar beklenen sonuçlardan doğal olarak farklı çıkmıştır.
FARK matrislerini incelediğimizde ise FARKT11 matrisindenki minimum ve maksimum verilere bakıldığında değerin oldukça
küçük olduğu görülmektedir.Bu bize eğitmiş olduğumuz ağın %100 doğrulukla çalıştığını göstermektedir.
FARKT21 matrisinde ise maksimum değer 0.46 lik bir farkın TEST2 girdilerine ağ tarafından verilen çıktılarımız ile
beklenen çıktılarımız arasındaki verilerden bir veya birçoğunda oldu ğunu göstermektedir. Bunun sebebide daha önce de
belirtildiği gibi TEST2 matrisindeki veriler ile GIRDI verileri arasındaki ekstrapolasyondur. TEST2 verileri için ağımızın % de
kaç doğrulukla çalıştığını tespit etmek için ise kısa bir programa ihtiyaç vardır. Program TEST2SONUC verileri ile ağımızın bize
TEST2 verileri için vermiş olduğı çıktıları içeren T2S1 matrisinin verilerini tektek şu işlemden geçirmelidir. Fark eğer beklenen
değerin % 20 sinden az ise sonucu doğru kabul et değilse yanlış kabul et ve ağın doğruluğunu belirle.
a=0;
for i=1
for j=1:1000
YUZDE2(i,j)=T2S1(i,j)-TEST2SONUC(i,j);
if (abs(TEST2SONUC(i,j)/10)*2) > abs(YUZDE2(i,j))
a=a+1;
end
j=j+1;
end
i=i;
end
Bu işlem sonucunda a=351 çıkmıştır . Ağımız TEST2 girdileri için 1000 de 351 doğrulukla yani %35 doğrulukla çalışmaktadır.
5
2.YSA’nın ANALİZİ
21 iterasyonda istenen performans değerine 10^(-10) yani ortalama karesel hata değerine ulaşıldığı için eğitim
sonlandırılmıştır.
T1S2 : TEST1 girdilerine ağın verdiği sonuçlar
T2S2 : TEST2 girdilerine ağın verdiği sonuçlar
TEST1SONUC : TEST1 beklenen değerleri
TEST2SONUC : TEST2 beklenen değerleri
FARKT12 : T1S2 ile TEST1SONUC verileri arasındaki farklar
FARKT22 : T2S2 ile TEST2SONUC verileri arasındaki farklar
Görüldüğü üzere FARKT12 matrisinin mininmum ve maksimum
değerleri çok küçük olduğu için ağımız TEST1 verileri için %100
doğrulukla çalışmaktadır.
Yine TEST2 girdilerindeki ekstrapolasyondan dolayı FARKT22 nin
maksimum değeri olan 0.55 lik bir fark oluşmuştur. a=312 olarak
bulunmuştur.Bu da TEST2 girdileri için ağımızın % 31 doğrulukla
çalıştığını göstermektedir.
6
3.YSA’nın ANALİZİ
13 iterasyonda istenen performans değerine 10^(-10) yani ortalama karesel hata değerine ulaşıldığı için eğitim
sonlandırılmıştır.
T1S3 : TEST1 girdilerine ağın verdiği sonuçlar
T2S3 : TEST2 girdilerine ağın verdiği sonuçlar
TEST1SONUC : TEST1 beklenen değerleri
TEST2SONUC : TEST2 beklenen değerleri
FARKT13 : T1S3 ile TEST1SONUC verileri arasındaki farklar
FARKT23 : T2S3 ile TEST2SONUC verileri arasındaki farklar
Görüldüğü üzere FARKT13 matrisinin mininmum ve maksimum
değerleri çok küçük olduğu için ağımız TEST1 verileri için %100
doğrulukla çalışmaktadır.
Yine TEST2 girdilerindeki ekstrapolasyondan dolayı FARKT23 nin
maksimum değeri olan 1.7 lik bir fark oluşmuştur. a=217 olarak
bulunmuştur.Bu da TEST2 girdileri için ağımızın % 22 doğrulukla
çalıştığını göstermektedir.
7
4.YSA’nın ANALİZİ
1030 iterasyonda istenen performans değerine 10^(-10) yani ortalama karesel hata değerine ulaşıldığı için eğitim
sonlandırılmıştır.
T1S4 : TEST1 girdilerine ağın verdiği sonuçlar
T2S4 : TEST2 girdilerine ağın verdiği sonuçlar
TEST1SONUC : TEST1 beklenen değerleri
TEST2SONUC : TEST2 beklenen değerleri
FARKT14 : T1S4 ile TEST1SONUC verileri arasındaki farklar
FARKT24 : T2S4 ile TEST2SONUC verileri arasındaki farklar
Görüldüğü üzere FARKT14 matrisinin mininmum ve maksimum
değerleri çok küçük olduğu için ağımız TEST1 verileri için %100
doğrulukla çalışmaktadır.
Yine TEST2 girdilerindeki ekstrapolasyondan dolayı FARKT24 nin
maksimum değeri olan 0,4 lik bir fark oluşmuştur. a=352 olarak
bulunmuştur.Bu da TEST2 girdileri için ağımızın % 35 doğrulukla
çalıştığını göstermektedir.
8
5.YSA’nın ANALİZİ
18 iterasyonda istenen performans değerine 10^(-10) yani ortalama karesel hata değerine ulaşıldığı için eğitim
sonlandırılmıştır.
T1S5 : TEST1 girdilerine ağın verdiği sonuçlar
T2S5 : TEST2 girdilerine ağın verdiği sonuçlar
TEST1SONUC : TEST1 beklenen değerleri
TEST2SONUC : TEST2 beklenen değerleri
FARKT15 : T1S5 ile TEST1SONUC verileri arasındaki farklar
FARKT25 : T2S5 ile TEST2SONUC verileri arasındaki farklar
Görüldüğü üzere FARKT15 matrisinin mininmum ve maksimum
değerleri çok küçük olduğu için ağımız TEST1 verileri için %100
doğrulukla çalışmaktadır.
Yine TEST2 girdilerindeki ekstrapolasyondan dolayı FARKT25 nin
maksimum değeri olan 1.4 lik bir fark oluşmuştur. a=295 olarak
bulunmuştur.Bu da TEST2 girdileri için ağımızın % 30 doğrulukla
çalıştığını göstermektedir.
9
6.YSA’nın ANALİZİ
14 iterasyonda istenen performans değerine 10^(-10) yani ortalama karesel hata değerine ulaşıldığı için eğitim
sonlandırılmıştır.
T1S6 : TEST1 girdilerine ağın verdiği sonuçlar
T2S6 : TEST2 girdilerine ağın verdiği sonuçlar
TEST1SONUC : TEST1 beklenen değerleri
TEST2SONUC : TEST2 beklenen değerleri
FARKT16 : T1S6 ile TEST1SONUC verileri arasındaki farklar
FARKT26 : T2S6 ile TEST2SONUC verileri arasındaki farklar
Görüldüğü üzere FARKT16 matrisinin mininmum ve maksimum
değerleri çok küçük olduğu için ağımız TEST1 verileri için %100
doğrulukla çalışmaktadır.
Yine TEST2 girdilerindeki ekstrapolasyondan dolayı FARKT26 nin
maksimum değeri olan 1.6 lik bir fark oluşmuştur. a=256 olarak
bulunmuştur.Bu da TEST2 girdileri için ağımızın % 26 doğrulukla
çalıştığını göstermektedir.
10
m file kodları
*****
TÜM YSA’lar için yazılır
*****
GIRDI=ROBTRAIN(1:1000,1:3);
CIKTI=ROBTRAIN(1:1000,4);
TEST1=ROBTEST1(1:1000,1:3);
TEST1SONUC=ROBTEST1(1:1000,4);
TEST2=ROBTEST2(1:1000,1:3);
TEST2SONUC=ROBTEST2(1:1000,4);
GIRDI=GIRDI';
CIKTI=CIKTI';
TEST1=TEST1';
TEST2=TEST2';
TEST1SONUC=TEST1SONUC';
TEST2SONUC=TEST2SONUC';
***************************************
*****
SADECE YSA_1 için yazılır
*****
net=newff(minmax(GIRDI),[3,5,1],{'tansig','tansig','purelin'},'trainlm');
net.trainParam.epochs = 3000;
net.trainParam.show = 50;
net.trainParam.goal = 1e-10;
net.trainparam.min_grad = 1e-10;
[net,tr]=train(net,GIRDI,CIKTI);
T1S1=sim(net,TEST1)
T2S1=sim(net,TEST2)
*******************************************
*****
SADECE YSA_2 için yazılır
*****
net=newff(minmax(GIRDI),[10,30,1],{'tansig','tansig','purelin'},'trainlm');
net.trainParam.epochs = 3000;
net.trainParam.show = 50;
net.trainParam.goal = 1e-10;
net.trainparam.min_grad = 1e-10;
11
[net,tr]=train(net,GIRDI,CIKTI);
T1S2=sim(net,TEST1)
T2S2=sim(net,TEST2)
*******************************************
*****
SADECE YSA_3 için yazılır
*****
net=newff(minmax(GIRDI),[20,50,1],{'tansig','tansig','purelin'},'trainlm');
net.trainParam.epochs = 3000;
net.trainParam.show = 50;
net.trainParam.goal = 1e-10;
net.trainparam.min_grad = 1e-10;
[net,tr]=train(net,GIRDI,CIKTI);
T1S3=sim(net,TEST1)
T2S3=sim(net,TEST2)
*******************************************
*****
SADECE YSA_4 için yazılır
*****
net=newff(minmax(GIRDI),[4,9,12,1],{'tansig','tansig','tansig','purelin'},'trainlm');
net.trainParam.epochs = 3000;
net.trainParam.show = 50;
net.trainParam.goal = 1e-10;
net.trainparam.min_grad = 1e-10;
[net,tr]=train(net,GIRDI,CIKTI);
T1S4=sim(net,TEST1)
T2S4=sim(net,TEST2)
*******************************************
*****
SADECE YSA_5 için yazılır
*****
net=newff(minmax(GIRDI),[15,25,5,1],{'tansig','tansig','tansig','purelin'},'trainlm');
net.trainParam.epochs = 3000;
net.trainParam.show = 50;
net.trainParam.goal = 1e-10;
net.trainparam.min_grad = 1e-10;
[net,tr]=train(net,GIRDI,CIKTI);
T1S5=sim(net,TEST1)
T2S5=sim(net,TEST2)
*******************************************
*****
SADECE YSA_6 için yazılır
*****
net=newff(minmax(GIRDI),[25,35,45,1],{'tansig','tansig','tansig','purelin'},'trainlm');
net.trainParam.epochs = 3000;
12
net.trainParam.show = 50;
net.trainParam.goal = 1e-10;
net.trainparam.min_grad = 1e-10;
[net,tr]=train(net,GIRDI,CIKTI);
T1S6=sim(net,TEST1)
T2S6=sim(net,TEST2)
*******************************************
***** Sıradaki kodlar Ağın verdiği test sonuçları ile gerçek test sonuçları arasındaki farkları
hesaplamak için kullanılır ******
for i=1
for j=1:1000
FARKE1(i,j)=EGITIMSONUC1(i,j)-CIKTI(i,j)
FARKT11(i,j)=T1S1(i,j)-TEST1SONUC(i,j)
FARKT21(i,j)=T2S1(i,j)-TEST2SONUC(i,j)
SADECE YSA_1 için yazılır
FARKE2(i,j)=EGITIMSONUC2(i,j)-CIKTI(i,j)
FARKT12(i,j)=T1S2(i,j)-TEST1SONUC(i,j)
FARKT22(i,j)=T2S2(i,j)-TEST2SONUC(i,j)
SADECE YSA_2 için yazılır
FARKE3(i,j)=EGITIMSONUC3(i,j)-CIKTI(i,j)
FARKT13(i,j)=T1S3(i,j)-TEST1SONUC(i,j)
FARKT23(i,j)=T2S3(i,j)-TEST2SONUC(i,j)
SADECE YSA_3 için yazılır
FARKE4(i,j)=EGITIMSONUC4(i,j)-CIKTI(i,j)
FARKT14(i,j)=T1S4(i,j)-TEST1SONUC(i,j)
FARKT24(i,j)=T2S4(i,j)-TEST2SONUC(i,j)
SADECE YSA_4 için yazılır
FARKE5(i,j)=EGITIMSONUC5(i,j)-CIKTI(i,j)
FARKT15(i,j)=T1S5(i,j)-TEST1SONUC(i,j)
FARKT25(i,j)=T2S5(i,j)-TEST2SONUC(i,j)
SADECE YSA_5 için yazılır
FARKE6(i,j)=EGITIMSONUC6(i,j)-CIKTI(i,j)
FARKT16(i,j)=T1S6(i,j)-TEST1SONUC(i,j)
FARKT26(i,j)=T2S6(i,j)-TEST2SONUC(i,j)
SADECE YSA_6 için yazılır
j=j+1
end
i=i
end
*******************************************************
*****Sıradaki kodlar FARK matrislerinin nutlak değerlerini bulmak için kullanılır*****
FARKT11=abs(FARKT11)
FARKT21=abs(FARKT21)
SADECE YSA_1 için yazılır
FARKT12=abs(FARKT12)
FARKT22=abs(FARKT22)
SADECE YSA_2 için yazılır
FARKT13=abs(FARKT13)
FARKT23=abs(FARKT23)
SADECE YSA_3 için yazılır
FARKT14=abs(FARKT14)
FARKT24=abs(FARKT24)
SADECE YSA_4 için yazılır
13
FARKT15=abs(FARKT15)
FARKT25=abs(FARKT25)
SADECE YSA_5 için yazılır
FARKT16=abs(FARKT16)
FARKT26=abs(FARKT26)
SADECE YSA_6 için yazılır
***********************************************************************************
*****Sıradaki kodlar ağların TEST2 girdilerine verdiği sonuçlar ile beklenen TEST2 sonuçlarının
arasındaki fark eğer beklenen sonucun %20 sinden küçükse sayacı 1 artır ve TEST2de kaç doğru
değer verildiğini göster *****
a=0;
for i=1
for j=1:1000
YUZDE2(i,j)=T2S1(i,j)-TEST2SONUC(i,j);
if (abs(TEST2SONUC(i,j)/10)*2) > abs(YUZDE2(i,j))
a=a+1;
end
j=j+1;
end
i=i;
end
a=0;
for i=1
for j=1:1000
YUZDE2(i,j)=T2S2(i,j)-TEST2SONUC(i,j);
if (abs(TEST2SONUC(i,j)/10)*2) > abs(YUZDE2(i,j))
a=a+1;
end
j=j+1;
end
i=i;
end
SADECE YSA_1 için yazılır
SADECE YSA_2 için yazılır
a=0;
for i=1
for j=1:1000
YUZDE2(i,j)=T2S3(i,j)-TEST2SONUC(i,j);
if (abs(TEST2SONUC(i,j)/10)*2) > abs(YUZDE2(i,j))
a=a+1;
end
j=j+1;
end
i=i;
end
SADECE YSA_3 için yazılır
a=0;
for i=1
for j=1:1000
YUZDE2(i,j)=T2S4(i,j)-TEST2SONUC(i,j);
if (abs(TEST2SONUC(i,j)/10)*2) > abs(YUZDE2(i,j))
a=a+1;
end
j=j+1;
end
i=i;
end
SADECE YSA_4 için yazılır
a=0;
for i=1
for j=1:1000
YUZDE2(i,j)=T2S5(i,j)-TEST2SONUC(i,j);
if (abs(TEST2SONUC(i,j)/10)*2) > abs(YUZDE2(i,j))
a=a+1;
end
j=j+1;
SADECE YSA_5 için yazılır
14
end
i=i;
end
a=0;
for i=1
for j=1:1000
YUZDE2(i,j)=T2S6(i,j)-TEST2SONUC(i,j);
if (abs(TEST2SONUC(i,j)/10)*2) > abs(YUZDE2(i,j))
a=a+1;
end
j=j+1;
end
i=i;
end
SADECE YSA_6 için yazılır
KAYNAKLAR
1. http://ybssoftware.files.wordpress.com/2011/03/ysa_uygulama.pdf
2. http://www.yildiz.edu.tr/~gulez/3k1n.pdf
3. https://www.youtube.com/watch?v=KkwX7FkLfug
4. http://umut85.blogcu.com/yapay-sinir-aglari-ve-matlab-ile-kullanimi/3339487
5. http://web.itu.edu.tr/ayhant/dersler/ysa/ysa.html
6. http://www.ibrahimay.net/yazilarim/bilim/3-matlab-ile-yapay-sinir-agi-uygulamasi.html
7. http://kutuphane.pamukkale.edu.tr/dokuman/d000559.pdf
8. http://alumni.cs.ucr.edu/~vladimir/cs171/nn_summary.pdf
9. https://www.youtube.com/watch?v=QU-dnb12eRg
10. http://aass.oru.se/~tdt/ann/labbar/ann_lab4.pdf
11. http://ube.ege.edu.tr/~cinsdiki/UBI521/Chapter-1/cinsdikici-neural-net-giris.pdf
12. http://www.mathworks.com/help/nnet/ug/analyze-neural-network-performance-after-training.html
15

Benzer belgeler

Tam Metin - Fen Dergisi

Tam Metin - Fen Dergisi olarak taklit edilmesi ve karmaşık problemleri çözmek amacıyla bilgisayar sistemlerine uygulanması sonucu ortaya çıkmış bir veri işleme tekniğidir. YSA kendisine verilen örnekleri kullanarak öğrenm...

Detaylı