Download "YAPAY SİNİR AĞLARI TEMELLİ TIBBÎ TEŞHİS SİSTEMİ. Muzaffer DOĞAN Yüksek Lisans Tezi"
1 YAPAY SİNİR AĞLARI TEMELLİ TIBBÎ TEŞHİS SİSTEMİ Muzaffer DOĞAN Yüksek Lisans Tezi Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Anabilim Dalı Ağustos 2003
3 i ÖZET Yüksek Lisans Tezi YAPAY SİNİR AĞLARI TEMELLİ TIBBÎ TEŞHİS SİSTEMİ MUZAFFER DOĞAN Anadolu Üniversitesi Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Anabilim Dalı Danışman: Doç.Dr.Ahmet BABANLI 2003, 99 sayfa Uzman sistemlerin hazırlanmasındaki en büyük zorluk, uzmanın sahip olduğu bilgilerin bilgisayar ortamına uygun biçimde aktarılmasıdır. Bu tezde, başağrısı hastalıklarının teşhisi için bilgisayar programları yazılmasını kolaylaştırmak amacıyla başağrısı hastalıklarının belirtilerinin sistematik bir biçimde listelenmesi ve sınıflandırılması çalışması yapılmıştır. Bu sınıflandırmanın ardından, Yapay Sinir Ağları kullanılarak başağrısı hastalıklarının sınıflandırılması denenmiştir. Yapay sinir ağları modellerinden perseptron ağları, kendini düzenleyen ağlar ve geri yayılım ağları modelleri kullanılarak başağrısı hastalıklarının daraltılmış bir grubuna ait hastalıkların teşhis edilmesi sonuçları karşılaştırılmıştır. Bu teşhis probleminin çözümünde en sık rastlanan başağrısı hastalıkları olan auralı migren, aurasız migren ve gerilim tipi başağrısı ele alınmıştır. Sonuçta başağrısı hastalıklarının sınıflandırılmasında en uygun yöntemin perseptron ağları olduğu belirlenmiş ve ileriki başağrısı sınıflandırma çalışmalarına öncülük edebilecek bir hastalıklar ve belirtiler listesi hazırlanmıştır. Anahtar Kelimeler: Yapay Sinir Ağları, Başağrısı Hastalıkları, Uzman Sistemler, Teşhis Problemleri.
4 ii ABSTRACT Master of Science Thesis NEUROLOGICAL DIAGNOSIS SYSTEM BASED ON NEURAL NETWORKS MUZAFFER DOĞAN Anadolu University Graduate School of Natural and Applied Sciences Computer Engineering Program Supervisor: Assoc.Prof.Ahmet BABANLI 2003, 99 pages The main issue in preparation of an expert system is to get the expert person s knowledge and to put this knowledge into an available form to use for computer programs. In this thesis, a study on listing and classification of headache symptoms was done in order to make it easy to write computer programs which diagnose headache diseases. After this classification, classification of headache disease using Neural Networks was tried. Some of the Neural Networks models which are perceptron networks, self organizing mapping and backpropagation network models are applied to a narrow group of headache diseases and the results were compared. In the diagnosis problem, the mostly encountered diseases which are migraine with aura, migraine without aura and tension type headache were examined. As a result, it was seen that the most efficient neural network method is perceptron networks in diagnosis of headache diseases. Future reference for headache classification works was also prepared. Keywords: Neural Networks, Headache Diseases, Expert Systems, Diagnostic Problems.
5 iii TEŞEKKÜR Bu tezin hazırlanmasında tecrübelerini paylaşarak yol gösteren danışmanım Anadolu Üniversitesi nden Sayın Doç.Dr.Ahmet BABANLI ya, başağrısı hastalıklarının sınıflandırılmasında bilgisayar kullanımının gereğine inanan ve yıllardır edindiği bilgilerini bizimle paylaşan Osmangazi Üniversitesi Tıp Fakültesi Nöroloji Bölümü nden Sayın Doç.Dr.Nevzat UZUNER e, hastalık belirtilerinin çıkarılmasında ve hastalıklarla eşleştirilmesinde değerli vaktini bizim için harcayan Osmangazi Üniversitesi Tıp Fakültesi nden Sayın Dr.Melek ALTUN a, teknik yardımlarından istifade ettiğim arkadaşlarım Anadolu Üniversitesi Bilgisayar Mühendisliği Bölümü nden Sayın Araş.Gör.Sedat TELÇEKEN e ve Sayın Araş.Gör.Ali Yavuz ÇAKIR a, ve tez çalışmam sırasında bana maddi manevi her türlü desteğini sunan aileme teşekkür ederim. Muzaffer DOĞAN
6 iv İÇİNDEKİLER ÖZET... i ABSTRACT... ii TEŞEKKÜR... iii İÇİNDEKİLER... iv ŞEKİLLER DİZİNİ... vi ÇİZELGELER DİZİNİ... vii SİMGELER ve KISALTMALAR DİZİNİ... viii 1. GİRİŞ UZMAN SİSTEMLER (EXPERT SYSTEMS) YAPAY SİNİR AĞLARI (NEURAL NETWORKS) Yapay Sinir Ağları Hakkında Genel Bilgiler Biyolojik sinir hücresi Sinir hücresinden yapay sinir ağına geçiş Yapay sinir ağlarının özellikleri Yapay sinir ağlarının uygulama alanları Yapay sinir hücresi modeli Aktivasyon (Transfer) fonksiyonları Yapay sinir ağı yapıları Perseptronlar Perseptronun eğitilmesi Kısıtlamalar Doğrusal Ağlar (Linear Networks) Widrow-Hoff algoritması Kısıtlamalar Geri Yayılım (Backpropagation) Geri yayılım ağının eğitilmesi... 20
7 v Çıkış katmanı ağırlıklarının ayarlanması Gizli katman ağırlıklarının ayarlanması Kısıtlamalar Kendini Düzenleyen Ağlar (Self Organizing Mapping) Kohonen öğrenme kuralı BAŞAĞRISI HASTALIKLARI VE SINIFLANDIRILMALARI Migren Gerilim Tipi Başağrısı (Tension Type Headache) Küme Başağrıları (Cluster Headache) Teşhis BAŞAĞRISI HASTALIKLARININ SINIFLANDIRILMASI ÇALIŞMASI Belirtilerin Sınıflandırılması Hastalıklar ve Belirtileri Yapay Sinir Ağları ile Teşhis Örneklerin toplanması Belirtilerin daraltılması Perseptron ile çözüm Kendini düzenleyen ağlar ile çözüm Geri yayılım ağları ile çözüm Karşılaştırma SONUÇ VE ÖNERİLER KAYNAKLAR EK-A BAŞAĞRISI HASTALIKLARI VE SINIFLANDIRILMALARI EK-B BAŞAĞRISI HASTALIKLARININ BELİRTİLERİ EK-C BAŞAĞRISI HASTALIKLARI VE BELİRTİLERİ EŞLEŞTİRMESİ EK-D MATLAB PROGRAM KODLARI... 90
8 vi ŞEKİLLER DİZİNİ 3.1 Sinir hücresinin yapısı Yapay sinir hücresi modeli Aktivasyon fonksiyonları Perseptron nöronu Perseptron mimarisi Doğrusal nöron Geri yayılım ağı Kendini düzenleyen ağ modeli... 25
9 vii ÇİZELGELER DİZİNİ 5.1 Hasta örnekleri Geri yayılım algoritmaları Geri yayılım algoritmaları ile eğitimde ortalama kare hataları Geri yayılım fonksiyonlarının test örneklerine verdiği ortalama yanlış sayıları... 39
10 viii SİMGELER ve KISALTMALAR DİZİNİ IHS VLSI YSA Uluslararası Başağrısı Derneği (International Headache Society) Çok Büyük Ölçekli Entegre Devreler (Very Large Scale Integrated Circuits) Yapay Sinir Ağları
11 1 1. GİRİŞ Bilgisayarlar gün geçtikçe yaygınlaşmakta ve hayatımızın vazgeçilmez bir unsuru olmaya başlamaktadır. Günlük hayatta büyük pay sahibi olan bilgisayarların, insanlara daha fazla yardım sunabilmesi için sürekli çalışmalar yapılmaktadır. İşyerlerinde kayıtların sayısal ortamda tutulabilmesi, randevuların bilgisayar üzerinden takip edilebilmesi, ihtiyaç duyulan bilgilerin, her geçen gün yaygınlaşmakta olan internetten aranıp bulunabilmesi gibi avantajlarından dolayı insanlar rutin ve kritik işlerini bilgisayarlar yardımıyla yapabilmektedirler. Bilgisayar teknolojisindeki büyük gelişmelere rağmen bilgisayarlar hâlâ insanların günlük hayatta kolaylıkla yaptıkları şeyleri aynı kolaylıkla yapamamaktadırlar. Sadece kendisine önceden hazır verilen komut setlerini arka arkaya çok hızlı yapabilen bilgisayarlar, insanlar gibi düşünememektedirler. İnsan beyninin her türlü probleme çözüm üretebilme yeteneğini inceleyen bilim adamları, insan beynini bilgisayar ortamında modelleyerek çözümü zor problemlerin üstesinden gelmeyi hedeflemişlerdir. Hayvanlar üzerinde psikologlar tarafından yapılan gözlemler ve beyin üzerinde biyologlar tarafından yapılan incelemeler, Yapay Sinir Ağları (Neural Networks) adı verilen modellemeye öncülük etmiştir. Yapay sinir ağları, insan beynini modellediği için klasik programlama mantığıyla çözülemeyen problemlere kabul edilebilir çözümleri kısa zamanda üretebilmektedir. Bu özelliği dolayısıyla birçok alanda uygulanabilmiş ve başarılı sonuçlar alınmıştır. Hastalıkların teşhisinde doktorlar, bilgilerine, tecrübelerine ve laboratuvar sonuçlarına bakarak karar verebilmektedirler. Doktor ne kadar konusunda uzman da olsa bazen bazı noktalar gözden kaçmakta ve yanlış teşhisler konulabilmektedir. Teşhis problemlerinde insan faktörünü ortadan kaldırmak için bilgisayar ortamında çözüm üretilmesi için bugüne kadar birçok çalışma yapılmıştır. Başağrısı hastalıkları 13 ana başlık altında toplanmıştır. Bu hastalıklar da kendi içlerinde toplam 127 alt gruba ayrılmıştır. Başağrısı hastalıkları temel olarak iki gruba ayrılabilir. İlk grup, nöroloji bilim dalını doğrudan ilgilendiren ve başka bir hastalık veya tıbbî durumla ilgili olmayan ve primer (birincil) başağrıları şeklinde isimlendirilen başağrılarıdır. Bu gruba giren hastalıklar
12 2 migren, gerilim tipi başağrıları ve küme tipi başağrılarıdır. İkinci grup başağrıları ise darbeler, göz hastalıkları, kulak burun boğaz hastalıkları, boyun hastalıkları, beyin kanaması, beyin tümörü gibi tıbbî durumlar sebebiyle oluşan ve sekonder (ikincil) başağrıları şeklinde isimlendirilen başağrılarıdır. Bu çalışma içerisinde önce yapay zeka (artificial intelligence) ve uzman sistemler (expert systems) anlatılacak, arkasından yapay sinir ağları hakkında genel bilgiler verilerek bazı önemli yapay sinir ağları modellerinin algoritmalarından bahsedilecektir. Başağrısı hastalıkları ve sınıflandırılmaları hakkında bilgiler verildikten sonra en çok rastlanan başağrısı hastalıklarının teşhisi için en uygun yapay sinir ağı modelinin bulunması için yapılan çalışmalar anlatılacaktır. Sonuç bölümünde, araştırma süresince denenen modellerden hangisinin teşhis için daha uygun olduğu söylenecek ve bundan sonra yapılabilecek çalışmalar hakkında düşünceler belirtilecektir. Bu tez çalışmasının sonunda başağrısı hastalıklarının teşhisi için hazırlanabilecek bir uzman sistem için alt yapı oluşturacak şekilde bir bilgi birikimi ortaya çıkarılmış olacaktır. Ayrıca yapay sinir ağları modellerinden hangisinin başağrısı hastalıklarının teşhisinde daha kullanışlı olduğu sonucu verilecektir. Bu çalışma, tam bir uzman sistem olmayıp, sadece nörolojik hastalıkların teşhisi için hazırlanacak olan bir uzman sistemin alt yapısı ve ön hazırlığı niteliğindedir. Ek-B ve Ek-C de verilen bilgiler, hazırlanacak böyle bir uzman sistemde temel alınarak kullanılabilecektir.
13 3 2. UZMAN SİSTEMLER (EXPERT SYSTEMS) Yapay zekâ (artificial intelligence), zeki varlıkları anlamaya çalışan bilim dalıdır. Yapay zekâ üzerinde çalışmak, aslında insanın kendi kendini tanımaya çalışması demektir. Felsefe ve psikoloji gibi zekâ ile ilgilenen diğer bilim dallarından yapay zekânın farkı, yapay zekânın zeki sistemlerle ilgilenmesinin yanında aynı zamanda zeki sistemler oluşturmakla da ilgilenmesidir  li yıllarda ilk ortaya atılışından bu yana yapay zekâ konusunda çok geniş bir yelpazede çalışmalar yapılmıştır. Sezinleme, mantıksal çıkarım, satranç, matematiksel teoremlerin ispatı, hastalıkların teşhisi, doğal dil kelimelerinin tanınması ve sınıflandırılması gibi alanlarda güzel sonuçlar alınmıştır. Zekânın işlevsel bir biçimde tanımlanması için Alan Turing tarafından geliştirilen ve Turing Testi şeklinde adlandırılan teste göre bir bilgisayarın zeki olup olmadığını anlamak için birbirleriyle yazı ile anlaşabilecek şekilde bir insan ve bir bilgisayar farklı iki odaya konur. Eğer bilgisayar, kendisinin insan mı yoksa bilgisayar mı olduğuna karar verilemeyecek kadar güzel cevaplar verebilirse, bilgisayarın zeki olduğu söylenebilir . Bir bilgisayarın Turing testini geçebilmesi için doğal dili anlayabilmesi ve kullanabilmesi, testten önceki ve test sırasında öğrendiği bilgileri saklayabilmesi, sonuçlar çıkarabilmesi ve yeni durumlara göre kendini uyarlaması ve öğrenebilmesi gerekmektedir. Günümüz koşullarında Turing testini geçebilen bir bilgisayar yapmak zor olsa da bazı özel konularda insanlar gibi karar verebilen sistemler geliştirilebilmektedir. Bu tür sistemlere Uzman Sistem (Expert Systems) adı verilmektedir. Uzman sistemler en güzel uygulama alanını tıbbî teşhis problemlerinde bulmuştur. Feigenbaum, Buchanan ve Dr.Edward Shortliffe, MYCIN adı verilen ve kan enfeksiyonlarını teşhis edebilen ilk uzman sistemi gerçekleştirmişlerdir. MYCIN, 450 kural yardımıyla uzman bir doktor kadar veya ortalama bilgiye sahip bir doktordan daha iyi olacak şekilde sonuçlar üretebilmekteydi . MYCIN den sonra Rutgers Üniversitesi nden Saul Amarel, hastalık sürecinin nedensel mekanizmasından elde edilen net bilgileri kullanarak teşhis koyabilen bir sistem geliştirdi . Bu sırada MIT ve New England Medical
14 4 Center da istatistik teorisi üzerine oturtulan bir teşhis ve tedavi çalışması yapılıyordu . Ülkemizde de hastalıkların teşhisi için uzman sistemler geliştirilmiştir. Ahmet Babanlı nın 1998 de karın boşluğu hastalıklarının teşhisi için geliştirdiği uzman sistem  örnek olarak gösterilebilir. Uzman sistemler çoğunlukla yapay zekâ algoritmalarını kullanarak hazırlanırlar. Yapay zekâ kurallarına dayalı tıbbî uzman sistemleri de hazırlanmıştır . Babanlı, üç etaplı karar alma yöntemini de YA EM 99 XX. Ulusal Kongresi nde sunmuştur . Yapay zekâ programlarının amacı, herhangi bir insanın çözebileceği problemleri çözmek iken, uzman sistem programlarının amacı, ancak bir uzmanın çözebileceği problemleri çözmektir. Geleneksel programlar, algoritma ve veri tabanının (database) birleşimi olarak düşünülürken, uzman sistem programları, geniş bir bilgi tabanı (knowledge base) ile bu bilgi tabanında gerekli bilgilerin elde edilmesini sağlayan bir çıkarım mekanizmasının birleşimi şeklinde düşünülmelidir . Uzman sistemler, karar verebilmek için çok geniş bir bilgi tabanına ihtiyaç duyarlar. Bu bilgiler de ancak bir uzmandan alınabilir. Uzman sistemlerin tasarımındaki en zor taraf, uzmanın bilgilerinin bilgisayar ortamına uygun bir biçimde aktarılmasıdır. Uzman sistemi tasarlayacak olan bilgi mühendisinin, konusunda uzman olan kişiyi gözlemesi, onun problem çözüm yöntemlerini, kurallarını, stratejilerini ve prosedürlerini uygun biçimde alarak uzman sistem içerisine yerleştirmesi gerekir . Uzman sistemler, kullanıcılara önemli faydalar sağlarlar. Bu faydalar ekonomik olabileceği gibi vakit kazandırıcı ve eğitici faydalar da olabilir. Bu faydalar arasında üretim artışı, süreklilik, maliyet tasarrufu, kalite düzeyinin yükselmesi, çalışılmayan sürenin azaltılması, uzmanlığın yaygınlaştırılması, mesleğe yeni girenlerin eğitilmesi, sağlıklı öneri üretilmesi, güvenilirlik ve kesin olmayan eksik bilgilerle çalışabilme gibi faydalar sayılabilir .
15 5 3. YAPAY SİNİR AĞLARI (NEURAL NETWORKS) 3.1. Yapay Sinir Ağları Hakkında Genel Bilgiler Bilgisayar teknolojisindeki ilerlemeler, hep insanoğlunun işlerini kolaylaştırmayı amaçlamıştır. Elektronik sistemlerde matematiksel işlemler çok hızlı biçimde yapılabilmekte; böylece ardı ardına defalarca yapılması gereken işlemlerde büyük kolaylık sağlanmaktadır. Bu büyük hızlarına rağmen bilgisayarların insan kadar hızlı yapamadığı işlemler vardır. İnsan, yolda gördüğü birini tanıyıp tanımadığını, tanıyorsa kim olduğunu milisaniye içerisinde algılayabilmektedir. Bu işi günümüzün en hızlı bilgisayarları bile bu kadar kısa bir zamanda yapamamaktadır . Bilgisayarların bu kadar hızlı olmalarına rağmen, görsel imgelerdeki şekilleri kavramak, önceki tecrübeleri kullanarak yeni şeyler öğrenmek ve karmaşık problemleri çözmek gibi konularda insan beyninden geri kalması, bilim adamlarını insan beynini incelemeye ve bilgisayar ortamında modellemeye sürüklemiştir. Yapay Sinir Ağları (YSA) kavramı bu şekilde ortaya çıkmıştır  Biyolojik sinir hücresi İnsan beyni, 10 milyar civarındaki sinir hücresinden oluşur. Şekil 3.1 de bir sinir hücresinin yapısı görülmektedir. Nöron da denilen bir sinir hücresi; soma adı verilen bir hücre gövdesi, dendrit ve akson adları verilen liflerden oluşur. Dendritler, sinir hücresine diğer sinir hücrelerinden gelen elektriksel darbeleri toplarlar. Aksonlar ise, sinir hücresinin ürettiği elektriksel darbeyi diğer hücrelere iletmekle görevlidirler. Aksonların bitimi, her biri başka bir sinir hücresine bağlanan ince yollara ayrılabilir. Aksonlar ile dendritlerin bağlantı kurmalarına aracılık eden elemana ise sinaps adı verilir. Dendritler vasıtasıyla diğer sinir hücrelerinden gelen elektriksel darbeler toplanır ve hücrenin içiyle dışı arasındaki potansiyel fark belli bir eşik değerin üzerine çıktığında bir elektrik darbesi üretilerek bu darbe aksonlar vasıtasıyla diğer hücrelere iletilir .
16 6 Şekil 3.1 Sinir hücresinin yapısı Yetişkin bir insan beynindeki sinir hücreleri, 60 trilyon kadar sinaps ile birbirlerine bağlıdırlar. Bu yapısıyla beyin, son derece karmaşık, doğrusal olmayan ve paralel bir yapıya sahiptir. Bu yapı sebebiyle sinir hücreleri, günümüz bilgisayarlarına oranla çok daha yavaş olmalarına rağmen duyusal bilgileri bilgisayarlardan daha hızlı değerlendirebilmektedir  Sinir hücresinden yapay sinir ağına geçiş Sinir hücrelerinin diğer sinir hücrelerinden gelen sinyalleri toplayıp yeni bir sinyal üreterek başka sinir hücrelerine göndermesi prensibinden yola çıkılarak, sinir hücrelerinin ve dolayısıyla insan beyninin matematiksel modelinin oluşturulmasında büyük mesafeler kat edilmiştir. Beynin tam ve doğru olarak modellenebilmesi için çeşitli yapay hücre ve ağ modelleri geliştirilmiştir. Böylece günümüz bilgisayarlarının sıralı hesaplama yönteminden farklı bir yöntem ortaya koyan YSA, yeni bir bilim alanı olarak ortaya çıkmıştır. Bilgi işleme yöntemindeki farklılık nedeniyle YSA, bir çok alanda uygulanabilirlik kazanmıştır. Yapay Sinir Ağları, beynin bir işlevi yerine getirme yöntemini modellemek için tasarlanan bir sistem olarak tanımlanabilir. YSA, sinir hücrelerinin kendi aralarında çeşitli şekillerde bağlanmasıyla oluşturulur. Sinir hücreleri genellikle katmanlar halinde düzenlenir. Bilgisayarlarda yazılım olarak oluşturulduğu gibi, elektronik devrelerle de gerçeklenebilir. YSA, istenen amaca ulaşabilmek için sistemin eğitilmesini sağlayan öğrenme algoritmalarını da kapsar. YSA, değişen koşullara göre kendini yenileyebilmek için öğrendiklerini unutma yeteneğine de sahiptir. YSA da beyin gibi bilgiyi bir öğrenme sürecinden sonra kazanır ve kazanılan bu bilginin saklanmasında sinirler arasındaki sinaptik ağırlıklar olarak ifade edilebilen bağlantı kuvvetleri kullanılır. Bir bilgisayar
17 7 programcısının, program yazarken yapması gereken şey, giriş verileriyle çıkış verileri arasında bir bağlantı kurmak ve bunu kodlamaktır. YSA, giriş ve çıkış verilerine bakarak bu bağlantıyı kurma yeteneğine sahiptir. Bu şekilde, verilerin nasıl işlenebileceğini belirleme yeteneğine kendini düzenleme denir. Kendini düzenleme yeteneğinin aşamaları adaptasyon ve öğrenmedir  Yapay sinir ağlarının özellikleri Yapay sinir ağı, hesaplama gücünü iki önemli özelliğinden alır: Güçlü, paralel dağılmış yapısı ve öğrenip genelleme yapabilme yeteneği. Genelleme, daha önce öğrenme sürecinde karşılaşılmayan verilere uygun mantıklı çıkışlar üretebilmek şeklinde tanımlanabilir. Bu iki önemli özellik sayesinde yapay sinir ağları karmaşık problemlerin çözümünde kullanılabilir. Yapay sinir ağlarının başlıca özellikleri şöyle sıralanabilir: 1. Doğrusal (lineer) olmama: YSA nın temel işlem elemanı olan sinir hücresi 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. Ses verileri gibi doğasında doğrusallık olmayan giriş verilerinin çözümlenmesinde YSA nın bu özelliği büyük kolaylık sağlamaktadır. 2. Öğrenme: YSA, kendisine verilen giriş ve çıkış verileri arasında eşleştirme yapabilir. Bu eşleştirme, bir çeşit haritalandırmadır. YSA nın arzu edilen davranışı gösterebilmesi için amaca uygun olarak ayarlanması gerekir. Bu ayarlama, sinir hücreleri arasında doğru bağlantıların yapılması ve bağlantıların uygun ağırlıklara sahip olması ile mümkün olabilir. YSA nın karmaşık yapısı sebebiyle bağlantılar ve ağırlıklar önceden ayarlı olarak verilemez ya da tasarlanamaz. YSA, istenen davranışı gösterecek şekilde eğitim örneklerini kullanarak bağlantıları ve ağırlıkları ayarlayabilir. 3. Adaptasyon: Çevre şartlarındaki değişimlere göre YSA, sinaptik ağırlıklarını ayarlayarak adapte olabilme kapasitesine sahiptir. Bu özellikten yeterince yararlanabilmek için temel zaman aralıklarının çok küçük değişimleri göz ardı edebilecek kadar uzun ve anlamlı, çevre değişimlerine tepki verebilecek kadar da kısa seçilmesi
18 8 gerekir. YSA nın bu özelliği, uyarlamalı örnek tanıma, sinyal işleme ve denetim gibi alanlarda etkin olarak kullanılır. 4. Kanıta dayalı çıkış verme: YSA, örnek sınıflandırma konusunda hangi özel örneğin seçileceğini vermesinin yanında, seçimin güvenilirliği hakkında da bilgi verecek şekilde tasarlanabilir. 5. Genelleme: Ağdaki her bir nöron, diğer nöronlardaki bir değişiklikten etkilenir. 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 sonuçlar verebilir. 6. Hata toleransı: Yapay sinir ağları, başka hesaplama yöntemleri gibi ufak hatalardan etkilenmemektedir. Hata toleransı, fiziksel ve mantıksal olarak fazladır. YSA nın bazı bağlantılarının, hattâ bazı hücrelerinin etkisiz hale gelmesi, ağın doğru bilgi üretmesini önemli ölçüde etkilemez. YSA da bilgi, tek bir yerde saklanmayıp bütün sisteme dağıtıldığı için geleneksel yöntemlere göre hatayı tolere etme yeteneği daha yüksektir. 7. VLSI uygulanabilirlik: Yapay sinir ağları ile çok büyük ölçekli entegre devreleri (VLSI = Very Large Scale Integrated Circuits) uygulamaları yapılabilir. 8. Analiz ve tasarım birliği: YSA nın temel işlem elemanı olan hücrenin yapısı ve modeli, bütün YSA yapılarında yaklaşık aynıdır. 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. Bütün YSA uygulamalarında hep aynı gösterimin kullanılması, problemlerin YSA ile çözümünde önemli bir kolaylık getirmektedir. 9. Nörobiyolojik benzerlik: Hızlı, güçlü, hata toleranslı, paralel bir bilgi işleme birimi olarak beyin, YSA ların tasarımını motive eden fiziksel bir kanıttır .
19 Yapay sinir ağlarının uygulama alanları Bugüne kadar yapay sinir ağları, çözümü güç ve karmaşık olan ya da ekonomik olmayan, çok farklı alanlardaki birçok probleme uygulanmış ve genellikle başarılı sonuçlar alınabilmiştir. YSA lar çok farklı alanlara uygulanabildiğinden, bütün uygulama alanlarını burada sıralamak zor olmakla birlikte, başlıca uygulama alanlarını şu şekilde sıralayabiliriz: 1. Arıza analizi ve tespiti: Bir sistemin, cihazın ya da elemanın düzenli ve doğru çalışma şeklini öğrenen bir YSA yardımıyla, bu sistemde meydana gelebilecek arızalar tanımlanabilir. Bu amaçla YSA, elektrik makinelerinde, uçaklarda, entegre devrelerde, v.s. kullanılmıştır. 2. Tıp alanında: EEG ve ECG gibi tıbbî sinyallerin analizi, kanserli hücrelerin tespiti, protez tasarımı, transplantasyon zamanlarının optimizasyonu, hastalıkların teşhisi gibi alanlarda YSA kullanılabilir. 3. Savunma sanayii: Silahların otomasyonu ve hedef izleme, nesneleri ve görüntüleri ayırma ve tanıma, algılayıcı tasarımı ve gürültü önleme gibi alanlara YSA uygulanmıştır. 4. Haberleşme: Görüntü ve veri sıkıştırma, otomatik bilgi sunma servisleri, konuşmaların gerçek zamanlı çevirisi gibi alanlarda uygulama örnekleri vardır. 5. Üretim: Üretim sistemlerinin optimizasyonu, ürün analizi ve tasarımı, ürünlerin (entegre, kâğıt, kaynak, v.s.) kalite analizi ve kontrolü, planlama ve yönetim analizi, v.s. alanlarında YSA uygulanmıştır. 6. Otomasyon ve kontrol: Uçaklarda otomatik pilot sistemi otomasyonu, ulaşım araçlarında otomatik yol bulma ve gösterme, robot sistemlerinin kontrolü, doğrusal olmayan sistem modelleme ve kontrolü, elektrikli sürücü sistemlerinin kontrolü gibi yaygın bir uygulama alanı bulmuştur.
20 Yapay sinir hücresi modeli Bir biyolojik sinir hücresinden diğerine sinapslardan sinyal gönderimi, sinyali alan hücre gövdesinin elektrik potansiyelinin yükseltilmesi ya da düşürülmesi yoluyla olur. Eğer bu potansiyel, bir eşik değere ulaşırsa nöron ateşlenir. McCulloch ve Pitts tarafından 1943 te önerilen yapay nöron modelinin dayandığı esas da bu özelliktir . Şekil 3.2 Yapay sinir hücresi modeli Şekil 3.2 de verilen yapay sinir hücresi modelinin x 1, x 2,, x N ile belirtilen N tane giriş verisi vardır. Bu giriş verileri sırasıyla w 1, w 2,, w N ağırlıklarına bağlıdır. Modeldeki ağırlıklar, biyolojik sinir hücresindeki sinaptik bağlantılara karşılık gelmektedir. Yapay sinir hücresindeki eşik değeri θ ile gösterilmektedir. Yapay sinir hücresinin aktivasyon değeri, her bir giriş verisinin kendisine karşılık gelen ağırlıkla çarpılıp toplanmasından sonra θ eşik değerinin eklenmesiyle hesaplanır: N a j 1 x w j j (3.1) Eşik değeri, sanal bir giriş değeri olarak gösterilip x 0 = 1 ve w 0 = θ olarak tanımlanırsa, aktivasyon formülü şu hale gelir: a N j 0 x j w j (3.2) Nöronun çıkış değeri, biyolojik sinir hücresinin ateşleme frekansına benzer şekilde, aktivasyonun bir fonksiyonudur: y f (a) (3.3)
21 Aktivasyon (Transfer) fonksiyonları Hücre modellerinde, hücrenin gerçekleştirdiği işlece göre çeşitli tipte aktivasyon fonksiyonları kullanılabilir. Aktivasyon fonksiyonları, muhtemel sonsuz alan girişli işlem elemanlarını önceden belirlenmiş sınırda çıkış olarak düzenler. Yaygın olarak kullanılan dört aktivasyon fonksiyonu vardır: Rampa, basamak, doğrusal ve sigmoid. Bu fonksiyonlardan üçü Şekil 3.3 te gösterilmiştir . Şekil 3.3 Aktivasyon fonksiyonları: (a) Basamak (b) Rampa (c) Sigmoid Kendisinin ve türevinin sürekli olması nedeniyle en çok tercih edilen doğrusal olmayan aktivasyon fonksiyonu sigmoid fonksiyonudur ve şu formülle ifade edilir: 1 f ( a) (3.4) 1 a e Aktivasyon fonksiyonunun ana görevi, girişlerin alan sınırlandırmasını yapmaktır. Eğer girişlerin derecelendirilmesi uygun sınırlarda yapılırsa çıkışlar da ayırt edilebilir bir biçimde üretilirler. Aksi takdirde çıkışlar ya tepe noktalarda birikme yapar ve küçük değişimlere konsantre olunduğundan genel eğilim anlaşılamaz, ya da tam tersi şekilde genel çıkış eğilimini görebilmek için sınırlar yetmeyebilir. Hesaplamalara başlamadan önceki ağırlıklar, seçilen algoritmaya göre gelişigüzel belirlenir. Öğrenme algoritması daha sonra bu ağırlıkların değiştirilmesini sağlayacaktır.
22 Yapay sinir ağı yapıları Tek bir yapay sinir hücresi kullanılarak çözülebilen problemler olsa da, çoğu problemin çözümünde daha fazla sayıda yapay sinir hücresine ihtiyaç duyulmaktadır. Bu tür problemlerin çözülebilmesi için bazı nöronların çıkışlarının başka nöronların girişine bağlanması gerekir. Bu şekilde birbirine bağlanan nöronlarla bir ağ oluşturulur. Nöronların sayısı ve tipi arttıkça bunların gruplandırılması gereği ortaya çıkar. Aynı transfer fonksiyonuna sahip nöronların gruplara ayrılması ile ağ, katmanlı bir yapıya kavuşturulabilir. Katmanların hiyerarşik bir biçimde bağlanmasıyla ağ oluşturulur. Yapay sinir ağını eğitmede kullanılan algoritmalarla ağ yapısı arasında çok yakın bir ilişki olduğu için eğitimde kullanılan algoritmadan önce ağın yapısının belirtilmesi gerekir. Ağ yapıları temek olarak üç kısma ayrılır: 1. Tek katmanlı ileri beslemeli ağ: En basit katmanlı ağ türüdür. Veri akışı giriş katmanından çıkış katmanına doğrudur. Bir nöronun çıkışı, başka bir nöronun girişi olamaz. 2. Çok katmanlı ileri beslemeli ağ: Herhangi bir işlem elemanının çıkışı, aynı katmandaki veya önceki katmanlardaki bir başka işlem elemanının girişi olmuyorsa ağ ileri beslemeli ağ olarak adlandırılır. Giriş verilerini doğrudan alan katmana giriş katmanı, ağın çıkışını üreten katmana da çıkış katmanı denir. Bu iki katman arasındaki katmanlara gizli katmanlar adı verilir. Gizli katmanların sayısının arttırılması, yüksek dereceden istatistik bilginin açılımına olanak tanır. Çok katmanlı ileri beslemeli ağda en az bir gizli katman olmalıdır. Veri akışı giriş katmanından çıkış katmanına doğrudur. Her bir katmandaki nöronların çıkışları, sonraki katmandaki bütün nöronların girişine bağlıysa bu tür ağların tümüyle bağlı olduğu söylenir. 3. Kaskat (yinelenen) bağlantılı ağ: Bu yapıdaki ağlar en az bir tane geri besleme bağlantısı içerir. Tek katmanlı olabildiği gibi çok katmanlı da olabilir.
23 Perseptronlar Perseptron kavramı, 1950 li yılların sonlarında psikolog Frank Rosenblatt tarafından zeki sistemlerin temel özelliklerinden bazılarını simüle etmek  amacıyla ortaya konmuştur. 0 ve 1 çıkışlarını üreten basamak fonksiyonunu kullanan perseptron yapay sinir hücresi, Şekil 3.4 te gösterilmiştir . Şekil 3.4 Perseptron nöronu Şekildeki nöronun p 1, p 2,, p R şeklinde gösterilen R adet girişi vardır. Bu girişlere karşılık gelen ağırlıklar sırasıyla w 1, w 2,, w R ile gösterilmiştir. Eşik değeri b, transfer fonksiyonu ve nöronun çıkışı a ile gösterilmiştir. Perseptronun kullandığı transfer fonksiyonu şu formülle ifade edilir: 1, n 0 ( n) (3.5) 0, n 0 Bu durumda nöronun çıkışı aşağıdaki ifadeyle bulunur: R a w j p j b (3.6) j 1 Girişler R 1 boyutlu p matrisiyle, ağırlıklar 1 R boyutunda W matrisiyle gösterilirse çıkış şu şekilde ifade edilir: a ( Wp b) (3.7) Burada, ve w R W w w (3.8) 1 2
24 14 p1 p2 p (3.9) p R dönüşümleri yapılmıştır. 0 ve 1 çıkışlı transfer fonksiyonu, perseptron nöronuna giriş vektörlerini ikiye ayırarak sınıflandırma yeteneği kazandırmaktadır. Giriş vektörlerini ikiden fazla sınıfa ayırmak gerektiğinde birden fazla perseptron nöronu kullanmak gerekir. S tane nöron kullanıldığında giriş vektörleri S 2 farklı sınıfa ayrılabilir. Şekil 3.5 te böyle bir ağın mimarisi ve matrislerle ifadesi gösterilmiştir . Şekil 3.5 Perseptron mimarisi Tek nörondan S tane nörona geçilirken Denklem (3.8) deki W matrisi, elemanı i inci nöronun j inci giriş elemanına karşılık gelen ağırlık olacak şekilde genişletilmelidir: w ij w11 w12 w1 R w21 w22 w2r W (3.10) ws1 ws 2 wsr Her nöronun eşik değeri olacağından, eşik değeri de matris şeklinde ifade edilmelidir:
25 15 b1 b2 b (3.11) b S Bu durumda, sistemin çıkışı S 1 boyutlu bir matris olur ve aşağıdaki ifadeyle hesaplanır: a ( Wp b) (3.12) Şekil 3.5 te gösterilen ağ yapısına istenildiği kadar katman eklenebilir. Aşağıda anlatılacak olan öğrenme algoritması her katmana uygun bir sırayla uygulandığında sistem eğitilebilir Perseptronun eğitilmesi Yapay sinir ağlarının öğrenmesi iki yolla olur : 1. Öğreticili öğrenme (Supervised learning): Yeteri kadar giriş verisi ve sistemin bu verilere vermesi gereken yanıtları içeren bir örnekler kümesi varsa girişler ve çıkışlar arasındaki uygun ağırlıklar bulunabilir. Buna öğreticili öğrenme denir. Perseptronun öğrenme kuralı bu grup öğrenmeye girmektedir. 2. Öğreticisiz öğrenme (Unsupervised learning): Ağırlıklar ve eşik değerleri sadece giriş verileri kullanılarak ayarlanır. Bu tür öğrenme algoritmalarının çoğu, verileri kümelendirme işlevi görür. Perseptron ağında tek bir nöron olduğu durumda sistemin nasıl eğitildiğine bakalım. Sistemi eğitmek için kullanılacak Q tane veri olsun. Verilerin her biri p, i 1,2, Q vektörleriyle gösterilsin. Bu girişlere karşılık olarak nörondan i, alınması gereken sonuçların her biri t i, i 1,2,..., Q sayılarıyla ifade edilsin. Nöronun giriş verilerine verdiği yanıtlar a i, i 1,2,..., Q sayıları olsun. Nöronun eğitilmesi için yapılması gereken şey, nöronun giriş verilerine verdiği yanıt ile vermesi gereken yanıt arasındaki fark ile ifade edilebilen hatayı azaltmaktır. Azaltılması gereken bu hata, e i, i 1,2,..., Q sayılarıyla gösterilsin. t i ve a i, transfer fonksiyonunun çıktısı 0 ya da 1 olduğu için sadece 0 ve 1 değerlerini alabilir. t i ve a i arasındaki üç farklı duruma göre sistem şu şekilde eğitilebilir:
26 16 Durum 1: t i ve a i birbirine eşitse ağırlık vektörlerinde bir değişiklik yapılmaz. Durum 2: Nöronun verdiği çıktı 0 ise ve vermesi gereken yanıt 1 idiyse, yani a 0, t 1 ve dolayısıyla e 1 ise, giriş vektörünün i i değerleri, kendilerine karşılık gelen ağırlığa eklenir. Böylece giriş vektörünün ileriki zamanlarda 1 çıktısı verme olasılığı arttırılmış olur. Durum 3: Nöronun verdiği çıktı 1 ise ve vermesi gereken yanıt 0 idiyse, yani a 1, t 0 ve dolayısıyla e 1 ise, giriş vektörünün i i değerleri, kendilerine karşılık gelen ağırlıktan çıkartılır. Böylece giriş vektörünün ileriki zamanlarda 0 çıktısı verme olasılığı arttırılmış olur. Yukarıda anlatılan perseptron öğrenme kuralı, hata e i ve ağırlık vektörüne yapılacak değişiklik w i cinsinden yazılabilir: Durum 1: e 0 ise w 0. i i i i Durum 2: e 1 ise i T w i p i. Durum 3: e 1 ise i T i p i w. Bu üç durum, tek bir formülle ifade edilebilir: w (3.13) i T T ( t i ai ) pi eip i Sistemin eşik değerlerinin eğitilmesi de aynı şekilde yapılabilir. Eşik değeri, girişi daima 1 olan bir ağırlık olarak düşünülürse aşağıdaki formül çıkartılabilir: b ( t a )(1) e (3.14) i i (3.13) ve (3.14) denklemleri tek bir nöron yerine bir nöron katmanı için yazılacak olursa sırasıyla şu denklemler elde edilir: i i T T ( t i ai ) p i eip i i W (3.15) b ( t a ) e (3.16) i (3.15) ve (3.16) denklemleri, perseptron öğrenme kuralı olarak adlandırılır. Dikkat edilirse bu öğrenme kuralının tek bir girdi-çıktı ikilisi üzerinde uygulandığı görülecektir. Eldeki Q tane örnek için bu kural uygulanırsa ve bütün i i i
27 17 örneklerin üzerinden giriş vektörleri hatasız sınıflanana kadar geçilirse perseptron ağı eğitilmiş olur. Bütün giriş verileri üzerinden öğrenme kuralı uygulanarak bir defa geçilmesine epok adı verilir. Problem eğer çözülebilir bir problem ise perseptron ile sonlu sayıda epokta çözüme ulaşılabilir  Kısıtlamalar Perseptronlar, kullandıkları transfer fonksiyonu sebebiyle sadece 0 ve 1 çıktılarıyla ifade edilebilen problemleri çözebilirler. Perseptronlar sadece doğrusal ayrılabilir vektör kümelerini sınıflandırabilirler. Doğrusal ayrılamayan vektör girişlerinde asla tam sonuca ulaşılamaz. Perseptronlar en iyi çözümü değil, kabul edilebilir herhangi bir çözümü bulurlar. Bir karenin dört köşesinde yer alan noktaların iki çizgi ile birbirinden ayrılması probleminin sonsuz sayıda çözümü vardır. İnsan beyni genellikle karenin kenarlarının orta noktalarından geçen birbirine dik iki doğru ile problemi çözerken, perseptronlar sonsuz sayıdaki çözümlerden ilk karşılaştıkları hangisiyse çözüm olarak onu sunarlar. Giriş vektörlerinden birinin uzunluğu, diğerlerine oranla çok fazla büyükse perseptronların çözüme ulaşma süresi artar. Bu dezavantajı ortadan kaldırmak için Denklem (3.13) te verilen öğrenme kuralı yerine aşağıda verilen normalize perseptron öğrenme kuralı kullanılabilir : T T p i p i w i ( t i ai ) ei (3.17) p p i i 3.3. Doğrusal Ağlar (Linear Networks) Doğrusal ağlar, perseptrona benzemelerinin yanında doğrusal transfer fonksiyonları ile perseptrondan ayrılırlar. Şekil 3.6 da bir doğrusal nöron gösterilmiştir.
28 18 Şekil 3.6 Doğrusal nöron Doğrusal transfer fonksiyonu, aldığı parametreyi olduğu gibi geri döndüren bir fonksiyondur: ( n) n (3.18) Perseptron nöronu sadece 0 ve 1 çıkışlarını üretebilirken doğrusal nöronun çıkışı herhangi bir değer olabilir. Perseptron gibi doğrusal ağlar da sadece doğrusal ayrılabilen problemleri çözebilirler. Ağın eğitilmesi için Widrow-Hoff algoritması da denilen En Küçük Kareler (Least Mean Squares) algoritması kullanılır. Bu algoritma, hataların kare toplamını minimize etme esası üzerine kuruludur  Widrow-Hoff algoritması Şekil 3.6 da gösterilen doğrusal nöronun eğitilmesi için Q tane örnek hazırlanmış olsun. j inci örnek ile ve nöronun vermesi istenen gerçek yanıt p j ile, doğrusal nöronun buna verdiği yanıt a j t j ile gösterilsin. j inci örnek için hata şu şekilde gösterilir: e j t a (3.19) j j Widrow-Hoff algoritmasına göre hatanın karesinin ortalaması, yani hatanın beklenen değeri minimize edilmelidir. Ortalama kare hata şöyle ifade edilir: Q 2 1 j Q j 1 2 j e e (3.20) Ortalama kare hatanın minimize edilmesiyle w ağırlık matrisi tam olarak bulunabilir. Widrow-Hoff algoritması, minimum hataya erişmek için iteratif bir yöntem önerir. Hata, ağırlıkların bir fonksiyonu olduğundan, çanak şeklinde
29 19 düşünülebilecek hata grafiği üzerindeki herhangi bir noktadan eğimin tersi yönünde belli bir miktar gidilirse ve bu defalarca tekrarlanırsa hatanın en küçük olduğu noktaya veya yakınlarına ulaşılabilir. Kare hata grafiğindeki eğimi bulmak için kare hatanın her bir ağırlığa göre kısmî türevi alınmalıdır: e w 2 j e 2e w j, j 1,2,..., R (3.21) Eşik değer için de aynı formül geçerlidir: 2 e e 2e b b Denklem (3.21) in hesaplanabilmesi için j (3.22) e / w ifadesi aşağıdaki şekilde hesaplanabilir: e w j ( t a) w j w j t ( wp b) w p j j t R i 1 w p i i b (3.23) Eşik değeri, girişi daima 1 olan ağırlık olarak düşünülürse Denklem (3.23), eşik değer için şu şekilde yazılabilir: e 1 (3.24) b Ağırlıklar, bu eğimlerin tersi istikamette belli miktar ötelenirse çözüme yaklaşılmış olur. Ağırlıklar ve eşik değeri üzerinde yapılacak değişiklikler, birden fazla sayıda nörondan oluşan bir katman için matrislerle şu şekilde ifade edilir: T 2 j W e j p (3.25) b 2 e j (3.26) Bu denklemlerdeki, öğrenme katsayısı olarak adlandırılır. ne kadar büyük olursa öğrenme işlemi o kadar çabuk tamamlanır. Eğer gereğinden fazla büyük olursa sistem kararsızlığa sürüklenebilir ve hattâ hata sürekli artabilir. Kararlı bir öğrenme için öğrenme katsayısı, korelasyon matrisi p T p nin en büyük özdeğerinin çarpmaya göre tersinden küçük olmalıdır. Öğrenme işlemi, giriş
30 20 verileri üzerinde ortalama kare hata sıfır olana veya belli bir değerin altına düşene kadar tekrarlanabilir  Kısıtlamalar Tek girişli, çok çıkışlı sistemlerde tam çözüm olmayacağı ihtimalinden dolayı doğrusal ağ ağırlıklarını doğru ayarlayamayabilir. Fakat yine de hatayı minimize edebilir. Tek girişli, tek çıkışlı sistemlerde sonsuz sayıda çözüm olacağı için doğrusal ağ tatmin edici bir çözüm sunamayabilir. Öğrenme katsayısı dikkatli seçilmelidir. Çok küçük olursa öğrenme yavaş olur. Çok büyük olursa çözüm atlanabilir  Geri Yayılım (Backpropagation) Widrow-Hoff öğrenme kuralının çok katmanlı ağlar ve doğrusal olmayan transfer fonksiyonları için genelleştirilmesiyle geri yayılım yapay sinir ağları ortaya çıkmıştır. Geri yayılım ağları, transfer fonksiyonları genellikle tanjantsigmoid, logaritmik sigmoid veya doğrusal olan birden fazla katmandan oluşur. Çıkış katmanının transfer fonksiyonu çoğunlukla doğrusal seçilir. Şekil 3.7 de logaritmik sigmoid fonksiyonlu gizli bir katman ve doğrusal fonksiyonlu bir çıkış katmanından oluşan bir geri yayılım ağı gösterilmiştir . Şekil 3.7 Geri yayılım ağı Geri yayılım ağının eğitilmesi Geri yayılım ağları için Widrow-Hoff algoritması kullanılabilir. Sistemin eğitilmesi için Q tane veri seti hazırlanmış olsun. Burada, formüllerdeki karışıklığı azaltmak amacıyla sadece bir veri ve bu veriye ait çıktı göz önünde
31 21 bulundurulacaktır. Giriş verisi N elemanlı p vektörü, buna ait çıktı M elemanlı t vektörü olsun. Giriş verilerini doğrudan alan gizli katmanın ağırlık matrisi L N boyutlu (g) W matrisi, eşik vektörü 1 L boyutlu b (g) olsun. Ağırlık matrisinin satır sayısı L, aynı zamanda gizli katmandaki nöron sayısını da göstermektedir. Gizli katmanın iç aktivasyonu yazılabilir: n n (g) vektörü aşağıdaki gibi (g) (g) (g) W p b (3.27) İç aktivasyonun her bir elemanı aşağıdaki formülle bulunur: N (g) (g) (g) n W p b, j 1,2,..., L (3.28) j i 1 ji i j Burada (g) W ji, gizli katmanın j numaralı nöronunun i numaralı girişine karşılık gelen ağırlık değeridir. Gizli katmanın çıkışı (g) a, (g) n aktivasyon (g) vektörünün transfer fonksiyonundan geçirilmiş halidir: a (g) (g) (g) n (3.29) Gizli katmanın çıkışının her bir elemanı aşağıdaki denklem ile hesaplanır: a (g) (g) (g) j n j (3.30) Çıkış katmanının ağırlık matrisi M L boyutlu (ç) W, eşik vektörü M 1 boyutlu (ç) b, iç aktivasyonu (ç) n ile gösterilirse iç aktivasyon (ç) n, ile hesaplanır. hesaplanır: n (ç) (ç) (ç) (ç) W a b (3.31) (ç) n vektörünün her bir elemanı aşağıdaki denklemle Burada L (ç) (ç) (g) (ç) n W a b, k 1,2,..., M (3.32) k j 1 kj j k (ç) W kj, çıkış katmanının k numaralı nöronunun j numaralı girişine karşılık gelen ağırlık değeridir. Çıkış katmanının verdiği M 1 boyutlu çıktı aktivasyon vektörü (ç) (ç) n nin transfer fonksiyonu den geçirilmiş şeklidir: Çıkış vektörünün her bir elemanı, a (ç) a, (ç) (ç) (ç) n (3.33) (ç) n, k 1,2 M (ç) (ç) k k,..., a (3.34)
32 22 denklemi ile bulunur. Hata vektörü e, sistemin vermesi gereken gerçek yanıt ile verdiği yanıt arasındaki farktır: e (ç) t a (3.35) Hata vektörünün her bir elemanı aşağıdaki denklemle hesaplanır: (ç) e k t k a k, k 1,2,..., M (3.36) Yukarıdaki denklemlerdeki (g) üst indisi giriş, (ç) üst indisi çıkış anlamında kullanılmıştır. Widrow-Hoff algoritmasına göre hataların karelerinin toplamı minimize edilmelidir: E 1 2 M 2 e k k 1 (3.37) Formüldeki 1 / 2 katsayısı, türev alındığında gelecek olan 2 sayısını sadeleştirmesi için konmuştur Çıkış katmanı ağırlıklarının ayarlanması Denklem (3.37) deki enerjinin minimize edilmesi için, çıkış katmanındaki her bir ağırlığa göre kısmî türevinin alınması ve bulunan eğimin tersi yönünde belli bir miktar gidilmesi gerekir. Enerjinin çıkış katmanındaki ağırlıklara göre türevi, zincir kuralı kullanılarak aşağıdaki gibi açılabilir: E W (ç) kj E e k e a k (ç) k a n (ç) k (ç) k n W (ç) k (ç) kj (3.38) (3.37), (3.36), (3.34) ve (3.32) kullanılarak türevler alınırsa (3.38) deki kısmî türev, olur. yaklaşılmış olur. E W (ç) (ç) (g) e n a 1 (ç) k kj (ç) (ç) (ç) (g) t a n a k k k k j j (3.39) (ç) W kj ağırlığı, (3.39) un katı kadar geri ötelenirse çözüme bir adım (ç) W kj ağırlığına yapılacak değişiklik, W (ç) kj (ç) (ç) (ç) (g) t a n a (3.40) k k k j
33 23 şeklinde hesaplanır. Buradaki, öğrenme katsayısıdır. Denklemdeki k (ç) indisine bağlı terimler k değişkeninde toplanabilir: (ç) k (ç) (ç) (ç) t a n (3.41) (3.41) kullanılarak (3.40) tekrar yazılabilir: k (ç) kj k (ç) k (g) j k W a (3.42) Eşik değerleri, girişi daima 1 olan ağırlık gibi düşünülebileceğinden, eşik değerleri üzerinde yapılması gereken değişiklik, olarak hesaplanır . b (3.43) (ç) (ç) k k Gizli katman ağırlıklarının ayarlanması bir Gizli katman ağırlıklarının ayarlanması için (3.37) de verilen enerjinin her (g) W ji ağırlıklarına göre kısmî türevinin hesaplanması gerekir. Bu türev, zincir kuralına göre şöyle açılabilir: E W (g) ji M k 1 E e k e a k (ç) k a n (ç) k (ç) k n a (ç) k (g) j (g) (g) a j n j (3.44) (g) (g) n W j ji Kısmî türevlerin hesaplanması için (3.37), (3.36), (3.34), (3.32), (3.30) ve (3.28) kullanılırsa, E W M e k 1 (g) ji k 1 (g) (ç) (ç) (ç) (g) (g) n W n M (g) (ç) (ç) (ç) n j p i t k a k n k k 1 bulunur. (3.41), denklemdeki yerine konursa, E W (g) ji k kj M (g) n j p i k 1 j p i W (ç) kj (3.45) (g) (ç) (ç) W (3.46) (g) olur. j indisine bağlı terimler j değişkeninde toplanırsa, denklem (3.46) şu şekle dönüşür: M k 1 k (g) (g) (g) (ç) (ç) n W (3.47) j j k kj kj
34 24 E W (g) ji (g) j p i (3.48) Öyleyse ağırlıklar üzerinde yapılacak değişiklik (g) W ji p (3.49) formülüyle hesaplanır. Eşik değerleri, girişi daima 1 olan ağırlıklar olarak düşünülürse eşik değerleri üzerinde yapılması gereken değişiklik aşağıdaki denklemde olduğu gibi hesaplanır: (g) j i (g) (g) b (3.50) j (3.42), (3.43), (3.49) ve (3.50) de hesaplanan değişiklikler, Q örneğin her biri için sırayla uygulansa ve hataların ortalaması sıfır olana veya belli bir değerin altına düşene kadar tekrarlansa problem çözülmüş olur  Kısıtlamalar Sistemin eğitilmesinde transfer fonksiyonunun türevi kullanıldığından, geri yayılım ağında kullanılacak transfer fonksiyonlarının türevlenebilir olması gereklidir. Transfer fonksiyonu olarak 1 ( n) (3.51) n 1 e kullanılırsa, pratik türevi olarak ( n) ( n) 1 ( n) (3.52) kullanılabilir. Eğitimde kullanılan öğrenme katsayısı küçük alınırsa çözüm daha hassas olmasına rağmen yavaş olacaktır. Büyük alınırsa hız artacak fakat sistem düzensizleşecektir. Hızlı ve hassas çözüm için katsayısını önce büyük alan, daha sonra küçülten algoritmalar kullanılabilir Kendini Düzenleyen Ağlar (Self Organizing Mapping) Kendini düzenleyen ağlar, yapay sinir ağları alanının en ilginç konularından biridir. Bu tür ağlar, girişler arasındaki benzerlikleri ve ilişkileri ortaya çıkarabilirler. Fiziksel olarak birbirine yakın giriş vektörlerini, aynı çıkışı verecek şekilde öğreticisiz olarak sınıflandırabilirler. Bu tür ağların ilk örneğini, el yazısı harflerini tanıma çalışmaları yapan Kohonen ortaya koymuştur. Bu çalışmasında
35 25 Kohonen, çok sayıda karakter girişi hazırlamış ve bunları hazırladığı sisteme vererek birbirine benzeyen karakterlerin aynı karakter olarak algılanmasını sağlamıştır . Şekil 3.8 de kendini düzenleyen bir yapay sinir ağı modeli gösterilmiştir. Şekil 3.8 Kendini düzenleyen ağ modeli Şekil 3.8 deki dist fonksiyonu, S R boyutlu W ağırlık matrisini ve R 1 boyutlu p giriş vektörünü alır ve S 1 boyutlu bir vektör oluşturur. Bu vektörün elemanları, W ağırlık matrisinin satırlarından oluşturulan vektörlerle p giriş vektörü arasındaki uzaklıkların negatifidir. Bu vektöre eşik vektörü b eklenerek aktivasyon hesaplanır. Eğer bütün eşik değerleri sıfır ise, tek bir nöronun aktivasyonunun alabileceği en büyük değer sıfır olabilir. Bu da ancak p giriş vektörü ile nöronun ağırlık vektörünün birbirine eşit olduğu durumda mümkün olabilir. C ile gösterilen yarışmacı transfer fonksiyonu, katmandaki nöronların aktivasyonlarının oluşturduğu katman aktivasyon vektörünü alır ve kazanan nöron dışındaki bütün nöronlar için 0 değerini üretir. Kazanan nöron, katman aktivasyon vektöründeki en büyük pozitif değere karşılık gelen nörondur. Kazanan nöronun çıkışı 1 olur. Eğer bütün eşik değerleri 0 ise, ağırlık vektörü giriş vektörüne en yakın olan nöronun aktivasyonu, 0 a en yakın negatif sayı olacaktır. Böylece bu nöron, yarışı kazanacak ve 1 çıkışını verecektir .
36 Kohonen öğrenme kuralı Kazanan nöronun ağırlık vektörü, yani ağırlık matrisinin o nörona karşılık gelen satırı, Kohonen öğrenme kuralına göre değiştirilerek ayarlanır. Kazanan nöronun i inci nöron olduğu farz edilirse, ağırlık matrisinin i inci satırı aşağıdaki gibi değiştirilir: i q W q 1 p q W q 1 W (3.53) i Denklem (3.52) deki q, kaçıncı giriş vektörünün eğitildiğini göstermektedir. ise öğrenme katsayısıdır. Kohonen kuralı, nöron ağırlıklarının giriş vektörünü öğrenmesini sağlamasından ötürü, tanıma problemlerinde kullanışlıdır. Kohonen kuralı, ağırlık vektörü giriş vektörüne en yakın nöronun ağırlık vektörünü girişe biraz daha yaklaştırır. Böylece giriş vektörüne benzer başka bir vektör geldiğinde bu nöronun kazanma olasılığı arttırılmış; giriş vektörüne benzemeyen başka bir vektör geldiğinde de kazanma olasılığı azaltılmış olur. Eğer daha bir sürü giriş sisteme sunulursa, katmandaki her bir nöron, giriş vektörlerindeki birbirine benzeyen vektörlerin oluşturduğu bir gruba adapte olacak şekilde ağırlıklarını ayarlayacaktır. Eğer yeteri kadar nöron varsa, her gruba ait bir nöron olacak ve bu nöron sadece o grup için 1 çıkışını verirken diğer bütün gruplar için 0 çıkışını verecektir. Böylece giriş vektörleri, benzerliklerine göre sınıflandırılmış olacaktır . Ağırlık matrisinin satırlarıyla giriş vektörleri arasındaki uzaklığı veren dist fonksiyonu uygun bir biçimde değiştirilirse, değişik topolojideki sınıflandırmalar da yapılabilir. i
37 27 4. BAŞAĞRISI HASTALIKLARI VE SINIFLANDIRILMALARI Ağrı, vücudun herhangi bir yerinden kaynaklanan, organik bir neden bağlı olan veya olmayan, insanın geçmişteki bütün deneyimlerini kapsayan nahoş bir duyu şeklinde tanımlanır . Başta meydana gelen ağrılara da başağrısı adı verilir. Başı ağrımayan insan neredeyse yok gibidir. Başağrıları temel olarak iki gruba ayrılır. İlk grup, nöroloji bilimini doğrudan ilgilendiren ve başka bir hastalık veya tıbbî durumla ilgili olmayan primer (birincil) başağrılarıdır. İkinci grup başağrıları ise darbeler, göz hastalıkları, boyun hastalıkları, beyin kanaması, beyin tümörü gibi tıbbî durumlar nedeniyle oluşur ve sekonder (ikincil) başağrıları şeklinde isimlendirilirler. Başağrıları, Uluslararası Başağrısı Derneği (IHS = International Headache Society) tarafından 1988 yılında 13 ana sınıfa ayrılmış ve o zamandan bu yana çok az değişikliğe uğramıştır. Bu sınıflandırma şu şekildedir : 1. Migren 2. Gerilim tipi başağrıları 3. Küme başağrıları ve kronik paroksismal hemikrania 4. Yapısal lezyonlarla ilişkisi olmayan diğer başağrıları 5. Kafa travmalarına bağlı başağrıları 6. Damarsal bozukluklarla ilişkili başağrıları 7. Damarsal olmayan olaylarla ilişkili başağrıları 8. Madde bağımlılığı veya yoksunluklarına bağlı başağrıları 9. Ekstrakranial enfeksiyonlara bağlı başağrıları 10. Metabolik bozukluklara bağlı başağrıları 11. Kranium, boyun, kulaklar, sinüsler, dişler, ağız ve diğer kafa yapılarının bozukluklarına bağlı kafa ve yüz ağrıları 12. Kranial nevraljiler, sinir ağrıları ve deafferentasyon ağrıları 13. Sınıflandırılamayan başağrıları 1-4 numaralı başağrıları, primer başağrılarıdır numaralı başağrıları da sekonder başağrıları grubunu oluşturmaktadır. Yukarıdaki sınıflandırma, alt gruplarla bilikte Ek-A da detaylı biçimde verilmiştir.
38 Migren Migren, çok sık rastlanan başağrılarından biridir. Migren, çoğunlukla tek taraflı (unilateral), epizodik; kusma, fotofobi, fonofobi ile birlikte olan, hastaların %10-15 inde aura belirtileri görülen, herediter yönü olan bir başağrısı hastalığıdır. Kadınlarda erkeklerden daha sık görülür. Migrenlilerin %60 ının ailesinde migren hikâyesi vardır. Migren atakları genelde 6-8 yaşlarında veya erken 20 li yaşlarda başlar. Tiramin ve nitrit içeren bazı yiyecekler, egzersiz, aşırı ışık, psikojenik gerginlikler migren atağını başlatabilir . Migrenin alt sınıflandırması şu şekildedir: 1. Auralı migren 2. Aurasız migren 3. Oftalmolojik migren 4. Retinal migren 5. Çocukluğun migren benzeri veya eşdeğeri olan periyodik sendromları 6. Migren komplikasyonları 7. Kriterlere tam uymayan migren benzeri ağrılar En sık rastlanan migren türü aurasız migrendir. Sıklık açısından aurasız migreni auralı migren takip eder. Aura, ataktan önce başlayan, bir müddet devam eden, görsel ve duyusal fenomenlerle karakterize belirtilerdir. Parlak bir ışık görmek, görüşte bulanıklık, çizgilenmeler, zikzaklar, yarım görme, görme alanında karanlık nokta gibi öncü belirtiler auraya örnek olarak sayılabilir Gerilim Tipi Başağrısı (Tension Type Headache) En sık görülen başağrısı tipidir. Tüm başağrılarının %75 i bu gruptandır. Zonklayıcı olmaktan çok, sabit bir ağrı söz konusudur. Ağrı genellikle boyundan başlayıp yukarı doğru çıkar. Ağrı, migrenin aksine, tek taraflı değildir; yaygın bir seyir gösterir. Bulantı ve baş dönmesi gibi şikâyetler ağrıya eşlik eder. Ağrı genellikle birkaç saat sürer; ancak günlerce de devam edebilir .