Bir bilgisayar mühendisi için programlama dili, öğrendiklerini sınadığı, deneyler yaptığı bir laboratuardır ve mühendisler deneylerini, kestiremedikleri sonuçları gözlemlemek için değil, öngördükleri sonuçları doğrulamak için yapar...

Geri Yayılımlı Yapay Sinir Ağı Kütüphanesi

Katman ve nöron sayıları ihtiyaca göre ayarlanabilen geri yayılımlı yapay sinir ağları oluşturmak, bu ağları eğitmek, kaydetmek ve dosyadan geri yüklemek için gerekli olan fonksiyonları barındıran kütüphane.
Geri yayılımlı yapay sinir ağı
Kütüphane: GYYSA.dll
Son sürüm: 1.3.1
Örneklenen diller: C++, VB6, C#, VB.NET
İndirmek için: tıklayınız

İlgili yazılar: Geri Yayılımlı Yapay Sinir Ağları, GYYSA.dll İle OCR

Önemli Not: Çok fazla nöron içeren ağlarda, hata fonksiyonu çok fazla yerel minimum içereceğinden, hata sıfıra yaklaştırılırken çok daha küçük adımlar kullanılmalıdır. Bu amaçla, adım büyüklüğünü ayarlayan öğrenme katsayısının, fazla sayıda nöronu olan ağlarda çok küçük seçilmesi gerekmektedir...

Güncellendi (06/04/2011, v1.3)

Güncellendi (04/03/2011)

Güncellendi (14/02/2011)

Güncellendi (07/02/2011, v1.2)

Güncellendi (23/01/2011, v1.0.1.87)


Bundan yaklaşık 2 yıl önce VB6 ile bir YSA sınıfı yazıp bu sınıfı kullanarak birkaç uygulama yapmış ve uygulamalar ile ilgili bilgileri yayınlamıştım. Ziyaretçilerden konu ile ilgili, bir kısmı beni aşan pek çok soru geldi. Bu konu ile ilgilenenler için geri yayılımlı yapay sinir ağı konusunda ihtiyaç duyacakları fonksiyonların tümünü barındıran bir kütüphane hazırladım.

Geri yayılımlı yapay sinir ağı modeli ile ilgili bilgi edinmek için, şu an içinde bulunduğunuz kategorideki diğer yazılara göz atabilirsiniz.

Kütüphane yardımıyla istediğiniz kadar katmandan(tabi ki en az 2) ve her katmanda istediğiniz kadar nörondan oluşan yapay sinir ağları oluşturabilirsiniz. Oluşturduğunuz ağları eğitebilir, eğitilmiş ağları dosyalara kaydedip, sonraki bir zamanda eğitilmiş halleri ile geri yükleyebilirsiniz.

Dosyanın içinde, başlangıçta en sık denenen örnek olan XOR işlemi ile YSA'yı eğiten, C++ ve VB6 dilleriyle yazdığım 2 örnek var. Kütüphaneyi kullanmadan önce C++ Kütüphaneleri Ve Diller Arası Uyumsuzluklar yazısını okumanız faydalı olabilir.

Fonksiyonlar

Kütüphanenin içindeki fonksiyonlar:

BOOL AgOlustur(byte* KatmanDizisi, byte KatmanSayisi)
BOOL Egit(float OgrenmeKatsayisi, float Momentum, byte* GirisDizisi, byte* CikisDizisi)
void Hatirla(byte* GirisDizisi, float* CikisDizisi)
BOOL AgiKaydet(char* DosyaYolu)
BOOL AgiYukle(char* DosyaYolu)

AgOlustur

KatmanDizisi: Katman dizisi her katmanda kaç nöron bulunacağını bildirecek olan tamsayılardan oluşmalıdır. Fonksiyona bu dizinin ilk elemanının referansı gönderilmelidir.

KatmanSayisi: Kaç tane katman oluşturulacağını belirler. Bu değer, katman dizisinin boyutu kadar olmalıdır.

Fonksiyon başarılı olursa true, başarısız olursa false dödürür.

Egit

OgrenmeKatsayisi: Ağın öğrenme hızını ayarlayan sayıdır ve 0 ile 1 arasında değerler alır.

Momentum: Dendrit ağırlıkları güncellenirken, önceki değişimin yeni değişime hangi oranda ekleneceğini belirleyen katsayıdır. Bu katsayı öğrenme sürecine, hareket eden bir cismin sahip olduğu momentum etkisini kazandırır. Katsayı sıfırdan büyük girildiğinde, dendrit ağırlıklarında yapılacak değişim ani olarak artıp azalmaz. Böylece yerel minimumlara rastlandığında öğrenme sürecinin aniden yavaşlaması veya durması engellenir. Parametreye 0 veya 1 arasında değerler verilebilir. Öğrenme sürecinde momentum etkisi istenmiyorsa 0 değeri verilmelidir.

GirisDizisi: Sadece 0 veya 1lerden oluşan tamsayı dizisi. Fonksiyona dizinin ilk elemanının referansı gönderilmelidir.

CikisDizisi: Verilen giriş ile döndürülmek istenen çıkış dizisidir. Bu dizi yine sadece 0 veya 1lerden oluşan tamsayı dizisi olmalıdır. Fonksiyona dizinin ilk elemanının referansı gönderilmelidir.

Fonksiyon başarılı olursa true, başarısız olursa false döndürür.

Hatirla

GirisDizisi: Sadece 0 veya 1lerden oluşan tamsayı dizisi. Fonksiyona dizinin ilk elemanının referansı gönderilmelidir.

CikisDizisi: Bu parametreye çıkışları tutacak olan dizinin ilk elemanının referansı gönderilmelidir. Dizinin elemanları kütüphane tarafından doldurulur.

AgiKaydet

DosyaYolu: Ağın kaydedileceği dosyanın konumunu belirler. Tam yol yazılabileceği gibi sadece dosya adı da yazılabilir. Ağ dosyaya düz metin formatında kaydedilir. Fonksiyona, dosya yolunu bildirecek olan karakter dizisinin ilk harfinin adresi yollanmalıdır.

Fonksiyon başarılı olursa true, başarısız olursa false dödürür.

AgiYukle

DosyaYolu: Ağın bilgilerinin yer aldığı dosyanın konumunu belirler. Tam yol yazılabileceği gibi sadece dosya adı da yazılabilir. Fonksiyona, dosya yolunu bildirecek olan karakter dizisinin ilk harfinin adresi yollanmalıdır.

Fonksiyon başarılı olursa true, başarısız olursa false dödürür.

Uyumsuzlukları elimden geldiği kadar gidermeye çalıştım. Yine de kütüphaneyi başka dillerde kullanırken tür uyumsuzluklarının yol açabileceği problemlerle karşılaşmamak için C++ tipleri ile eşit boyutlarda tipler kullandığınızdan emin olun...

Sayfayı
Yayın tarihi: 21 Ocak 2011 Cuma, 18:52
Anahtar kelimeler: gyysa dll, yapay sinir ağı kütüphanesi, geri yayılımlı, back propagation

Yorum Gönder

 
Yorumunuzu -1. yoruma yanıt olarak gönderiyorsunuz. Yanıtlamayı iptal etmek için buraya tıklayabilirsiniz.

 

Yorumlar (4)

Samed Önen
Yanıtla
23 Mart 2011 Çarşamba, 17:19
#1

hocam öncelikle tskler emeğiniz için. Ama ben C  dosyaından çıkan c kodlarını dev c  da çalıştıramadım sorun nedir acaba....Kolay gelsin

Hüseyin Atasoy
Yanıtla
24 Mart 2011 Perşembe, 07:52
#2

Paketteki C++ kodunu Code::Blocks ile yazıp 'GNU GCC Compiler' ile derlemiştim. Kodlar Dev C++'ta problem yaratıyor olabilir.
Kütüphane ile ilgili açıklamalar bu sayfada mevcut, kod örnekleri de elinizde. Kodu düzenlemeyi veya yeniden yazmayı deneyebilirsiniz.

beren erdal
Yanıtla
27 Mart 2012 Salı, 13:43
#3

kodlara nerden nasıl ulaşırız acaba?

Hüseyin Atasoy
Yanıtla
02 Nisan 2012 Pazartesi, 21:47
#4

Kütüphanenin kodlarını kastediyorsanız, kaynak kodlar dağıtıma dahil değil. Kütüphanenin kullanımı ile ilgili çeşitli dillerde yazılmış örnek kodlar ise kütüphane ile birlikte indirilebilir.

 
 
Sayfa 40 sorgu ile 0.018 saniyede oluşturuldu.
Atasoy Blog v4 © 2008-2017 Hüseyin Atasoy