MATLAB İle Yapay Sinir Ağı Uygulaması

MATLAB İle Yapay Sinir Ağı Uygulaması

8 Kasım 2011 0 Yazar: İbrahim AY
1 Star2 Stars3 Stars4 Stars5 Stars (Oy verilmemiş. İlk oy veren olur musun?)
Loading...

Ağ Kurulumu Ve Eğitim

Ağ Kurulumu Ve Eğitim

Verilerimizi girdik. Şimdi Yapay Sinir Ağı eğitimine başlayabiliriz. Öncelikle en basit eğitim olan “tek nöronlu doğrusal model” ile başlayalım. Bu eğitimin temsili resmi ve denklemi aşağıdaki gibidir.

Tek nöronlu doğrusal model YSA = iw1*A + iw2*B + iw3*C + iw4*D + b1

Burada ABC ve D olmak üzere 4 girişimiz var. Ağ, A bağımsızını rastgele seçtiği bir “iw1” sabiti ile, B bağımsızını “iw2”, C bağımsızını “iw3”, D bağımsızını da “iw4” sabiti ile çarparak “b1” hata oranı ile topluyor. Eğitim sonucu çıktımız olan Ra ile karşılaştırılıyor. Söz konusu döngü, en uygun çıktı için en uygun katsayılar belirlenene kadar sürdürülüyor. Elbette ki katsayıları değiştirme işlemi belli bir disiplin ile gerçekleştiriliyor (çıktı aranan değerden büyük ise katsayının veya katsayıların (veya sabitin) küçültülmesi gibi). Orasını fazla karıştırmayalım “,
Bu eğitimin komutu net=newlind(girdi,çıktı) şeklindedir. Bizim girdilerimiz ABCD, çıktılarımız Ra isimli veriler olduğu için kullanacağımız komut net=newlind(ABCD,Ra) olacaktır. Bu komutu girdiğimizde ağımız eğitilmiş olur.

Doğrusal Ağ Kurulumu

Doğrusal Ağ Eğit

Bu ağ ile edilen sonuçları görmek için sonuc=sim(net,ABCD) komutunu kullanırız.

Eğitim Sonucu

Eğitim Cevabı

Veya eğitimin başarısını ölçmek için, eğitim esnasında kullanılmamış başka değerlerin sonucuna da bakabilirsiniz.
Mesela test adlı bir tablo oluşturup girdilerimizi tanıtalım ve sonuctest=sim(net,test) ile sonucu (tahmini) alalım.

Eğitim Test

Test Sonucu

Bu eğitim ile elde edilen sonuçlar regresyon ile alacağınız sonucun aynısınıdır. Nasıl ki regresyonda bağımsız değerler birer katsayı ile çarpılıp bir hata değeri ile toplanıyorsa, bu eğitim de de aynı denklem söz konusudur. Tek fark sabitlerin bulunma yöntemidir. Ağın çarpanlarını öğrenmek için weights = net.iw{1,1}, sabiti öğrenmek içinde bias = net.b(1) komutunu kullanalım. (Veya bias = net.b{1} weights = net.iw{1})

Ağırlıklar Ve Sabit

Örneğimizde elde ettiğimiz sonuç;
weights = -0.2064 0.0104 1.5988 0.4283
bias = 3.0212
şeklindedir. Bu bağlamda sinir ağı çıktıyı şu şekilde hesaplamaktadır:
-0.2064*A+0.0104*B+1.5988*C+0.4283*D+3.0212
Birinci satır için örneklersek;
-0.2064*17+0.0104*120+1.5988*0.2+0.4283*2+3.0212=1,9367

YSA çıktımız 1.9326 iken neden aynı sonucu bulmadık. Çünkü katsayıların sadece virgülden sonra ki 4 hanesini kullandık. Gerçekte bu katsayıların virgülden sonra ki kısmı daha uzundur. Weights ve bias tablolarında bunu görebilirsiniz.

Ağırlıklar Tabloda

Sabitlerimizde virgülden sonra 6 haneyi kullanırsak formülüz şu olur:
-0.206374*A+0.010363*B+1.59875*C+0.42825*D+3.02125
-0.206374*17+0.010363*120+1.59875*0.2+0.42825*2+3.02125=1,9327
Denklemi kısa tutmak için bu şekil bize yeter. Sabitleri birebir kullanırsak YSA çıktısını birebir elde ederiz. Eğer regresyon hesabı yaparsanız aynı sabitlere çok çok yakın değerler elde ettiğinizi göreceksiniz. Yapay sinir ağının en basit halini kısaca görmüş olduk. Şimdi bir adım ileri giderek ileri beslemeli çok katmanlı bir ağ eğitimi yapalım.

İçindekiler

Sayfalar: 1 2 3 4 5 Tümü