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
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...