KOCAELİ ÜNİVESİTESİ
Transkript
KOCAELİ ÜNİVESİTESİ
NÖRAL SİSTEMLERE GİRİŞ Ders Notu 1 GİRİŞ ............................................................................................................................. 4 ZEKA ............................................................................................................................. 5 YAPAY ZEKA .............................................................................................................. 5 YAPAY ZEKA’NIN GELİŞİM SÜRECİ ..................................................................... 5 YAPAY ZEKANIN AMAÇLARI ................................................................................. 7 YSA TESTLERİ ............................................................................................................ 7 6.1 Turing Testi ................................................................................................................ 7 6.2 Çin Odası Testi ........................................................................................................... 8 7. YAPAY ZEKA TEKNİKLERİ..................................................................................... 8 8. YAPAY SiNİR AİLARI .............................................................................................. 9 8.1 YSA’nın Tanımı ve Tarihçesi ................................................................................... 9 8.2 Literatüreki YSA Tanımları ..................................................................................... 10 8.3 YSA’nın Uygulama Alanları.................................................................................... 10 8.4 YSA’nın Üstünlükleri .............................................................................................. 12 8.5 YSA Nasıl Çalışır ? .................................................................................................. 14 8.6 YSA’nın Eğitimi ve Testi....................................................................................... 15 8.7 Biyolojik Sinir Sistemi ............................................................................................. 18 8.8 Sinir Hücresi (Nöron) ............................................................................................... 19 8.9 YSA’nın Yapısı ........................................................................................................ 20 8.9.1 Girdi Katmanı................................................................................................... 21 8.9.2 Ara Katman (Gizli Katman) ............................................................................. 21 8.9.3 Çıktı Katmanı ................................................................................................... 21 8.10 Yapay Sinir Hücresi ................................................................................................. 22 8.10.1 Girdiler ............................................................................................................. 22 8.10.2 Ağırlıklar .......................................................................................................... 22 8.10.3 Birleştirme Fonksiyonu .................................................................................... 22 8.10.4 Aktivasyon Fonksiyonu.................................................................................... 23 8.10.4.1 Doğrusal Aktivasyon Fonksiyon ............................................................. 23 8.10.4.2 Sigmoid Aktivasyon Fonksiyonu ............................................................. 24 8.10.4.3 Tanjant Hiperbolik ................................................................................... 24 8.10.5 Çıktı .................................................................................................................. 25 8.11 Yapay Sinir Ağlarının Sınıflandırılması .................................................................. 26 8.11.1 YSA’ların Yapılarına Göre Sınıflandırılması .................................................. 26 8.11.1.1 İleri Beslemeli Ağlar ................................................................................ 26 8.11.1.2 Geri Beslemeli Ağlar................................................................................ 28 8.11.2 YSA’ların Öğrenme Algoritmalarına Göre Sınıflandırılması .......................... 29 8.11.2.1 Danışmanlı Öğrenme................................................................................ 29 8.11.2.2 Danışmansız Öğrenme ............................................................................. 30 8.11.2.3 Takviyeli Öğrenme................................................................................... 30 8.11.3 Uygulamaya Göre Öğrenme Algoritmaları ...................................................... 31 8.11.3.1 Çevrim İçi (On-line) Öğrenme ................................................................. 31 8.11.3.2 Çevrim Dışı (Offline) Öğrenme ............................................................... 31 8.12 Yapay Sinir Ağ Yapıları........................................................................................... 31 8.12.1 Bir YSA’nın Tasarımı ...................................................................................... 32 8.12.1.1 YSA Ağ Yapısının Seçimi ....................................................................... 32 8.12.1.2 Öğrenme Algoritmasının Seçimi.............................................................. 33 8.12.1.3 Ara Katman Sayısını Belirleme................................................................ 34 1. 2. 3. 4. 5. 6. 2 8.12.1.4 8.12.1.5 Nöron Sayısının Belirlenmesi .................................................................. 34 Normalizasyon ......................................................................................... 35 8.12.1.6 Performans Fonksiyonun Seçimi ............................................................. 36 8.12.2 Basit Algılayıcı Modeli (Perseptron) ............................................................... 36 8.12.3 Adaline ............................................................................................................. 41 8.12.4 Çok Katlı Algılyıcılar ÇKA (Multi Layer Perceptron MLP) .......................... 45 8.12.5 Radyal Tabanlı Sinir Ağı.................................................................................. 46 8.12.6 LVQ (Learning Vector Quantisation) .............................................................. 48 8.12.6.1 Ceza Mekanizmalı LVQ........................................................................... 50 8.12.6.2 LVQ2........................................................................................................ 50 8.12.7 Hopfield Ağı..................................................................................................... 51 8.12.8 Elman ve Jordan Ağları .................................................................................... 53 8.12.9 Kohonen Ağı .................................................................................................... 54 8.12.10 ART (Adaptive Resonance Theory)................................................................. 56 8.12.11 Olasılık Tabanlı YSA ....................................................................................... 58 8.13 YSA Öğrenme Algoritmaları ................................................................................... 58 8.14 Temel Öğrenme Kuralları ........................................................................................ 58 8.14.1 Hebb Kuralı ...................................................................................................... 58 8.14.2 Delta Kuralı ...................................................................................................... 59 8.14.3 Kohonen Kuralı ................................................................................................ 61 8.14.4 Hopfield Kuralı ................................................................................................ 61 8.15 Öğrenme Algoritmaları ............................................................................................ 61 8.15.1 Geriyayılım Algoritması .................................................................................. 61 8.15.2 Delta-Bar-Delta ................................................................................................ 65 8.15.3 Geliştirilmiş Delta Bar Delta ............................................................................ 67 8.15.4 Hızlı Yayılım (QuickProp) ............................................................................... 69 8.15.5 Genetik Algoritma ............................................................................................ 71 3 1. Son GİRİŞ yıllarda bilgisayar bilimlerinde yaşanan teknolojik gelişmeler, neredeyse takip edilemeyecek bir hızda ilerlemektedir. Bu ilerleme, insanoğlunun da yaratıcılığını ve sınır tanımazlığını arttırmış, daha önce hiç hayal bile edilemeyen yeni gelişmelerin doğmasına neden olmuştur. Bu gelişmelerden bir tanesi de Yapay Zeka’dır. Bilim adamları, adına Yapay Zeka dedikleri, insanın düşünebilme, anlayabilme, öğrenebilme ve yorumlayabilme yeteneklerini, programlamayla taklit ederek problem çözümüne kullanmaktadırlar. Yapay Sinir Ağları (YSA)’da, Yapay Zeka biliminin altında araştırmacıların çok yoğun ilgi gösterdikleri bir araştırma alanıdır. YSA’ların örnekler ile öğrenebilme ve genelleme yapabilme özellikleri onlara çok esnek ve güçlü araçlar olma özelliği sağlamaktadır. Bu çalışmada YSA teorik olarak anlatılmış ve günlük hayatta kullanılan değişik YSA uygulamalarından bahsedilmiştir. 4 2. ZEKA Öğrenme ve çevreye uyabilme yeteneğinin koşulu zeki olmaktır. Zeka, anlama ve kavrama yeteneği olarak tanımlanabilir. 3. YAPAY ZEKA Yapay zeka, insanın düşünme yapısını anlamak ve bunun benzerini ortaya çıkaracak bilgisayar işlemlerini geliştirmeye çalışmak olarak tanımlanır. Bir başka deyişle, yapay zeka programlanmış bir bilgisayarın düşünme girişimidir. Daha geniş bir tanıma göre ise, yapay zeka, bilgi edinme, algılama, görme, düşünme ve karar verme gibi insan zekasına özgü kapasitelerle donatılmış bilgisayarlardır. 4. YAPAY ZEKA’NIN GELİŞİM SÜRECİ Yapay zeka konusundaki ilk çalışma McCulloch ve Pitts tarafından yapılmıştır. Bu araştırmacıların önerisi; “Her hangi bir hesaplanabilir fonksiyonun sinir hücrelerinden oluşan ağlarla hesaplanabileceğini gerçekleştirilebileceği” idi. Bu ve ağ mantıksal 've' yapılarının ve 'veya' işlemlerinin uygun şekilde tanımlanmaları halinde öğrenme becerisi kazanabileceğini de ileri sürdüler. Hebb, sinir hücreleri arasındaki bağlantıların şiddetlerini değiştirmek için basit bir kural önerince, öğrenebilen yapay sinir ağlarını gerçekleştirmek de olası hale gelmiştir. 1950’lerde Shannon ve Turing bilgisayarlar için satranç programları yazıyorlardı. SNARC isimli ilk yapay sinir ağı temelli bilgisayar MIT’de Minsky ve Edmonds tarafından 1951’de yapıldı. Çalışmalarını Princeton Üniversitesi’nde sürdüren Mc Carthy, Minsky, Shannon ve Rochester’le birlikte 1956 yılında Dartmouth’da iki aylık bir toplantı düzenledi. Bu toplantıda bir çok çalışmanın temelleri atılmakla birlikte, toplantının en önemli özelliği Mc Carthy tarafından önerilen Yapay zeka adının konmasıdır. İlk kuram ispatlayan programlardan Logic Theorist (Mantık kuramcısı) burada Newell ve Simon tarafından tanıtılmıştır. Daha sonra Newell ve Simon, 'insan gibi düşünme' yaklaşımına göre üretilmiş ilk program olan General Problem Solver (Genel sorun çözücü)‘ı geliştirmişlerdir. Simon, daha sonra fiziksel simge 5 varsayımını ortaya atmış ve bu kuram, insandan bağımsız zeki sistemler yapma çalışmalarıyla uğraşanların hareket noktasını oluşturmuştur. Bundan sonraki yıllarda mantık temelli çalışmalar egemen olmuş ve programların başarımlarını göstermek için bir takım yapay sorunlar ve dünyalar kullanılmıştır. Daha sonraları bu sorunlar gerçek yaşamı hiçbir şekilde temsil etmeyen oyuncak dünyalar olmakla suçlanmış ve yapay zekanın yalnızca bu alanlarda başarılı olabileceği ve gerçek yaşamdaki sorunların çözümüne ölçeklenemeyeceği ileri sürülmüştür. Geliştirilen programların gerçek sorunlarla karşılaşıldığında çok kötü bir başarım göstermesinin ardındaki temel neden, bu programların yalnızca sentaktik bir şekilde çalışıp konu ile ilgili bilgileri kullanmamasıydı. Bu dönemin en ünlü programlarından Weizenbaum tarafından geliştirilen Eliza, karşısındaki ile sohbet edebiliyor gibi görünmesine karşın, yalnızca karşısındaki insanın cümleleri üzerinde bazı işlemler yapıyordu. İlk makine çeviri çalışmaları sırasında benzeri yaklaşımlar kullanılıp çok gülünç çevirilerle karşılaşılınca bu çalışmaların desteklenmesi durdurulmuştur. Zeki davranışı üretmek için bu çalışmalarda kullanılan temel yapılardaki bazı önemli yetersizliklerin de ortaya konmasıyla bir çok araştırmacılar çalışmalarını durdurdular. Buna en temel örnek, sinir ağları konusundaki çalışmaların Minsky ve Papert’in 1969’da yayınlanan Perceptrons adlı kitaplarında tek katmanlı YSA ların bazı basit problemleri çözemeyeceğini gösterip aynı kısırlığın çok katmanlı YSA larda da beklenilmesi gerektiğini söylemeleri ile bıçakla kesilmiş gibi durmasıdır. Her sorunu çözecek genel amaçlı program yerine belirli bir uzmanlık alanındaki bilgiyle donatılmış programlar kullanma fikri yapay zeka alanında yeniden bir canlanmaya yol açtı. Kısa sürede uzman sistemler adı verilen bir metodoloji gelişti. Fakat burada çok sık rastlanan tipik bir durum, bir otomobilin tamiri için önerilerde bulunan uzman sistem programının otomobilin ne işe yaradığından haberi olmamasıydı. İnsanların iletişimde kullandıkları Türkçe, İngilizce gibi doğal dilleri anlayan bilgisayarlar konusundaki çalışmalar bu sıralarda hızlanmaya başladı. Doğal dil anlayan programların dünya hakkında genel bilgiye sahip olması ve bu bilgiyi kullanabilmek için genel bir metodolojisi olması gerektiği belirtilmekteydi. Uzman dizgelerin başarıları beraberinde ilk ticari uygulamaları da getirdi. Yapay zeka yavaş 6 yavaş bir endüstri haline geliyordu. DEC tarafından kullanılan ve müşteri siparişlerine göre donanım seçimi yapan R1 adlı uzman sistem şirkete bir yılda 40 milyon dolarlık tasarruf sağlamıştı. Birden diğer ülkeler de yapay zekayı yeniden keşfettiler ve araştırmalara büyük kaynaklar ayrılmaya başlandı. 1988’de yapay zeka endüstrisinin cirosu 2 milyar dolara ulaşmıştı. 1975 yılında Holland canlılarda doğal gelişim prensibnine dayanan genetik algoritmayı önermiştir. 1976 yılında da, Sejnowski Boltzman Makinesini geliştirmiş ve buna geri yayılım algoritmasını uygulamıştır. Sutton ve Barto 1978 yılında takviyeli öğrenme modeli geliştirdiklerini rapor etmişlerdir. Hecht-Nielsen ilk modern elektronik nöro bilgisayar olan TRW MARK III ile PC tabanlı nöro bilgisayar olan ANAZA’yı 1982 yılında tasarlamışlardır. 1987 yılında yapılan ilk uluslar arası YSA konferansında sunulan yüzlerce çalışma ve uygulama ile artık bu alandaki çalışmalar yaygınlaşmaya başlamıştır. 5. YAPAY ZEKANIN AMAÇLARI Yapay Zeka çalışmalarında hedeflenen amaçlar: ° İnsan beyninin fonksiyonlarını modellerle anlamaya çalışmak ° İnsanın zihinsel yeteneklerini, bilgi kazanma, öğrenme ve buluş yapmada uyguladıkları strateji ve metotları araştırmak 6. ° Bu metotları formel hale getirmek, bilgisayarlarda uygulamak ° Bilgisayar kullanımını kolaylaştıracak arayüzler geliştirmek ° Uzman Sistemler ve Genel Bilgi Sistemleri geliştirmek ° YZ iş yardımcıları ve zeki robot timleri geliştirmek ° Bilimsel araştırma ve buluşlar için Araştırma Yardımcıları geliştirmek YSA TESTLERİ Geliştirilen sistemlerin zeki olup olmadıklarını anlamak için zeka testleri geliştirilmiştir. Bunlardan en çok bilineni Turing Testi ve Çin Odası testleridir. 6.1 Turing Testi 7 Bir kimsenin klavye aracılığı ile bir insana ve bir zeki makinaya soru sormasından oluşmaktadır. Testte soru soran bir sorgulayıcı ve cevap veren bir taraf bulunur. Taraflar birbirlerini görmemekte, aralarındaki iletişim bilgisayar terminali ile sağlanmaktadır. Eğer sorgulayıcı, karşıdaki tarafın insan mı yoksa makine mi olduğunu ayırt edemezse, denek Turing testini geçmiş sayılır. Bunun anlamı, bilgisayar zekidir. 6.2 Çin Odası Testi Bu testte, bir odada kilitli olduğunuzu düşünün ve odada da üzerlerinde çince tabelalar bulunan sepetler olsun. Fakat siz çince bilmiyorsunuz. Ama elinizde çince tabelaları ingilizce olarak açıklayan bir kural kitabı bulunsun. Kurallar çinceyi tamamen biçimsel olarak, yani söz dizimlerine uygun olarak açıklamaktadır. Daha sonra odaya başka çince simgelerin getirildiğini ve size çince simgeleri odanın dışına götürmek için, başka kurallarda verildiğini varsayın. Odaya getirilen ve sizin tarafınızdan bilinmeyen simgelerin oda dışındakilerce `soru` diye, sizin oda dışına götürmeniz istenen simgelerin ise `soruların yanıtları` diye adlandırıldığını düşünün. Siz kilitli odanın içinde kendi simgelerinizi karıştırıyorsunuz ve gelen çince simgelere yanıt olarak en uygun çince simgeleri dışarı veriyorsunuz. Dışta bulunan bir gözlemcinin bakış açısından sanki çince anlayan bir insan gibisiniz. Çince anlamanız için en uygun bir program bile çince anlamanızı sağlamıyorsa, o zaman herhangi bir sayısal bilgisayarın da çince anlaması olanaklı değildir. Bilgisayarda da sizde olduğu gibi, açıklanmamış çince simgeleri işleten bir biçimsel program vardır ve bir dili anlamak demek, bir takım biçimsel simgeleri bilmek demek değil, akıl durumlarına sahip olmak demektir. 7. YAPAY ZEKA TEKNİKLERİ ° Yapay Sinir Ağları ° Bulanık Mantık ° Sezgisel Algoritmalar (Genetik Algoritmalar, Tabu Arama, Tavlama Benzetimi, Karınca Algoritması gibi) ° Uzman Sistemler Seminer konusu olarak “YSA’nın Tahmin Amacıyla Kullanılması” konusu seçilmiştir. Bu nedenle bu dokümanda, yukarıda sayılan YSA tekniklerinden yalnızca “Yapay Sinir 8 Ağları” tekniği anlatılacaktır. 9 8. 8.1 YAPAY SİNİR A¾LARI YSA’nın Tanımı ve Tarihçesi YSA, beyindeki sinirlerin çalışmasını taklit ederek sistemlere öğrenme, genelleme yapma, hatırlama gibi yetenekler kazandırmayı amaçlayan bilgi işleme sistemidir. İnsan beyninin ve düşünme yeteneğinin taklit edilmesi isteği sanıldığının aksine çok eski zamanlarda var olmuş bir istektir. İnsan beyni ve düşünebilme yeteneğine ilişkin ilk açıklayıcı teori geliştirme denemeleri Antik Yunan düşünürleri olan Plato (İ.Ö. 427-327) ve Aristoteles'e (İ.Ö. 384-322) kadar uzanmaktadır. Daha sonra ise Descartes (1596-1650) insanın düşünme yeteneğiyle ilgilenen 18. yüzyıl düşünürü olmuştur. Beyinin üstün özellikleri, bilim adamlarını üzerinde çalışmaya zorlamış ve beynin nörofiziksel yapısından esinlenerek matematiksel modeli çıkarılmaya çalışılmıştır. Beynin bütün davranışlarını modelleyebilmek için fiziksel bileşenlerinin doğru olarak modellenmesi gerektiği düşüncesi ile çeşitli yapay hücre ve ağ modelleri geliştirilmiştir. Böylece, Yapay Sinir Ağları denen günümüz bilgisayarlarının algoritmik hesaplama yöntemlerinden farklı bir bilim alanı ortaya çıkmıştır. Genel anlamda YSA, beynin bir işlevini yerine getirme yöntemini modellemek için tasarlanan bir sistem olarak tanımlanabilir. Bir YSA, yapay sinir hücrelerinin birbirleri ile çeşitli şekillerde bağlanmasında oluşur. YSA’lar öğrenme algoritmaları ile öğrenme sürecinden geçtikten sonra, bilgiyi toplama, hücreler arasındaki bağlantı ağırlıkları ile bu bilgiyi saklama ve genelleme yeteneğine sahip olurlar. YSA lar yapılarına göre farklı öğrenme yaklaşımları kullanırlar. Yapay sinir ağlarının dayandığı başında araştırmalarına başlayan ilk hesaplama modelinin temelleri 1940'ların W.S. McCulloch ve W.A. Pitts'in, 1943 yılında yayınladıkları bir makaleyle atılmış olmuştur. Daha sonra 1954 yılında B.G. Farley ve W.A. Clark tarafından bir ağ içerisinde uyarılara tepki veren, uyarılara adapte olabilen model oluşturulmuştur. 1960 yılı ise ilk neural modellerin ilk eksiklikleri bilgisayarın fark edilmiş, ortaya ancak çıkış yılıdır. başarılı 1963 sonuçların yılında basit alınması 1970 10 ve 1980'lerde termodinamikteki teorik yapıların doğrusal olmayan ağların geliştirilmesinde kullanılmasına 11 kadar gecikmiştir. 1985 yapay sinir ağlarının oldukça tanındığı, yoğun araştırmaların başladığı yıl olmuştur.1 8.2 Literatüreki YSA Tanımları Yapay sinir ağının genel bir tanımı yapılması gerekirse, Yapay Sinir Ağı, insan beyninin çalışma ve düşünebilme yeteneğinden yola çıkılarak oluşturulmuş bir bilgi işlem teknolojisidir. Yapay sinir ağının işleyiş özelliklerine dayanan ikinci tür tanımı ise ilk ticari yapay sinir ağının geliştiricisi olan Dr. Robert HECHT-NIELSEN'e ait bir tanımdır: "Yapay sinir ağı dışarıdan gelen girdilere dinamik olarak yanıt oluşturma yoluyla bilgi işleyen, birbiriyle bağlantılı basit elemanlardan oluşan bilgiişlem sistemidir.2 Bu tanıma yakın bir tanımda yapay sinir ağı yazınında çok tanınan Teuvo KOHONEN'e ait bir tanımdır :" Yapay sinir ağları paralel olarak bağlantılı ve çok sayıdaki basit elemanın, gerçek dünyanın nesneleriyle biyolojik sinir sisteminin benzeri yolla etkileşim kuran olan, hiyararşik bir organizasyonudur 8.3 YSA’nın Uygulama Alanları Son yıllarda YSA’ ları, özellikle günümüze kadar çözümü güç ve karmaşık olan yada ekonomik olmayan çok farklı alanlardaki problemlerin çözümüne uygulanmış ve genellikle başarılı sonuçlar alınabilmiştir. Yapay sinir ağları aşağıdaki özellikleri gösteren alanlarda kullanıma uygun bir araçtır: ° Çok değişkenli problem uzayı, ° Probleme ilişkin değişkenler arasında karmaşık etkileşim, ° Çözüm uzayının bulunmaması, tek bir çözümün olması veya çok sayıda çözüm bulunması. 1 Mehra Pankaj Wah W Benjamin, Artifisal Neural Networks Concepts and Theory, IEEE Computer Society Press, Washington, 1992, page 45 2 CAUDILL, Maureen “Neural Network Primar Part 1” AI Expert, December 1987,pp47 12 YSA’lar insan beyninin fonksiyonel özelliklerine benzer şekilde aşağıdaki konularda başarılı bir şekilde uygulanmaktadır. ° Öğrenme ° İlişkilendirme ° Sınıflandırma ° Genelleme ° Tahmin ° Özellik Belirleme ° Optimizasyon YSA’ ları çok farklı alanlara uygulanabildiğinden bütün uygulama alanlarını burada sıralamak zor olmakla birlikte genel bir sınıflandırma ile YSA’ nın uygulama alanları aşağıdaki gibi 6 grup içerisinde toplanabilir. Arıza Analizi ve Tespiti Bir sistemin, cihazın yada elemanın düzenli (doğru) çalışma şeklini öğrenen bir YSA yardımıyla bu sistemlerde meydana gelebilecek arızaların tanımlanma olanağı vardır. Bu amaçla YSA; elektrik makinelerinin, uçakların yada bileşenlerinin, entegre devrelerin v.s. arıza analizinde kullanılmıştır. Tıp Alanında EEG ve ECG gibi tıbbi sinyallerin analizi, kanserli hücrelerin analizi, protez tasarımı, transplantasyon zamanlarının optimizasyonu ve hastanelerde giderlerin optimizasyonu v.s gibi uygulama yeri bulmuştur. Savunma Sanayi Silahların otomasyonu ve hedef izleme, nesneleri/görüntüleri ayırma ve tanıma, yeni algılayıcı tasarımı ve gürültü önleme v.s gibi alanlara uygulanmıştır. Haberleşme Görüntü ve veri sıkıştırma, otomatik bilgi sunma servisleri, konuşmaların gerçek zamanda çevirisi v.s gibi alanlarda uygulama örnekleri vardır. 13 Üretim Üretim sistemlerinin optimizasyonu, ürün analizi ve tasarımı, ürünlerin (entegre, kağıt, kaynak v.s.) kalite analizi ve kontrolü, planlama ve yönetim analizi v.s. alanlarına uygulanmıştır. Otomasyon ve Kontrol Uçaklarda otomatik pilot sistemi otomasyonu, ulaşım araçlarında otomatik yol bulma/gösterme, robot sistemlerin kontrolü, doğrusal olmayan sistem modelleme ve kontrolü, elektrikli sürücü sistemlerin kontrolü v.s. gibi yaygın bir uygulama yeri bulmuştur. 8.4 YSA’nın Üstünlükleri Yapay sinir ağları modelleri, biyolojik sinir ağlarının çalışma biçimlerinden esinlenerek ortaya çıkarılmıştır.Yapay sinir ağları, biyolojik olmayan yapı taşlarının düzgün bir tasarımla birbirlerine yoğun olarak bağlanmalarından oluşmaktadırlar. Sinir sisteminin modellenmesi için yapılan çalışmalar sonucu oluşturulan yapay sinir ağları, biyolojik sinir sisteminin üstünlüklerine de sahiptir. Bu üstünlükleri şu şekillerde özetleyebilmek mümkündür. Yapay sinir ağı özellikle doğrusal olmayan sistemlerde öngörüler açısından istatistik tekniklere göre daha kolaylık sağlayan bir özelliğe sahiptir. Bundan dolayı başta işletmecilik ve finans olmak üzere bir çok değişik alanlarda kullanım imkanı bulur. Doğrusal Olmama: YSA’ nın temel işlem elemanı olan hücre doğrusal değildir. Dolayısıyla hücrelerin birleşmesinden meydana gelen YSA da doğrusal değildir ve bu özellik bütün ağa yayılmış durumdadır. Bu özelliği ile YSA, doğrusal olmayan karmaşık problemlerin çözümünde en önemli araç olmuştur. Paralellik: Alışılmış bilgi işlem yöntemlerinin çoğu seri işlemlerden oluşmaktadır.Bu da hız ve güvenilirlik sorunlarını beraberinde getirmektedir.Seri bir işlem gerçeklenirken herhangi bir birimin yavaş oluşu tüm sistemi doğruca yavaşlatırken ,paralel bir sistemde yavaş bir birimin etkisi çok azdır.Nitekim seri bir bilgisayarın bir işlem elemanı beyine göre binlerce kez daha hızlı işlemesine rağmen , beynin toplam işlem hızı seri çalışan bir bilgisayara göre 14 kıyaslanamayacak kadar yüksektir. 15 Gerçeklenme Kolaylığı: Yapay sinir ağlarında basit işlemler gerçekleyen türden hücrelerden oluşması ve bağlantıların düzgün olması,ağların gerçeklenmesi ki açısından büyük kolaylık olmasını sağlamaktadır Yerel Bilgi İşleme: Yapay sinir ağlarında her bir işlem birimi ,çözülecek problemin tümü ile ilgilenmek yerine ,sadece problemin gerekli parçası ile ilgilenmektedir ve problemin bir parçası işlemektedir.Hücrelerin çok basit işlem yapmalarına rağmen , sağlanan görev paylaşımı sayesinde, çok karmaşık problemler çözülebilmektedir. Hata Toleransı: Sayısal bir bilgisayarda,herhangi bir işlem elemanını yerinden almak, onu etkisiz bir makineye dönüştürmektedir.Ancak yapay sinir ağlarında bir elemanda meydana gelebilecek hasar çok büyük önem teşkil etmez.Yapay sinir ağlarının paralel çalışması hız avantajı ile birlikte yüksek hata sağlamaktadır.Seri bilgi işlem yapan bir sistemde herhangi bir birimin hatalı çalışması,hatta bozulmuş olması tüm sistemin hatalı çalışmasına veya bozulmasına sebep olacaktır.Paralel bilgi işleme yapan bir sistemde ise,sistemin ayrı ayrı işlem elemanlarında meydana gelecek olan hatalı çalışma veya hasar,sistemin performansında keskin bir düşüşe yol açmadan, performansın sadece hata birimlerinin bir oranınca düşmesine sebep olur. YSA, çok sayıda hücrenin çeşitli şekillerde bağlanmasından oluştuğundan paralel dağılmış bir yapıya sahiptir ve ağın sahip olduğu bilgi, ağdaki bütün bağlantılar üzerine dağılmış durumdadır. Bu nedenle, eğitilmiş bir YSA’nın bazı bağlantılarının hatta bazı hücrelerinin etkisiz hale gelmesi, ağın doğru bilgi üretmesini önemli ölçüde etkilemez. Bu nedenle, geleneksel yöntemlere göre hatayı tolere etme yetenekleri son derece yüksektir Öğrenebilirlik: Alışılagelmiş veri işleme yöntemlerinin çoğu programlama yolu ile hesaplamaya dayanmaktadır.Bu yöntemler ile, tam tanımlı olmayan bu problemin çözümü yapılamaz.Bunun yanında , herhangi bir problemin çözümü için probleme yönelik bir algoritmanın geliştirilmesi gerekmektedir.Yapay sinir ağları problemleri verilen örneklerle çözer.Çözülecek problemler için yapı aynıdır. YSA’ nın arzu edilen davranışı gösterebilmesi için amaca uygun olarak ayarlanması gerekir. Bu, hücreler arasında doğru bağlantıların yapılması ve bağlantıların uygun ağırlıklara sahip olması gerektiğini ifade eder. YSA’ nın karmaşık yapısı nedeniyle bağlantılar ve ağırlıklar önceden ayarlı olarak verilemez yada tasarlanamaz. Bu nedenle YSA, istenen davranışı gösterecek şekilde ilgilendiği problemden 16 aldığı eğitim örneklerini kullanarak problemi öğrenmelidir. 17 Genelleme: YSA, ilgilendiği problemi öğrendikten sonra eğitim sırasında karşılaşmadığı test örnekleri için de arzu edilen tepkiyi üretebilir. Örneğin, karakter tanıma amacıyla eğitilmiş bir YSA, bozuk karakter girişlerinde de doğru karakterleri verebilir yada bir sistemin eğitilmiş YSA modeli, eğitim sürecinde verilmeyen giriş sinyalleri için de sistemle aynı davranışı gösterebilir. Uyarlanabilirlik: ayarlar. Yani, YSA, belirli bir ilgilendiği problemi problemdeki çözmek değişikliklere amacıyla eğitilen göre ağırlıklarını YSA, problemdeki değişimlere göre tekrar eğitilebilir, değişimler devamlı ise gerçek zamanda da eğitime devam edilebilir. Bu özelliği ile YSA, uyarlamalı örnek tanıma, sinyal işleme, sistem tanılama ve denetim gibi alanlarda etkin olarak kullanılır. Donanım ve Hız: YSA, paralel yapısı nedeniyle büyük ölçekli entegre devre (VLSI) teknolojisi ile gerçeklenebilir. Bu özellik, YSA’nın hızlı bilgi işleme yeteneğini artırır ve gerçek zamanlı uygulamalarda arzu edilir. Analiz ve Tasarım Kolaylığı: YSA’ nın temel işlem elemanı olan hücrenin yapısı ve modeli, bölüm 1.3’de açıklandığı gibi bütün YSA yapılarında yaklaşık aynıdır. Dolayısıyla, YSA’ nın farklı uygulama alanlarındaki yapıları da standart yapıdaki bu hücrelerden oluşacaktır. Bu nedenle, farklı uygulama alanlarında kullanılan YSA’ ları benzer öğrenme algoritmalarını ve teorilerini paylaşabilirler. Bu özellik, problemlerin YSA ile çözümünde önemli bir kolaylık getirecektir. 8.5 YSA Nasıl Çalışır ? Sinir ağı ile hesaplamalarda istenilen dönüşüm için, adım adım yürütülen bir yöntem gerekmez. Sinir ağı ilişkilendirmeyi yapan iç kuralları kendi üretir ve bu kuralları, bunların sonuçlarını örneklerle karşılaştırarak düzenler. Deneme ve yanılma ile, ağ kendi kendine işi nasıl yapması gerektiğini öğretir. YSA'larda bilgi saklama, verilen eğitim özelliğini kullanarak eğitim örnekleri ile yapılır. Sinirsel hesaplama, algoritmik programlamaya bir seçenek oluşturan, temel olarak yeni ve farklı bir bilgi işleme olayıdır. Uygulama imkanının olduğu her yerde, tamamen yeni bilgi işleme yetenekleri geliştirebilir. Bu sayede de geliştirme harcamaları ile geliştirme süresi büyük ölçüde azalır. Bir yapay sinir ağı girdi setindeki değişiklikleri değerlendirerek öğrenir ve buna bir çıktı üretir. Öğrenme işlemi benzer girdi setleri için aynı çıktıyı üretecek bir öğrenme algoritması 18 ile gerçekleşir. Öğrenme setindeki girdilerin istatistiksel özelliklerinin çıkarılarak benzer girdilerin gruplandırılmasını sağlayan bir işlemdir.3 Sinir yapılarına benzetilerek bulunan ağların eğitimi de, normal bir canlının eğitimine benzemektedir. Sınıfların birbirinden ayrılması işlemi (dolayısıyla kendini geliştirmesi), öğrenme algoritması tarafından örnek kümeden alınan bilginin adım adım işlenmesi ile gerçeklenir. YSA kullanılarak makinelere öğrenme genelleme yapma, sınıflandırma, tahmin yapma ve algılama gibi yetenekler kazandırılmıştır. 8.6 YSA’nın Eğitimi ve Testi Geleneksel bilgisayar uygulamalarının geliştirilmesinde karşılaşılan durum, bilgisayarın belli bilgisayar dilleri algoritmalarına aracılığıyla ve uygun kesin yazım ifadelerle programlanmasıdır. Bu oldukça zaman alan, uyumluluk konusunda zayıf, teknik personel gerektiren, çoğu zaman pahalı olan bir süreçtir. Oysa biyolojik temele dayalı yapay zeka teknolojilerinden biri olan yapay sinir ağlarının geliştirilmesinde programlama, yerini büyük ölçüde bırakmaktadır. Proses elemanlarının belirlenmesi işlemine “ağın eğitilmesi” denir.4 bağlantı Yapay ağırlık "eğitime" değerlerinin sinir ağının eğitilmesinde kullanılan girdi ve çıktı dizileri çiftinden oluşan verilerin tümüne "eğitim seti" adı verilir. Yapay sinir ağı öğrenme sürecinde, gerçek hayattaki problem alanına ilişkin veri ve sonuçlardan, bir başka deyişle örneklerden yararlanır. Gerçek hayattaki problem alanına ilişkin değişkenler yapay sinir ağının girdi dizisini, bu değişkenlerle elde edilmiş gerçek hayata ilişkin sonuçlar ise yapay sinir ağının ulaşması gereken hedef çıktıların dizisini oluşturur. Öğrenme süresinde, seçilen öğrenme yaklaşıma göre ağırlıklar değiştirilir. Ağırlık değişimi, öğrenmeyi ifade eder. YSA’da ağırlık değişimi yoksa, öğrenme işlemi de durmuştur. Başlangıçta bu ağırlık değerleri rastgele atanır. YSA’lar kendilerine örnekler gösterildikçe, bu ağırlık değerlerini değiştirirler. Amaç, ağa gösterilen örnekler için doğru çıktıları üretecek ağırlık değerlerini bulmaktır. Ağın doğru ağırlık değerlerine ulaşması örneklerin temsil ettiği 3 B. Dengiz, Sağlık Bilimlerinde Yapay Sinir Ağları 19 4 E. Öztemel, Yapay Sinir Ağları, 2003, s.55 20 olay hakkında, genellemeler yapabilme yeteneğine kavuşması demektir. Bu genelleştirme özelliğine kavuşması işlemine, “ağın öğrenmesi” denir. Yapay sinir ağının öğrenme sürecinde temel olarak üç adım bulunmaktadır. ° Çıktıları hesaplamak, ° Çıktıları hedef çıktılarla karşılaştırmak ve hatayı hesaplanmak, ° Ağırlıkları değiştirerek süreci tekrarlamak. Eğitim süreci sonucunda yapay sinir ağında hesaplanan hatanın kabul edilebilir bir hata oranına inmesi beklenir. Ancak hata kareleri ortalamasının düşmesi her zaman için yapay sinir ağının genellemeye (generalization) ulaştığını göstermez. Yapay sinir ağının gerçek amacı girdi-çıktı örnekleri için genellemeye ulaşmaktadır. Genelleme, yapay sinir ağının eğitimde kullanılmamış ancak aynı evrenden gelen girdi-çıktı örneklerini ağın doğru bir şekilde sınıflandırabilme yeteneğidir. İstatistiksel açıdan genelleme bir uygun eğrinin bulunması (curve-fitting) veya doğrusal olmayan ara değer atama işi (interpolation) olarak görülebilir. ğekil 1-a 'da genellemenin nasıl gerçekleştiği görülmektedir. ğekilde (x) ile görülen noktalar eğitim verileridir. Bunların arasında kalan eğri ise ağ tarafından oluşturulmaktadır. Bu eğri üzerindeki farklı bir girdi değeri için üretilen doğru çıktı değeri, ağın iyi bir genelleme yaptığını gösterir. Ancak ağ gereğinden fazla girdi-çıktı ilişkisini öğrendiğinde, (memorization). Bu durum genellikle gereğinden verilerin synaptic kullanılarak bağlantılar eğitilmesinden ağ verileri "ezberlemektedir" fazla gizli katman kullanıldığında üzerinde saklanmasından veya gereğinden fazla veri (overtraining) kaynaklanmaktadır. Ezberleme, genellemenin iyi gerçekleşmediğini ve girdi-çıktı eğrisinin düzgün olmadığını gösterir (ğekil 1-b). Verilerin ezberlenmiş olması yapay sinir ağı için istenmeyen bir durum olup, verileri ezberleyen ağa ait eğitim hatası oldukça düşme, test verilerinde ise hata artma eğilimi gösterir. Bundan dolayı bir çok yapay sinir ağı yazılımı ağın eğitim ve test verilerine ait hataları grafik olarak göstermektedir. Verileri ezberleyen ağ gerçek hayattaki örüntüyü iyi temsil edemeyeceği için kullanılamaz. ğekil 2-a 'da ağ verileri ezberlediği için eğitim hatası azalma, test hatası ise artma eğilimi göstermektedir. ğekil 2-b 'de ise ağ kabul edilebilir bir genellemeye ulaşmıştır. 21 Çıktı Çıktı x x x x x • x x x • Girdi Girdi (a) (b) ğ şekil 1: Genelleme (a) ve Ezberleme (b) Eğitim Hatası Test Hatası (a) (b) Şekil 2 :Verileri Ezberleyen (a) ve İyi Genellemeye Ulaşan (b) Ağlardaki Hata Eğrileri En uygun öğrenme seviyesi, öğrenme fonksiyonunun önceden amaçlanan bir değere ulaşması ile sağlanamayabilir. Uygulamalarda eğitim süreci boyunca performans fonksiyonunun izlenmesi ile birlikte sık sık genelleme testlerinin gerçekleştirilmesi yolu ile en uygun öğrenme seviyesi elde edilebilir. Eğer en uygun öğrenme seviyesine, performans fonksiyonunun öngörülerinden önce ulaşılmış ise eğitim süresi daha erken dönemlerde de sona erdirilebilir. YSA sistemlerinin problemi öğrenme başarısı, gerçekleştirilen testlerle sınanmalıdır. Yapay sinir ağı geliştirme sürecinde veriler ikiye ayrılır; bir bölümü ağın eğitilmesi için kullanılır ve 22 eğitim seti adını alır, diğer bölümü ise ağın eğitim verileri dışındaki performansını ölçmede kullanılır ve “test seti” olarak adlandırılır. Eğitim ve test setleriyle ilgili temel sorun, yeterli eğitim ve test verisinin miktarının ne olduğudur. Sınırsız sayıda verinin bulunabildiği durumlarda, yapay sinir ağı mümkün olan en çok veriyle eğitilmelidir. Eğitim verisinin yeterli olup olmadığı konusunda emin olmanın yolu; eğitim verisinin miktarının arttırılmasının, ağın performansında bir değişiklik yaratmadığını takip etmektir. Ancak bunun mümkün olmadığı durumlarda yapay sinir ağının eğitim ve test verileri üzerindeki performansının yakın olması da verilerin sayıca yeterli olduğuna ilişkin bir gösterge olarak kabul edilebilir. Bununla birlikte eğitim setinin içermesi gereken veri miktarı değişik yapay sinir ağı modellerine göre ve özellikle problemin gösterdiği karmaşıklığa göre farklılık gösterebilmektedir. Test işlemi için, eğitim setinde kullanılmayan verilerden oluşan test seti kullanılır. Test setindeki girdiler YSA modeline verilir ve YSA’nın çıktı değeri ile istenilen çıktı değeri karşılaştırılır. Amaç, YSA modelinin yeterli bir genelleme yapıp yapamadığını görmektir. Eğitim ve test aşamalarında istenilen başarı elde edilirse YSA modeli kullanılabilir. (train and test ) ile çapraz geçerlilik (cross validation) setinin %25 ile %90 arasında değişen miktarı eğitim seti olarak seçilir. Geri kalan kısım ise test seti olarak ayrılır. Çapraz geçerlilik tekniğinde ise, YSA’nın eğitilmesinde ve test edilmesinde tüm veri seti kullanılır. Bu yaklaşımda, tüm veri seti k adet örtüşmeyen kümeye ayrılır ve k farklı YSA elde edilir. Her YSA’nın testinde farklı bir küme kullanılmak üzere, eğitim işlemi geri kalan k-1 adet küme ile gerçekleştirilir. Uygulama kullanılacak YSA ise, tüm veri seti kullanılarak eğitilir. Bu YSA’nın performansı, k farklı YSA’nın test sonuçlarının ortalaması ile ölçülür.5 8.7 Biyolojik Sinir Sistemi Biyolojik sinir sistemi, merkezde sürekli olarak bilgiyi alan, yorumlayan ve uygun bir karar üreten beynin bulunduğu üç katmanlı bir sistem olarak açıklanır. Bunlar; çevreden gelen girdileri elektriksel sinyallere dönüştürerek beyine ileten Alıcı Sinirler (Receptor), beynin ürettiği elektriksel sinyalleri çıktı olarak uygun tepkilere dönüştüren Tepki Sinirleri ile alıcı ve tepki sinirleri arasında ileri ve geri besleme yaparak uygun tepkiler üreten Merkezi Sinir Ağı. 23 5 Dengiz, Sağlık Bilimlerinde Yapay Sinir Ağları 24 şekil 3 8.8 Sinir Hücresi (Nöron) Sinir Hücreleri, sinir sisteminin temel işlem elemanıdır. Birbiriyle bağlantılı iki nöronun axon, dentrite, synapse ve soma olma üzere dört önemli bölümü bulunmaktadır. ° Dendritler ° Hücre Gövdesi (Soma) ° Axonlar ° Synapse Dentrites : Nöronun ağaç köküne benzeyen, görevi hücreye girdilerin sağlanması olan uzantılardır. Hücre Gövdesi (Soma) : Bir nöronun gövdesine soma adı verilir. Soma nucleus adı verilen hücre çekirdeğini içermektedir. Hücrenin yaşamasını sağlayan işlevleri görür. Synapslar aracılığıyla dentriteslere geçirilen iletiler birleşerek axon üzerinde elektriksel bir çıktı oluştururlar. Bu çıktının olup olmayacağı veya çıktının elektriksel olarak yoğunluğu, synapsların etkileri sonucu hücreye gelen tüm girdilerin, toplam değeri tarafından belirlenmektedir. Somaya gelen girdilerin ağırlıklı toplamı axon üzerinde çıktı oluşturacak değere ulaştığında, bu değere "eşik değer" adı verilmektedir ve nöron ateşlendi (fired) olarak ifade edilmektedir. Bu şekilde girdiler nöron tarafından değerlendirilerek çıktıya dönüştürülmüş olur. Axon: Hücre çıktısını göndermeye yarayan uzantısıdır. Bir hücrenin tek bir axon uzantısı bulunur. Ancak bu axon uzantıdan çıkan çok sayıda uzantı ve bunların ucunda synapstik bağlantılar bulunur. Synapse: synapslar, sinir hücrelerindeki axonlarının, diğer sinir hücreleri ve/veya onların dentriteleri üzerinde sonlanan özelleşmiş bağlantı noktalarıdır. Bu bağlantı noktalarının görevi axondaki elektriksel iletinin diğer hücrelere aktarılmasıdır. Bu bağlantı noktalarında iletiler elektro-kimyasal süreçlerle diğer hücrelere geçirilir. Synapslar bağlandıkları dentrite 25 veya nöronda bölgesel olarak elektrik kuvvetini pozitif veya negatif yönde etkileyebilme yeteneğine sahiptirler. Böylelikle bir nöronun diğerini etkileyebilmesi söz konusu olmaktadır Synaps Dendrite Axon Soma şekil 4 Biyolojik Sinir Hücresi İnsan beyninde yaklaşık 10 milyar sinir hücresi ve 60 trilyon synapse bulunmaktadır. Bir sinir hücresinin çalışma şekli şöyledir; Sinir hücresi, diğer sinir hücrelerinden gelen uyarıları (elektriksel sinyaller) snapsları üzerinden dentritlerine alır. Bu sırada gelen sinyaller snapslar tarafından güçlendirilir ya da zayıflatılır. Dentritler sinyalleri hücre gövdesine iletirler. Hücre gövdesi gelen sinyalleri birbirlerini kuvvetlendirme sinyaller birbirlerini yeteri ve kadar zayıflatma etkilerine kuvvetlendirerek bir göre işler. eşik değerini Eğer sonuçta aşabilirlerse, aksona sinyal gönderilir ve sinir aktif hale getirilir. Aksi halde, aksona sinyal gönderilmez ve sinir pasif durumda kalır. 8.9 YSA’nın Yapısı Sinir hücreleri bir grup halinde işlev gördüklerinde ağ (network) olarak adlandırılırlar ve böyle bir grupta binlerce nöron bulunur. Yapay nöronların birbirleriyle bağlantılar aracılığıyla bir araya gelmeleri yapay sinir ağını oluşturmaktadır. Yapay sinir ağıyla aslında biyolojik sinir ağının bir modeli oluşturulmak istenmektedir. Nöronların aynı doğrultu üzerinde bir araya gelmeleriyle katmanlar oluşmaktadır. 26 Katmanların değişik şekilde bir birleriyle bağlanmaları değişik ağ mimarilerini doğurur. YSA lar üç katmadan oluşur. Bu katmanlar sırasıyla; ° Girdi katmanı ° Ara Katman ° Çıktı Katmanıdır. 8.9.1 Girdi Katmanı Bu katmandaki proses elemanları dış dünyadan bilgileri alarak ara katmanlara transfer ederler. Bazı ağlarda girdi katmanında herhangi bir bilgi işleme olmaz. 8.9.2 Ara Katman (Gizli Katman) Girdi katmanından gelen bilgiler işlenerek çıktı katmanına gönderilirler. Bu bilgilerin işlenmesi ara katmanlarda gerçekleştirilir. Bir ağ içinde birden fazla ara katman olabilir. 8.9.3 Çıktı Katmanı Bu katmandaki proses elemanları ara katmandan gelen bilgileri işleyerek ağın girdi katmanından sunulan girdi seti için üretmesi gereken çıktıyı üretirler. Üretilen çıktı dış dünyaya gönderilir. Bağlantı Neuron Giriş Katmanı Gizli Katman Çıkış Katmanı şekil 5: Yapay Sinir Ağı Modeli 27 8.10 Yapay Sinir Hücresi Biyolojik sinir ağlarında olduğu gibi yapay sinir ağlarında da temel unsur, yapay sinir hücresidir. Yapay sinir hücresi, YSA’ nın çalışmasına esas teşkil eden en küçük ve temel bilgi işleme birimidir Ağ içinde yer alan tüm nöronlar bir veya birden fazla girdi alırlar ve tek bir çıktı verirler. Bu çıktı yapay sinir ağının dışına verilen çıktılar olabileceği gibi başka nöronlara girdi olarak da kullanılabilirler. Geliştirilen hücre modellerinde bazı farklılıklar olmakla birlikte genel özellikleri ile bir yapay hücre modeli 5 bileşenden oluşmaktadır. Bunlar; ° Girdiler ° Ağırlıklar ° Birleştirme Fonksiyonu ° Aktivasyon Fonksiyonu ° Çıktı 8.10.1 Girdiler Girdiler, diğer hücrelerden ya da dış ortamlardan hücreye giren bilgilerdir. 8.10.2 Ağırlıklar Bilgiler, bağlantılar üzerindeki ağırlıklar üzerinden hücreye girer ve ağırlıklar, ilgili girişin hücre üzerindeki etkisini belirler. Ağırlıklar bir nöronda girdi olarak kullanılacak değerlerin göreceli kuvvetini (matematiksel katsayısını) gösterir. Yapay sinir ağı içinde girdilerin nöronlar arasında iletimini sağlayan tüm bağlantıların farklı ağırlık değerleri bulunmaktadır. Böylelikle ağırlıklar her işlem elemanının her girdisi üzerinde etki yapmaktadır. 8.10.3 Birleştirme Fonksiyonu Birleştirme fonksiyonu, bir hücreye gelen net girdiyi hesaplayan bir fonksiyondur ve genellikle net girdi, girişlerin ilgili ağırlıkla çarpımlarının toplamıdır. Birleştirme fonksiyonu, ağ yapısına göre maksimum alan, minimum alan ya da çarpım fonksiyonu olabilir. v = ƒ xi wi + θ , y=F(v) 28 w: Hücrenin ağırlıklar matrisini x: Hücrenin giriş vektörünü v: Hücrenin net girişini y: Hücre çıkışını s 8.10.4 Aktivasyon Fonksiyonu Transfer fonksiyonu olarak da geçen aktivasyon fonksiyonu, birleştirme fonksiyonundan elde edilen net girdiyi bir işlemden geçirerek hücre çıktısını belirleyen ve genellikle doğrusal olmayan bir fonksiyondur. Hücre modellerinde, hücrenin gerçekleştireceği işleve göre çeşitli tipte aktivasyon fonksiyonları kullanılabilir. Aktivasyon fonksiyonları sabit parametreli yada uyarlanabilir parametreli seçilebilir. En uygun aktivasyon fonksiyonu tasarımcının denemeleri sonucunda belli olur. Aktivasyon fonksiyonunun seçimi büyük ölçüde yapay sinir ağının verilerine ve ağın neyi öğrenmesinin istendiğine bağlıdır. Geçiş fonksiyonları içinde en çok kullanılanı simoid ve hiperbolik tanjant fonksiyonlarıdır. Örneğin eğer ağın bir modelin ortalama davranışını öğrenmesi isteniyorsa sigmoid fonksiyon, ortalamadan sapmanın öğrenilmesi isteniyorsa hiperbolik tanjant fonksiyon kullanılması önerilmektedir. 29 Aktivasyon fonksiyonları bir YSA’da nöronun çıkış genliğini, istenilen değerler arasında sınırlar. Bu değerler genellikle [0,1] veya [-1,1] arasındadır. YSA’da kullanılacak aktivasyon fonksiyonlarının türevi alınabilir olması ve süreklilik arz etmesi gereklidir. Lineer veya doğrusal olmayan transfer fonksiyonlarının kullanılması YSA’ların karmaşık ve çok farklı problemlere uygulanmasını sağlamıştır. Aşağıda, hücre modellerinde yaygın olarak kullanılan çeşitli aktivasyon fonksiyonları tanıtılmıştır. 8.10.4.1 Doğrusal Aktivasyon Fonksiyon Doğrusal bir problemi çözmek amacıyla kullanılan doğrusal hücre ve YSA’ da yada genellikle katmanlı YSA’ nın çıkış katmanında kullanılan doğrusal fonksiyon, hücrenin net girdisini doğrudan hücre çıkışı olarak verir. Doğrusal aktivasyon fonksiyonu matematiksel olarak y=Av şeklinde tanımlanabilir. “A” sabit bir katsayıdır. YSA ların çıkış katmanında kullanılan doğrusal fonksiyon şekilde verilmiştir. 30 8.10.4.2 Sigmoid Aktivasyon Fonksiyonu Sigmoid Aktivasyon Fonksiyonu, türevi alınabilir, sürekli ve doğrusal olmayan bir fonksiyon olması nedeniyle uygulamada en çok kullanılan aktivasyon fonksiyonudur. Bu fonksiyon, girdinin her değeri için sıfır ile bir arasında bir değer üretir. Sigmoid Fonksiyon Sigmoid fonksiyonunu denklemi; y= 1 1 + e −v 8.10.4.3 Tanjant Hiperbolik Tanjant hiperbolik fonksiyonu, sigmoid fonksiyonunun biraz farklı şeklidir. Giriş uzayının genişletilmesinde etkili bir aktivasyon fonksiyonudur. Sigmoid fonksiyonun çıktı aralığı 0 ve 1 olurken, hiperbolik tanjant fonksiyonunun çıktısı -1 ve 1 aralığında oluşmaktadır. 31 Tanjant fonksiyonunun formülü; y= 1 − e −2v 1 + e 2v Yukarıda anlatılan aktivasyon fonksiyonlarından başka, literatürde geçen diğer aktivasyon fonksiyonları; ° Basamak Fonksiyonu ° Kutuplamalı Basamak Fonksiyonu ° Parçalı Doğrusal Fonksiyon 8.10.5 Çıktı Aktivasyon fonksiyonundan geçirildikten sonra elde edilen değer, çıktı değeridir. Örnek Bir yapay sinir hücresinin çalışma örneği 0.5 0.1 0.6 -0.2 0.9 NET:1.225 F(NET) 1/1+e-1.225 Çıktı: 0.77 -0.1 0.7 0.5 32 Ağırlıklı toplam alınarak hücreye gelen net bilgi, şu şekilde hesaplanır; NET: 0.5 * (0.1) + 0.6 * (-0.2) + 0.9 (-0.1) + 0.5 (0.7) = 1.225 Hücrenin sigmoid fonksiyonuna göre çıktısı; Çıktı = 1/(1+e-1.225) = 0.77 8.11 Yapay Sinir Ağlarının Sınıflandırılması YSA’lar, genel olarak birbirleri ile bağlantılı işlemci birimlerden (sinir hücresi) oluşurlar. Her bir sinir hücresi arasındaki bağlantıların yapısı ağın yapısını belirler. İstenilen hedefe ulaşmak için bağlantıların nasıl değiştirileceği öğrenme algoritması tarafından belirlenir. Kullanılan öğrenme algoritmasına göre, hatayı sıfıra indirecek şekilde, ağın ağırlıkları değiştirilir. YSA’lar yapılarına ve öğreneme algoritmalarına göre sınıflandırılırlar. 8.11.1 YSA’ların Yapılarına Göre Sınıflandırılması Yapay sinir ağları, yapılarına göre, ileri beslemeli (feedforward) ve geri beslemeli (feedback) ağlar olmak üzere iki şekilde sınıflandırılırlar. 8.11.1.1 İleri Beslemeli Ağlar İleri beslemeli bir ağda işlemci elemanlar (İE) genellikle katmanlara ayrılmışlardır. İşaretler, giriş katmanından çıkış katmanına doğru tek yönlü bağlantılarla iletilir. İE’ler bir katmandan diğer bir katmana bağlantı kurarlarken, aynı katman içerisinde bağlantıları bulunmaz. ğekil ’de ileri beslemeli ağ için blok diyagram gösterilmiştir. İleri beslemeli ağlara örnek olarak çok katmanlı perseptron (Multi Layer Perseptron-MLP) ve LVQ (Learning Vector Quantization) ağları verilebilir. şekil 6: İleri Beslemeli Ağ İçin Blok Diyagram 33 İleri beslemeli YSA’ da, hücreler katmanlar şeklinde düzenlenir ve bir katmandaki hücrelerin çıkışları bir sonraki katmana ağırlıklar üzerinden giriş olarak verilir. Giriş katmanı, dış ortamlardan aldığı bilgileri hiçbir değişikliğe uğratmadan orta (gizli) katmandaki hücrelere iletir. Bilgi, orta ve çıkış katmanında işlenerek ağ çıkışı belirlenir. Bu yapısı ile ileri beslemeli ağlar, doğrusal olmayan statik bir işlevi gerçekleştirir. İleri beslemeli 3 katmanlı YSA’ nın, orta katmanında yeterli sayıda hücre olmak kaydıyla, herhangi bir sürekli fonksiyonu istenilen doğrulukta geriye yayılım yaklaştırabileceği gösterilmiştir. En çok bilinen öğrenme algoritması, bu tip YSA ların eğitiminde etkin olarak kullanılmakta ve bazen bu ağlara geriye yayılım ağları da denmektedir. ğekil 7’de giriş, orta ve çıkış katmanı olmak üzere 3 katmanlı ileri beslemeli YSA yapısı verilmiştir. şekil 7 İleri beslemeli 3 katmanlı YSA. NET :aj = ƒA kj Ç ik Akj= k. girdi katmanı elemanını j.ara katman elemanına bağlayan bağlantının ağırlık değeri. J.ara katman elemanının çıktı değeri ise, bu net girdinin aktivasyon fonksiyonundan geçirilmesi ile elde edilir. Herhangi bir problemi çözmek amacıyla kullanılan YSA da, katman sayısı ve orta katmandaki hücre sayısı gibi kesin belirlenememiş bilgilere rağmen nesne tanıma ve sinyal işleme gibi alanların yanı sıra, ileri beslemeli YSA, sistemlerin tanılanması ve denetiminde de yaygın 34 olarak kullanılmaktadır. 35 8.11.1.2 Geri Beslemeli Ağlar Bir geri beslemeli sinir ağı, çıkış ve ara katlardaki çıkışların, giriş birimlerine veya önceki ara katmanlara geri beslendiği bir ağ yapısıdır. Böylece, girişler hem ileri yönde hem de geri yönde aktarılmış olur. ğekil 8’de bir geri beslemeli ağ görülmektedir. Bu çeşit sinir ağlarının dinamik hafızaları vardır ve bir andaki çıkış hem o andaki hem de önceki girişleri yansıtır. Bundan dolayı, özellikle önceden tahmin uygulamaları için uygundurlar. Geri beslemeli ağlar çeşitli tipteki zaman-serilerinin tahmininde oldukça başarı sağlamışlardır. Bu ağlara örnek olarak Hopfield, SOM (Self Organizing Map), Elman ve Jordan ağları verilebilir. şekil 8: Geri Beslemeli Ağ İçin Blok Diyagram Geri beslemeli YSA’ da, en az bir hücrenin çıkışı kendisine ya da diğer hücrelere giriş olarak verilir ve genellikle geri besleme bir geciktirme elemanı üzerinden yapılır. Geri besleme, bir katmandaki hücreler arasında olduğu gibi katmanlar arasındaki hücreler arasında da olabilir. Bu yapısı ile geri beslemeli YSA, doğrusal olmayan dinamik bir davranış gösterir. Dolayısıyla, geri beslemenin yapılış şekline göre farklı yapıda ve davranışta geri beslemeli YSA yapıları elde edilebilir. Geriye doğru hesaplamada, ağın ürettiği çıktı değeri, ağın beklenen çıktıları ile kıyaslanır. Bunların arasındaki fark, hata olarak kabul edilir. Amaç bu hatanın düşürülmesidir. Çıktı katmanında m. proses için oluşan hata, Em= Bm- Çm olacaktır. Çıktı katmanında oluşan toplam hatayı bulmak için, bütün hataların toplanması gereklidir. Bazı hata değerledi negatif olacağından, toplamın sıfır olmasını önlemek amacıyla ağırlıkların kareleri hesaplanarak sonucun karekökü alınır. Toplam hata aşağıdaki formül ile bulunur. 36 Toplam Hata= 1 ƒ E m2 2 m Toplam hatayı en azlamak için, bu hatanın kendisine neden olan proses elemanlarına dağıtılması gerekmektedir. Bu da, proses elemanlarının ağırlıklarını değiştirmek demektir. 8.11.2 YSA’ların Öğrenme Algoritmalarına Göre Sınıflandırılması Öğrenme; gözlem, eğitim ve hareketin doğal yapıda meydana getirdiği davranış değişikliği olarak tanımlanmaktadır. Birtakım metot ve kurallar, gözlem ve eğitime ile ağdaki ağırlıkların değiştirilmesi sağlanmalıdır. Bunun için genel olarak üç öğrenme metodundan ve bunların uygulandığı değişik öğrenme kurallarından söz edilebilir. Bu öğrenme kuralları aşağıda açıklanmaktadır. 8.11.2.1 Danışmanlı Öğrenme Bu tip öğrenmede, YSA’ya örnek olarak bir doğru çıkış verilir. Bu öğrenmede ağın ürettiği çıktılar ile hedef çıktılar arasındaki fark hata olarak ele alınır ve bu hata minimize edilmeye çalışılır. Bunun için de bağlantıların ağırlıkları en uygun çıkışı verecek şekilde değiştirilir. Bu sebeple danışmanlı öğrenme algoritmasının bir “öğretmene” veya “danışmana” ihtiyacı vardır. ğekil 9’da danışmanlı öğrenme yapısı gösterilmiştir. Widrow-Hoff tarafından geliştirilen delta kuralı ve Rumelhart ve McClelland tarafından geliştirilen genelleştirilmiş delta kuralı veya geri besleme (back propagation) algoritması danışmanlı öğrenme algoritmalarına örnek olarak verilebilir. şekil 9: Danışmanlı Öğrenme Yapısı 37 8.11.2.2 Danışmansız Öğrenme Bu tür öğrenmede ağa sadece girdiler verilir. Ağın ulaşması gereken hedef çıktılar verilmez. Girişe verilen örnekten elde edilen çıkış bilgisine göre ağ sınıflandırma kurallarını kendi kendine geliştirir. Ağ daha sonra bağlantı ağırlıklarını aynı özellikleri gösteren desenler (patterns) oluşturmak üzere ayarlar. ğekil 10’da danışmansız öğrenme yapısı gösterilmiştir. Grossberg tarafından geliştirilen ART (Adaptive Theory) veya Resonance Kohonen tarafından geliştirilen SOM (Self Organizing Map) öğrenme kuralı danışmansız öğrenmeye örnek olarak verilebilir. şekil 10: Danışmansız öğrenme yapısı 8.11.2.3 Takviyeli Öğrenme Takviyeli öğrenme algoritması, Takviyeli öğrenme (reinforcement istenilen çıkışın training) yöntemi bilinmesine gerek duymaz. öğreticili öğrenme yöntemine benzemekle birlikte, ağa hedef çıktılar yerine, ağın çıktılarının ne ölçüde doğru olduğunu belirten bir skor veya derece gösterilmiştir. bildirilir. ğekil 11’de takviyeli öğrenme yapısı Optimizasyon problemlerini çözmek için Hinton ve Sejnowski’nin geliştirdiği Boltzmann kuralı veya GA takviyeli öğrenmeye örnek olarak verilebilirler. 38 şekil 11: Takviyeli öğrenme yapısı. 8.11.3 Uygulamaya Göre Öğrenme Algoritmaları 8.11.3.1 Çevrim İçi (On-line) Öğrenme Bu kurala göre öğrenen sistemler, gerçek zamanda çalışırken bir taraftan fonksiyonlarını yerine getirmekte, bir taraftan da öğrenmeye devam etmektedirler. ART ve Kohonen öğrenme kuralı bu sınıfta bulunan öğrenme bu öğrenme kuralına örnek olarak verilebilir. 8.11.3.2 Çevrim Dışı (Offline) Öğrenme Bu kurala dayalı sistemler, kullanıma alınmadan önce örnekler üzerinde eğitilirler. Bu kuralı kullanan sistemler eğitildikten sonra gerçek hayatta kullanıma alındığında artık öğrenme olmamaktadır. Delta öğrenme kuralı bu tür öğrenmeye örnek olarak verilebilir. 8.12 Yapay Sinir Ağ Yapıları YSA’daki sinir sayısı, sinirlerin birbirine göre konumu ve sinirler arası sinyallerin akış yönleri YSA yapısını belirlemektedir. Yapısı belirlenmiş bir YSA eğitilerek YSA ile ilgili uygulamalarda kullanılır. YSA yapıları arasında performans ve karakteristik özellikleri bakımın farklar vardır. YSA yapıları, özellikle ağın modelleme yeteneğini belirledikleri için oldukça önemlidirler. Yapay sinir ağının tasarımı aşamasında bu ağ yapıları arasından uygulamaya en elverişli olanı seçilir. 39 8.12.1 Bir YSA’nın Tasarımı YSA uygulamasının başarısı, uygulanacak olan yaklaşımlar ve deneyimlerle yakından ilgilidir. Uygulamanın başarısında uygun metodolojiyi belirlemek büyük önem taşır. Yapay sinir ağının geliştirilmesi sürecinde ağın yapısına ve işleyişine ilişkin şu kararların verilmesi gerekir. ° Ağ mimarisinin seçilmesi ve yapı özelliklerinin belirlenmesi (katman sayısı, katmandaki nöron sayısı gibi) ° Nörondaki fonksiyonların karakteristik özelliklerinin belirlenmesi, ° Öğrenme algoritmasının seçilmesi ve parametrelerinin belirlenmesi, ° Eğitim ve test verisinin oluşturulması Bu kararların doğru verilememesi durumunda, YSA’ları sistem karmaşıklığı artacaktır. Sitem karmaşıklığı yapısal ve toplam hesaplama karmaşıklığının bir fonksiyonudur. Toplam hesaplama karmaşıklığı ise, genellikle yapısal karmaşıklığın bir fonksiyonu olarak ortaya çıkar ve bu hesaplamanın en aza indirilmesi amaçlanır. Bu hesaplama karmaşıklığının ölçülmesinde de genellikle YSA sisteminin toplam tepki süresi veya sisteme ait bir işlemci elemanın tepki süresi değeri temel alınır. Bunun yanında kapladığı hafıza ve zaman karmaşıklığı bazı uygulamalarda hesaplanmaktadır. Bir YSA’nın uygun parametrelerle tasarlanması durumunda YSA sürekli olarak kararlı ve istikrarlı sonuçlar üretecektir. Ayrıca sistemin tepki süresinin yeterince kısa olabilmesi için de ağ büyüklüğünün yeterince küçük olması gerekir. İhtiyaç duyulan toplam hesaplama da bu sayede sağlanmış olacaktır. 8.12.1.1 YSA Ağ Yapısının Seçimi YSA’nın tasarımı sürecinde ağ yapısının seçilmesi, uygulama problemine bağlı olarak seçilmelidir. Hangi problem için hangi ağın daha uygun olduğunun bilinmesi önemlidir. Kullanım amacı ve o alanda başarılı olan ağ türleri Tablo 2’de verilmiştir. Kullanım Amacı Tahmin Ağ Türü ° ÇKA Ağın Kullanımı Ağın girdilerinden bir çıktı değerinin tahmin edilmesi 40 ° LVQ ° ART Sınıflandırma Girdilerin hangi sınıfa ait ° Counterpropagation olduklarının belirlenmesi ° Olasılıklı Sinir Ağları Veri İlişkilendirme ° Hopfield Girdilerin içindeki hatalı ° Boltzman Machine bilgilerin bulunması ve eksik ° Bidirectional Associative Memory bilgilerin tamamlanması Tablo 1 - Ağ Türleri ve Başarılı Oldukları Alanlar Uygun YSA yapısının öğrenme algoritmasına seçildiğinde, seçimi, da büyük bağlıdır. ölçüde Ağda ağda kullanılması kullanılacak düşünülen öğrenme algoritması bu algoritmanın gerektirdiği mimaride zorunlu olarak seçilmiş olacaktır. Örneğin geriyayılım algoritması ileri beslemeli ağ mimarisi gerektirir. Bir YSA’nın karmaşıklığının azaltılmasında en etkin araç, YSA ağ yapısını değiştirmektir. Gereğinden fazla sayıda işlemci eleman içeren ağ yapılarında, daha düşük genelleme kabiliyeti ile karşılaşılır. 8.12.1.2 Öğrenme Algoritmasının Seçimi YSA yapısının seçiminden sonra uygulama başarısını belirleyen en önemli faktör öğrenme algoritmasıdır. Genellikle ağ yapısı öğrenme algoritmasının seçiminde belirleyicidir. Bu nedenle seçilen ağ yapısı üzerinde kullanılabilecek öğrenme algoritmasının seçimi ağ yapısına bağlıdır. Yapay sinir ağının geliştirilmesinde kullanılacak çok sayıda öğrenme algoritması bulunmaktadır. Bunlar içinde bazı algoritmaların bazı tip uygulamalar için daha uygun olduğu bilinmektedir. uygun Bu oldukları algoritmalar eğer uygulama alanlarına göre sınıflandırılacak olursa, gruplar ve içinde yer alacak öğrenme algoritmaları aşağıdaki gibi özetlenebilir. Uygulama Tipi Öngörü Tanıma Yapay Sinir Ağı ° Geriyayılım ° Delta Bar Delta ° Geliştirilmiş Delta Bar Delta ° Yönlendirilmiş Rastsal Tarama ° Geriyayılım içinde Self Organizing Map ° Higher Order Neural Networks 41 Sınıflandırma ° Learning Vektor Quantization 42 Veri İlişkilendirme (Data Association) Veri Kavramlaştırma (Data Conceptualization) ° ° ° ° ° ° ° ° Counter-Propagation Olasılıklı Yapay Sinir Ağları Hopfield Boltmann Makinesi Bidirectional Associative Memory Spantion -temproal Pattern Recogniation Adaptive Resonance Network Self Organizing Tablo2 - Öğrenme Algoritmaları ve Uygulandıkları Alanlar 8.12.1.3 Ara Katman Sayısını Belirleme YSA’nın tasarımı sürecinde tasarımcının yapması gereken diğer işlemde, ağdaki katman sayısına karar vermektir. Çoğu problem için 2 veya 3 katmanlı bir ağ tatmin edici sonuçlar üretebilmektedir. Nöronların aynı doğrultu üzerinde bir araya gelmeleriyle katmanlar oluşmaktadır. Katmanların değişik şekilde bir birleriyle bağlanmaları değişik ağ yapılarını oluşturur. Girdi ve çıktı katmanlarının sayısı, problemin yapısına göre değişir. 6 Katman sayısını belirlemenin en iyi yolu, birkaç deneme yaparak en uygun yapının ve yapının ne olduğuna karar vermektir. 8.12.1.4 Nöron Sayısının Belirlenmesi Ağın yapısal özelliklerinden birisi her bir katmandaki nöron sayısıdır. Katmandaki nöron sayısının tespitinde de genellikle deneme-yanılma yöntemi kullanılır. Bunun için izlenecek yol, başlangıçtaki nöron sayısını istenilen performansa ulaşıncaya kadar arttırmak veya tersi şekilde istenen performansın altına inmeden azaltmaktır. Bir katmanda kullanılacak nöron sayısı olabildiğince az olmalıdır. Nöron sayısının az olması yapay sinir ağının "genelleme" yeteneğini arttırırken, gereğinden fazla olması ağın verileri ezberlemesine neden olur. Ancak gereğinden az nöron kullanılmasının verilerdeki örüntünün ağ tarafından öğrenilememesi gibi bir sorun yaratabilir. Nörondaki fonksiyonların da karakteristik özellikleri de YSA nun tasarımında önemli kararlardan biridir. Nöronun geçiş fonksiyonunun seçimi büyük ölçüde yapay sinir ağının verilerine ve ağın neyi öğrenmesinin istendiğine bağlıdır. Geçiş fonksiyonları içinde en çok kullanılanı sigmoid ve hiperbolik tanjant fonksiyonlarıdır. Daha önce belirtildiği gibi sigmoid fonksiyonun çıktı aralığı 0 ve 1 arasında olurken, hiperbolik tanjant fonksiyonunun çıktısı -1 43 6 H.Stern, 1996, Neural Networks in Applied Statistics 44 ve 1 aralığında oluşmaktadır. Eğer ağın bir modelin ortalama davranışını öğrenmesi isteniyorsa sigmoid fonksiyon, eğer ortalamadan sapmanın öğrenilmesi isteniyorsa hiperbolik tanjant fonksiyon kullanılması önerilmektedir. 8.12.1.5 Normalizasyon YSA’ların en belirgin özelliklerinden olan doğrusal olmama özelliğini anlamlı kılan yaklaşım, verilerin bir normalizasyona tabii tutulmasıdır. Verilen normalizasyonu için seçilen yöntem YSA performansını doğrudan etkileyecektir. Çünkü normalizasyon, giriş verilerinin transfer edilirken fonksiyonun aktif olan bölgesinden aktarılmasını sağlar. Veri normalizasyonu, işlemci oluşturacağı işlemci elemanlarını elemanlarını verileri kümülatif olumsuzlukların engellenmesini verileri sağlar. kümülatif toplamlarla koruma Veri toplamların normalizasyonu, eğilimleri nedeniyle zorunludur ve aşırı değerlenmiş kümülatif toplamların oluşturacağı olumsuzlukların engellenmesini sağlar. Genellikle verilerin [0,1] veya ölçeklendirilmesi önerilmektedir. Ölçekleme [-1,+1] aralıklarından birine verilerin geçerli eksen sisteminde sıkıştırılması anlamı taşıdığından veri kalitesi aşırı salınımlar içeren problemlerin YSA modellerini olumsuz yönde etkileyebilir. Bu olumsuzluk, kullanılacak öğrenme fonksiyonunu da başarısız kılabilir. Örneğin, Bir transfer fonksiyonuna uygulanan girişler ile ağırlıkların çarpım toplamının 10 ve 100 olduğunu farz edelim. Bu toplamı bir tanjant hiperbolik fonksiyonundan geçirdiğimizde; y= tanh(10)=(e10-e-10) / (e10+e-10)=1.000000 ve y= tanh(100)=(e100-e-100) / (e10+e-10)=1.000000 sonuçları elde edilir. Görüldüğü gibi, 10 ve 100 skalar değerlerine karşılık gelen fonksiyon sonuçları arasında fark yoktur. Bu durumda da, birbirinden oldukça farklı skalar değerler sistemde sanki aynı değerlermiş gibi ele alınacak ve hem uygulama hem de öğrenme algoritması açısından olumsuz sonuçlar ortaya çıkacaktır. Bunun için, X veri kümesi [-1 +1] ya da [0 1] aralığına ölçeklendirilmelidir. Veri kümesinin [0 1] arasında bir ölçeklendirmeye tabi tutulabilmesi için o kümenin Xmin Xmax aralığı bulunur ve aşağıdaki formüle göre ölçeklendirme yapılabilir. 45 Xyeni = X − x min x max − x min 8.12.1.6 Performans Fonksiyonun Seçimi Öğrenme performansını etkileyen önemli hususlardan bir de performans fonksiyonudur. İleri beslemeli ağlarda kullanılan tipik performans fonksiyonu karesel ortalama hatadır (Mean Square Error) MSE= 1 N 2 N ƒ(t i =1 i − td i ) ile hesaplanır. İleri beslemeli ağlarda kullanılan tipik performans fonksiyonlarından bir diğeri de toplam karesel hatadır. (Sum Square Error) SSE= 1 N 2 N ƒ (t i − td i ) ile hesaplanır. i =1 Bu ağlarda kullanılan diğer bir performans fonksiyonu da karesel ortalama hata karekökü (Root Mean Square) fonksiyonudur. RMS= 1 N N ƒ (t i =1 i − td i ) 2 Literatürde en çok kullanılan YSA yapıları aşağıda açıklanmıştır. 8.12.2 Basit Algılayıcı Modeli (Perseptron) Tek katmanlı YSA’lar sadece girdi ve çıktı katmanından oluşurlar. Her ağın bir ya da daha fazla girdisi ve bir çıktısı vardır. En basit şekli ile tek katmanlı bir ağa örnek olarak aşağıdaki şekil verilir. X1 W1 Tek Katmanlı Algılayıcı 36 ÇIKTI X1 W2 Her bağlantının bir ağırılığı (W1) vardır. Yukarıdaki şekilde ağın iki girdisi ve bir çıktısı olduğu görülmektedir. Bu ağlarda, proses elemanlarının değerlerinin ve dolayısıyla ağın çıktısının sıfır olmasını önleyen bir de eşik değeri vardır ve bu değer 1’dir. Tek katmalı algılayıcılarda çıktı fonksiyonu doğrusal fonksiyondur. Ağa gösterilen örnekler iki sınıf arasında paylaştırılarak iki sınıfı birbirinden ayıran doğru bulunmaya çalışılır. Bunun için eşik değer fonksiyonu kullanılmaya çalışılır. Burada ağın çıktısı +1 veya -1 değerini almaktadır. +1 ve -1 sınıfları temsil etmektedir. Eğer ağın çıktısı +1 ise birinci sınıfta, -1 ise ikinci sınıfta kabul edilmektedir. 1, eğer Çıktı>0 ise -1, eğer Çıktı<0 ise Burada öğrenme ile kast edilen, bu iki sınıfı en iyi şekilde ayırabilmektir. Bunun için de ağırlık değerlerinin değiştirilmesi gerekir. t zaman biriminde ağırlık değeri ΔW kadar değiştirilir ise; Wi(t+1)= Wi(t) + ΔWi(t) olacaktır. Öğrenme sırasında bu değişim her iterasyonda gerçekleştirilerek iki sınıfı birbirinden ayıran sınıf ayıracının en doğru sonucu bulması amaçlanır. Aynı şekilde eşik değeri de her iterasyonda Δφ kadar değiştirilir ve yeni eşik değeri aşağıdaki formül ile hesaplanır. φi(t+1)= φi(t) + Δφi(t) Tek katmanlı algılayıcılarda önemli iki modelden bahsedilebilir. Bunlar ; ° Basit Algılayıcı (Perseptron) ° Adeline / Madalinedir. Basit Algılayıcı Öğrenme Kuralı 37 Dört adımdan oluşan basit algılayıcı öğrenme kuralı adımları, uygulamalı örnek üzerinde aşağıda anlatılmıştır. Örnek Bu örnekte, iki girdi ve bir çıktıdan oluşan bir basit algılayıcı kullanılmıştır. Ağın öğrenmesi gereken 2 tane örnek vardır. Belirlenen örneklerin girdileri (X), ağırlıkları (W), beklenen çıktı değeri (B) ve eşik ünitesinin ağırlık değeri φ aşağıda verilmiştir. 1. Örnek : X1=(x1, x2) = (1,0), B1 =1 2. Örnek : X2=(x1, x2) = (0,1), B1 =1 Ağırlıklar : W=( w1, w2) = (1,2) Eşik Değeri: φ = -1 Öğrenme Katsayısı: λ=0,5 Adım 1: Ağa girdi seti ve ona karşılık gelen çıktı seti gösterilir ve net girdi hesaplanır. NET: w1* x1 + w2* x2 = 1*1 + 2*0 =1 Adım 2: Net girdi, eşik değeri ile kıyaslanır. Net girdinin eşik değerinden büyük veya küçük olmasına göre çıktı değeri 0 ve 1 değerlerinden birisini alır. Ç= 1, Eğer NET>φ 0, Eğer NET<=φ NET=1>φ olduğundan Çıktı değeri Ç=1 olacaktır. Adım 3 Eğer beklenen çıktı ile gerçekleşen çıktı aynı ise, ağırlıklarda herhangi bir değişiklik olmaz. Ağ, beklenmeyen bir çıktı üretmiş ise iki durum söz konusudur. 1. Durum: Ağın beklenen çıktısı 0 iken, gerçekleşen çıktısı 1 ise, ağırlık değerleri azaltılır. Wn = W0 - λX 2. Durum: Ağın beklenen çıktısı 1 iken, gerçek çıktısı sıfır ise, Wn = W0 + λX İki farklı duruma göre ağırlıkların yeni değerleri bu formüllerle hesaplanır. 38 Örnekte çıktı değeri 1 olarak hesaplanmıştır. Ç=B1 olduğundan ağırlıklar değiştirilmez. Öğrenmenin birinci iterasyonu tamamlanmış olur. İkinci iterasyonda, ikinci örnek ağa tanıtılır. NET: w1* x1 + w2* x2 = 1*0 + 2*1 =2 NET>φ olduğundan gerçekleşen çıktı Ç=1 olacaktır. Ç≠B2 olduğundan ağırlıklar Wn = W0 - λX Formülüne göre yeniden hesaplanır. w1 = w1 - λ*x1 = 1-0,5*0=1 w2 = w2 - λ*x2 = 2-0,5*1=1,5 3. iterasyonda 1. örnek ağa tekrar gösterilir. NET: w1* x1 + w2* x2 = 1*1 + 1,5*0 = 1 NET>φ olduğundan gerçekleşen çıktı Ç=1 olacaktır. Ç=B2 olduğundan ağırlıklar değiştirilmez. 4. iterasyonda 2. örnek ağa tekrar gösterilir. NET: w1* x1 + w2* x2 = 1*0 + 1,5*1 = 1,5 NET>φ olduğundan gerçekleşen çıktı Ç=1 olacaktır. Ç≠B2 olduğundan ağırlıklar w1 = w1 - λ*x1 = 1-0,5*0=1 w2 = w2 - λ*x2 = 1,5-0,5*1=1 5. iterasyonda 1. örnek ağa tekrar gösterilir. NET: w1* x1 + w2* x2 = 1*1 + 1*0 = 1 NET>φ olduğundan gerçekleşen çıktı Ç=1 olacaktır. Ç=B1 olduğundan ağırlıklar değiştirilmez. 6. iterasyonda 2. örnek ağa tekrar gösterilir. NET: w1* x1 + w2* x2 = 1*0 + 1*1 = 1 NET>φ olduğundan gerçekleşen çıktı Ç=1 olacaktır. Ç≠B2 olduğundan ağırlıklar w1 = w1 - λ*x1 = 1-0,5*0=1 w2 = w2 - λ*x2 = 1-0,5*1= 0,5 39 7.iterasyonda 1. örnek ağa tekrar gösterilir. NET: w1* x1 + w2* x2 = 1*1 + 1*0 = 1 NET>φ olduğundan gerçekleşen çıktı Ç=1 olacaktır. Ç=B1 olduğundan ağırlıklar değiştirilmez. 8. iterasyonda 2. örnek ağa tekrar gösterilir. NET: w1* x1 + w2* x2 = 1*0 + 0,5*1 = 0,5 NET>φ olduğundan gerçekleşen çıktı Ç=1 olacaktır. Ç≠B2 olduğundan ağırlıklar w1 = w1 - λ*x1 = 1-0,5*0= 1 w2 = w2 - λ*x2 = 0,5-0,5*1= 0 9.iterasyonda 1. örnek ağa tekrar gösterilir. NET: w1* x1 + w2* x2 = 1*1 + 1*0 = 1 NET>φ olduğundan gerçekleşen çıktı Ç=1 olacaktır. Ç=B1 olduğundan ağırlıklar değiştirilmez. 10. iterasyonda 2. örnek ağa tekrar gösterilir. NET: w1* x1 + w2* x2 = 1*0 + 0*1 = 0 NET>φ olduğundan gerçekleşen çıktı Ç=1 olacaktır. Ç≠B2 olduğundan ağırlıklar w1 = w1 - λ*x1 = 1-0,5*0= 1 w2 = w2 - λ*x2 = 0-0,5*1= -0,5 11.iterasyonda 1. örnek ağa tekrar gösterilir. NET: w1* x1 + w2* x2 = 1*1 + (-0,5)*0 = 1 NET>φ olduğundan gerçekleşen çıktı Ç=1 olacaktır. Ç=B1 olduğundan ağırlıklar değiştirilmez. 12. iterasyonda 2. örnek ağa tekrar gösterilir. NET: w1* x1 + w2* x2 = 1*0 + (-0,5)*1 = -0,5 NET>φ olduğundan gerçekleşen çıktı Ç=1 olacaktır. Ç≠B2 olduğundan ağırlıklar w1 = w1 - λ*x1 = 1-0,5*0= 1 w2 = w2 - λ*x2 = -0,5 - 0,5*1= -1 40 13.iterasyonda 1. örnek ağa tekrar gösterilir. NET: w1* x1 + w2* x2 = 1*1 + (-0,5)*0 = 1 NET>φ olduğundan gerçekleşen çıktı Ç=1 olacaktır. Ç=B1 olduğundan ağırlıklar değiştirilmez. Adım 4 Yukarıdaki ilk üç adım, bütün girdi setindeki örnekleri için doğru sınıflandırmalar yapılıncaya kadar tekrar edilir. 14.iterasyonda 1. örnek ağa tekrar gösterilir. NET: w1* x1 + w2* x2 = 1*0 + (-1)*1 = -1 NET=φ olduğundan gerçekleşen çıktı Ç=0 olacaktır. Ç=B1 olduğundan ağırlıklar değiştirilmez. Bundan sonra her iki örnek de doğru olarak sınıflandırılır. Öğrenme sonunda ağırlıklar; w1=1 w2=-1 değerlerini alıca örnekler doğru sınıflandırılabilir demektir. Bu ağırlık değerleri kullanılarak iki örnek tekrar ağa gösterilirse ağın çıktıları şöyle olur. NET: w1* x1 + w2* x2 = 1*1 + (-1)*0 = 1 > φ Ç1=1 = B1 NET: w1* x1 + w2* x2 = 1*0 + (-1)*1 = -1 = φ Ç2=1 = B2 Görüldüğü gibi, her iki örnek içinde ağ tarafından doğru sınıflandırma yapılmaktadır. O nedenle, ağ öğrenmeyi tamamlamıştır denilebilir. 8.12.3 Adaline 1959’da, Stanford üniversitesinden Bernard Widrow, basit nöron benzeri elemanlara dayanan ve “Adaline” (Adaptive Linear Nöron) olarak adlandırılan bir adaptif lineer elemanı geliştirmiştir. Adaline yapısı tüm sinir ağlarının en basitidir ve öğrenme için danışmanlı öğrenmeyi kullanır. Adaline ve iki tabakalı biçimi olan “madaline” (Multiple Adaline); ses tanıma, karakter tanıma, hava tahmini ve adaptif kontrol gibi çok çeşitli uygulamalar için kullanılmıştır. Daha sonraları adaline, ayrık bir çıkış yerine sürekli bir çıkış üretmek için 41 geliştirilmiştir. Widrow, telefon hatları üzerindeki ekoları elimine etmeye yarayan adaptif filtreleri geliştirmede, adaptif lineer eleman algoritmasını kullanmıştır. Bununla ilk defa YSA’lar gerçek bir probleme uygulanmıştır. Adaline bir çok uygulama için oldukça iyi çalışmasına rağmen lineer problem uzayıyla sınırlıdır. Lineer transfer fonksiyonu kullanırlar. Giriş ve istenilen çıkış desenlerinin tekrar tekrar ağa uygulanmasıyla eğitim gerçekleştirilir. Desenlerin doğru sınıflara ayrılmasıyla, hatalar minimize edilerek öğrenme gerçekleştirilir. Eğitimden sonra adaline, yeni girişleri kazandığı deneyime göre sınıflandırabilir. Adeline Ünitesinin Öğrenme Kuralı Adeline ünitesinin öğrenme kuralı, YSA’lardaki geneler öğrenme prensibine göre çalışmaktadır. Girdilerden çıktılar hesaplanır ve ağırlıklar çıktıya göre değiştirilir. ADELİNE ünitesinin net girdisi Net ve çıktısı (Ç) aşağıdaki formül ile hesaplanmaktadır. NET = ƒw x i i +φ Eğer NET>=0 çıktı (Ç)=1 Eğer NET>=0 çıktı (Ç)=-1 Çıktı hesaplandıktan sonra, ADELİNE ünitesinin hatası aşağıdaki formül ile hesaplanır. E=B-Ç olacaktır. Amaç, bu hatayı en aza indirecek ağırlıkları bulmaktır. Bunun için ağa her seferinde farklı örnekler gösterilerek hatalar hesaplanmakta ve ağırlıklar hatayı azaltacak şekilde değiştirilmektedir. Zaman içinde hata, olması gereken en küçük değere düşmektedir. Bu hatayı azaltmak için kullanılan kural şu formül ile gösterilmektedir. Wy = We + α*E*Xi Her hangi bir t a anında, Wi (t)= Wi (t-1) + α*E*Xi olacaktır. Wi (t) : Ağırlıkların t zamanındaki değerleri Wi (t-1) : Ağırlıkların t zamanındaki değerleri α : Öğrenme katsayısı B : Beklenen Çıktı 42 E : Beklenen değer ile çıktı arasındaki hata X : Girdiler Benzer şekilde, eşik değerinin zaman içindeki değeri de φy= φe + α (B-Ç) formülü ile hesaplanır. Örneğin; X1=(1,0) : Bu örneğin beklenen çıktısı Ç1=-1 X2=(1,0) : Bu örneğin beklenen çıktısı Ç1= 1 X1 W1 ÇIKTI NET X1 W2 φ1 Bu problemi çözmek için 2 girdisi olan bir ADELİNE ünitesi tasarlanacaktır. Öğrenmenin amacı, problemin girdilerini doğru sınıflandıracak ağırlık değerleri ve eşik değerlerini bulmaktır. Problemin çözümü için ağırlık değerleri ve eşik değeri başlangıçta rastgele alınacaktır. W1 = 0.3 W2 = 0.2 α = 0.5 φ = 0.1 Birinci İterasyon Bu iterasyonda öncelikle birinci girdi vektörünün ağa gösterilmesi sonucu ağın çıktısı hesaplanır. NET=0.3*1 + 0.2*0 + 0.1 = 0.4 0.4>0 olduğundan, Ç=1 olur. Ç≠B olduğundan, ağın ağırlıklarının değiştirilmesi gerekir. 43 Beklenen ile gerçekleşen çıktılar arasındaki hata E=B-Ç=-1-1= -2 olarak hesaplanır. Ağın yeni değerleri aşağıdaki gibi hesaplanır. Wy = We + α*E*Xi Wy =[0.3,0.2] + 0.5*(-2) [1,0] Wy =[0.3,0.2] + -1 [1,0] Wy =[0.3-1,0.2-0] = [-0.7,0.2] Benzer şekilde eşik değer ünitesinin yeni ağırlığı da aşağıdaki gibi hesaplanır. φy = φe + α (B-Ç) φy = 0.1 + 0.5*(-2) = -0.9 İkinci İterasyon NET=-0.7*0 + 0.2*1 - 0.9 = -0.9 -0.9<0 olduğundan, Ç=-1 olur. Ç≠B olduğundan, ağın ağırlıklarının değiştirilmesi gerekir. Beklenen ile gerçekleşen çıktılar arasındaki hata E=B-Ç=1- (-1)= 2 olarak hesaplanır. Ağın yeni değerleri aşağıdaki gibi hesaplanır. Wy = We + α*E*Xi Wy =[-0.7,0.2] + 0.5*(2) [1,0] Wy =[-0.7,0.2] + [0,1] Wy =[-0.7+0,0.2+1] = [-0.7,1.2] Benzer şekilde eşik değer ünitesinin yeni ağırlığı da aşağıdaki gibi hesaplanır. φy = φe + α (B-Ç) φy = -0.9 + 0.5*(2) = 0.1 Üçüncü İterasyon NET=-0.7 + 0*0.1 = 0.6 0.6<0 olduğundan, Ç=-1 olur. Ç=B olduğundan ağın sınıflandırması doğrudur, ağırlıklarda değişiklik yapılmaz. Çünkü E=0 olacaktır. 44 Dördüncü İterasyon NET= 0 + 1.2+0.1 = 1.3 1.3>0 olduğundan, Ç=1 olur. B=Ç olduğundan ağın sınıflandırması doğrudur. Ağ iki örneği de doğru sınıflandırdığına göre öğrenme tamamlanmıştır. Ağırlıkların ve eşik değerinin aşağıdaki gibi olması sonucu ağ bu örnek için sınıflandırıcı olarak kullanılabilir. Wy = [-0.7,1.2] φy = 0.1 8.12.4 Çok Katlı Algılyıcılar ÇKA (Multi Layer Perceptron MLP) Girdi ile çıktı arasındaki ilişkinin doğrusal olmadığı bir problemi, ADELINE ile çözmek mümkün olamamıştır. Özellikle, Minsky, basit algılayıcı probleme çözüm getirmediğini modelin bu göstermiş ve YSA’ların doğrusal olmayan problemlerin çözümünde kullanılamayacağını iddia etmiştir. Çünkü günlük hayatta karşılaşılan problemlerin hemen hepsi doğrusal olmayan nitelik taşımaktadır. Bu durum, YSA ile ilgili yapılan bilimsel araştırmaların pek çoğunun durmasına neden olmuştur. Birkaç araştırmacının çalışmalarına devam ederek YSA nın doğrusal olmayan problemlerin de çözümünde kullanıldığını göstermeleri ile YSA ile ilgili çalışmalar tekrar hız kazanmıştır. Doğrusal olmayan bir ilişki gösteren XOR problemini çözmek amacıyla yapılan çalışmalar sonucunda Çok Katmanlı Algılayıcı modeli geliştirilmiştir. Rumelhart ve arkadaşları tarafından yayılım geliştirilen bu modele hata yayma modeli (backpropogation network) de denilmektedir. modeli veya geriye ÇKA modeli yapay sinir ağlarına olan ilgiyi çok hızlı bir şekilde arttırmış ve YSA tarihinde yeni bir dönem başlatmıştır. Bu ağ modeli özellikle mühendislik uygulamalarında en çok kullanılan sinir ağı modeli olmuştur. Bir çok öğretme algoritmasının bu ağı eğitmede kullanılabilir olması, bu modelin yaygın kullanılmasının sebebidir. Bir ÇKA modeli, bir giriş, bir veya daha fazla ara ve bir de çıkış katmanından oluşur. Bir katmandaki bütün işlem elemanları bir üst katmandaki bütün işlem elemanlarına bağlıdır. Bilgi akışı ileri doğru olup geri besleme yoktur. Bunun için ileri beslemeli sinir ağı modeli olarak adlandırılır. Giriş katmanında herhangi bir bilgi işleme yapılmaz. Buradaki işlem elemanı sayısı tamamen uygulanan problemlerin giriş sayısına bağlıdır. Ara katman sayısı ve ara katmanlardaki işlem elemanı sayısı ise, deneme-yanılma yolu ile bulunur. Çıkış 45 katmanındaki eleman sayısı ise yine uygulanan probleme dayanılarak belirlenir. Delta Öğrenme Kuralını kullanan bu ağ modeli, özellikle sınıflandırma, tanıma ve genelleme yapmayı gerektiren problemler için çok önemli bir çözüm aracıdır. ÇKA modelinin temel amacı, ağın beklenen çıktısı ile ürettiği çıktı arasındaki hatayı en aza indirmektir. Bu ağlara eğitim sırasında hem girdiler hem de o girdilere karşılık üretilmesi gereken (beklen) çıktılar gösterilir (danışmanlı öğrenme). Ağın görevi her girdi için o girdiye karşılık gelen çıktıyı üretmektir. Örnekler giriş katmanına uygulanır, ara katmanlarda işlenir ve çıkış katmanından da çıkışlar elde edilir. Kullanılan eğitme algoritmasına göre, ağın çıkışı ile arzu edilen çıkış arasındaki hata tekrar geriye doğru yayılarak hata minimuma düşünceye kadar ağın ağırlıkları değiştirilir. şekil 12 - ÇKA Ağ Modeli 8.12.5 Radyal Tabanlı Sinir Ağı Katmanlı YSA’ nın tasarımında eğiticili geriye yayılım öğrenme algoritması bir en iyileme uygulamasıdır. Ara katmandaki işlemci elemanlar girişlerin ağırlıklandırılmış şeklini 46 kullanmamakta ve ara katmandaki işlemci elemanların çıkışları YSA girişleri ile temel fonksiyonun merkezi arasındaki uzaklığa göre belirlenmektedir. Radyal tabanlı fonksiyon ağı tasarımı ise çok boyutlu uzayda eğri uydurma yaklaşımıdır ve bu nedenle RTFA’ nın eğitimi, çok boyutlu uzayda eğitim verilerine en uygun bir yüzeyi bulma problemine dönüşür. RTFA’ nın genellemesi ise test verilerini interpole etmek amacıyla, eğitim sırasında bulunan çok boyutlu yüzeyin kullanılmasına eşdeğerdir. Radyal tabanlı fonksiyonlar, sayısal analizde çok değişkenli interpolasyon problemlerinin çözümünde kullanılmış ve YSA’ nın gelişmesi ile birlikte bu fonksiyonlardan YSA tasarımında yararlanılmıştır. RTFA, ileri beslemeli YSA yapılarına benzer şekilde giriş, orta ve çıkış katmanından oluşur ancak, giriş katmanından orta katmana dönüşüm, radyal tabanlı aktivasyon fonksiyonları ile doğrusal olmayan sabit bir dönüşümdür. Orta katmandan çıkış katmanına ise uyarlamalı ve doğrusal bir dönüşüm gerçekleştirilir. şekil. 13 Radyal tabanlı fonksiyon ağı Burada, ara katman işlemci elemanları, lineer yapıdaki bir çıkış katmanına bütünüyle bağlantılıdır. Ik= X − c k = 2 N ƒ(X i =1 i − c ki ) ile ifade edilir. Nöronun çıkış değeri ise, vk = e − Ik σ k2 formülü ile hesaplanır. Ck: Ağırlıklar σk: Genişlikler 47 RTFA’da uyarlanabilecek serbest parametreler; merkez vektörleri, radyal fonksiyonların genişliği ve çıkış katman ağırlıklarıdır. Çıkış katmanı doğrusal olduğundan ağırlıklar, eğim düşme yada doğrusal en iyileme yöntemleri ile kolayca bulunabilir. Merkezler, girişler arasından rastgele ve sabit olarak seçilebilmekle birlikte RTFA’nın performansını iyileştirmek amacıyla merkez vektörlerinin ve genişliğin uyarlanması için çeşitli yöntemler geliştirilmiştir. Merkez vektörleri, eğim düşme yöntemine göre eğiticili öğrenme algoritması ile uyarlanarak, dik en küçük kareler yöntemi ile, yada kendiliğinden düzenlemeli yöntemle giriş örneklerinden öbekleme yapılarak belirlenebilir. 8.12.6 LVQ (Learning Vector Quantisation) LVQ ağı 1984 yılında Kohonen tarafında geliştirilmiştir. Bazı modellerde eğitim sırasında ağa hem girdi değerleri hem de o girdi değerleri için üretilecek çıktı değerlerinin ne olması gerektiği verilir. Fakat bazı durumlarda, ağa çıktının ne olduğunu vermek mümkün olmamaktadır. Yalnızca ağın üretmiş olduğu yanlış çıktının doğru veya olduğu belirtilebilmektedir. Destekleyici öğrenme olarak belirlenen bu yöntemi kullanan modellerin bir tanesi de, doğrusal vektör parçalama modeli olan LVQ modelidir. Sınıflandırma problemi için geliştirilmiş olan LVQ modelinin temel felsefesi, n boyutlu bir vektörü bir vektörler setine haritalamaktır. şekil 14, üç kattan oluşan LVQ ağını göstermektedir. Bu tabakalar, giriş, gizli tabaka ve çıkış tabakasıdır. LVQ ağı, giriş ve gizli tabaka arasında tamamen, gizli ve çıkış tabakası arasında da kısmen bağlıdır. Her çıkış işlemci elemanı farklı bir gizli işlemci eleman kümesine bağlıdır. Gizli ve çıkış işlemci elemanları arasındaki ağırlıklar 1’e sabitlenmiştir. LVQ ağının eğitilmesindeki amaç, her iterasyonda girdi vektörüne en yakın referans vektörünü bulmaktır. Referans vektörleri, Kohonen katmanındaki proses elemanlarını girdi katmanındaki proses elemanlarına eleman bağlayan ağırlık değerleridir. Giriş-gizli işlemci bağlantılarının ağırlıkları “referans” vektörlerinin elemanlarını oluşturur (her gizli işlemci elemana bir referans vektör atanmıştır). Ağın öğretilmesi esnasında bunlar yeniden değerler alırlar. Öğrenme esnasında sadece referans vektörlerin ağırlık değerleri değiştirilir. Hem gizli işlemci elemanlar (bunlar Kohonen işlemci elemanları olarak da bilinir) hem de çıkış işlemci elemanları ikili (binary) çıkışa sahiptir. Ağa bir giriş deseni verildiğinde referans vektörü, giriş desenine en yakın olan gizli işlemci eleman kümesi “1”, diğerleri “0” üretir. “1” üreten çıkış işlemci elemanı giriş işaretini sınıflar ve her işlemci eleman ayrı bir sınıfa atanmıştır 48 şekil 14: LVQ Ağı En basit LVQ öğretme prosedürü şu sırayla açıklanabilir. 3. Adım: Referans vektörlerinin ağırlıklarına Wi, başlangıç değeri ata 4. Adım: Eğitime giriş vektörü X’i ağa gir 5. Adım: X ile Wi, arasındaki mesafeyi “Öklit (Euclidian)” uzaklığı hesapla 6. Adım: Giriş vektörüne en yakın yarışmayı kazanan arakat nöronunun referans vektör ağırlığı W yi güncelleştir. ğayet diğerleri giriş vektörünün belirtilen sınıfa ait olduğu çıkış nöronuna ait grupta ise, aşağıdaki gibi referans vektör giriş vektörüne daha yakınlaştırılır. Yeni W`= W`+λ(X- W`) Burada λ öğrenme katsayısı olarak adlandırılır. Aksi takdirde referans vektörü giriş vektöründen aşağıdaki gibi uzaklaştırılır. Yeni W`= W`-λ(X- W`) 49 5.Adım: 2. Adıma git ve yeni eğitime giriş vektörünü gir. İşlemi bütün eğitim seti doğru olarak sınıflandırıncaya (veya herhangi kabul edilebilir bir hata seviyesine ulaşıncaya) kadar devam ettir. 8.12.6.1 Ceza Mekanizmalı LVQ LVQ’nun bu versiyonu, 1988 yılında DeSieno tarafından tanıtılmıştır. Burada amaç, değerleri her zaman aktif değil iken, çok sık kazanma eğiliminde olan bir nöronun sık sık kazanma problemini ortadan kaldırmak için bir mekanizma sunmuşlardır. Çünkü çok sık kazanan nöronlar ağın esnekliğini bozmaktadır ve diğer ağırlık vektörleri referans olma niteliklerini kaybetmektedirler. Bu ceza mekanizması ile, çok sık kazanan bir nörona bir “ceza değeri” vererek giriş vektörü ile arasındaki mesafeyi arttırıp cezalandırma işlemini gerçekleştirmektir. Böylelikle sık sık kazanan nöronun kazanma şansı azaltılmış olur. 8.12.6.2 LVQ2 Bu sürüm Kohonen tarafından geliştirilmiş olup, sınırlarda meydana gelen yanlış sınıflandırmayı azaltmak için tasarlanmıştır. LVQ2, LVQ yapısı veya ceza mekanizmalı LVQ yapısından kabul edilebilir bir sonuç elde edildikten sonra uygulanır. Giriş vektörü X ağa uygulandığı zaman, kendisine yakın iki referans vektörü W`1 ve W`2 dikkâte alınır. Öğretme algoritması sırayla eğiştirilir. W`1 ve W`2 yi değiştirir. Bu değiştirme işlemi; ° W`1 yanlış kategoride ve W`2 doğru kategoride ise ve ° Giriş vektörü X, W`1 ve W`2 arasında yerleştirilen bir pencerenin içerisindedir. Burada değiştirilen referans vektörleri Yeni W`1 ve Yeni W`2 aşağıdaki gibi elde edilebilir. Yeni W`1 =W`1-λ(X- W`1 ) ve Yeni W`2 =W`2-λ(X- W`2 ) 50 Diğer aralıklarda herhangi bir değişiklik yapılmaz. 8.12.7 Hopfield Ağı Hopfield ağları; 1980 lerin başlarında ilk kez, tanınmış bir fizikçi olan John Hopfield tarafından sunuldu. Content Addressable Memories (CAM) denilen sinirsel fizyolojiden harekete geçen modellerden yararlanılan Hopfield sinir ağı, beyine benzer bir şekilde belirli hafızaları veya desenleri depolayan basit bir yapay sinir ağıdır. Hopfield ağ topolojisi diğer ağlardan farklıdır. Farklı katmanlar yoktur; her birim diğer tüm birimlere bağlıdır. Ayrıca, bağlantılar çift yönlüdür (bilgi her iki yönde akar) ve simetriktir. Bu ağ genellikle ikili (0 veya 1) ve bipolar (+1 veya –1) girişler kabul eder. Tek tabaka işlemci elemanları vardır ve her işlemci eleman bir diğerine bağlanmıştır. şekil 15 Hopfield Ağı Hopfield ağı, bir geriyayılımlı (BackPropagation) ağın eğitildiği gibi eğitilmez. Bunun yerine, örnek desen grupları seçilir, ağın ağırlıklarının başlangıç değerlerini saptamak için kullanılır. Bu bir kere yapıldıktan sonra herhangi bir desen ağa sunulur ve bu da giriş desenine en çok benzeyen örnek desenlerden biriyle sonuçlandırılır. Çıkış deseni, birimlerin durumlarına bakılarak ağdan okunabilir. 51 Hopfield Ağı, bir nöronun matematiksel basitleştirilmiş halinin nasıl büyük sinir ağlarının davranış analizlerine izin verdiğini açıklamaktadır. Bütün bir sinirsel mimarinin bir özelliği üzerindeki olarak birimlerin aktivasyonlarındaki değişikliklerin matematiksel etkisini karakterize etmeye enerji denir, Hopfield (1982) lokal etkileşimler ile global davranışlar arasında önemli bağlantıyı sağlamaktadır. Ağ N birime sahip olsun ve bunlar 1 den N‘e numaralanmış olsun. olan bağlantının ağırlığı 1≤i, j≤N i. birimden j.birime için wij dir. Tüm i=1,...N için hiçbir birimin kendine olan bağlantısı yoktur, wii = 0 . i. birimden j. birime olan bağlantının ağırlığı, j. birimden i. birime olan bağlantının ağırlığına eşit olduğundan , wij = wji. Her birimin onunla bütünleşmiş bir eşik değeri vardır. Eşik, diğer birimlerden olan girişlere cevabında birimin durumundaki değişimi belirler i. birimin eşiğini Qi ile gösteririz. M tane örnek desenimiz olsun: p1,... pm. Herbirinin N elemanı vardır, böylelikle i=1,....,M için M pi=( p i1 ,..., piN )’dir. Ağırlıkları 1≤i, j≤N, i≠j için wij= ƒ pki pkj formülü ile hesaplanır. k =1 t anında i. birimin durumu μi(t), i=1,...N olsun. (x1,..., xN)’in giriş deseni olsun. μi(0)= x1, i=1,....,N eşitliğini sağlayarak ağa giriş deseni yüklenir. Ağı çalıştırmak için, birbirini izleyen anlarda aşağıdaki formülü kullanarak birimlerin durumları hesaplanır. μi(t+1)=f ( M ƒw μ ij j (t ) − θ i ) j =1, j ≠i i=1,...N ve t=1,2... birimlerin binary çıkışlara sahip olduğu durumlarda, f basamak fonksiyonudur: eğer x < 0 ise f(x) = -1 ve eğer x > 0 ise f(x) = 1. N Eğer, ( ƒw μ ij j (t ) − θ i ) = 0 ise birimin durumu değişmez. Sürekli durumda f , [a,b] sınırlı j =1, j ≠i bir sigmoid fonksiyondur. 52 8.12.8 Elman ve Jordan Ağları Elman ve Jordan Ağları ÇKA’lara benzer bir yapıdadır ve çok katlıdırlar. Her iki ağda da gizli tabakaya ek olarak diğer bir “durum” tabakası denilen özel bir gizli tabaka daha vardır. Bu tabaka gizli tabakadan veya çıkış tabakasından geri besleme işaretleri alır. Jordan ağının aynı zamanda durum tabakasındaki her işlemci elemandan kendisine bağlantıları vardır. Her iki ağda da durum tabakasındaki işlemci elemanların çıkışları ileriye doğru gizli tabakaya verilmektedir. Eğer sadece ileri doğru bağlantılar göz önüne alınır ve geri besleme bağlantılarına sabit değerler verilirse, bu ağlar sıradan ileri beslemeli ağlar haline gelirler. şekil 15-Elman Ağı 53 şekil 16 Jordan Ağı 8.12.9 Kohonen Ağı Kohonen ağı, bir giriş tabakası ve bir de çıkış tabakası olmak üzere iki tabakadan oluşur. Çıkış aralıklar tabakasındaki olarak düzenlenir. işlemci Çıkıştaki elemanlar her işlemci genellikle eleman, düzenli bütün iki boyutlu giriş işlemci elemanlarına bağlıdır. Bağlantıların ağırlıkları verilen çıkış işlemci elemanı ile ilgili olan referans vektörünün elemanlarını oluşturur. Kohonen ağının öğrenme adımları aşağıdaki gibidir. Adım 1: Çıkış İE’lerin bütün referans vektörlerini küçük rasgele değerlere çek, Adım 2: Bir giriş desenini al, Adım 3: Kazanan çıkış işlemci elemanını belirle. (Bunu yaparken, Kohonen katmanındaki bütün proses elemanlarının NET girdileri hesaplandıktan sonra bunların en büyüğüne sahip olan proses elemanı yarışmayı kazanan eleman olarak belirlenir. Bu elemanın çıktısı 1, 54 diğerlerininki 0 olarak atanır. Kazanan işlemci giriş desenine en yakın referans vektörüne sahip işlemci elemandır. Referans vektörü ile giriş vektörü arasındaki öklit uzaklığı genellikle uzaklık ölçüsü olarak alınır.), Kazanan işlemci elemanın ve onun komşularının referans vektörünü güncelleştir. Bu referans vektörleri giriş vektörüne yaklaştırılır. Bu yaklaştırma (ayarlama) kazanan işlemci eleman için en fazla ve bu işlemci elemandan uzaklaştıkça daha azdır. Öğrenme ilerledikçe komşuların sayısı azalmakta ve öğrenme sonunda sadece kazanan işlemci elemanın referans vektörü ayarlanmaktadır. İyi öğrenmiş bir Kohonen ağında birbirine yakın çıkış işlemci elemanlarının referans vektörleri vardır. Öğrenmeden sonra bir etiketleme işlemine başlanır. Bilinen sınıfların giriş desenleri ağa giriş olarak verilir ve bu giriş desenleri tarafından aktif hale gelen çıkış işlemci elemanlarına bu sınıf etiketleri verilir. LVQ ağında ise bir çıkış işlemci elemanı eğer yarışmayı diğer çıkış işlemci elemanlarına karşı kazanırsa bir giriş deseni tarafından aktif hale getirildiği hatırlatılır. şekil17 - Kohonen ağı 55 8.12.10 ART (Adaptive Resonance Theory) ART ağları, Grosberg’in 1976 yılında biyolojik beynin fonksiyonlarına yönelik olarak yaptığı çalışmalar neticesinde ortaya çıkmıştır. Geliştirilen danışmanız öğrenme ağlarının geliştirilmesine de temel olmuştur. ART ağları, memeli hayvanların beyinlerinin çalışma prensipleri dikkate alınarak geliştirilmiştir. Beyinin kullandığı sezgisel yaklaşımları matematik bir modele dönüştürmelerinden dolayı da bu ağlar oldukça yoğun bir ilgi görmüştür. ART ağları sınıflandırma problemleri için geliştirilmiş ve başarılı bir şekilde kullanılabilen bir yöntem olarak bilim dünyasında kabul görmüştür. LVQ ağları da sınıflandırma problemi için geliştirilmiştir. ART ağlarının LVQ ağlarından temel farkı, yapılacak olan sınıflandırma ile ilgili olarak ağa herhangi bir bilgi verilmemesidir. ART ağlarının bilim dünyasında kabul görmesinin sebeplerinden birisi, bu ağların yapısal olarak insan beyninin davranışları ve sinir sistemi hakkında bilinen bulgular üzerinde kurulmuş olmasıdır. ART ağının, ART-1, ART-2, Fuzzy-ART, MART gibi değişik çeşitleri vardır. ğekil18’de ikili girişler kabul eden ART-1 gösterilmiştir. ART-2 gerçek değerler kabul etmektedir. ğekil 18’de görüldüğü gibi, ART-1 ağının giriş ve çıkış olmak üzere iki tabakası vardır. İki tabaka birbirleriyle tamamen bağlantılıdır ve bağlantılar ileri ve geri yöndedir. i.nci çıkış işlemci elemanlarının ileri yöndeki bağlantılarının ağırlıklarının oluşturduğu Wi vektörü, temsil ettiği sınıfın bir örneğini oluşturur. İleri bağlantılarının Wi vektörlerinin toplamı ART ağının uzun- dönem (long-term) hafızasını oluşturur. Bu vektörler, giriş desenine benzerlikleri ölçüsünde, çıkış işlemci elemanlarını belirlerler. Çıkış işlemci elemanlarının geri bağlantılarının Wi vektörleri ise, giriş deseninin, hafızadaki desenine yeterince benzeyip benzemediğini (o sınıfa ait olup olmadığını) kesin olarak belirlemek için bir çeşit test “vigilance” amacıyla kullanılır. Bu test vektörleri diyebileceğimiz Vi vektörleri ART ağının kısa-dönem (short-term) hafızasını oluştururlar. Wi, Vi’nin normalize edilmiş halidir. Wi= Vi ε + ƒ v ji burada ε küçük bir sabittir ve Vji, Vi’nin j’inci elemanıdır (yani i’inci İE’den j’inci giriş İE’na bağlantı ağırlığıdır). 56 şekil 18: ART-1 ağı 57 8.12.11 Olasılık Tabanlı YSA Olasılık tabanlı YSA yapıları 1990 yılında Donald Specht tarafından önerilmiştir. Bu tip sinir ağları da bir çok sınıflandırma probleminin çözümünde kullanılmaktadır. Bu yapı, giriş, patern, toplama ve çıkış olmak üzere dört katmandan oluşur. Giriş nöron sayısı diğer ağlarda olduğu gibi problem giriş sayısına bağlıdır. Arakatman sayısı ise, örnek sayısı kadardır. Saklı katmanda bulunan veri işleme elemanları K toplam mevcut sınıfı göstermek üzere K alt gruba ayrılır. Her veri işleme elemanı karşı geldiği sınıfı ifade eden bir Parzen penceresini gösterir. Sahip olduğu ağırlık değeri söz konusu pencerenin ağırlık merkezini ifade eder. Toplama katındaki nöron sayısı, çıkış sayısının bir fazlasıdır. OTY yapılarında öğrenme hızlıdır ve az sayıdaki veri ile etkin olarak kullanılabilirler. Buna karşı, OTY yapıları hafızayı yoğun olarak kullanırlar. Kompleks veri kümeleri kullanıldığında ve kısmen de bu veriler bir sınıflandırma yarıçapı kullanılarak azaltıldığında problemlerle karşılaşılabilir. 8.13 Yapay sinir YSA Öğrenme Algoritmaları ağının geliştirilmesinde kullanılacak çok sayıda öğrenme algoritması bulunmaktadır. Bunlar içinde bazı algoritmaların bazı tip uygulamalar için daha uygun olduğu bilinmektedir. 8.14 Temel Öğrenme Kuralları Literatürde kullanılan çok sayıda öğrenme algoritması bulunmaktadır. Bu algoritmaların çoğunluğu matematik tabanlı olup ağırlıkların güncelleştirilmesi için kullanılırlar. Yapay sinir ağının mimarisine, karşılaşılan sorunun niteliğine göre farklılık gösteren bu öğrenme algoritmalarının yüzden fazla çeşidi bulunmaktadır. Bu algoritmaların bir çoğu aşağıda sırlanan kurallardan esinlenerek geliştirilmiştir. ° Hebb Kuralı ° Delta Kuralı ° Kohonen Kuralı ° Hopfield Kuralı 8.14.1 Hebb Kuralı 1949 yılında Kanadalı psikolog Donald Hebb tarafından biyolojik temele dayalı olarak geliştirilmiş olan Hebb algoritması en eski ve en ünlü öğrenme algoritmasıdır. Bu öğrenme 58 algoritması basit bir mantığa dayanmaktadır: Eğer nöron (A) başka bir nöron' dan (B) girdi alıyorsa ve her ikisi de aktifse, (A) ve (B) arasındaki ağırlık artar. Bu düşüncenin en çok kullanılan şekli: Δ wjk =α.yj.xk Burada Δwjk=Δwjk(t)= wjk(t+1)- wjk(t) ve Δ > 0 dır (t=zaman). Bu formülde wjk nöron uk' den nöron uj' ya olan ağırlık, yj,,uj nöronun çıktısı ve xk ise uk nöronun çıktısıdır. α "öğreneme oranı" veya " öğrenme katsayısı" olarak adlandırılmaktadır ve birçok öğrenme algoritması tarafından kullanılır. Öğrenme katsayısı "0" ile "1" arasında bir değer alır ve bu değer ağın öğrenme hızını belirler. α 'nın büyük değerleri için daha hızlı öğrenme, küçük değerleri için daha yavaş öğrenme gerçekleşmektedir. Ancak hızlı öğrenme ağın "genelleme" yeteneğini azaltır. Genelleme yeteneği ağın eksik ve gürültülü verilerle doğru sonuçlar üretebilmesi için oldukça önemlidir. Hebb algoritmasıyla ilgili bir diğer konuda ağın eğitimden önce ağırlıklarının 0 olması gerektiğidir. 8.14.2 Delta Kuralı Delta kuralı ilk olarak Widrow ve Hoff tarafından geliştirilmiş daha çok mühendislik kökenli bir algoritmadır. Bu kural, nöronun gerçek çıkışı ile istenilen çıkış değerleri arasındaki farkı azaltan, giriş bağlantılarını güçlendiren ve sürekli olarak değiştiren bir düşünceye dayanmaktadır. Delta kuralı, ortalama karesel hatayı, bağlantı ağırlık değerlerinin değiştirilmesi ile düşürme prensibine dayanır. Bu nedenle de bu algoritma en küçük kareler kuralı olarak da bilinmektedir (Least-Mean-Square Rule LMS). Hata aynı anda bir katmandan bir önceki katmanlara geri yayılarak azaltılır. Ağın hatalarının düşürülmesi işlemi, çıkış katmanından giriş katmanına ulaşıncaya kadar devam eder. Bir nöronun çıktısının yj, hedeflenen çıktı dj'den farkı,(hata), δj nöron j için şöyle hesaplanır: δj= dj-yj Bu algoritma, hata karelerinin ortalamasını alarak, bu değerin en küçük olduğu çözümü bulmaya amaçlar. Ağ için hata karelerinin ortalaması ξ, aşağıdaki gibi hesaplanır: »1 ÿ ξ = Ε… ƒ δ 2 Ÿ …2 j 59 Burada E istatistiksel olarak beklenen değeri (ortalamayı) ifade etmektedir. Delta algoritması hataların karesinin en küçük olduğu noktayı bulurken dereceli azaltma yöntemini (gradient descent) kullanmaktadır. Bu yöntemde, hata kareleri, koordinatlarını ağırlıkların oluşturduğu uzayda bir çanak oluşturmaktadır (ğekil 19). Delta algoritması mevcut ağırlık vektörünü bulunduğu konumdan hatanın en küçük olduğu çanağın dibine doğru ilerletir. Hatların Karesi Ağırlık y Mevcut ağırlık vektörü İdeal vektör Delta vektörü Ağırlık x ğekil 19-Delta algoritmasında ağırlık değişimi İşlem elemanının doğrusal geçiş fonksiyonuna sahip olduğu kabul edildiğinde; yj = ƒ w jk xk k Hata karelerinin ortalamasının en küçük olduğu noktayı bulmak için ağırlıklar t=zaman olmak üzere t=1,2,3,.., için aşağıdaki gibi değiştirilir: wij (t+1)= wij(t)+ Δwij Δwij =α. (t) j .xk(t) 60 8.14.3 Kohonen Kuralı Bu kural, biyolojik geliştirilmiştir. Bu sistemlerdeki kuralda öğrenmeden nöronlar öğrenmek esinlenerek için Kohonen yarışırlar. Kazanan tarafından nöronun ağırlıkları güncellenir. Bu kuralı “kazanan tamamını alır” olarak da bilinir. En büyük çıkışa sahip işlemci nöron kazanır. Bu nöron, komşularını uyarma ve yasaklama kapasitesine sahiptir. Kohonen kuralı, hedef çıkışa gereksinim duymaz. Bu nedenle danışmansız bir öğrenme metodudur. 8.14.4 Hopfield Kuralı Bu kural, zayıflatma ve kuvvetlendirme büyüklüğü dışında Hebb Kuralına benzerdir. Eğer istenilen çıkış ve girişin her ikisi aktif veya her ikisi de aktif değilse öğrenme oranı tarafından bağlantı ağırlığı arttırılır. Diğer durumlarda ise azaltılır. Birçok öğrenme algoritmasında öğrenme katsayısı oranı veya sabiti vardır. Genellikle bu terim 0 ile 1 arasında değerler almaktadır. 8.15 Öğrenme Algoritmaları 8.15.1 Geriyayılım Algoritması Yapay sinir ağları belki de en çok tahmin amacıyla kullanılmaktadır. Tahmin için kullanılan yapay sinir ağları içinde de en yaygın olarak kullanılanı geriyayılım algoritmasıdır. Geriyayılım algoritması ileri beslemeli ve çok katmanlı bir ağ mimarisini gerektirmektedir. Geriyayılım Algoritması, YSA’lar açısından en önemli tarihsel gelişmelerden biridir. Geriyayılım algoritması veya bir başka adıyla Genelleştirilmiş Delta Algoritması uygulamada en çok kullanılan öğretme algoritmasıdır. Hata, ağdaki ağırlıkların bir fonksiyonu olarak görülür ve hataların kareleri ortalaması delta kuralında olduğu gibi dereceli azaltma (gradient descent) yöntemi kullanılarak, minimize edilmeye çalışılır. Bu algoritma, hataları çıkıştan girişe geriye doğru azaltmaya çalışmasından dolayı geriyayılım ismini almıştır. Geriyayılım algoritması, ÇKA’ları eğitmede en çok kullanılan temel algoritmasıdır. bir öğrenme Eğitme işlemi ve eğitimden sonraki test işlemi bu akışa göre gerçekleştirilir. Geri yayılım algoritması, gözetmenli öğrenme yöntemini kullanılır. Örnekler ağa öğretilir ve ağa hedef değeri verilir. Öğrenme, her örnek için ağın çıktı değeri ile hedef değerinin ile karşılaştırılır. Hata değeri, ağa tekrar geri besleme şeklinde verilir. Örnek 61 setindeki hata kareleri toplamını azaltmak için nöronlar arasındaki bağlantı ağırlıkları değiştirilir.7 Tipik çok katlı geri yayılım ağı, daima; bir giriş tabakası, bir çıkış tabakası ve en az bir gizli tabakaya sahiptir. Gizli tabakaların sayısında teorik olarak bir sınırlama yoktur. Fakat genel olarak bir veya iki tane bulunur. Desen sınıflandırma problemlerini çözmek için maksimum dört tabakaya (üç gizli ve bir çıkış tabakası) gereksinim duyulduğuna işaret eden bazı çalışmalar yapılmıştır. Geri yayılım algoritması, gradyen azalan ve MLP’leri eğitmede en çok kullanılan temel bir algoritmadır. Bu algoritmanın akış şeması ğekil 20’de verilmiştir. 7 S.P.Curram, J.Minger, 1994, Neural Networks, Decision .Tree Induction and Discriminant Analysis: Embrical Comprasion, p.441 62 şekil 20 - Geri Yayılım Algoritmasının Akış ğeması Burada, gizli katman sayısını tespit etmek zor bir işlemdir. Gizli katmanlar, lineer olmayan ya da değişkenler arasında etkileşim var ise kullanılır. Bu etkileşim ne kadar karmaşıksa, o kadar çok gizli katmana ihtiyaç duyulur. Eğer az sayıda gizli katman kullanılırsa ağ öğrenmeyi başarmaz. Gereğinden fazla sayıda gizli katman bulunması halinde ise, ağ ezberler. Bu da ağın, yeni örnekler için genelleme yeteneğini azaltır. Amaç, ağın genelleme yeteneğini optimum yapabilecek en az sayıda katmanı kullanmaktır. Ağı doğru zamanda 63 durdurmak, ağın ezberlemesini önler. Gizili katman sayısını belirlemenin hızlı bir yolu yoktur. Bunu belirlemek için benzer veri seti kullanılmış tecrübelerden faydalanılabilir. 8 Geri yayılım algoritmasının bir dezavantajı, yakınsama hızının yavaş olması ve yerel en iyi çözümlerde durabilmedir. değişik Bunu gidermek için literatürde çözüm yolları geliştirilmiştir. Bunlardan biriside YSA’nın Tabu Algoritması ile eğitilmesidir. Çözüm uzayında bir hareket elde etmek için, ağırlık kümesindeki tüm ağırlıkları değiştirmek yerine, ağırlıklardan sadece birini değiştirerek çözüm uzayının daha detaylı aranması amaçlanmıştır. 9 Arıca Ç.Alabaş ve B.Denigiz’in Tabu Arama Algoritması ile Yapay Sinir Ağlarının Eğitimi konulu bu makalesinde, değiştirilecek olan ağırlığın alacağı yeni değer rassal olarak seçilse de, tabu listesinde kayıtlı olan önceki örneklerden belli bir dereceye kadar farklı olması kısıtı konmuştur. Böylelikle kontrollü bir rassallık kullanılmıştır. Ağırlıkları taşıyan ok numaraları da tabu listelerinin oluşturulmasında kullanılmıştır. Öğrenme algoritması olarak geriyayılım algoritması seçildiğinde iki parametre önem kazanmaktadır. Bunlar öğrenme katsayısı η, (learning rate) ve momentum terimidir α’dır. Bu algoritma ile i ve j kat işlem elemanları arasındaki ağırlıklardaki Δwij(t) değişikliği hesaplanır. Bu ifade; Δwij(t) = η.δj.xi+ αΔwij(t-1) ( Eşitlik 1) olarak verilir. η: Öğrenme katsayısıdır. Öğrenme katsayısı, ağırlıkların bir sonraki düzeltmede hangi oranda değiştirileceğini göstermektedir. Küçük öğrenme katsayıları, ağın sonuca ulaşmasını yavaşlatır. Büyük öğrenme katsayıları, ağın sonuca daha kısa sürede ulaşmasını sağlar. Bununla birlikte çok yüksek oranlar ağın hesaplamalarında büyük salınımlara neden olur ve ağın dip noktayı bulmasını engelleyebilir. Öğrenme katsayısı için tipik değerler 0,01 ile 0,9 arasında değişir. Karmaşık ve zor çalışmalar için küçük öğrenme katsayıları seçilmesi önerilir. 8 S.P.Curram, J.Minger, 1994, Neural Networks, Decision .Tree Induction and Discriminant Analysis: Embrical Comprasion, p.442 9 Ç.Alabaş, B.Dengiz, 2002,Tabu Arama Algoritması ile Yapay Sinir Ağlarının Eğitimi 64 α : Momentum katsayısıdır. momentum terimi, ağdaki salınımları engellemeye ve ağın hata yüzeyindeki bölgesel minimum noktalardan kaçarak, daha dip noktalara ulaşmasına yardımcı olur. Optimal öğrenme oranı ve momentum teriminin belirlenmesi büyük ölçüde deneysel ve sezgisel bir özellik taşır. Ayrıca bu parametreler büyük ölçüde ilgilenilen sorun alanına bağlı olarak değişiklik gösterir. δj : Ara veya çıkış katındaki herhangi bir j nöronuna ait bir faktördür. Çıkış katı için bu faktör aşağıdaki şekilde verilir. δj= ∂f ( y (tj ) − y j ) (Eşitlik 2) ∂netj Burada, netj = ƒ x j w ji ve y tj ise j işlemci elemanının hedef çıkışıdır. Ara katlardaki nöronlar için ise bu faktör; (Eşitlik 3) olarak verilir. Ara katlardaki İE’ler için herhangi bir hedef çıkış olmadığından, eşitlik 2 yerine eşitlik (3) kullanılır. Bu duruma bağlı olarak çıkış katından başlayarak δj faktörü, bütün katlardaki İE’ler için hesaplanır. Daha sonra eşitlik (1)’deki formüle bağlı olarak, bütün bağlantılar için ağırlıkların güncelleştirilmesi gerçekleştirilir. 8.15.2 Delta-Bar-Delta Delta-Bar-Delta (DBD) çok katmanlı algılayıcılarda bağlantı ağırlıklarının yakınsama hızını arttırmak için kullanılan bir sezgisel yaklaşımdır. Deneysel çalışmalar, ağırlık uzayının her boyutunun tüm hata yüzeyi açısından tamamen farklı olabileceğini göstermiştir. Hata yüzeyindeki değişimleri açıklamak için, özellikle ağın her bağlantısı kendi öğrenme katsayısına sahip olmalıdır. Her bir bağlantıya bir öğrenme katsayısı atanırsa ve bu öğrenme katsayısı zamanla değişirse, yakınsama zamanını azaltılır ve daha serbestlik derecesi sağlanmış olur. 65 çok İleri beslemeli YSA yapıları çoğu zaman karmaşıktırlar. Ağdaki her bağlantı için en uygun öğrenme katsayıları kümesini belirlemek oldukça zaman alıcı olabilir. Eğimin geçmişteki değerlerini kullanarak, yerel hata yüzeyinin eğriliğini çıkarmak için sezgisellik uygulanabilir. Bir bağlantı için ağırlık değişimlerinin işareti, birkaç ardışık zaman adımları sırayla değiştiği zaman, bağlantı için öğrenme katsayısı azalmalıdır. Bağlantı ağırlık boyutu hata yüzeyi ile ilgili büyük bir eğriliğe sahiptir. Bağlantı ağırlık değişimleri bir kaç ardışık zaman adımları için aynı işarete sahip olduğundan bağlantı için öğrenme oranı arttırılmalıdır. Ağırlık boyutu hata yüzeyi ile ilgili küçük bir eğriliğe sahiptir ve yüzey önemli bir mesafe için aynı doğrultudaki eğime göre devam eder. Standart geri yayılım algoritmasında eğim bileşeni aşağıdaki şekilde verilir. Burada E(k), k anındaki hata değerini, w(k) bağlantı ağırlığını ve δ(k) ise ağırlık değişiminin eğim bileşenini göstermektedir. Standart geri yayılım algoritmasında bağlantı ağırlığı, olarak güncelleştirilir. Burada α sabit bir öğrenme katsayısıdır. DBD öğrenme kuralında, her bağlantı için değişken öğrenme oranı α (k) atanır ve bağlantı ağırlığının güncelleşmesi şeklinde yapılır. Jacobs, her bağlantıda öğrenme hızının azalması ve artması için sezgiselliğin gerçekleştirilmesinde, δ(k) eğim bileşeninin ağırlıklı ortalamasını kullanılmıştır. Bu ağırlıklı − ortalama δ (k) aşağıdaki şekilde gösterilmiştir. Burada, θ konveks ağırlık faktörüdür. Sezgisel açıdan, önceki eğim bileşeninin üstel artması ve şu anki eğim bileşeni aynı işaretli ise, öğrenme oranı k sabiti ile artan ağırlıkla birleştirilir. Mevcut eğim bileşeni üstel ortalamadan farklı işaretli ise, öğrenme oranı mevcut değeri ile 66 orantılı olarak azalır. Bu öğrenme oranının güncelleştirilmesi aşağıdaki eşitlikle tanımlanmıştır. Burada, k öğrenme katsayısı artma faktörünü, ϕ öğrenme katsayısı azaltma faktörünü, α(k) k anındaki öğrenme oranını göstermektedir. algoritma, öğrenme katsayılarını Eşitlik lineer olarak (2.10)’dan artırmakta, fakat görülebileceği geometrik gibi olarak azaltmaktadır. 8.15.3 Geliştirilmiş Delta Bar Delta Genişletilmiş Delta-Bar-Delta (GDBD) öğretme algoritması, eğitmede belirli bir anda epoch genel hatayı hesaplayarak hata düzeltme özelliğine sahiptir. Belirli bir andaki (ya da herhangi bir anda) ölçülen hata, bir önceki anda bulunan hatadan büyük ise ağın ağırlıkları bir önceki ağırlık değerlerini alır. Daha iyi sonuçlar elde etmek için hata düzeltme özelliğine dayanıklılık (patience) faktörü eklenmiştir. Her peryotdaki (epoch) hatayı test etmek yerine daha önce iyileştirilme işlemi yapıldığından hata, n peryotda test edilir. GDBD’nin DBD’den farkı aşağıda özetlenmiştir. ° Sezgisel momentum kullanılır. ° Ağırlık uzayında büyük atlamalar ortadan kaldırılmıştır. ° Geometrik azaltma büyük (amacı aşan) atlamaları engellemede yeterince hızlı olması ° şeklinde özetlenir. GDBD’de, her bir bağlantıdaki momentum hızı μ(k) ve öğrenme hızı α(k) zamanla değişmektedir. DBD ile karşılaştırmak için standart delta kuralı ile verilen momentum için bağlantı ağırlıklarının değiştirilmesi değerinin ağırlıklara katkısıyla 67 elde edilebilir. Bunun yanında GDBD için değişken öğrenme ve değişken momentum hızları aşağıdaki gibi elde edilebilir. Ağırlıklar, değerinin bir önceki ağırlığa eklenmesiyle eşitliği ile tekrar hesaplanabilir. Burada, μ(k), k zamanındaki bağlantı momentum hızıdır. Momentum hızı μ(k) ve öğrenme − hızı α(k) aşağıdaki kurallara göre benzer şekilde ayarlanır. İlk önce, δ nin hesaplanması DBD algoritmasına göre belirlenir. Burada konveks ağırlık faktörüdür. GDBD için öğrenme hızı değişimi: formülünden elde edilir. Burada exp, üstel fonksiyonunu, xα , sabit öğrenme hızı skala faktörünü, ϕ α , sabit öğrenme hızı azaltma faktörü ve γ a , sabit öğrenme hızı üstel faktörünü göstermektedir. Benzer şekilde, k zamanındaki momentum hızı değişimi, ifadesinden bulunabilir. Burada, x μ , sabit momentum hızı skala faktörünü ϕ μ , sabit momentum hızı azaltma faktörü ve γ μ , sabit momentum hızı üstel faktörünü göstermektedir. 68 Dikkat edilmelidir ki, öğrenme ve momentum hızları, onların azalması ve artmasını kontrol − eden farklı sabitlere sahiptir. δ δ(k)’nın işareti sezgisel olarak artma mı yoksa azalma mı olduğunu tespit etmek için kullanılır. Azalmanın ayarlanması DBD’nin kurallarına göre − belirlenir. Ancak öğrenme ve momentum katsayılarının arttırılması | δ (k)| ‘nın üstel azalan fonksiyonu olarak değiştirilir. Böylece, küçük eğimli bölgelerde, büyük eğimli bölgelere nazaran daha büyük artırımlar yapılabilecektir. Bu, atlama problemi için kısmi bir çözümdür. Ağırlık uzayında, osilasyonları ve aşırı atlamaları engellemek için, üst sınırlar her bir bağlantı öğrenme hızları ve momentum hızları üzerinde belirlenir. Matematiksel ifadesi, tüm bağlantılar için aşağıdaki gibidir. ve μ(k)≤ μmax gibidir. Burada, αmax öğrenme katsayısının üst sınırı ve μmax ise momentum katsayısının üst sınırıdır. Sonuç olarak, GDBD algoritmasına düzeltme özellikli bir hafıza yerleştirilmiştir. Kullanıldığı zaman, eğitme datalarının sunumu her iterasyondan sonra, hata değerlendirilir. Hata, E(k), bir önceki minimum hatadan küçük ise ağırlıkları o anki en iyiler olarak hafızada saklanır. Düzeltme tolerans parametresi λ, düzeltme sürecini kontrol eder. O andaki hata önceki minimum hatayı aşarsa, yani olursa, tüm bağlantı ağırlıkları, hafızada saklı olan en iyi değerlerle değiştirilir. Ayrıca, öğrenme ve momentum hızları, düzeltmeyi başlatmak için azaltılır. 8.15.4 Hızlı Yayılım (QuickProp) Hızlı yayılım (Quickprop) algoritması, Scott Fahlman tarafından Carbegie Mellon Üniversitesi’nde geliştirilen ve Newton metoduna dayanan, çok katlı algılayıcıların eğitilmesi için kullanılan bir sezgisel öğretme algoritmasıdır. Sezgisel algoritmalar, tecrübeye ve eğitilmiş tahmine dayalı kurallar içermektedir. Bu algoritmalar optimum çözümü garanti edemeyip sadece ona yakın çözümü bulmayı garanti etmektedir. Sezgisel metotları kullanmanın sağladığı bazı avantajlar şöyle özetlenebilir. 69 ° Sezgisel metotlar karar verici mekanizma için sadeleştirici olabilir. ° Sezgisel metot, herhangi bir tam yöntemin parçası olarak öğrenme amacıyla kullanılabilir. ° Gerçek dünya problemleri için her zaman matematiksel formülasyon kurmak çok kolay olmayabilir. Bu basitleştirme sonucu oluşan hata, bir sezgisel metodun sağladığı optimale yakın çözümün sahip olduğu hatadan daha büyük olabileceğidir. Problem uzayında mümkün olan en kısa sürede, bir çözüm bulmak için ağırlık uzayında eğimi (gradient) son derece küçük azaltmak gerekebilir. Bunun yerine çözümden fazla uzaklaşmaksızın mümkün olan en büyük adımlarla kısa sürede çözüme ulaşmak arzu edilir. Hata fonksiyonunun eğim derecesi biliniyorsa, güvenli bir şekilde ağırlık uzayında daha büyük adımla çözüme ulaşılabilir. Bu algoritmada iki geleneksel yaklaşım birleştirilerek çözülmüştür. Bunlar; ° Hesaplamanın geçmişteki durumu hakkında bazı sezgilere dayanan (genel veya her bir ağırlık için ayrı) dinamik olarak ağırlıkların ayarlanması. ° Her bir ağırlığa göre hatanın ikinci türevinin belirgin kullanımı Hızlı yayılım algoritması bir ikinci dereceli metoddan daha sezgiseldir ve çok az da olsa Newton-metoduna dayanan bu metotta iki kabul kullanılır. ° Her bir ağırlık için, ağırlık hata eğrisi kolları yukarı doğru açık olan bir parabol ile yaklaştırılabilir. ° Hata eğrisinin eğilimindeki değişim, diğer tüm ağırlıkların aynı andaki değişiminden etkilenmez. Yukarıda bahsettiğimiz parabol, birbirinden bağımsız her bir ağırlık için şimdiki ve önceki hata eğimleri ve bu eğimlerin ölçüldüğü noktalar arasındaki değişim kullanılarak belirlenir. Daha sonra, algoritma doğrudan bu parabolün minimum noktasına atlar. Genellikle hızlı yayılım algoritmasının performans testleri diğer tekniklerle karşılaştırıldığında oldukça iyidir. Bu algoritma, özellikle gürültü seviyesi az olan dataya sahip problemlerde, GDBD kadar iyi sonuç vermektedir. Hızlı yayılım algoritması gürültü seviyesi fazla olan datalı problemlerde çok iyi çalışır ancak gürültülü dataların bulunduğu problemlerde GDBD kullanılmalıdır. 70 Bu algoritmada ağırlık hızlandırma ve kırpılması ihmal edilerek t-1 den t’ye kadar ağırlıklardaki değişim, formülü ile elde edilir. Burada ε öğrenme katsayısı ve α ise momentum katsayısıdır. ve eşitlikleri ile verilir. Bu ifadelerde; μ momentum büyüme faktörü h(t)= ∂E eğimi ve ∂w(t ) ise minimum adım miktarını göstermektedir. Buradan ağırlık fonksiyonunu güncelleştirmek için, delta ağırlık fonksiyonu ve ağırlık hızlandırma katsayısı işleme katılır. Burada δ hızlandırma katsayısıdır. Son olarak ağırlık çok küçük ise, 0 alınarak kırpılır. |w(t)|< κ ise w(t)=0 alınır. burada, κ ağırlık kırpılma faktörüdür. 8.15.5 Genetik Algoritma Genetik algoritmalar (GA), araştırma ve optimizasyon algoritmaları olup, canlılardaki doğal gelişim prensibine dayanmaktadırlar. Probobilistik karakterleri ve çoklu mümkün çözümleri 71 araştırma gibi önemli fonksiyonunun gradyentinin özelliklere sahip bilinmesine olmaları ihtiyaç ve amaç duymamaları (objective) en avantajlarındandır. önemli Genler ve kromozonlar doğal olarak türler ile ilgili bilgileri saklarlar. Bir GA’da potansiyel çözümler ile ilgili bilgiler, diziler (string) şeklindeki sayılarla ifade edilirler. Genetik algoritmanın akış şeması, ğekil 21’de gösterilmiştir. ğekilden de açıkça görülebileceği gibi, optimizasyonun başlangıcında, çoğunlukla rasgele olarak, bir sayı üretme jeneratörü tarafından bir grup çözüm üretilir. Başlangıçta iyi bir yaklaşık çözüm için, herhangi bir bilgiye ihtiyaç duyulmaması GA’ nın diğer bir avantajıdır. Başlangıç yoğunluğunun üretilmesini takiben, her çözümün uygunluğu fonksiyonu kullanılarak veya iyiliği, seçilen bir uygunluk değerlendirilir. Uygunluk fonksiyonu, eldeki veriler dikkate alınarak belirlendiği için, bunun seçimi probleme bağlıdır. Uygunluk ölçekleme işlemi, bazen daha iyiyi seçmek için elde edilen iyi çözümlerden daha iyi çözümlere kadar devam ettirilen bir işlemdir. Seçme, çaprazlama ve mutasyon gibi genetik operatörler, elde edilen iyi çözümlerden denenmiş yeni çözümler üretmek için kullanılırlar. Bu iyileştirme işlemi, daha önceden belirlenen bir jenerasyon sayısına veya tatmin edici bir sonuca ulaşıncaya kadar devam ettirilir. 72 şekil 21 Genetik algoritmanın akış şeması GA, ağ çıkışının hesaplanması edilmesinde kullanılmıştır. sıralanması ve Bu her sıraların tamamen için gerekli olan bir ağırlık, wji’nin bit dizileri şeklinde optimum bir ifade bit ağırlıkların dizisi elde şeklinde edilmesiyle kolayca uygulanabilir. Sıraların veya bit dizilerinin uygunluğu toplam hataların karelerinin E(w) toplamının tersi olarak ifade edilir. Eşiklikte E(w) amaç hata fonksiyonu olup m başlangıç hata terimleri ei2(w) aşağıdaki gibidir. (2.26) Burada dir. 73 Çaprazlamadan Önce Çaprazlamadan Sonra Çözüm 1 : 1011111001101111 Yeni Çözüm 1: 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 Çözüm 2: 1100011011111000 Yeni Çözüm 2: 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 (a) Mutasyondan Önce Mutasyondan Sonra 1011111001101110 1011110001101110 (b) şekil 2.13: (a) Çaprazlama ve (b) Mutasyon operatörleri. 74 SONUÇ YSA’ların az veriyle öğrenebilmeleri veya genelleme yapabilmeleri YSA’ları bir çok probleme uygulanması için cazip kılmaktadır. Bunun sebebi ise, deneysel olarak fazlaca veri elde etmenin maliyeti arttırmasıdır. YSA lara doğrusal olmama özelliği kazandıran ve bu sayede bir çok farklı probleme uygulama yaklaşımı sunması YSA ların diğer bir üstün özelliğidir. Bu sayede bir çok problemin çözümüne uygulanabilmektedir. 75