Sinirsel Ağ Sistemleri 3

Sinirsel

Ağ Sistemleri 3

Yazı dizimizin son bölümünde rekabet ederek öğrenen Ağ Sistemlerini anlatıyor ve örnek veriyoruz. Rekabet ederek öğrenen Sinirsel Ağ Sistemleri günümüzde kullanılan birçok ağ sisteminin temelidir. Algoritmanın nasıl çalıştığını anladıktan sonra programı yazıp kendiniz de denemeler yapabilirsiniz. Program rekabet ederek öğrenen sistemleri temel alır ve kullanımı için BASIC bir program da içerir.

Geçen sayımızda geri beslemeyle öğrenen sistemleri açıklamıştık. Bu sistemler ortaklaşa çalışan sistemler grubuna dahildirler ama ne nöropsikolojiye ne de basit psikolojiye dayanırlar. Competitive Learning (CL - rekabet ederek öğrenen) sistemler ise beynimizdeki sinirsel yapılara en çok benzeyen sistemlerdir. CL, kendi kendini düzenleyen sistemler grubuna girer. Bu modeller girişte yapılan dış etkilere göre kendi içinde organize olur ve bu girişleri kendi içlerinde temsil ederler. Sistem, girişin özelliklerini fark ettiği için yapılan girişimleri, ayrı özellikler taşıyan bölümlere ayırabilir. Bu yönüyle CL sistemleri zarar görmüş veya deformasyona uğramış bir dizi girişi işlemede oldukça başarılıdırlar. Geri besleme sistemi gibi CL sistemi de PE'lere (işlem elemanları) ve katmanlar arasında bağlantılara sahiptir ama tüm benzerlikler burada biter. CL'nin her katmanında, her PE ancak bir gruba ait olacak şekilde, gruplar oluşmuştur. Bu gruplardaki her PE girişlerini bir önceki katmandan alırlar ve sonra “Kim daha önce çıkış sağlayabilecek?” diye yarışırlar. Her gruptan ancak bir PE çıkış verebilir. CL'de, sistem öğrenmek için kendi kendisini düzenlediğinden öğretici bir vektör yoktur. Bu bizim beynimizdeki hücrelere çok benzer, çünkü beynimizdeki hücrelerin de büyük çoğunluğu dışarıdan direkt olarak bilgi alamaz. Biz her türlü çevre koşuluna uyabiliriz ve CL sistemi de bize her tür çevre koşuluna uyan bir sistem yapma yolunda liderlik etmektedir. Daha önce incelediğimiz diğer sistemlerden farklı olarak bu sistemde her katman arasındaki bağlantıların yanısıra bir katmanın kendi içerisinde de bağlantılar vardır. Bu katmaniçi bağlantılar sadece aynı gruptaki PE'ler arasındadır ve sınırlayıcıdırlar. Yani eğer bir gruptaki PE'lerden biri önceki katmandan güçlü bir sinyal alırsa komşularının bu sinyali almasına engel olur ve böylece 'kazanmış' olur. Kazanan belirlendikten sonra sinyal bir üst katmana iletilir. Katmanlar arasındaki tüm bağlantılar heyecanlandırıcıdır, yani bir üst katmanda başka bir rekabet ortamı oluşturacaktır. Öğrenme algoritması çok basittir. Alt katmandaki tüm hücrelerden bir üst katmandaki tek bir hücreye giden tüm bağlantıların (ki bu bağlantı matrisindeki bir sırayı oluşturur) tüm ağırlıklarının toplamı bir etmelidir. Bu, ağırlıkların düzgün olarak dağılmasını sağlar, böylece tek başına bir PE çok güçlü olamayacaktır. Bir gruptaki PE'lerden biri kazandığı zaman öğrenmesi gerekir, ve ağırlıklar da bir matematiksel öğrenme kuralına göre değiştirilirler. Tüm bağlantıların ağırlıklarının toplamının 1 etmesi gerektiği için kazanan PE'nin bir önceki katmandaki aktif PE'lerle olan bağlantıları kuvvetlenir ve pasif PE'lerle olan bağlantıları da zayıflar. Böylece aynı giriş modeli tekrar gelirse bu modeli öğrenmiş olan PE'nin bunu tanıma şansı da artar. Rekabet eden sistemler beyin yapısına en çok benzeyen sistemler olsa bile bunların da sınırları vardır. Birincisi, bu gruplar ayrı modelleri öğrenmelidirler ama bunu önlemeleri için herhangi bir zorlama yapılamaz. Eğer iki grubun ağırlıkları eşitse ikisi de aynı modeli öğrenecektir. Bu sorunu çözmenin bir yolu gruplar arasında sınırlayıcı bağlar oluşturmaktır. Çizgisel ortaklık ve geri besleme sinirsel ağ sistemleri iki modeli eşlemeyi öğreniyorlardı. Bu çok önemli bir öğrenme biçimidir. Rekabet eden sistemler eşlemeyi öğrenemezler; ama eğer geri besleme gibi bir başka sistemle birleştirilecek olurlarsa, elimize modelleri sınıflandırabilecek ve modeller gibi bu model sınıflarını da ortaklaşa kullanabilecek çok güçlü bir sistem geçer. Rekabet eden sistemlerin büyüklüğü birkaç grupla sınırlı olduğu için girişleri ancak belirli sayıda sınıfta toplayabilirler. Bu problem, açılan sınıf sayısı PE gruplarının sayısını geçene kadar ortaya çıkmaz. Bu durumda CL, modelleri ait olmadıkları sınıflara yerleştirir. Sorun, katmanlara daha fazla grup ve gruplara daha fazla PE ekleyerek çözülebilir. Oluşabilecek en büyük problem denge sağlanmasıdır. Bir süre sonra CL'nin her değeri son bir değere erişir ve sabit kalır. Bundan sonra yapılan işlemler bağlantı değerlerini değiştirmez. Ama ideal bir sistemde uzun bir süre geçse bile yeni öğrenilen modellerin ağırlıkları etkilemesi gerekir. Bu sorun başka bir sinirsel ağ sistemi olan Adaptive Resonance Theory (Uygulanabilen Rezonans Teorisi) ile çözülebilir. Sinirsel programcılık alanı 1982'deki yeniden doğuşundan beri hızla gelişmektedir, ama hâlâ yapılması gereken birçok iş, çözülmesi gereken birçok program vardır. Gelecek yıllarda daha farklı sistemler geliştirilecek ve uygulanacaktır. Uygulamalar gittikçe daha geniş alanlara yayılacaktır ama henüz, her evde konuşacak bir bilgisayar olmasından çok uzaktayız.

Bilgisayar Başında

Program Döküm Eki'ndeki program grafik bölüştürmesi yapar. Girişleri alır ve ikinci katmandaki her PE için olmak üzere iki gruba ayırır.

Birinci PE katmanı Şekil-1'de görüldüğü gibi kare şeklinde dizilmiştir. Girişler dipol şeklindedir; yani her katmandaki PE'lerden sadece iki tanesi 1 (bir) olabilir, diğerleri 0 (sıfır) olmak zorundadır. Sınıflandırmanın yapılabilmesi için girişlerin belli bir düzende olması gerekir. Bunu sağlamak için girişler, sadece yatay veya düşey sırada komşu olan PE'lerle yapılabilir. Şekil-1'deki gibi sadece iki tane PE aktiftir (içi dolu), diğerleri pasiftir (içi boş). Toplam 24 mümkün dipol girişi vardır ve bunlar sisteme bir öğrenme sürecinde verilmelidir. Bu örneğin en şaşırtıcı yanı, sistemin modelleri bir öğretmen olmadan iki sınıfa ayırabilmesidir. Gruplar genelde eşit olarak dağılmışlardır, yani her grubun kabul edebileceği model sayısı eşittir. Gruplar aynı zamanda eşit mantıksal parçalara da bölünmüşlerdir. Eğer bizden Şekil grafiği düzgün dağılmış iki gruba bölmemiz istenseydi, büyük ihtimalle bölme çizgisini ikinci ve üçüncü satırlar veya ikinci ve üçüncü sütunlar arasından geçirirdik. Örneğin yaptığı işlem de bunun aynısıdır. Grafiği yatay veya düşey olarak, pek seyrek de çapraz olarak ikiye böler. Örnek programlar iki tanedir ve en büyük yükü makina dili olarak yazılmış program kaldırır. Bu programı MDE ile yazdıktan sonra kaydedin ve BASIC programı da BDE ile yazıp kaydedin. MDE ile yazdığınız programın adı CL.ML olmalıdır, çünkü BASIC program diskten bu adla arayacaktır. CL örnek programı Dipol, çok basittir. 40. satırda rastgele sayı üretici çalıştırılır. CL sistemi SYS49152 komutundan sonra bazı parametreler de verilerek aktif hale getirilir: SYS 49152, birinci katmandaki PE sayısı, ikinci katmandaki PE sayısı, öğrenilecek model sayısı, öğrenme hızı. Bunun bir örneği 60. satırda görülebilir. Bu hazırlık safhasında BASIC program için gereken tüm değişkenler ve diziler ayarlanır. Bunlar standart BASIC değişken ve dizilerdir yani NEW veya CLR komutu verdiğinizde, başka bir program yüklediğinizde veya programı değiştirdiğinizde silinirler. Değişken Anlamı pl 1. katmandaki PE sayısı p2 2. katmandaki PE sayısı np Sistemin öğreneceği model sayısı rate Öğrenme hızı

Dizi(büyüklüğü) Anlamı

02 (p2) 2. katmanın çıkışı wl (p2, Pi) 1. ve 2. katmanlar arasındaki bağlantıların ağırlıkları in (pi, p2) Giriş modelleri Sistem çalışmaya başlamadan önce giriş modellerinin öğretilmesi gerekir. Bu işlem SYS 49167 komutuyla yapılır. Bu komutu modelin numarası ve modelin kendisi takip eder. Model bir dizi 1 ve 0'lardan oluşur ve tırnak işareti içinde yazılmalıdır. Birinci sayı, birinci katmanın sol üst köşesindeki PE'nin aktif duruma getirilmesini sağlar. Diğer sayılar da Şekil-1'de soldan sağa doğru diğer PE'leri temsil eder. 80-130. satırlar arasında bunun uygulamasını görebilirsiniz. Artık CL öğrenmeye hazırdır. Öğretmek için SYS49163 ve ardından da modellerin kaç defa verilmesini istediğinizi yazın. Eğer büyük bir sayı yazarsanız program işlemi bitirebilmek için oldukça çok zamana ihtiyaç duyacaktır, çünkü modellerin bir defa verilmesi ve bunların işlenmesi 15 saniye tutar. Oldukça sabit bir sistem elde etmek için modelleri yüzlerce kez vermeniz gerekecektir. 400 defa model vermek için gereken süre bir saatin üzerindedir. Ağ sistemi modelleri bir kez öğrendikten sonra, başka seferlerde tekrar uzun süre beklememek için değişkenleri dizileri diske saklayın. Bunu yapmak için SYS49178 komutunu ve arkasından da tırnak işaretleri içerisinde bir dosya adı vermeniz gerekir: SYS49178, “dosya adı”. Bir ağ sistemini geri yüklemek için de SYS49173, “dosya adı” yazmanız yeterlidir.

Ağ sistemi eğitildikten sonraki çalışmalar için kaydedildikten sonra, modelleri daha önce öğrendiği kurallara göre sınıflandırmaya başlayabilir. Sistem sizin öğrettiğiniz her tür modeli sınıflandıracaktır, ama beklenmedik bir şekilde öğretmediğiniz modelleri de sınıflandıracaktır. Bu da CL sisteminin en önemli özelliklerinden biridir. Bir modelin tanınmasını istediğinizde bu giriş modelini SYS49155 komutundan sonra tırnak içerisinde yazın. Giriş modeli bir sıra 1 ve 0'lardan oluşmalıdır ve bunların toplam sayısı 1. katmandaki PE'lerin sayısına eşit olmalıdır. Bu işlemden sonra çıkış modeli 02 dizisinde olacaktır. Grafik bölüştürmesi programında çıkış görüntüsü dört bölümden oluşur. Birincisi, 4x4'lük bir matrisle belirtilen, 1. katmandaki PE'lerle 2. katmandaki ilk PE'nin arasındaki bağlantıların ağırlıklarıdır. Sonraki bölüm, bir önceki matrisin tüm bağlantılarının ağırlıklarının toplam ağırlığıdır. Üçüncü bölüm, başka bir 4x4'lük matristen oluşur ve 1. katmandaki PE'lerle 2. katmandaki ikinci PE arasındaki bağlantıların ağırlıklarının toplamı bildirilir. Tüm sayılar 1.000.000'a kadar sayılardır. Tüm ağırlıkların toplamı yaklaşık olarak 1.000.000 civarında olmalıdır. Bu ağırlıkların simetrik bir şekilde dağılımını sağlar ve CL'nin işlemesi açısından çok önemlidir. 22

Program çalıştıkça kare alanının bir tarafındaki ağırlıklar çok daha kuvvetli olacaktır. Her kare alan birbirinin aynadaki görüntüsü şeklinde oluşmuş ağırlıklara sahip olmalıdır. Şekil-2, 400 denemeden sonra ağırlıkları belirtmektedir. Dikkat ederseniz kare alanın iki gruba ayrılmış olduğunu görürsünüz. Eğer kare alanın yer alan bir dipol verilirse, 2. katmandaki ilk PE aktif hale geçer. Eğer dipol kare alanının sağındaysa 2. katmanın ikinci PE'si aktif hale geçer.