Amiga Dünyası sayı 20, sayfa 23

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 23

Merhaba arkadaşlar. Bu aydan itibaren AMOS yazımız biraz daha değişik olacak. Artık komutları tek tek açıklamak yerine örnek programlar vererek bu komutların kullanılışlarını ve değişik programlama tekniklerini göreceğiz.

Bu ay sizlere basit bir 'Neural Networks' programı veriyorum. 'Neural Networks' kelimelerinin Türkçe karşılığı, 'Sinir ağları'. Bu programlama tekniğinin temelini sinir sistemimizi oluşturan hücrelerin davranışını taklit etmek oluşturur. Bunun için bir sürü yöntem vardır. Bu ay sizlere bu yöntemlerin en eski ve en basit olanlarından biri olan Hopfield network yöntemini kullanan bir program veriyorum. Programda kullandığım katsayıların formüllerini 1 numaralı kutuda bulabilirsiniz. Eğer bu konuda daha derin bilgi sahibi olmak isterseniz, bunu mektuplarınızla bize bildirin. Eğer konu ilgi görürse daha derinlemesine anlatabilirim.

Şimdi gelelim bu ayki programa. Bu program bir çeşit şekil tanıma programıdır. Programın aslını hızlı çalışması için C dilinde yazdığımdan, pek süslemeye vaktim olmadı. Gelecek ay, AMOS'un grafik komutlarını kullanarak bu program için iyi bir 'User Interface' hazırlayacağım. Programa ilk olarak tanımasını istediğiniz şekilleri veriyorsunuz. Bunlar 8x8'lik kareler şeklindedir. Şekilleri bilgisayara satır satır giriyorsunuz. Ayrıntılı bilgiyi 2 numaralı kutuda bulabilirsiniz. Şekilleri girdikten sonra katsayıları belirliyorsunuz. Daha sonra bu şekillerden herhangi birini bilinmeyen olarak yüklüyorsunuz. Bu şekli 11 numaralı seçenekle gelişigüzel bir şekilde bozuyorsunuz. Bundan sonra program elde ettiğiniz yeni şeklin diğerlerinden en çok hangisine benzediğini adım adım buluyor. Benim elde ettiğim sonuçlara göre program %22'ye varan değişikliklerde bile iyi sonuç veriyor. Bu programın bir dezavantajı, belirli örnekler verildiğinde sonucun doğru yakalanamaması. Fakat yine de program birçok uygulama için uygun. Benim kendi kullandığım şekilleri 3 numaralı kutuda bulabilirsiniz.

Bu ay sadece programın listesini veriyorum. Daha detaylı açıklamasını gelecek ay vereceğim. Şimdilik hoşça kalın. Bu arada ufak bir uyarı: Program daha evvel yazdıklarıma göre epey uzun ve karışık o yüzden yazarken dikkat edin. Ufak bir işaret hatası yanlış çalışmasına sebep olabilir.....

Rern********************************* Rem Burak OZDEMIR 20 October 1991 * Rem Name:Hopfield network * Rem Version: 1 * Rem********************************** Set Buffer 30 INITSCRN Rem CLMNS=8 RWS=8 N_NODES=CLMNS*RWS N_SMPLRS=3 UNKNOWN=N_SMPLRS RESULT=N_SMPLRS+1 MXT=20 Rem Rem Dim SMPLR(N_SMPLRS+2,N_NODES) Dim W_MATRIX(N_NODES,N_NODES) Rem Global SMPLR(),W_MATRIX() Global CLMNS, RWS, N_NODES, N_SMPLRS, UNKNOWN, RE- SULT, MXT Rem Do Cls

Print "Options: " Print"( 1) Örnekleri gir" Print"( 2) Örnekleri kayit et" Print"( 3) Örnekleri yükle" Print "( 4) Örnekleri yaz" Print: Print "( 5) Katsayilari hesapla" Print"( 6) katsayilari yaz" Print: Print"( 7) Bilinmeyen sekli gir" Print"( 8) Bilinmeyen sekli yükle" Print "( 9) Bilinmeyen sekli kayit et" Print "(10) Bilinmeyen sekli göster" Print: Print "(11) Sekile gurultu ekle" Print:Print "(12) Hesaplamaya basla" Print: Print"( 0) Programdan cik" Rem Input OPTION If OPTION=0 Then Exit

Klavyeyle gezinmek için ← ve → tuşları.