Bir Bilgisayar Mühendisi İçin Programlama Dili, Öğrendiklerini Sınadığı, Deneyler Yaptığı Bir Labaratuardır. Ve Mühendisler Deneylerini, Kestiremedikleri Sonuçları Gözlemlemek İçin Değil, Öngördükleri Sonuçları Doğrulamak İçin Yaparlar...
Yapay Sinir Ağları
 
Üye Girişi
E-mail:

Şifre:



 
Blog Arama Motoru
 
Son Güncellenenler
 
Sosyal Ağlarda Paylaş
 
  Adım Adım YSA
   Normalde matematiksel ifadelerle ifade edilirse kısa ama anlaşılması güç olur. Anladığım kadarıyla hazırladığım, YSA algoritmasını anlatan güzel bir kaynak. Anladığım kadarıyla dediğime bakmayın, iyi çalışıyor :

Öğrenme Metodu : Danışmanlı Öğrenme(Supervised Learning)
Yapı : Geri Yayılımlı(Back Propagation)

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ğer 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
3.1.1 İşlenen katmandan sonra gelen katmanın tüm nöronlarını işleme sokarak,   tekrar tekrar(yani her nöron için bir sonraki katmanın tüm nöronlarını sırayla hesaba katarak) fark hesaplıyoruz.
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 hesapla
Nöronun Biası = nöronun biası + (OgrenmeOrani * nöronun farkı)
4.2. Önceki katmandaki nöron sayısı, yani işlenen nöronun dendrit sayısı kadar iterasyon ile nöronların her bir dendritinin ağırlığını 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 :

Yapay Sinir Ağı

 
Okunma Sayısı: 1112
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 ( 18 )
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..
Yorum/Görüş Bildir
Yorumları html kodu veya özel karakter kullanmadan, yazım kurallarına
dikkat ederek ve düzgün bir Türkçe kullanarak yazalım...
 
    Atasoy Blog v3.0 © 2009-2010 Hüseyin Atasoy | Tema Tasarımı: Hüseyin Atasoy
AtasoyWeb 1 yaşında, bu tema benden ona doğum günü hediyesi :)    
Programlama Günlüğü > Yapay Sinir Ağları > Adım Adım YSA
Menü