LinkedIn FriendFeed Twitter

Perceptron (Genlikte Ayrık Algılayıcı)

by Ordinaryus 1. February 2010 22:35

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.

clip_image002

 

 

 

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. 

clip_image004

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.

clip_image006

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.

clip_image008

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.

clip_image010

 

 

 

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.

clip_image012

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.

Tags: , ,

Neutral Networks | Yapay Zeka

Add comment




  Country flag

biuquote
  • Comment
  • Preview
Loading



Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen

Ordinaryus Hakkında


Hayata gözlerini İzmirde açtı. 3 yaşında legolarla oynadı =) Küçük yaşta baskete başladı zaten başka sporlarla arası hiç olmadı. Orta okulda matematikle ilgilendi. Liseyi Karşıyaka Anadolu Lisesinde okudu. 

2006da İTÜ Elektronik Mühendisliğini kazandı. Sonrasında Fizik bölmünde çift anadala kabul oldu. Fantazi olarak fzik dersleri alıyor. Biryandan da kuluplere saldırdı. Öğrendi, öğrendiklerini paylaştı. Ara sıra ineklik etti, etmekte =)

Yazılımı sevdi... Odur budur derken yolunu çizmeye çalıştı. Hala da çalışıyor..

2008te MSP oldu belkide bu blogu yazmaya başlamamda en büyük etken=) Zamanla yazılım dünyasında Ordinaryus olmayı hedeflemekte =) 

Yapay Zeka, Görüntü İşleme, Kuantum Mekaniği, Bilişsel Bilimlerle ilgili. Geceleri öle kafasına göre takılıyo. Sabahlarıda öğrencilik yapıyo =)

gibi gibi... 

 

Page Rank

Şuan ne okuyorum

Bilişsel Psikoloji

Ramayla Buluşma


Ayrıca okuduklarımdan seçtiğim kitaplara buradan ulaşabilirsiniz..

Okuduklarımı üye olarak takip etmek için ise aşağıdaki RSS bağlantısını kullanabilirsiniz. Ayrıca bana kitapta hediye edebilirsiniz =)


Google Translate


CCL


Copyright © Ordinaryus Says That by http://www.vypro.org/ is licensed under a Creative Commons Attribution-No Derivative Works 3.0