JOONE Kullanımı
Yazan : Şadi Evren ŞEKER
Bu yazının amacı JOONE (JAVA Object Oriented Neural Engine) uygulamasının nasıl kullanılacağını ve basit bir örneğin nasıl eğitileceğini açıklamaktır.
JOONE, http://www.jooneworld.com/ adresinden indirilebilen açık kaynak kodlu bir yazılımdır. Yazılım indirilip kurulduktan sonra aşağıdakine benzer bir arayüzü bulunur:
Bu arayüz üzerinde yahut işlemi (XOR (özel veya)) tanımlayarak eğitem bir uygulamayı adım adım geliştirelim:
1. ilk adımda yeni bir sigmoid katman (sigmoid layer)
tanımlamak için düğmesine basarak uygulama içerisine bir katman yerleştirin.

bu katmana sağ tuş ile tıklayıp properties ekranına girin ve rows değerini 2 olarak ayarlayın
2. Sistemimizde toplam 3 katman bulunacağı için bu işlemi 2 kere daha tekrarlayarak aşağıdakine benzer şekilde sistemimize yerleştirelim. ve Layer 2 için rows değerini 3 olarak ayarlayalım.

3. Sistemimizde bulunan bütün katmanları ekledikten sonra bu katmanları birbirine bağlayabiliriz. Bağlama işlemi için öncelikle katmana tıklayın, ardından katmanın sağ kenarında beliren çembere tıklayarak diğer katmanın içerisine oku sürükleyin.

4. Sistemimizdeki 3 katmanı birbirine bağladıktan sonra sistemimizin dosya girişini tanımlayaibliriz. Bunun için
simgesine tıklayarak sistemimize bir dosya girişi ekleyelim ve sistemimize bağlayalım:

5. Sistemimizdeki özel veya (XOR) için hazırlanmış olan giriş dosyasını bilgisayarımızda bir metin dosyasına (örneğin masa üstünde xor.txt olarak) kaydedelim:
0.0;0.0;0.0
0.0;1.0;1.0
1.0;0.0;1.0
1.0;1.0;0.0
6. Yeni eklediğimiz dosya girişi üzerinde sağ tuşla tıklayarak properties (özellikler) seçeneğine girilip açılan yeni penceredeki dosya kısmına (inputFile) daha önceden kaydedilmiş giriş değerlerinin bulunduğu dosya seçilir:

7. Dosyamızda bulunan kolonlardan 1 ve 2. kolonlar giriş değeri olduğu için AdvancedColumnSelector parameteresini “1,2″ olarak ayarlayın.
8. Ardından bir eğitim katmanı (teacher) eklemek için
simgesine basarak sistemin çıkışına yerleştirelim:

9. Eğitim katmanımız için de bir dosya girişi tanımlayalım ve aynı xor.txt dosyasını göstererek AdvancedColumnSelector parameteresini “3″ olarak ayarlayınız. Ayrıca eğitim katmanının (teacher) üst tarafında bulunan kutudan tutarak dosyaya bağlantı oluşturunuz (sarı bir ok olacak ve bu sefer bağlantıyı eğitim katmanından dosyaya doğru götürüyoruz.)

10. Sistemimizi çalıştırmak için tools menüsünden control panel’i seçin:

Yukarıdaki ekranda aşağıdaki ayarları yapın:
- epochs = 10,000. Bu dosyanın 10bin kere işleneceği anlamına gelmektedir.
- training patterns = 4. Bu örnek satırlardan kaç tanesinin okunacağını belirler
- learningRate = 0.8
- momentum= 0.3
- learning parameter’ı seçin. Bu ayarda sistemin eğitim aşamasında oluğunu belirtmektedir
11. Son olarak “run” düğmesine basarak sistemi çalıştırabilirsiniz.
12. Şayet sistemin çıkışını kaydetmek isterseniz, sistemin sonuna bir output layer ekleyerek özellikler seçeneğinden bir dosya ismi giriniz. Çalışma sonuçları bu dosyaya kaydedilecektir.
Sistemin test edilmesi için:
1. Sistemimizde bulunan eğitim (teacher) katmanını ve bu katmana giren input file katmanını kaldırıp sistemin sonuna File Output katmanı ekleyelim:

2. Yeni eklediğimiz file output katmanının özelliklerine girerek dosyamızın kaydedileceği yeri seçin.
3. Tools > Control Panel tekrar açarak epoch parametresini 1 yapın ve Trainin seçimini temizleyin. Bu sayede sistemimiz sadece bir kere çalışacak ve eğitilmek yerine test için kullanılacak.
4. Run düğmesine basın ve çıktı dosyasına bakın:
0.0036630317180676533
0.9957114272060897
0.9957027753822055
0.0054237800734283186
Yukarıdaki çıktıda 0′a yakın olan değerleri 0, 1e yakın değerleri de 1 olarak kabul edersek doğruluk tablomuzun
0
1
1
0
olarak doğru çıktığını görürüz
« Tek Katmanlı Sinir Ağları (Single Layer Neural Networks) | Yahut Problemi (Özel Veya Problemi (XOR Problem, exclusive or)) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'JOONE Kullanımı' isimli yazı 04 Oct 2008 tarihinde, saat: 06:12 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 362 defa okunmuştur.
Benzer yazıları Yapay Sinir Ağları (Artificial Neural Networks) kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Şadi Evren ŞEKER: Sıralama işleminiz poligonu...
- Şadi Evren ŞEKER: bahsettiğiniz sıralama algoritması...
- Abdurrahman ulusoy: merhaba hocam. gelişigüzel...
- Oguz Okutan: Merhaba hocam.. Fonksiyonlarda degere göre...
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
Yakın Yazılar
JSP Dahili Nesneleri (JSP Implicit Objects)
Kochanski Çarpımı (Kochanski Multiplication)
OpenGL Nesne Seçimi (Object Picking)
parçala fethet yöntemi (divide and conquer)
Koyma Değiştirme Ağları (Substitution Permutation Network , SPN)
Inheritance ( Nesneler Arası Miras İlişkisi)
Anahtar Beyazlatma (Key Whitening)
Bağlantılar
