Bu sayfadaki yazılar
Sayfanın metni
Sayfa 21
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.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 20
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.