LinkedIn FriendFeed Twitter

Hopfield ağı kullanarak çağrışımlı bellek tasarımı

by Ordinaryus 7. February 2010 01:03

HOPFIELD AĞI

Hopfield ağları birim gecikmeli ve nöron sayısı kadar bulunmakta olan geri besleme yolları üzerinden aktarılan bir ağ türüdür. Hebb öğrenme kuralına uygun olarak çalışmaktadır. Bu ağın temsili aşağıdaki şekilde gösterilebilmektedir.

clip_image002

Hopfield ağı temsili

Hopfield ağının yapısından ziyade kullanım alanları ile önümüze çıkmaktadır. Genellikle çağrışımlı bellek tasarımı ve optimizasyon uygulamalarında örnekleriyle karşılaşabiliyoruz. Bunun nedenlerini inceleyecek olursan öncelikle ağ üzerindeki değerlerin neler temsil ettiğini ve bunlar üzerinden ulaşmaya çalıştığımız değerlerin neler olduğunu anlamaya çalışalım.

Bunu açıklamaya çalışırken yapılacak uygulamanın da bir parçası olduğundan ötürü pattern recognition konusu ile alakalı örnekler daha fazlalıkla verilecektir. Öncelikle hopfield ağında depolanması istenen desenler kullanılarak yaratılan bellekte sistemin bulunabileceği lokal minimum değerler, eğer noktaları ve limit çevrimler bulunmaktadır.

Burada sistemimiz için oluşturulmakta olan desendeki veriler doğrudan arama uzayımızda temsil edilmektedir. Bunun için örnek olarak yapılacak uygulamada 5x5 boyutlarından desenler kullanılmaktadır. Bunların temsil edilmesi 25 boyutlu bir uzay üzerinden mümkün olmaktadır. Sistemin aldıkları değerler doğrultusunda bu sistemde ulaşabileceği noktalar yukarıda bahsettiğim limit çevrimler veya denge noktalarından birisi olabilmektedir. Lineer sistemlerde bu denge noktaları sayısı tek olduğundan eninde sonunda buraya ulaşılabilmektedir.

Ancak tek bir noktaya yakınsamak bizim sistemimiz için yeterli olmamaktadır. Burada hedeflenen birden çok denge noktasından birine ulaşılması ve bununda bizim başlangıç değerimize bağlı olarak varmak istediğimiz nokta olmasıdır.

Dinamik sistemlerde elde edilecek bu denge noktalarını belirlememiz mümkündür. Konuyu kontrol problemi olarak inceleyecek olursak sistemin eninde sonunda bir kararlılığa ulaşmasını istemekteyiz. Denge noktalarının sayısının arttırılmasında ise sistemin derecesini büyütmek bir yöntem olabilmektedir. Aslında bir bakıma sistemimizin kararlılığa ulaşabileceği ve bizim için amaç ölçütü olabilecek noktaların sayısı arttırmış olmaktayızdır.

Hopfield çevrimi içerisinde başlangıç değerlerinden itibaren adım adım bu denge noktalarına yaklaşılmaktadır ve sistem üzerinden belirlenen bir denge noktasında son bulunmaktadır. Bu noktalar eğer tanınmak istenen desenler olursa bunlara benzeyen desenler başarılı bir ağ üzerinde bu noktaların çekim alanlarına girmektedirler.

Hopfield modellerinin birde optimizasyon alanında nasıl kullanıldığını inceleyecek olursak amaçlarımız bir miktar değişmektedir. Burada bizim sistemimiz için birden fazla denge noktası bulunmaktadır ancak bunlardan en iyisini seçebilmek bizim hedefimiz olmaktadır.  Kontrol sistemlerinden genellikle bir denge noktasına doğru yaklaşılır ve bunun hedef fonksiyonlarımıza uyup uymadığına bakılmaktadır. Eğer enerji fonksiyonlarımızdan elde edilen değerler optimizasyon şartlarımıza uygun değilse arama uzayından rastgele bir nokta seçilerek arama yeniden gerçekleştirilmektedir. Ancak bizim optimum çözümümüzün çekim alanı diğer denge noktalarınınki kadar geniş değilse optimizasyon kısıtları altından sıkışmaktayızdır. Bu nedenle rastgele değerler olmayan arama uzayını daha başarılı şekilde arayacak ve lokal minimumlara düşüldüğünde sistemi buradan kurtaracak çözümler aranması gerekmektedir.

Hopfield bunun için kuantum mekaniğindeki spin camları ve yapay sinir ağları arasında benzerlik kurmuştur. Kısaca Spin camlarındna bahsedecek olursak kuantum mekanik bir sistemde bulunulabilecek belli kuantum seviyeleri bulunmaktadır. Manyetik bir sistemdeki dipol momentlerinin yönelimi için bu yukarı ve aşağı olmak üzere 2 olmaktadır. Bizim desenimizde de binary olarak bakarsak 0 ve 1 ağ üzerindeki temsilleri için bakacak olursak -1 ve 1 olmaktadır. Manyetik sistem içerisinde her bir yönelim belirli bir enerji gerektirmektedir ve bu enerjiler pozitif olup JijSiSj şeklinde bulunmaktadır. Enerjinin her zaman için pozitif olduğunu söylemiştik o zaman momentlerin yönlerinin aynı veya ters olmasına göre J değerleri negatif veya pozitif olmaktadır. Bunların bizim sistemimizdeki karşılıklarının ağırlıklarımız olduğu düşünülmektedir. Bu sayede bir sistem için enerjini maksimumda tutacak denge noktaları elde edilebilmektedir.

 

Hopfield Ağı Kullanarak Çağrışımlı Bellek Tasarımı

 

Uygulamamızda çeşitli desenleri hatırlayacak ve bu desenler haricinde verilen değerler için sistemin denge noktalarına yakınsayacak bir sistem elde edilmek istenmektedir. Ağımızın alacağı parametreler sistem üzerinde tanıtılması istenen desen sayısına bağlı olarak seçilmektedir. Küçük networkler üzerinde fazla sayıda desen tanıtmak mümkün olmamaktadır bunun yanında büyük bir ağ üzerinde ise istenenden fazla denge noktası elde edileceğinden her zaman için bizim hedeflediğimiz denge noktasına gitmeyebilir farklı denge noktalarında sonlanması mümkün olur.

Bu nedenle örneğimizdeki pattern büyüklüğü ve buradan elde edilebilecek belleğin öğrenme kapasitesi arasındaki ilişkiyi incelemekte fayda olmaktadır.

 

clip_image004

Network büyüklüğü ile kapasitenin ilişkisi

Hopfield ağı ile saklama kapasitesi arasında lineer bir ilişki olduğu söylenmektedir. Ancak bunların içerisinden fazlalıklı bellek olmasızın ne kadar desen saklanabileceğine aşağıdaki ifade ile ulaşabilmekteyiz.

clip_image006

Bizim örneğimiz için inceleyecek olursak.

Mmax = 3.88 olmaktadır yani yaklaşık olarak 4 deseni hatasız olarak tanıtmamız mümkündür. Ancak bu ilişki için verilen diğer bir ifade göre ise p > 0.38*n koşuluna uyması gerekmektedir aksi takdirde bellek anlamsızlaşmaktadır. Burada n bizim bir deseni temsil ederken kullandığımız piksel sayısı, p ise mümkün olan maksimum desen sayısını vermektedir.

 

Örüntülerin Belirlenmesi

 

Örüntülerin seçilmesi esnasında belirlenen net bir strateji olmamakla beraber birbirlerine benzerlikleri en az olan patterlar seçilmeye özen gösterildi. Burada bir patternda kenarlar seçilmişse diğerlerinde orta bölgeden desenler alınmaya çalışıldı ve sonuç olarak aşağıdaki gibi 5 farklı desen oluşturuldu.

clip_image008

 

               

Ağın Tasarımı

 

Ağın tasarımı sırasında belirli kriterler etkili olmaktadır bunların arasında kullanılan hücre modeli ve belleğin oluşturulması sırasında kullanılan ağırlıkların hesaplanma yöntemidir.

Uygulamada kullanılan desenler için 5x5 boyutlarda görüntüleri işleyebilmek için 25 adet nöron kullanılmaktadır ve bu nöronların modeli McCulloch-Pitts modeline uygun olarak seçilmiştir.

Ağırlıkların Hesaplanması

 

Ağırlıkların hesaplanmasında öncelikli olarak performansı etkileyeceği düşünülerek ağırlık matrisinin simetrik olduğu bilgisini ve diyagonal hatta tüm değerlerin sıfır olduğu göz önüne alınarak katsayılar hesaplandı. 

Uygulama içerisinde ağırlıklar her iki şekilde de hesaplandı ve önemli performans farkları gözlendi. Ağırlıkların iteratif olarak belirlendiği yöntem en iyi sonuçları vermektedir. Bunun nedenleri üzerine yorumlar yapılacaktır. Bu yöntemlerden daha az başarılı olan yöntem farklı örüntülerin iç çarpımlarının kullanıldığı yoldur. Bunun hesaplanmasında aşağıdaki ifade kullanılmaktadır.

clip_image010

Burada i ve j birbirine eşit olmamak üzere hesaplama yapılmaktadır. P değeri öğretilmek istenen desen sayısına xi  değerleri ise kullanılan desendeki değerlere karşılık düşmektedir.

Bu yöntemde görülen problem oluşturulan ağırlık matrislerinin belleklilik işlevini çok iyi yerine getirmediğidir. Buradan elde edilen ağırlıklar daha sonra uygulamada kullanıldığında artık belleklere veya farklı girişler için aynı çıkışlar sonlanmaktadır.

clip_image012

Ağırlıkların iç çarpımlar yoluyla hesaplandığında elde edilen sonuç

 

Yukarıda görüldüğü üzere sisteme verilen patternlar için başarılı sonuçlar alınamamıştır. Bunların nedenleri arasında bu şekilde elde edilen ağırlık matrisinde her deseni tanıtmanın mümkün olmaması olabilir. Belirli desen takımları için başarılı olabilmektedir. Bu da iç çarpımların toplamları sonucu elde edilen w değerlerinde desenler arasındaki korelasyonun sonuçlarındandır.

clip_image014

Ağırlık matrisi

Bu yöntem sonucu hesaplanan ağırlık matrisini görselleştirecek olursak aşağıdaki gibi bir sonuç elde edilmektedir. Burada matrisin simetrik yapısını görmek mümkündür.

Sisteme hatırlatılmaya çalışılan desenlerin haricinde bir desen verildiğinde ise bunu benzer şekilde verilen desenlerden birine benzetmektedir. Burada yatay çizgilerden oluşan desenin çekim alanının büyük olması sonucu verilen desenlerin buna benzetildiğini düşünmekteyim.

clip_image016

 

Diğer bir yöntem ise sonuçların oldukça başarılı olarak gözlenmiş olduğu iteratif bir denklem ile yakınsayarak bulunduğu yöntemdir. Ağırlıkların aşağıdaki denkleme uygun olarak hesaplanması saplanmaktadır.

clip_image018

Yukarıdaki ifade de α değeri 0< α<1 arasında seçilmekte olan bir değer olmaktadır. Bu sistemin yakınsama hızını etkileyen bir kriter olmaktadır.

Bu ifade sonucu belirlenen ağırlıkların görsel hali aşağıdaki şekildedir.

clip_image020

Denklem ile hesaplanmış ağırlıklar

Burada öğretilmek istenen desenler için w değerleri bulunmaktadır. Bu ifadede w değerleri başlangıçta [-1, 1] aralığından seçilmektedir. Daha sonra yakınsama sonucu kullanılacak değerler elde edilmektedir. Bu yöntemle verilen sistemlere ilişkin çıkışlar başarılı şekilde hatırlanmıştır.

clip_image022

Ayrıca bozularak verilen desenler için de sonuçlar aynı başarıda olmaktadır. Burada 1. Desenin bozulması sonucu elde edilen aşağıdaki görüntü ve karşılığında elde edilen sonuç aşağıda yer almaktadır.

clip_image024

Aynı zamanda farklı değerler için test edildiğinde farklı durumlarda oluştuğu gözlenmiştir. Burada görülen ilk desen için sistemin limit çevrime girmiş olduğudur. Aşağıdaki şekilde görüldüğü üzere sistemin 2 farklı denge noktası etrafında değişmektedir. 

clip_image026

Limit Çevrim

Ayrıca verilmiş olan her desen bizin bellekte anımsamamızı istediğimiz desenlerden olmayabilmektedir. Bunlara artık bellek denmektedir. Tasarladığımız sistemde öğretmekte olduğumuz desen sayısı haricinde hala bellek bulunmaktadır. Bu belleklerde belirli desenler için oluşmuştur. Aşağıda bunlardan birinin örneğini görmek mümkünüdür.

clip_image028

Artık bellek

Ayrıca oluşabilecek bir diğer durum ise öğretilen desenlerin simetriklerinin de denge noktası oluşturmuş olmasıdır. Bununda bir örneği aşağıda yer almaktadır. Burada elde edilen kareli desenin tersi bizim anımsatmak istediğimiz desenlerden birisidir.

clip_image030 

Tags: ,

Yapay Zeka | Neutral Networks

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