LinkedIn FriendFeed Twitter

Çok Katmanlı Yapay Sinir Ağları ile Sistem Tanıma

by Ordinaryus 5. February 2010 21:08

Perceptron ile alakalı yazımda belirli dönüşümler kullanarak sorunun çözülmesi gerekmekteydi ve sistem lineer olarak ayrıştırılamayan bir sistem olduğundan Rossenblat katmanı kullanarak sistemin ayrıştırılabilir bir hale getirilmesini sağlayacak uygun bir dönüşüm bulunması gerekmekteydi.

Biz bu sistemde öncelikli olarak böyle bir ekstra katman yaratmak ve bunların aktivasyon fonksiyonlarını belirlemek zorunda değiliz. Bunun çok katmanlı algılayıcımız zaten bizim için yapmaktadır. Bizim burada sistemin performansını etkileyecek doğru sayıda giriş çıkış, öğrenme katsayısı belirlemek gibi görevlerimiz bulunmaktadır. Bunun dışında sistem zaten eğitim sonrasında bu verileri ayırabilir duruma gelmektedir. Burada önemli kriterlerden biri sistemin sorudaki 25 noktaya özel olarak eğitildikten sonra ezberleme ile mi yoksa genelleme ile mi sonuca ulaştığını tespit etmektir.

Buradaki sistem içinde birçok katmanlı algılayıcı tasarlanmıştır. Sistemin 2 adet girişi noktaların koordinatlarını temsilen, 2 adet çıkış ise hangi sınıfa mensup olduklarını temsil etmek amacıyla konulmaktadır. Burada elemanların belirtilen eğitim kümesi için eğitilmesinden sonra giriş değerleri olarak da [-2 2] Aralığından rastgele noktalar seçilerek test yapılmıştır. Burada sistemlerin çıkışlarından her 2 değer içinde verdikleri tepkilerin büyük olarak görülmektedir. Burada en büyük olan değer seçilmeye çalışıldığından sistemden uygun çıkışlar alınmaktadır.

Aşağıda sıralı olarak verilmiş olan benzer bir dikdörtgene ait verilerden elde edilmiş olan bir test sınıfı için çıkışlar eğitim kümesindekine uygun olarak verilmektedir. Burada verilerin sıralı dolması giriş değerleri içinde benzer bir sırada verilmesinden kaynaklanmaktadır.

clip_image002    

Şekil 5: Sistemleri ayart etme başarısı

 

 

Çok Katmanlı Ağ ile Tanıma  

Çok katmanlı ağımızı ilk soruda da olduğu genellikle sınıflandırma problemleri üzerine kullandık ancak yapay sinir ağlarının pek çok işlevi ve farklı uygulama alanları da bulunmaktadır. Bunların başlıcalar tanıma,  sınıflandırma, eğri uydurma vb.

Yapay sinir ağları kullanılarak yapılan sistemlerin birine örnek verecek olursak. Genellikle görüntü işleme uygulamaları beraber kullanılmaktadırlar. Bunlar içerisinde face recognition uygulamaları fazlasıyla bulunmaktadır.

Burada sisteme eğitim amaçlı olarak belirli kişi veri tabanlarından örnek görüntüler yüklenmektedir. Bunların mümkün olduğunca farklı ortam şartlarında ve kişiyi en iyi temsil edecek şekilde seçilmesi önemli olmaktadır. Bu sistemin fazla sayıda fotoğraf ile eğitilmesi sonucunda yüz görüntülerine özel bir ortalama yüz elde edilebilmektedir. Yöntemlerden en bilineni ve uygulaması en basit olanı ortalama bir yüz (eigenface) elde etmek ve bunun üzerinden diğer kişilerin bu ortalamaya olan uzaklıklarından yerlerinin belirlenmesidir. Sistem bu şekilde eğitildikten sonra yeni bir görüntü geldiğinde ortam şartları (aydınlanma, face pose, gestures) değişmesine rağmen yüz için belirlenen featurlar eşleştirilerek eldeki veri tabanında en yakın sonucu geri getirmektedir. Burada sistemin tanıma kriterleri biraz daha sıkı tutularak yanlış sonuçlar alınması da engellenebilmektedir.

Bizim sistemimizde de farklı karakterler için eğitildikten sonra aslında sistemin girişlerine karşı verilen çıkışlara bakıldığından tasarlanan sistemde o karakteri temsil eden çıkışın değerinin en yüksek olması beklenmektedir. Bu şekilde sistem girilen veriye en yakın çıkışı veren sistemi bir bakıma bize geri vermiş olmaktadır.

Sistem tanıma problemi üzerine ilgilenirken yapmış olduğumuz ve başarıma etkiyen parametreleri tekrar inceleyelim. Burada ağın nasıl tasarlandığı, eğitim ve test kümelerimiz bizim için önemli olmaktadır.

Eğitim kümesinin seçiminde belirli bir başlangıç koşulu için takip eden işaretler ve bunların sistem üzerindeki hatanın minimumlanması ile ağ katsayılarını güncellemesi ile gerçeklenmektedir. Daha sonra bu verilerin devamlılığı sağlanır ancak bu kez aradaki geri besleme hattı ortadan kaldırılmaktadır. Ancak bu zamana kadar sistem öğrenildikten sonra başarılı bir şekilde veriler birbiri ile uyuşmaktadır.

clip_image004

Şekil 6: Sistemin Eğitim ve test düzenekleri

 

 

 

 

Eğitimde sistemin takip etmeye başlamasına kadar geçen süre içerisinde ağırlıklar sürekli güncellenerek sistem öğrenilmektedir. Daha sonra bu sistemin verileri ile uygun sonuçlar elde edilmeye başlanmıştır.

Test aşamasına gelindiğinde ise takip eden veri dizgisi kullanılmıştır ve bunlar üzerinden kıyaslama yapılıp geri besleme yolu ortadan kaldırılmıştır.

Sistemin tanınmasının başarımı belirlemede bir diğer kullanılan yöntem ise durum portresinin oluşturulmasıdır. Bu sistem için biz eğitim ve test süreçlerinde durum portrelerine bakacak olursak (şekil 7).

clip_image006

Şekil 7: Billings sistemi durum portresi

 

Billing Sistemi

Billing sistemleri dinamik bir sistem üzerinde katsayıların güncellenmesine dayalı olarak çalışan bir sistemdir ve sistemin taklit edilmesi için kullanılmaktadır.

Borsada özellikle zaman serileri analizi önemli bir rol oynamaktadır. Geçmiş verilerden gelecekteki değerleri tahmin edebilecek bir sistem yapılması üzerinde özellikle önemli çalışmalar sürmektedir. Bunların başında Monte-Carlo modeli, Markov serileri yer almaktadır. Yapay sinir ağları ile de sistemlerin eğer bir modele uydurabiliyorsak (Borsa örneğinde böyle bir model kurmak mümkün değildir.) bunun için gelecek dataların tahmin edilmesi üzerine bir sistem kurulabilmektedir.

Buradaki örneğimizde verilen sistem modeli için gelecek değerlerin tanımlanması sağlanabilmektedir. Öncelikle seçilen whitenoise genliği bizim için önemli olmaktadır. Bunun dışında sistemin başlangıç değerlerinin belirlenmesi de önemli bir kriterdir.

Uygulama çalışırken başarılı değerler yakalanabilmiştir ancak burada sistemin başarımında etkili parametrelerin seçimi önemli olmaktadır.     

clip_image008

Şekil 8: Sistemin eğitim fazı

Tags: , ,

Neural Networks | Yapay Zeka

Rosenblatt’ın Genlikte Ayrıştırıcısı

by Ordinaryus 5. February 2010 21:05

Problemin Tanımı

Burada verilmiş olan verilerin lineer ayrıştırılıp ayrıştırılamadığı kontrol edilecektir. Bunun sonucunda ortaya çıkan sistemin lineer ayrıştırılamaz olduğu durumda bunun üstesinden nasıl gelinebileceği üzerine çalışılıp uygulamalı olarak bu ayrıştırma işlemi gerçekleştirilecektir.

 

 

 

Verilerin incelenmesi

Öncelikle verilen verilerin önceki soruda kullanmakta olduğumuz Perceptron içerisinde eğitime tabi tutulması yoluyla lineer ayrıştırılıp ayrıştırılamayacağı anlaşılabilmektedir. Ancak belirli bir iterasyon değeri sınır konmaktadır. Bu sınır için önceki sorudan elde ettiğimiz deneyimlerle 100 değerini belirledik.

Verilen noktalar için 100 iterasyon sonucunda sonuç alınamadı demek ki veriler lineer ayrıştırılabilir değildirler. Bunu aslında görmekte oldukça kolaydır. Aşağıdaki grafite noktaların dağılımları açık şekilde seçilmektedir.

clip_image002

Bu tarz bir sistem 2 boyut üzerinde alışılmış şekilde bir doğru denklemi bularak ayrılamamaktadır. Bu durumda daha farklı şekilde probleme bakarak çözme yoluna gitmemiz gerekmektedir.

Burada boyut dönüşümü yaparken göz önüne almamız gereken parametreleri belirtecek olursak

  • ·         Farklı gruplara ait noktaların kohezyonu
  • ·         Boyut sayısı

Burada ilk olarak bahsedilmek istenen farklı noktaların dönüşüm sonucu lineer ayrıştırılabilir hale getirilmesinin yanında bunların birbiri ile olan yakınlıklarıdır. Lineer ayrıştırılabilir olmanın yanında eğitim sonucunda elde edilecek sonucun ne kadar test kümesinde iyi sonuç verdiği de önemlidir. İlk soruda da incelediğimize göre farklı gruplara ait noktaların birbirinden ayrık olmaları sonuçlarımız açısından iyi olmaktadır.

Boyut sayısı da önemli bir parametredir çünkü işlem yükü bununla orantılı olarak artmaktadır. Eğer işlerimizi 2 boyutta çözebilirsek bunun avantajları ayrı olmaktadır. Eğer daha üst boyutlara düşürmek gerekirse bu durumda dezavantajlar görülmektedir. Özellikle İmge İşleme uygulamalarında boyut sayısı fazla olmaktadır. Bunun düşürmek önemli olduğundan bu alanda çalışmalar yapılmaktadır. Bu çalışmalar arasında özniteliklerin daha uygun seçilmesinden, bu özniteliklerin oluşturduğu uzaydaki manifoldların nasıl boyut düşürme ile basitleştirilebileceği üzerine çalışmalar yapılmaktadır.

Bizim uygulamamız içinde noktaların 2 boyutta ve 3 boyutta nasıl lineer ayrıştırılabilir hale getirileceklerini inceleyeceğiz.

 

3 Boyutta Lineer ayrıştırılabilir yapı

Burada kullanabilecek çok farklı miktarda yapı vardır bunların içinden belirlenecek dönüşümün kolaylığı ve işlem yükü göz önünde bulundurulabilir.

Benim bu soru içerisinde kullandığım dönüşümde X ve Y koordinatlarını kullanarak clip_image004 şeklinde bir dönüşüm ile 3. Boyuta ait Z koordinatı elde edilmeye çalışılacaktır. Burada 2 boyutta ayrılamayan sistemin 3 boyutta ayrılabilir olmasında Z ekseninde var olan bir değişimle sağlamak mümkündür.

 

Burada clip_image006şeklinde bir yapı kullanılabilir.

 

Bunun sonucunda noktalarımızın 3 boyuta transform edilmiş halleri ise

 

clip_image008

Bu 3 boyutta dönüşüm yapmak için kullanılabilecek yollardan sadece birisidir. Bunun gibi pek çok dönüşüm ile sistemin ayrılması mümkündür.

Bu uygulamada ek olarak eklenen katmandaki nöronların aktivasyon fonksiyonunda X ve Y parametrelerinin korunması uygun görülmüştür. Bunun dışında yeni eklenen fazladan boyut için olan parametrede ise X ve Y koordinatının kareleri toplamı olacak şekilde seçilmesi uygun görülmüştür.

clip_image010
clip_image012
clip_image014

 

 

 

 

2 Boyutta Lineer ayrıştırılabilir yapı

İki boyutta lineer ayrıştırılabilirlik önceki yapıdakinin aksine boyut dönüşümüne gerek kalmaksızın sistemin lineer ayrıştırılmasını sağlamaktadır. Burada sistemler arasında bir dönüşüm bulunması diğer sistemlere daha zor olmaktadır. Bu nedenle önceki yöntem kadar tercih edilmez ancak EXOR problemi ve bizim örneğimiz gibi meşhur örneklerde 2 boyutta dönüşüm kullanılması daha kolay olmaktadır.

Burada benim önerdiğim dönüşüm kutupsal koordinatlarda clip_image016 gibi bir yapı uygulamaktır.

 

 

clip_image018

 

clip_image020

 

Bu dönüşüm sistem üzerinde uygulandığında ise;

clip_image022

Burada görüldüğü gibi sistemi 2 boyut üzerinde de ayırmak mümkün olmuştur ancak her zaman bu tarz bir dönüşüm bulmak mümkün olmayabilir. Burada sistemin kutupsal koordinatlara geçirilmesi ve değişkenlerinin açı ve uzaklık cinsinden yazılması sağlanmıştır.

clip_image024
clip_image026

 

Bu ifadeler ile dönüşüme sokulan dataların lineer olarak ayrıştırılmış hali:

 

clip_image028

Tags: , ,

Neural Networks | Yapay Zeka

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: , ,

Neural Networks | Yapay Zeka

MATLAB FUZZY LOGIC (FL) TOOLBOX

by Ordinaryus 2. August 2009 19:56

Matlab geliştirme ortamı olarak kullananlara oldukça kolaylıklar sağlamaktadır. Burada özellikle tasarlanmış olan GUI yardımıyla sistemi kurmak veya matlab içerisinde M-Filelar ile sistemi yaratma seçenekleri vardır. Ayrıca giriş çıkış ilişkilerini ve kuralları da görselleştirmesi önemli bir avantajdır.

5

Burada görmekte olduğumuz FL Toolbox içerisinde bahsettiğimiz editörler yer almakta aynı zamanda görsel olarak sistem açıklanmaktadır.

Öncelikle FIS (Fuzzy Interference System) editöründen bahsedicek olursak. Sistemin temel olarak yönetildiği panel budur. Burada giriş çıkış değişkenleri eklenebilmekte,. Fuzzy Setin türü belirlenmekte ve Lojik ifadeler tanımlanabilmektedir. Aynı zamanda menüdeki özelliklerle sistemin .fis uzantılı olarak kaydedilmesi veya var olan bir sistemin açıklanması sağlanmaktadır.

Buradaki giriş veya çıkışlar üzerindeki işlem yapmak, üyelik fonksiyonlarının tiplerinin belirlenmesi ve bulanıklaştırılarak sözel değişkenlere dönüştürülmesi sağlanmaktadır. Function editörü aşağıdaki gibi bir arayüze sahiptir.

6 

Buradaki gibi üyelik fonksyonları oluşturulduktan sonra kural tabanının yaratılması için ise rule editör bulunmaktadır. Burada girişlerle çıkışlar arasında mantıksal ilişkiler IF-ELSE kalıplarında yaratılmaktadır.

7

Ayrıca elde edilen sonuçların görüntülenmesi içinde kuralların ve giriş çıkışların görülebileceği birer arayüz hazırlanmıştır. Bunlarda Rule Viewer ve Surface Viewer olarak adlandırılmıştır.

Bulanık mantık editör haricinde M-Filelar üzerinden de kod yazarak kontrol edilebilir. Öncelikle FL Toolbox ile yaratılmış .fis uzantılı bir dosyanın açılması gerekmektedir. Bunun için

>> readfis(‘isim.fis’)

Buradaki işlem sonucunda bize FIS yapısında bir nesne yaratılmaktadır ve bunun üzerinden sistemimize ait bilgilere ulaşabilmekteyiz.

8

>> evalfis(0.5,[girisler])

Bu fonksiyon sayesinde de giriş değerleri için olan çıkış matrisi elde edilmektedir. Bulanık elemanın input, output değerleri ile bunlar değiştirilmekte veya yeni üyelik fonksiyonları yaratılabilmektedir.

>> a = readfis(‘isim.fis’);

>> a.input(1).name='service';

>> a.input(1).range=[0 10];

>> a.input(1).mf(1).name='poor';

>> a.input(1).mf(1).type='gaussmf';

>> a.input(1).mf(1).params=[1.5 0];

>> a.output(1).name='tip';
>> a.output(1).range=[0 30];
>> a.output(1).mf(1).name='cheap'
>> a.output(1).mf(1).type='trimf';
>> a.output(1).mf(1).params=[0 5 10];
>> a.rule(1).antecedent=[1 1];
>> a.rule(1).consequent=[1];
>> a.rule(1).weight=1;
>> a.rule(1).connection=2;

Bunun yerine tekbir fonksyon ilede bilgileri girmek mümkündür.

>> a=addvar(a,'input','service',[0 10]); 
>> a=addmf(a,'input',1,'poor','gaussmf',[1.5 0]); 
Şeklinde de giriş ve çıkış fonksiyonları veya üyelik fonksiyonları yaratmak mümkündür. 

>> gensurf(a)

Bu komut sayesinde de giriş çıkış ilişkisinin görselleştirilmesi sağlanmaktadır.

Tags: ,

MATLAB | Yapay Zeka

Bulanık Mantık

by Ordinaryus 2. August 2009 19:50

Bulanık mantığın temelleri belirsiz anlatımı ve bunların belirli bir matematiksel model üzerine oturtularak açıklanmaya çalışılmasından doğmuştur. Buradan belirsizlik içerisinde olan değişkenler sözel olarak ifade edilmektedir.

1

Bu durumu bir örnekle açıklamak gerekirse insanların uzaklık algısını örnek verebiliriz. Bizim için yakınızdaki cisimler, uzaktakiler, çok uzaktakiler olmak üzere ayrılmaktadır. Genellikle içimizde benden 43cm uzaktaki kalem veya 566.2m uzaktaki elektrik direği demeyiz. Bu kavramları sözel değişkenlerle anlatma gereksinimi duyarız. Zaten algılarımız bizi bu kadar kesin sonuçlara ulaştıracak kadar da doğru bir şekilde çalışmamaktadır. Bize 1 metre yakınımızdaki nesneleri yakın olarak nitelendirip bizden 10metre uzaktakilere uzak dersek 110cm mesafedeki bir cisimle 990cm mesafedeki bir cisim uzak olarak mı nitelendirilmeli?

Bu gibi durumlarda bulanık değişkenlerde belirli sayısal değerlerle ne kadar uzak veya ne kadar yakın oldukları belirlenmekte. Bu amaçla sözel olarak nitelendirdiğimiz değişkenlerin bulanıklaştırma işlemine girerken aldıkları belirli değerler ve bu sözel değişkenler ise belirli üyelik fonksiyonları ile ifade edilmektedir. Sözel değişkenlerin sınırları ve fonksiyonları kuralları sayesinde bu değerler 0-1 arasında değerlerle ifade edilirler.

Üyelik fonksiyonları geometrik olarak aşağıdaki yapılarda olabilirler

· Üçgen Dalga

· Trapezoid

· Gauss işareti şeklinde olabilmektedir.

2

Bulanık mantık sistemlerde sistemin birden fazla giriş ve çıkışı olmakta bunun yanında giriş çıkış ilişkileri lineer olmamaktadır. Giriş ve çıkış sayıları sisteme etkiyen parametreler ve ulaşılmak istenen değerlerle ilişkilidir. Bunların artması bulanık sistemin kural tabanındaki koşulların sayısını etkilemektedir.

Birden fazla çıkışın bulanık sisteme etkimesinde gene sözel değişkenler arasında yer alan koşullar ve AND, OR gibi mantıksal işlemler yer almaktadır. Bunların giriş değerlerine uygulanması sonucu çıkışlar karar verilir.

IF kilo is şişman and boy is uzun then fizik is kapıgibi

Burada 2 giriş değerine karşı verilen çıkış görülmektedir. Kişinin ne kadar kilosu ve uzunluğu giriş değerlerinin bulanıklaştırılması sonucu sözel değişkenleri 0-1 arasındaki değerlerinden elde edilmektedir.

3

Burada görüldüğü gibi belirli bir giriş değeri için her bir üyelik fonksiyonunda karşılık geldiği nokta 0-1 arasında bir değerde olmaktadır. Bunların daha sonra kural tabanındaki kurallarla işlenmesi sonucu elde edilen çıkış değerleri toplanır. Burada elde edilen şekilde üst üste binmiş çıkış fonksiyonu değerleridir. Bu ifadenin tekrardan sayısallaştırılması için Defuzzyfication denen işlem gerçekleştirilir bunun için birden çok yol vardır bunlar,

· Çıkışın ağırlık merkezi olan noktanın bulunduğu konum

· Maksimum olduğu ilk değer

· Maksimum olduğu en büyük değer

· Maksimum olduğu değerlerin orta noktası gibi farklı şekillerde bulunabilir.

4

Defuzzification işlemi sonucu elde edilen sayısal değer bizim için çıkış değeri olmaktadır ve sistemimiz belirtilen giriş ve çıkışlar için bu değeri üretmiştir.

Bulanık bir sistemde tasarım yapılırken

· Üyelik fonksiyonlarının sayısına

· Üyelik fonksiyonlarının tipine

· Kural tabanında tanımlı kurallara

· Defuzzyfication için kullanılmakta olan yönteme karar vermek gerekmektedir.

Bulanık mantık için bakıldığından yapılan tasarımlar genellikle tecrübeyle oluşmaktadır. Bir sistem için yukarıda verilen değişkenlerin belirlenmesinin matematiksel kuralları bulunmaktadır. Bulanık mantığın zor yanlarından biride budur.

Bulanık işlemlerde çoğunlukla Mamdani kullanılmakta olduğundan anlatılırken bunla daha çok karşılaştık ancak bunun yanı sıra Sugeno tipi bulanık işlemlerde vardır. Aralarında çok temel farklar olmamakla birlikte giriş ve çıkışın Sugeno tipi fonksiyonda girişlerin lineer bileşimi şeklinde ifade edilmesi önemli ayrımlardan biridir.

Bulanık mantığın diğer sistemlerle karşılaştırılması ise aşağıdaki bir açıklanabilir.

· Gürültü içeren sistemlere dayanıklıdır

· Kurallar ve üyelik fonksiyonları deneyimler sonucu oluşturulmaktadır

· Performansı kolaylıkla arttırılabilir

· Öğrenme yeteneğinden mahrumdur

· Yeni kurallar ve üyelik fonksiyonları eklenebilir

· BM yaklaşımında üyelik fonksiyonlarının değişkenleri sisteme özeldir ve başka sistemlere uyarlanması zordur.

· BM kontrolörler doğrusal olmayan ve matematiksel olarak modellemenin zor olduğu sistemleri kontrol etmek için önemli bir alternatiftir

· Sistemlerin kararlılık, gözlemlenebilirlik ve kontrol edilebilirlik analizlerinin yapılmasında ispatlanmış kesin bir yöntemin olmayışı bulanık mantığın temel sorunudur

Tags:

Yapay Zeka

YSA - 5

by Ordinaryus 10. February 2009 00:30

 

Öğrenme işleminin hızını ve verimliliği birkaç değişkenin değerine bağlıdır bunlar: öğrenme oranı, momentum terimi, gizli katman sinir sayısı ve hata fark değişkenleridir.

·         Öğrenme oranının ağ üzerideki etkisi

Öğrenme oranının değeri öğrenme işleminin süresini belirlemede önemlidir.  Öğrenme işlemindeki adım sayısı öğrenme oranının arttırılmasıyla azaltılmaktadır.

 

·         Momentum teriminin ağ üzerindeki etkisi

Momentum teriminin katılması adım sayısında azalmaya ve öğrenme işleminin kısalmasına sebep olmaktadır. Momentum değer, yüksek alındığında ağdaki toplam hatanın sıfıra daha hızlı bir eğimle yaklaştığı gözlenmiştir.

 

·         Gizli katman sinir sayısının ağ üzerinde etkisi

Ara katman sinir sayısı öğrenme sırasında belleğe yük bindirmek ve işlemciyi yormak haricinde öğrenme işleminin dahi iyi yapılmasını sağlamaktadır. Bu nedenle ara katman sinir sayısı belirlenirken deneme yanılma yapılmaktadır.

 

·         Hata farkı değişkeninin ağ üzerindeki etkisi

Bunu tolerans olarak ta adlandırabiliriz. Tolerans arttıkça yapılan hatalar artmakta ağırlıkların hassasiyeti azalmaktadır. Fakat eğitimin süresini ve adım sayısını arttırmaktadır.

 

Backpropagation algoritması N parametre için N+1 boyutlu bir uzaydaki N değişkenli bir yüzey üzerinde gezinmekte ve hatanın minimum olduğu noktayı aramaktadır. Burada bulunulan noktanın her bir parametreye göre türevi tüm uzayda alınmaktadır. Daha sonra ağırlıklar güncellenmekte ve nokta eski noktaya yakın bir noktadan devam etmektedir. Fakat bu işlem çok uzun sürmektedir ve yüzey üzerinde daha hızlı gezebilmek için momentum katsayısı denilen kavramlar kullanılmaya başlanmıştır. Fakat bu da bellek ihtiyacı doğurmaktadır.

 

RPROP ALGORİTMASI    

            RPROP algoritması da backpropation mantığıyla hareket eden bir algoritmadır. Farkı diğer algoritmada olduğu gibi optimal değere ulaşmaya çalışırken optimum noktanın etrafındaki işaret değişikliklerini takip etmekte ve buna göre nokta etrafında osilasyona girmeyi önleyecek şekilde adımları güncellemektedir.

            Bu yöntem 3 önemli optimizasyon algoritmasının en avantajlı yönlerinin birleştirilmeye çalışılmasından doğmuştur. Bunlar gradyent düşüm modeli, backpropagation ve Levenberg-Marquardt optimizasyon kurallarıdır.

 

Böylece YSA serisinde yazdıklarımın sonuna gelmiş oldum. Yazın Nescafeye abanarak okudugum dokumanlardan sonra aldıgım notlardan oluşan bu dokumanlar sanırım giriş aşamasındaki insanlar için belli bir alt yapı oluşturmustur. Bundan sonra bende Yapay Zeka seruvenime PROLOG bakarak devam edeceğim. Öncesinde Yazdıgım Karar Ağaçları ve Expert System notlarınıda burada paylaşmayı planlamaktayım. Bu dokumanların oluşumunda okuduğum ve tavsiye edeceğim kaynaklarıda vermekte fayda görüyorum.

 

KAYNAKLAR
·         http://en.wikipedia.org/wiki/Adaptive_system
·         http://en.wikipedia.org/wiki/Backpropagation
·         http://ieee.uow.edu.au/~daniel/software/libneural/BPN_tutorial/BPN_English/BPN_English/
·         http://www.eee.metu.edu.tr/~alatan/Courses/Demo/BackPropagation.htm
·         http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
·         http://www.learnartificialneuralnetworks.com/backpropagation.html
·         http://www.seattlerobotics.org/encoder/nov98/neural.html
·         http://www.neuromod.org/courses/connectionism1999/backpropagation/
·         http://gpdev.net/
·         “RPROP using natural gradient”, Christian Igel
·         Optimization of the Backpropagation Algorithm for Training Multilayer Perceptrons W. Schiffmann, M. Joost, R. Werner
·         http://europa.eu.int/en/comm/eurostat/research/supcom.95/16/result/node23.html
·         Average monthly liquid flow forecasting using neural networksC. Barbălată* and L. Leuştean**
·         http://en.wikipedia.org/wiki/Reinforcement_learning
·         http://www.yapay-zeka.org/modules/wiwimod/index.php?page=ANN&back=WiwiHome
http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html

 

 

 

 

 

 

Tags: ,

Neural Networks | Yapay Zeka

YSA - 4

by Ordinaryus 10. February 2009 00:12
BACKPROPAGATION ALGORİTHM
 

Yukarıdaki gibi bir multilayer feedforward network kademeli yapıya sahiptir. Ağ yapısında en az bir gizli katman bulunmaktadır. Ve her kademe alt katmanlardan girişleri alıp bir sonraki ünite yollayan elemanlara sahiptir. Kademelerdeki nöronlar arası hiçbir bağlantı yoktur. Kademedeki nöron sayılarının belirlenmesi ayrı bir problemdir. Burada nöron sayısı arttıkça öğrenme artmasına rağmen süreç uzamaktadır.

Geri yayılım ağında hatalar, ileri besleme aktarım işlevinin türevi tarafından, ileri besleme mekanizması içinde kullanılan aynı bağlantılar aracılığıyla, geriye doğru yayılmaktadır. Öğrenme işlevi, bu ağda basit çift yönlü hafıza birleştirmeye dayanmaktadır.

Geri yayılımlı öğrenme yöntemi, türevi alınabilir etkinlik işlevlerini çok katmanlı herhangi bir ağa uygulayabilir. Delta kuralı gibi, buda sistem hatasını veya toplam hatayı azaltmaya dayalı bir optimizasyon işlevidir. Bu ağda girdi katmanlar üzerinde hesaplanarak ilerler ve çıkışta belli bir değer elde edilir ve bu değer beklenen değerle karşılaştırılarak belli bir hata bulunur ve bu hata geri besleme ile önceki nöronlar üzerinden başlangıca kadar taşınır. Toplam hata minimuma inene kadar bu işlem tekrarlanmaya devam eder. Bu işlemin nasıl gerçekleştiğini aşağıdan daha iyi anlayacağız. Örnekte aşağıdaki gibi üç girişli bir çıkışlı ve 1 tabaka gizli katmanı olan bir sinir ağı modelini kullanacağız.

 

Örnek bir sinir hücresinde verilen girişlere karşı ürettiği çıkışın nasıl olduğu gösterilmiştir. Yapay sinir ağlarını eğitmek için eğitim verilerine ihtiyaç vardır. Aşağıdaki şekilde x1 ve x2 eğitim verilerini oluşturmaktadır ve buna karşı bir z çıkışı beklenmektedir. Yapay sinir ağlarında girişlere karşı iteratif işlemler sonucu oluşturulan w değerlerinden burada tekrar bahsetmeyeceğim.

 

 

Giriş sinyallerinin çıktıları gizli katman nöronlarına gider burada gelen toplam sinyaller işlendikten sonra bir sonraki katmana aktarılır.

 

Son katmana aktarılır ve burada hata hesabı yapıldıktan sonra geri aktarım işlemi başlar.

 

Son katmanın çıkışı beklenen değerlerle karşılaştırılır ve elde edilen hata sisteme geri besleme olarak aktarılır.

 

Bu aşamada elde edilen hata değeri sistemde backpropagation metoduyla geri yollanır ve olası hatayı azaltmak için katsayılar güncellenir. Bunu yapmamızın sebebi gizli katman nöronların çıkışları ile ilgili verileri kullanamıyoruz. Bu sorunu gidermek üzere zaten geri yayılım metodu geliştirilmiştir.

 

Çıkış nöronunda ulaşılan hata gene ara katman ağırlık katsayıları kullanılarak bu kez tersi yönde ilerlemektedir böylece giriş nöronuna kadar işlem devam ettirilir ve buradan itibaren katsayılar güncellenmeye başlar.

 

 

Tüm nöronlarda hata fonksiyonu çalıştırıldığında başlangıç düğümlerinin ağırlıkları aşağıda belirtilen formülle güncellenir. Daha sonra bu güncellenmiş hali ile ağ üzerindeki tüm bağlantılar güncellenir.

 
 

NOT: Resimler yabancı bir kaynaktan alıntıdır. Ancak üzerinden uzun süre geçtiğinden kaynağı hayırlamıyorum
 

Tags: , ,

Neural Networks | Yapay Zeka

YSA - 3

by Ordinaryus 10. February 2009 00:06

 

DİNAMİK SİNİR AĞLARI

Dinamik sinir ağları nöronları ve bu nöronlar ile oluşturulan ağ yapısı, nöron içerisinde geribesleme yollarının ve bellek elemanlarının var olması dolayısıyla dinamik bir davranış göstermektedir.

Dinamik sinir ağlarında kullanılan nöronlar yapısal olarak sinaptik ve somatik olmak üzere iki ayrı parçadan oluşur. Sinaptik kısımda ayrık zamanlı bir transfer fonksiyonu gerçeklenir, somatik kısımda ise bir eğim kazancı ve bir aktivasyon fonksiyonu vardır.

Hata geriye yayma yöntemini bu modelde kullanırken sinaptik kısmı oluşturan fark denkleminin transfer fonksiyonunu bulmamız gerekir daha sonra en küçük kareler ile değişkenlerin kısmı türevleri yardımıyla yeni değerler elde edilir.

 

 

DANIŞMANLI ÖĞRENME

Yapay sinir ağlarından öğrenme 2 temel şekilde gerçekleştirilmektedir. Bunlardan ilki ve bizim daha yoğun olarak üzerinde duracağımız kısım danışmanlı öğrenme, diğeri ise danışmansız öğrenmedir.

Öğrenmenin nasıl olacağına Donald Hebb bir çözüm getirmiştir ve yapay sinir ağlarında öğrenme onun adıyla anılan bir kuralla açıklanmaktadır. Bu kuralda temel fikir iki sinir bağlantısı arasındaki ağırlık katsayısı sinirlerin aynı zamanda etkinleşmesine bağlıdır. Hebb sinir faaliyetlerini örnek alarak bunların hafızada basit bir yerde yerleşebileceğini varsaymış ve bu kurama göre sinirlerin birbirlerini ortaklaşa uyardıklarını ve bu uyarım sonucunda aralarındaki sinaptik bağlantı katsayılarının kendi etkinlikleri çarpımı oranında artacağını ortaya koymuştur.

Yapay sinir ağlarından bilgi nöronlar arasındaki ağırlıklarda depolanır. Bu işlevde öğrenme kısaca belirli işlevi yerine getirecek şekilde ağırlıkların düzenlenmesidir.  Bu ağırlıkların düzenlenmesinde pek çok metot denenmiştir bunları başlıca 2 guruba ayırabiliriz. Danışmanlı öğrenme ve danışmansız öğrenme.

Aşağıda önemli öğrenme kurallarından bir kaçı yer almaktadır.

 

 Hebb Kuralı

Eğer bir sinir başka bir sinirden giriş alırsa ve her ikisi de matematiksel olarak aynı işaretli ise sinirler arasındaki boyut kuvvetlendirilir.

 

Hopfield Kuralı

 Bu kural kuvvetlendirme ve zayıflatmanın derecesini belirleyebilmesi dışında Hebb kuralından farksızdır. Burada eğer istenilen çıkış ve girişin matematiksel işaretleri aynı ise bağlantı katsayılarını öğrenme oranında  arttır, tersi ise azalt demektedir.

 

Delta Kuralı

En çok kullanılan kurallardan birisidir. Bir sinirin gerçek çıkışı ile istenilen çıkışı arasındaki farkı azaltmak için giriş bağlantı güçlerini sürekli arttırmaya dayanır. Bu kural ağ hatasının karesini minimize etmek için bağlantı boyutlarını değiştirir. Hata bir önceki katmana geri çoğaltılır. Her bir zaman dilimi için bir hata şeklinde gerçekleşen geri çoğaltma işlemi ilk katmana ulaşıncaya kadar devam eder.

 

Eğimli İniş Kuralı

Bu kural delta kuralına benzer çünkü transfer fonksiyonunun türevi bağlantı ağırlıklarına uygulanmadan önce, delta hatasını düzeltmek için kullanılır. Bir ağın farklı katmanları için öğrenme oranları, öğrenme işleminin daha hızlı olmasını sağlamıştır.

 

Kohonen Öğrenme Kuralı

Bu kuralda da sinirler doğada olduğu gibi öğrenmek için elverişli durum veya ölçülerini güncellemek için yarışırlar. En büyük çıkış ile işlenen sinir, kazananı ilan eder ve komşularına bağlantı boyutlarını güncellemeleri için izin verir.

 

Danışmalı öğrenmede ise gerçek çıkış ile istenilen çıkış karşılaştırılır. Buradaki hata değerleri kullanılarak ağırlıklar öyle ayarlanır ki bir sonraki aşamada hata azaltılmaya çalışılır. Dayanışmalı öğrenmede yapay sinir ağları kullanılmadan önce eğitilmelidir. Yani gerçek verilerle karşılaşmadan önce olası durumlara hazırlıklı olmasını sağlayacak eğitim verileri kullanılır. Bu eğitim verilerine yakın girdiler geldiğinde hata az olmaktadır. Yapay sinir ağları böyle eğitilerek her türlü olası duruma karşı belirli veriler üretebilir hale gelmektedirler. Öğrenme aşaması bittiğinde yapay sinir ağları kullanılmaya başlayacağında katsayılar sabit kalır. Bazı ağ yapılarında ağ çalışırken çok küçük oranda eğitmeye izin verilir. Bunun nedeni eğitim kümesinin ayarlanmasının çok hassan olmasıdır. Eğitim kümesine fazla veri girilirse yapay sinir ağı ezberleme işlemi yapabilir. Bunun yanı sıra yeni öğrenilen kötü veriler öğrenilen verilerinde unutulmasına neden olur.

Tags: ,

Neural Networks | Yapay Zeka

YSA - 2

by Ordinaryus 9. February 2009 23:48

 

MATEMATİKSEL NÖRON MODELİ

Yapay sinir ağları ile çalışırken aşina olmamız gereken birkaç kavram bulunmaktadır. Bunlar girişler, ağırlıklar ve etkinlik işlevidir. Yapay sinir ağlarına gelen sinyaller belirli bir katsayı ile çarpılarak ve sonrasında toplanarak belirli bir değer elde edilir. Bu değer sinir hücrensin eşik değerinde olduğu gibi belirli bir değerden büyük ise çıkış alınmakta veya alınmamaktadır. 

 

Aktivasyon fonksiyonları

Biyolojik nöronlarda olduğu gibi yapay sinir ağlarında da belirli bir girdiye verilen değer hücrenin aktivasyon değerini aştığında “ya hep ya hiç” prensibine göre bir tepki üretir. Yapay sinir ağlarında bu tepki farklı formlarda olabilmektedir. Sigmoid, hiperbolik tanjant, sert geçişli tipte farklı aktivasyon fonksiyonları bulunmaktadır.

 

Sınıflandırma problemi

Sınıflandırma problemi yapay sinir ağlarının özellikle üzerinde durduğu başlıklardan biridir. Bu konuda iki veya daha çok türün birbirinden ayrılmasında yapay sinir ağlarına başvurulmaktadır. Ve tür sayısı arttıkça optimizasyon yöntemleri geliştirmek gerekmektedir. Yapay sinir ağlarından nöronların bağlantı katsayılarını güncellemek çok sık kullanılan bir yöntemdir. 

 

En küçük kareler yöntemi

Sınıflandırma probleminde olduğu gibi elimizde belirli elemanlar ve bunların hangi sınıfa ait olduğu bilgisi yer alsın. Bu durumda bu cisimleri birbirinden en iyi ayıran doğru istendiğinde ne yapmak gerekmektedir. Böyle bir problemde N adet değişkenin sınıflandırılması problemi N-1 boyutlu bir yüzeye karşılık gelmektedir ve her bir eleman için anlık hatalar hesaplanıp birbiriyle toplanması sonucu toplam hata bulunur. Yöntem bu toplam hatayı minimum düzeye indirme çabası için bulunmuştur. Bunun içinde düşüm modeli sıklıkla kullanılmatadır.

 

YAPAY SİNİR AĞLARI MODELLERİ

Yapay sinir ağları modelleri genel olarak yapı itibariyle birbirlerine benzerler. Sistemin özelliklerine göre belli girdi ve çıktılara sahiptirler ve burada kullanılacak nöron sayısı sistemden bakılarak belirlenebilir. Fakat gizli katman nöronlarının sayısını belirlemede herhangi bir kesin yöntem yoktur. Bu sorunu aşabilmenin tek yolu deneme yanılmadır. Bunun haricinde gerekli nöron sayısı ve yapısal hali oluşturulduktan sonra önemli olan bir diğer nokta ise öğrenme ve ezberleme arasındaki ince noktayı yakalayabilmekte ve yaptığımız işlemlerin verimli olabilmesini sağlayabilmektedir.   

 

İleri sürümlü sinir ağları modeli

Aşağıdaki şekilde görülmekte olan ağ yapısı ileri sürümlü sinir ağı olarak adlandırılmaktadır. Bunun nedeni geri besleme bağlantılarının olmaması ve iletimin ileri yönde devam etmesindendir.

 

Bu yapıda giriş katmanı giriş vektörünü gizli katmanlara iletmekle yükümlüdür ve nonlineer bir davranışa sahip değildir. Dolayısıyla giriş katmanındaki her bir nöronun çıkışında bağlı olduğu giriş değerleri gözükür. Bir diğer önemli nokta ise aktivasyon fonksiyonunun türevlenebilir olup olmamasıdır. Eğer türevlenemiyor ise hata geriye yayma yönteminin kullanılması için uygun olmamaktadır.


Burada önemli olan eğim düşümü yöntemi kullanarak Ø’nin   hangi değerinde en küçük olduğunu bulabilmektir. Bu işlemler iteratif olarak hesaplanmaktadır. Burada η değeri önem kazanmaktadır. Çünkü çok küçük bir değerde olması iterasyonun uzamasına büyük olması ise optimal nokra etrafında osilasyona neden olmaktadır. η  büyüklüğüne genelde adım büyüklüğü de denmektedir ve genelde deneme yoluyla belirlenir.

Hata geriye yayma yönteminin türetimi için ;

 

Yöntemin türetiminde akış katmanındaki nöronlar için farklı, gizli katman için ayrı uygulanmaktadır. Bu parametre güncelleme kuralı her bir çıkış nöronundan gelen hata bilgisini kullanarak bu hataların toplamından oluşan hatayı, uyarlanabilir parametreler kullanarak minimize etmeyi amaçlar. Burada 

Bu yöntemde N değişken için N+1 boyutlu bir uzaydaki yüzey üzerinde minimum hatanın olduğu nokta aranır. Bunun için teğetler alınır fakat bu iş yorucu ve uzun bir iştir. Yapılabilecek daha mantıklı bir hareket işlemi adım büyüklüğü üzerinde oynamalar yaparak kontrol etmek olabilir.

Öğrenme ve ezberleme olayları probleme göre farklıdır. Lojik fonksiyonlar öğrenme sınıfına girer çünkü mümkün olabilecek girişler sınırlıdır ve en küçük kareler yöntemi ile bulunabilecek hata sıfıra yakın olacaktır. Yalnız farklı bir problemde hata çok daha fazla olabilir bunun nedeni ideal bir yapı oluşturmak için teoride sonsuz adet örnekleme ile sinir ağı eğitilmelidir. Bu durumda eğitim ve test çiftleri oluşturarak test çiftlerine verilen hata değerleri kontrol edilir. Test çifti oluşturulurken mümkün olduğunca eğitim çiftlerinden farklı çiftler seçilmeye çalışılır.

 

GAUSS MERKEZCİL TABAN FONKSİYONLU SİNİR AĞLARI

 Yapısal olarak normal sinir ağları gibidir. Giriş, çıkış ve gizli katmanları bulunur fakat gizli katmanları sadece 1 adettir ve bu gizli katmanda nonlineer aktivasyon fonksiyonuna sahip nöronlar bulunur. Özellikle giriş vektörünün bulunduğu uzayı alt uzaylara bölerek işler.

 
Gauss merkezcil taban fonksiyonunda c merkez noktasını, σ ise varyans değerini göstermektedir. 
 
 

Hata geriye yayma yöntemi ile parametre güncellerken maliyet fonksiyonunun minimizasyonunu yapmak için ağ yapısında kullanılan nöronların ci , σi  ve ağ üzerindeki ağırlık katsayısı wi parametre olarak verilir.

 

 

Tags: ,

Neural Networks | Yapay Zeka

YSA - 1

by Ordinaryus 9. February 2009 23:44

 

ADAPTİF SİSTEMLER

Adaptif sistemler gerçekleşen durumlara dinamik olarak uyum gösterebilen kendini değiştirebilen sistemler olarak tanımlanmaktadır. Sistem karşılaştığı farklı durumlara en iyi uyum sağlayabilmesi için geliştirilmiş farklı yöntemler mevcuttur bunların içinde en çok bahsedeceğimiz yapay sinir ağları olacaktır. 

 

 

Adaptif sistemlerde dışarıdan gelen işaretin veya verinin sistem çıkışında verdiği sonuç hatalı olabilmekte veya beklenen değerle uyuşmayabilmektedir. Bu gibi durumlarda hata hesaplanarak beklenen değerler elde etmek için sistemin yapısı değiştirilebiliyorsa sistemimiz karşılaşılan durumlara adapte olabiliyor denmektedir. Bu nedenle bu tür sistemler adaptif sistemler sınıfına girmektedir.

Yapay sinir ağları yöntemi de nöronlar arası bağlantıları ve bunların katsayılarını, öğrenme katsayısı, momentum katsayısı gibi değişkenlerini değiştirerek duruma adapte olabilmektedir.

 

YAPAY SİNİR AĞLARI

Yapay sinir ağları 1943 yılında bir nöropsikiyatrist tarafından canlı sistemlerdeki sinir hücreleri örnek alınarak geliştirilmiştir. Fakat ilk yıllarda fazla başarı sağlayamamıştır.  1969 yılında yazılan bir kitap ile konu tekrar gündeme gelmiştir ve 1990lı yıllarda bu alanda gerçekleşen ilerlemeler hız kazanmıştır.

Yapay sinir ağlarındaki nöronlar bizdeki sinir hücrelerine benzetilmektedir. Sinirler arası bağlantılar burada katsayılarla ifade edilmiş ve belirli eşik değerleri üstünde aktif olma özelliği YSA ile de sağlanmıştır. Bu sistemleri donanımsal olarak gerçeklemekte mümkündür.

Yapay sinir ağları sınıflandırma, tahmin ve modelleme amaçlı sıklıkla kullanılmaktadır. Sayısal bilgisayarlarla karşılaştırıldıklarında ;

 

SAYISAL BİLGİSAYARLAR

  • Tümdengelimli usavurma: çıkış üretmek için giriş bilgilerine bilinen kurallar uygulanır.
  • Hesaplama merkezi, eşzamanlı ve ardışıldır.
  • Bellek paketlenmiş, hazır bilgi depolanmış ve yer adreslenebilir.
  • Hata toleransı yoktur.

 

 

  • Hızlıdır.
  • Bilgiler ve algoritmalar kesindir.

YAPAY SİNİR AĞLARI

  • Tümevarımlı usavurma: giriş ve çıkış bilgileri verilir kuralları bizkoyarız.
  • Hesaplama toplu, eşzamansız ve öğrenmeden sonra paraleldir.
  • Bellek ayrılmıştır, dahilidir ve içerik adreslenebilir.
  • Eğer bilgi, gürültülü veya kısmi ise kurallar bilinmiyorsa yada karışıksa hata toleransı uygulanabilir.
  • Yavaştır.
  • Yapay sinir sistemleri deneyimlerinden yararlanır.

  

Yapay sinir ağlarının en büyük üstünlükleri öğrenme kabiliyetlerinin olması ve farklı öğrenme algoritmaları kullanabilmesidir. Matematiksel modele ihtiyaç duymaz, kural tabanı kullanımı gerektirmez. Bunun yanı sıra sistemin içerisinde neler gerçekleştiğini bilmek ve bazı ağlarda kararlılık analizi yapılamaması ve farklı sistemlere uyarlanamaması gibi dezavantajları bulunmaktadır.
 

Tags: , ,

Neural Networks | Yapay Zeka

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. 

İTÜ Elektronik Mühendisliğinden 2010 yılında mezun oldu. Fizik bölümünde çift anadala kabul oldu lisans hayatına Fizikten devam etmekte. Koç Üniversitesinde Bilgisayar Mühedisliği Master programına kabul edildi ve akademik hayatının ilk adımlarını sevdiği bir alanda çalışarak atıyor. Fizik ve Bilgisayarın ortak noktalarını gördü ve bunları geliştirmek amacıyla çalışıyor.

Yazılımı sevdi.. Başlarda herşeyle ilgilendi web programlama da yaptı, sokette programladı yeri geldi ağ yönetimi ile uğraştı. Görüntü işlemeden keyif aldı Makine Öğrenmesi ve Örüntü Tanımada kendisini geliştirmeyi istemekte.

2008te MSP oldu belkide bu blogu yazmaya başlamasında en büyük etken=) Bu görevi 2 sene boyunca sürdürdü. Bir yandan 2008de EuroSkillsde Mobil Robotik alanında Türkiyeyi temsil etti. Ardından 2009da Kanada da tekrardan yarışmacı olarak bulundu. Artık bu alanda hakemlik yaparak ve Robotino hakkında öğrendiklerini paylaşarak faydalı olmaya çalışıyor. 

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

gibi gibi... 

 

Page Rank

Loading

Google Translate


Şuan ne okuyorum

Bilişsel Psikoloji

Singularity is Near


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 =)


CCL


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