İlgili Bağlantı: GYYSA.dll
Normalde matematiksel ifadelerle yazıldığında çok kısa ama anlaşılması güç olur. Geri yayılımlı yapay sinir ağlarını kurma, eğitme ve ağdan çıktı alma işlemlerini, matematiksel ifadelerden arındırılmış bir halde adım adım yazarsam sanırım daha da anlaşılır olur...
Yapay Sinir Ağının Kurulumu
1. Katman sayısını belirle.
2. Öğrenme oranını belirle.
3. Katman sayısı kadar katman oluştur.
3.1. Her katman için nöron sayılarını belirle.
3.2. Her nöron için:
3.2.1. Biasa -1 ile 1 arasında rastgele değer ver.
3.2.2. Dendrit sayısını belirle ve her dendritin ağırlığına -1 ile 1 arasında rastgele değerler ver.
Öğretileni Hatırla
1. Giriş katmanındaki nöronların değerlerine giriş dizisini ata.
2. Diğer katmanlardaki nöronların değerlerine birazdan hesaplanıp değiştirilmek üzere 0 değeri ata.
3. Giriş katmanı hariç tüm katmanlar için :
3.1. Bir önceki katmandaki tüm nöronlar hesaba girene kadar nöron değerlerini hesapla. (Her nöron önceki katmandaki nöron sayısı kadar dendrit bulundurur ve tüm dendritler sadece bir önceki katmanda bulunan nöronlarla ilişkilidir.)
Nöronun Değeri = (Kendi Değeri) + (Önceki Katmanın Sıradaki Nöronunun Değeri) * (önceki Katmandaki Sıradaki Nöronla Arasında Bulunan Kendisine Ait Dendritinin Ağırlığı)
3.2. Her nöron için bir önceki katmandaki tüm nöronlarla ilişkilendirme bitince artık gerçek değer hesabına geç.
Nöronun Değeri = Aktivasyon((Nöronun Değeri) + (Nöronun Biası))
3.3. Son katmanın nöronlarının değerleri artık hazır, bunları çıkış dizisine ata...
Öğret
1. YSA'yı yukardaki işlemden geçir.
2. Son katmandaki her nöronun hedeflenen ile arasındaki farkı hesapla.
Nöronun Farkı = (Nöronun Değeri) * (1 - Nöronun Değeri) * (Hedeflenen Çıkış - Nöronun Değeri)
3. Giriş ve çıkış katmanını hariç tutarak sondan başa (geri yayılımlı), tüm katmanlar için:
3.1. Sıradaki gizli katmanın tüm nöronları için:
Fark = 0
3.1.1 İşlenen katmandan sonra gelen katmanın tüm nöronlarını işleme sokarak fark değerini hesapla.
Fark = Fark + (Nöronun Değeri) * (1 - Nöronun Değeri) * (Bir Sonraki Katmanın Nöronunun Dendrit Ağırlığı * Bir Sonraki Katmanın Nöronunun Farkı)
4. İlk katmanın nöronlarının biası yok, ilk katmanı hariç tutarak tüm katmanlar için:
4.1. Her katmanın tüm nöronları için bias değerini hesapla.
Nöronun Biası = Nöronun Biası + (OgrenmeOrani * nöronun farkı)
4.2. Her nöronun her bir dendritinin ağırlığını yeniden hesapla.
Dendrit Ağırlığı = Dendrit Ağırlığı + (Öğrenme Oranı * Önceki Katmanın Nöron Değeri * Nöronun Farkı)
Visual Basic ile yazdığım 3 giriş 5 ara ve 4 çıkış nöronu içeren yapay sinir ağı örneği :
Yayınlanma Tarihi: Blogun eski sürümü ile yazılmış, tarih kaydı bulunmuyor...
Anahtar Kelimeler: yapay, sinir, ağı, geri, yayılımlı, danışmanlı, dendrit, bias, nöron, algoritma
Yorumlar ( 23 )
Hüseyin Atasoy#14
10/03/2010, 22:29
İnternete çok sık giremiyorum ama gelen soruları da elimden geldiği kadar yanıtsız bırakmamaya çalışıyorum. Kolay gelsin...
nsen#15
23/03/2010, 11:49
gerçekten güzel anlatmışsınız. emeğnize sağlık. benimde bir projem var yapay sinir ağlarında hebb net ve perceptron konularını araştıryorum ve bir uygulama yapmam gerekiyor. karakter tanımayı yapmak istiyorum ama matlab da olması gerekiyor. yardımcı olabilirseniz mailinizi bekliyorum. bir resimden değil de matrisi girerek öğretmek istiyorum ama yapamazsam resimden de olur.bugün gönderebilirseniz yarın hocaya bişiler göstermem gerekiyor da
şahin#16
14/04/2010, 03:14
Hocam iyi günler. YSA da ÇKA XOR probleminin kodlarını bulamıyorum. pascalda programı yapmaya çalıştım istediğim gibi olmadı. yardımcı olabilirseniz memnun olurum, teşekkürler, iyi çalışmalar.
Hüseyin Atasoy#17
14/04/2010, 16:38
ÇKA ne anlamadım. Onun dışında YSAyı oluşturduktan sonra ona ne öğretmek isterseniz öğretirsiniz. xor, or, and vs farketmez...
merve#18
20/04/2010, 11:33
merhaba,
kodlama öğreniyorumm,, yapay sinir ağları ile ilgili örneğe ihtiyacım var.. bu çalışmayı banada gönderebilirseniz çok minnettar olurum.. Kolay gelsin, başarılar..
Musa#19
18/09/2010, 22:55
Merhaba Hocam. Çalışmanın kodları banada gönderirseniz çok sevinirim.Dersin anlatımı ile programlama kodunu birarada incelersem daha iyi olacak.Şimdiden teş. iyi Çalışmalar
selin yavuzkanat#20
30/09/2010, 19:35
Merhaba hocam, bitirme tezimi YSA dan aldım. Tam anlamıyla kavrayabilmem için örneğe ihtiyacım var. Bu çalişmayı bana da gönderip yardımcı olursanız çok minnettar olurum.iyi günler...
Pınar #21
27/10/2010, 18:19
Merhabalar,banada koduu gönderirseniz çok memnun olurum..İyi çalışmalar..
Hasan Mutlu#22
05/11/2010, 09:04
Hocam programın kaynak kodlarını gönderebilirseniz çok sevinirim
Hüseyin Atasoy#23
09/11/2010, 23:53
http://www.atasoyweb.net/blog/yapay-sinir-aglari-k5s0/geri-yayilimli-yapay-sinir-agi-kutuphanesi-y101.html
Yorum/Görüş Bildir