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