Örnek:
Öncelikli ağırlıklara rasgele değerler veririz.
Wb,3=-0,01 Wb,4=-0,01 Wb,5=-0,01
W1,3=0,01 W1,4=-0,01 W1,5=0,02 → Ağırlıklarımız
W2,3=-0,02 W2,4=0,01 W2,5=0,03
W3,6=0,01 W4,6=0,03 W5,6=-0,02
1. Adım
Bias=1 X1=0 X2=0 Y=1 (Tablodan)
İlk olarak netj= Σni=1 Xi * Wij Fj= 1/ 1+exp(-netj) hesaplanır.
3. nöronun çıkışı için; (Gizli katmandaki)
net3= (X1*W13) + (X2 * W23) + (Xb * Wb3) net3= (0*0,01) + (0*-0,02) + (1*-0,01)= -0,01
Y3= 1/ 1+exp(-(-0,01))= 0,497
4. nöronun çıkışı için; (Gizli katmandaki)
net4= (X1*W14) + (X2 * W24) + (Xb * Wb4) net4= (0*-0,01) + (0*0,01) + (1*-0,01)= -0,01
Y4= 1/ 1+exp(-(-0,01))= 0,497
5. nöronun çıkışı için; (Gizli katmandaki)
net5=-0,01 Y5=0,497 aynı şekilde hesaplanır.
Çıkış katmanındaki tek çıkış olan 6. nöron için hesaplayalım.
net6= (Y3 * W36) + (Y4 * W46) + (Y5 * W56) net6= (0,497 * 0,01) + (0,497 * 0,03) + (0,497 * -0,02)=0,00994
Y6= 1/ 1+exp(- 0,00994)=0,502
Buraya kadar yaptığımız işlemlerde ileri yaydık. Şimdi hatayı geriye yayacağız.
Çıkış nöronu için geriye yayılma hatası (6.nöron)
∫j=Fj * (1-Fj) * (Tj – Fj) ∫6= 0,502 * (1-0,502) * (1-0,502)= 0,1244 (1 değerine tablodan bakarız.)
Eğitimin bitip bitmediğini kontrol etmemiz gerekir.
E= 1/2 * Σj (Tj-Fj)2 =1/2 * (1-0,502)2= 0,216 E≠0 o yüzden hesaplamaya devam ederiz. 0 veya 0′ dan daha küçük bir değer bulsaydık bitirecektik.
Gizli katmandaki 3. , 4. ve 5. nöronlar için hata hesaplarız.
∫j=Fj * (1-Fj) * Σ ∫k * Wkj ∫3= 0,497 * (1-0,497) * (0,1244 * 0,01)= 0,004247
∫4= 0,497 * (1-0,497) * (0,1244 * 0,03)= 0,002913
∫5= 0,497 * (1-0,497) * (0,1244 * -0,02)= 0,006217
Ağırlıkların değerlerini yenilemek için bütün katmanlara uygulayacağımız son aşama (η=0,02 kabul edilmiş soruda)
Wi+1= Wi + η* ∫ * F
W56= (-0,02) + (0,2 * 0,1244 * 0,497)= 0,00764
W46= (0,03) + (0,2 * 0,1244 * 0,497)= 0,04236
W25= (0,03) + (0,2 * -0,0006217 * 0)=0,03
Wb5= (-0,01) + (0,2 * -0,0006217 * 1)= – 0,009875
1. adım için bitti. Bundan sonra bias 1 X1=0 X2=1 Y=0 , bias 1 X1=1 X2=0 Y=0 , bias 1 X1=1 X2=1 Y=1 için gene aynı adımlar tekrar edilir.
** Hesaplamalar hata oranı düşene kadar sürekli devam eder.
İyi Çalışmalar..
Merhabalar. Bende bilgisayar sistemleri öğretmenliğinde okuyorum. Hoca buna benzer bir uygulama verdi ama bunu c# yapın dedin. Bu konuda bilginiz var mı?
Merhaba. C# konusunda bilgim yok. Ama algoritmik olarak düşünürsen C# da da basit bir şekilde yapabilirsin. Kolay gelsin..
https://herturbilgi.com/2013/01/yapay-sinir-aglari-ysa/ daki anlatımınızı inceledim en sonda verdiğiniz Wi+1= Wi + η * Xi * (d-o) formülüyle burada son adımdaki yani ağılık yenileme formülünü karşılaştırdım yine de çözemedim.
W56= (-0,02) + (0,2 * 0,1244 * 0,497)= 0,00764
W46= (0,03) + (0,2 * 0,1244 * 0,497)= 0,04236
W25= (0,03) + (0,2 * -0,0006217 * 0)=0,03
Wb5= (-0,01) + (0,2 * -0,0006217 * 1)= – 0,009875 bu değerler nereden geliyor bunu biraz açıklar mısınız?
Merhaba
x1 x2 x3 | y
0 0 0 | 1
2. 3 4 |0
-1 5 9 |0
6 3 1|1
3 3 3|1
Yapay sinir ağlarına göre matematiksel çözümlü
Nasıl yapılır?
Teşekkür ediyorum