Problemin Tanımı
Yapay sinir ağları uygulamalarının içerisinde hiç kuşkusuz en çok kullanılan özelliklerden biri Yapay Sinir Ağlarının sınıflandırıcı olmasıdır. Burada farklı özelliklere sahip noktaların tanımlı oldukları uzayda bir birinden lineer bağımsız gruplara ayrılmaları mümkün ise Yapay sinir ağları ile bu ilişki gösterilebilmektedir.
Burada 2 boyutlu bir düzlem üzerinde verilen 2 farklı gruptan noktanın lineer ayrıştırılması gerçeklenecektir. Bunun için kullanılacak olan sistem Genlikte Ayrık Algılayıcı (Perceptron) olacaktır.
Burada Perceptron yapısının oluşturulmasında ağırlıkların güncellenmesi için eğitim işlemi gerçekleştirilecektir. Uygun bir eğitim sınıfının seçilmesi problemimizin ilk koşullarından birisidir. Burada eğitim kümesi ile ilişkili bir test kümesi üzerinden testlerimizi gerçekleştirecek olduğumuzdan eğitimi ne kadar başarılı verilerle uygularsak test üzerinden de o derece iyi sonuçlar alacağızdır.
Bu sistemde soruda istenildiği üzere 14 eğitim verisi ve 6 test verisi kullanılacaktır. Bu eğitim verileri doğrultusunda başlangıçta belirlenen ağırlıkların bu 2 sınıfı lineer olarak ayıracak olan doğrunun denklemine ait katsayıları elde edilene kadar kullanılmaktadır.
Sistemin lineer ayrılabilir olması bu noktada önemli olmaktadır. Aksi halde sistem belirli bir iterasyon kısıtı konulmamış ise uygun katsayıları bulmak için sonsuza kadar eğitimden çıkamayacaktır.
Performansı Etkileyecek Kriterler
Burada sistemin başarısını etkileyecek birden çok kriter yer almaktadır. Bu kriterler genel olarak sistemin eğitim süresine, sınıflandırma başarısına etki etmektedir. Genel olarak eğitimden kaynaklanan ve algoritma işleyişinden kaynaklanan kriterler olarak 2 grupta toplanabilirler.
Eğitimle ilişkili kriterler arasından seçilen noktaların uygunlu, birbirleri ile olan kohezyonları, sistemde kullanılan eğitim kümesinin test kümesini ne kadar iyi temsil edebildiği gibi kriterler yer almaktadır.
Algoritma işleyişinde ise eğitim kümesindeki verilerin hangi düzende tekrarlandığı, başlangıç koşulları, öğrenme hızı gibi kriterler yer almaktadır. Bunların sistem üzerindeki etkileri de incelenecektir.
Örnek olarak sisteme vermiş olduğumuz eğitim kümesi ve test kümesinden bir tanesini inceleyecek olursak.

Burada sınıflandırılması oldukça kolay bir sistem seçtik öncelikle programı test etme amaçlı olarak belirlenen bu eğitim ve test kümelerinde analitik düzlemin 2. ve 4. bölümleri burada kullanılmıştır.
Yazmış olduğumuz kodda kullanıcıdan ağırlık vektöründe değerleri rastgele olarak belirlemek için bir aralık istemektedir. Bu aralık içerisinde rastgele belirlenen değerler yardımıyla eğitime başlanmakta ve belirli sayıda iterasyon sonucunda sonuca ulaşılmaktadır. Başlangıç için seçmiş olduğumuz noktalar ‘*’ ve test amacıyla kullanılmakta olan noktalar ‘+’ aradan geçmekte olan doğru ile başarılı bir şekilde ayrılmaktadır. Burada başlangıç koşullarına rağmen iterasyon sayısı çok az bir miktarda kalarak uygun ağırlıklara ulaşılmaktadır. Burada problemin bu kadar kolay çözülmesinden öncelikle eğitim kümesinin bariz bir şekilde birbirinden ayrı olması sorumludur.
Başlangıç değerleri
Daha yüksek kohezyonlu veriler kullanılırsa başarımın azalması ve uygun ağırlıkların bulunması için geçen işlem süresi artacaktır. Bu tarz bir örnek incelendiğinde uygun katsayıların belirlenmesi için gereken işlem süresi de değişmektedir.

Burada dikkat edilirse başlangıçta alınan ağırlık değerleri sonucunda elde edilen doğruda test noktalarından birine fazlasıyla yakın olmuştur burada test noktasının doğrunun diğer tarafına düşmesi de mümkün olabilirdi. Burada elde edilen doğrular belli bir aralıkta değişmektedir ve başlangıç koşulları ile alakalı olarak bunlardan herhangi biri olabilmektedir.
Eğitim için verilen noktalarımızı doğru olarak ayıracak şekilde ağırlıklar verildiğinden bunları sağlayan değerlerde eğitim noktalarına göre belirlenen bir aralıkta olacaktır. Aşağıda gösterilen resimde de gözüktüğü gibi koyu renkle gösterilen bölge bizim sınıflandırma sonucu çıkabilecek doğrularımızın içinde bulunacağı aralıktadır. Eğer test kümemizden bir eleman bu alana düşer ise o zaman hatalı sonuç alma ihtimalimiz ortaya çıkmaktadır.

Burada görülen aslında başlangıç değerlerinin sonucu ne derece etkilediğini de göstermektedir. Sonuçta çözüm kümemiz bu aralıkta olmak zorundadır ve buradan geçen her bir doğru bizim ağırlıklar olarak kutlandığımız katsayılarla ifade edilen birer doğrudan ibarettir. Başlangıç değerimizin bu çözüm kümesi dışında kalan alanda çıkması durumunda ise eğitim sırasında bu değerlerin uygun noktalara getirilmesi sağlanmaktadır.
Farklı başlangıç değerleri için sonuçlar incelendiğinde ise çözüm aralığımızın geniş olmasından ötürü bu örnekte iterasyon miktarı çok olmamaktadır. Ancak daha dar bir aralıkta uygun aralıkta değerler alabilmek için bu ölçüde bir değişim olacaktır.
Eğitim Kümesinin İşleniş Sırası
Eğitim kümesindeki verilerin her ne kadar farklı sınıflar için eşit miktarda alınması çalışılsa da bunun mümkün olmadığı durumlar olmaktadır. Bu durumda iyi bir temsil yapılamamış olabilir. Eğitim esnasında ise önemli olan nokta katsayıları günceller iken aynı gruba ait verilerin ardı ardına gelmemesi burada da bir rastgelelik olması istenmektedir.
Farklı kombinasyonlarla random bir diziliş yapılması sağlandığında genel olarak iterasyon sayılarının diğer ardı ardına olan düzene kıyasla daha az olduğunu gözlemledim.
Öğrenme Hızı
Öğrenme hızı sistemimizin eğitim esnasında ağırlıkları güncellerken kullanmakta olduğu bir değerdir. Bu değer [0,1] aralığından seçilmektedir. Bizde bunun sistem performansı üzerindeki etkilerini inceleyerek gözlemleyeceğiz.
Öğrenme hızının sistem üzerindeki performansını incelemek için en uç değerler üzerinde inceleme yapmakta fayda olacağı açıktır. Bu durumları inceleyecek olursak eğitim kümemize verilen değerler sonucu beklentimiz eğimi -1e yakın bir değerde elde etmektedir. Demek ki eğimi 1 olan bir doğruyu temsil edicek şekilde başlangıç koşulları belirlersek bu durumda iterasyon miktarının artacağı açıktır. Burada farklı öğrenme hızları için inceleme yapacak olursak.
|
Egitim Katsayısı
|
Iterasyon Sayısı
|
Ağırlıklar
|
|
0.05
|
10
|
-0.7000 -0.7500 0.0500
|
|
0.10
|
5
|
-0.8500 -0.6500 -0.0500
|
|
0.15
|
5
|
-1.1500 -0.9500 0.0750
|
|
0.20
|
3
|
-1.3000 -1.2000 -0.1000
|
|
0.25
|
4
|
-1.7500 -1.6250 0.0000
|
|
0.30
|
2
|
-1.9000 -1.5500 -0.3000
|
|
0.40
|
2
|
-1.8000 -1.4000 0.0000
|
|
0.50
|
2
|
-2 .0000 -2.0000 0.0000
|
|
0.60
|
2
|
-2.2000 -2.6000 0.0000
|
|
0.70
|
2
|
-2.4000 -3.2000 0.0000
|
|
0.80
|
5
|
-4.2000 -4.2000 1.2000
|
|
0.85
|
5
|
-4.4000 -4.5250 1.2750
|
|
0.90
|
5
|
-4.6000 -4.8500 1.3500
|
|
0.95
|
5
|
-4.8000 -5.1750 1.4250
|
|
1.00
|
5
|
-0.8500 -0.6500 -0.0500
|
Burada görülen sonuç beklenenin biraz dışında bir sonuç olmaktadır. Bunun nedenleri incelendiğinde ise sonuç kümesi için var olan aralığın büyük olması verilebilmektedir. Bunun dışında iterasyon sayısının 0.5 civarında en uygun değerler almakta olduğunu görüyoruz. Ağırlıklar beklendiği gibi eğimi -1 olan bir doğruyu temsil edecek şekildedir ve verilen aralık içerisinde yer almaktadır.
Benzer işlemi daha dar bir aralıkta sonuç verecek bir eğitim kümesi için tekrarlarsak iterasyon miktarlarının artmakta olduğunu gözlemlemekteyiz. Bu şekilde daha sağlıklı olarak gözlem yaparak eğitim katsayısı ile olan ilişkiyi gözlemleyelim.

Yukarıdaki şekilde görüldüğü gibi yeni eğitim kümemiz için olan değerler daha dar bir aralıkta çözüm sunmakta bu nedenle iterasyon miktarları bu aralıkta olabilmek için daha fazla olmaktadır.
İterasyon miktarı ile öğrenme hızları değişimi arasındaki ilişki aşağıdaki grafikteki gibidir. Burada sistemin diğer değişkenlerden olabildiğince soyutlanabilmesi için başlangıç değerleri sabit olarak tutulmuştur.

Burada görüldüğü gibi sistemimize etkiyen parametreler içerisinde öğrenme katsayısı ve başlangıç değerleri önemli yerler tutmaktadır. Öğrenme katsayısını küçük seçmek öğrenme işlemi tamamlanana kadar geçen süreci uzatmakta. Büyük seçilmesi durumda ise bizim örneğimizde gerçekleşmemiş olsa da hedef nokta etrafından salınım yapılmasına neden olmaktadır.

Başlangıç değerlerini seçimi ise çözüm kümemiz içerisinde yer alacak olan bölgeye girebilecek bir doğru denklemine ait katsayıları elde etmede önem taşımaktadır.