Yapay sinir ağları (YSA); yapay zekâ yöntemlerinden biri olarak insan beynini modelleyerek taklit etme çabalarından biridir. Modellemede insan beyninde bulunan biyolojik sinir hücreleri (nöron) temel alınmaktadır. Tıp biliminde ilk olarak başlanan çalışmalar daha sonra bilgisayar mühendisliği, matematik, elektrik mühendisliği gibi alanlar için de cazip birer araştırma konusu olmuştur.
Yapay sinir ağları insan beyninin öğrenme tekniklerinden yola çıkılarak modellendiği için öncelikle kısaca biyolojik sinir hücrelerinden bahsetmek gerekmektedir. Şekil 2.1’ de sinir hücresinin basit bir modeli verilmiştir.
Hücreyi inceleyecek olursak; hücrelerden gelen sinyalleri çekirdeğe ileten kısma dentrit (dendrite) adı verilir. Gelen sinyalleri toplayan yapıya soma (soma), toplanan bu bilgiyi diğer hücrelere dağıtan yapıya akson (axon) denir. Aksonlardan gelen bilgi sinapsis (synaptic) ile ön işlemden geçirilerek diğer hücrelerin dentridlerine iletilir. Bu aşamada sinyaller eşik fonksiyonları kullanılarak iletilir. Öğrenmenin sinapsislerde gerçekleştiği teorisi günümüzde halen geçerliliğini korumaktadır. Biyolojik sinirlerden, yapay sinir ağlarına geçerken elemanlar: nöron-işlem, dentrit-toplama fonksiyonu, hücre gövdesi-aktivasyon fonksiyonu, akson-çıkış, sinapsis-ağırlık şeklinde dönüşüm geçirecektir.
Sinir hücresi yapısı.
YSA’ nın avantajlı kısımlarından biri, problemin çözümünde yapılar farklı bile olsa bilgileri hızlı şekilde tanımlayıp algılayabilmesidir. YSA’ nın bir diğer kuvvetli olan niteliği ise tanıma, tahmin etme gibi becerilere öğrenme yeteneği sayesinde sahip olmasıdır. İnsana göre bilgisayarlar işlem gücü, hızı ve doğruluk performansı çok daha güçlü olmasına rağmen insan beyni gibi öğrenme yeteneğine sahip değildir. YSA bu gücü makineye kazandırabilmeyi amaçlamaktadır. Bu gibi özellikleri nedeniyle YSA’ lar ile birçok problem çözülebilmiş ve faydalı uygulamalar geliştirilebilmiştir.
YSA; makine öğrenimi için insan zekâsını modellerken biyolojik fonksiyonların temel sinir hücrelerini (nöronlar) örnek almıştır. İnsan beyninde nöronlardan ortalama olarak 1011 adet olduğu ve tüm bu nöronların birbirleri ile yaptıkları bağlantı sayısının ise 1014 adet olduğu bilim adamları tarafından açıklanmaktadır. Nöronlar bilgileri duyu organları vasıtasıyla almaktadır. Bilgi daha sonra alıcı nöronlar tarafından işlenip bir sonraki nörona aktarılmaktadır. Bu şekilde bilginin merkezi sinir sistemine kadar ulaştırılması sağlanmış olur. Sinyal olarak gelen bilgi merkezi sinir sistemi tarafından yorumlandıktan sonra bu sinyallere tepki cevap olarak tepki sinyali üretilmektedir.
Sinyaller merkezi sinir sistemi tarafından alınıp yorumlanarak tepki sinyalleri üretilir. Üretilen bu sinyaller tepkilerin ulaşacağı organlara tepki sinirleri aracılığıyla gönderilir. YSA lar, biyolojik sinir sistemlerini taklit ederek modellendiğinden ötürü biyolojik sinir sisteminin yapısı incelenmelidir. Biyolojik sinir sisteminde bulunan nöronlar dört kısımdan meydana gelmektedir. Bu bölümler dendrit, akson, çekirdek ve bağlantılar olarak adlandırılmaktadır.
Sinir hücresinin uçlarında dendritler bulunmaktadır. Duyu organlarından veya bağlantısı olan diğer nöronlardan gelen sinyallerin çekirdeğe iletilmesinde dendrit görevlidir. Dendrit tarafından çekirdeğe iletilen sinyaller çekirdek tarafından toplanır ve toplanan sinyaller aksona iletilir. Bu sinyaller akson tarafından işlenir ve nöronun diğer ucundaki bağlantılara iletilir. Bağlantılar ise işlenerek üretilen sinyalleri bağlantısı bulunan diğer nöronlara iletmekle görevlidir.
YSA’ lar, detayları tarif edilen nöronlar taklit edilerek modellenmiştir. YSA’ lar geliştirilirken beynin yapısının daha iyi anlaşılabilmesi için gerekli olan diğer bilim dallarından, sinirsel psikolojik deneylerden, fen bilimleri ve matematik alanlarındaki araştırmalardan faydalanılmıştır.
YSA’ lar işlem elemanı olarak sinir hücrelerinden (nöron) oluşur. Nöronlar ayrı bellek yapılarına sahiptir. Nöronlar birbirlerine üzerinde ağırlık olarak isimlendirilen değerler bulunan bağlantılar aracılığıyla bağlanmaktadır. Bunun yanında YSA’ lar dağıtılmış veri işleme ve paralel olarak hesaplama yapabilen bir yapıdadır. Bu nedenle YSA’ nın biyolojik sinir ağlarını taklit ettiği söylenebilir.
YSA mantığında, geleneksel yöntemler dışında problemi kendi kendine öğrenme yatmaktadır. YSA, bunun yanında ezberleyebilme ve problemin sahip olduğu bilgiler arasında ilişki oluşturma yeteneğine de sahiptir. Genel olarak sınıflandırma, tahminleme, optimizasyon gibi durumlarda YSA başarılıdır. Bunun yanında paralel çalışmasından ötürü hesaplama zamanı hızlıdır. İnsan beyninde bulunan sayıda nöronun bilgisayar üzerinde modellenmesi şu an için imkânsız görünmektedir. Ancak karar verme bakımından hızları oldukça farklı olmasına karşın YSA’ lar uygulamalardaki başarıları ile zamanla daha fazla kullanım alanı bulmakta ve yaygınlaşmaktadır.
YSA’ ların kullanıldığı sektörler ve uygulama alanlarına aşağıdaki örnekler verilebilir:
· Sistem modelleme
· Ses tanıma
· El yazısı tanıma
· Parmak izi tanıma
· Plaka tanıma
· Elektrik işareti tanıma
· Hava durumu tahminleme
· Otomatik araç denetimi
· Biyomedikal ve tıp alanlarındaki teşhis, tahmin veya yorumlama
· Denetim
· Uçuş simülasyonları, otomatik pilot uygulamaları
· Otomatik yol izleme, yol koşullarına göre sürüş analizi
· Kredi uygulamaları geliştirilmesi, müşteri analizi ve kredi müracaat değerlendirilmesi
· Sinyal işleme, görüntü işleme, hedef seçme
· Üretim işlem kontrolü, dayanıklılık analizi, kalite kontrolü
· Robotik
· Sözcük tanıma, dil tercüme
· Görüntü ve veri karşılama, telekomünikasyon uygulamaları
· Retina tarama, yüz eşleme
Yapay sinir ağları regresyon, sınıflandırma, kümeleme, robotik, kontrol sistemleri gibi bir çok farklı problemin çözümünde kullanılmaktadır. YSA’ ların uygulanan ağın mimarisine göre farklı özellikleri olabilmekle birlikte genel olarak ortak bazı özellikleri bulunmaktadır. YSA’ ların en güçlü özelliği öğrenme yeteneğine sahip olmasıdır.
YSA’ ların avantajları olarak şunlar sayılabilir:
- YSA’ lar hücrelerden meydana gelir. Hücrelerin eş zamanlı çalışması ile karmaşık işlemler yapılabilmektedir. İşlem sürerken hücrelerden herhangi birinde sorun olsa dahi sistem çalışmasına güvenli şekilde devam edebilir. - Kullanılan sayısal bilgiler vasıtasıyla problemin genel özellikleri elde edilir. Böylelikle eğitim sırasında sisteme verilen örnekler dışındaki verilere de anlamlı yanıtlar üretilebilir. - Sistem mimarisinde dağılmış olan doğrusal olmayan alt birimler doğrusal olmayan problemlerin de çözümüne olanak sağlar - YSA’ lar makine öğrenmesi gerçekleştirirler. Problemi öğrenerek benzer durumlar karşısında mantıklı kararlar verebilirler. - YSA’ ların bilgi işlemesi geleneksel programlama mantığından farklıdır. Bundan ötürü geleneksel programlamaya ait olan olumsuzlukları barındırmaz. - Bilgi yayılarak ağın bütününde saklanmaktadır. Geleneksel programlamadaki gibi bilgiler dosyalarda veya veri tabanlarında değil, ağın tamamına yayılarak bağlantılarda depolanır. Hücrelerden işlevini kaybeden olması durumunda anlamlı bilgin kaybolmasına sebep olmaz. - Bellek dağıtık haldedir. Hücrelerin bağlantı ve ağırlık değerleri ağın bilgisini göstermektedir. Bundan dolayı tek bir bağlantı yalnız başına anlamlı değildir. - Öğrenme işlemi örnekler kullanılarak yapılır. YSA’ ların problemi öğrenebilmesi için probleme uygun örneklerin seçilmesi; ardından beklenen çıktılara karşılık ağın sonuçlar üretebilmesi adına yani ağın eğitilmesi için seçilen örneklerin ağa sunulması gerekmektedir. Eğitimin başarılı sonuç vermesi probleme uygun örneklerin doğru şekilde seçilmesi ile oldukça alakalıdır. Ağa problem ile ilgili bütün yönler örnekler ile verilmelidir. - YSA eğitim esnasında karşılaşmadığı örnekler dışında daha önce hiç görmediği örnekler hakkında da bilgi üretebilir. Bu yeteneğini, eğitim esnasında sisteme verilen örneklerden genelleme yaparak oluşturur. - Algılamaya yönelik problemlerde YSA kullanılabilir. - Örüntü ilişkilendirme ve sınıflandırma YSA ile yapılabilir. YSA’ lar kendisine verilen örneklerin kümelenmesi sırasında, diğer örneklerin hangi kümeye ait olduğuna karar verme işlemlerini örüntüleri ilişkilendirerek gerçekleştirmektedir. Ağa eksik bilgilere sahip olan örüntüler verildiğinde, YSA eksik bilgileri tamamlayarak örüntü tamamlaması yapabilir. - YSA çevrimiçi olarak öğrenebilir. Bu sayede kendi kendilerine öğrenebilme ve organize etme yeteneğine sahip olurlar. - YSA geleneksel sistemlerin aksine problemi öğrenme işlemi gerçekleştikten sonra eksik veri olsa dahi anlamlı çıktı üretebilir. Bu durum performans kaybı oluşturmaz. Bilgilerin önem derecesi eğitim sırasında öğrenilebilir. - YSA’ ların eksik verilerle çalışabilmesi ve mimarisinde bulunan hücrelerin bozulması durumunda dahi sistemin çalışması YSA’ nın hata toleransına sahip olduğunu göstermektedir. - YSA’ lar ayrı bir matematik modele ihtiyaç duymazlar. YSA’ ların dezavantajları olarak ise şunlar sayılabilir: - YSA’ ların en önemli sorunlarından birisi donanım bağımlı olmasıdır. YSA’ ların önemli özelliklerinden paralel işlem yapabilme yeteneği, paralel çalışan işlemcilere bağımlı olarak performans sergiler. - YSA oluşturulurken öğrenme katsayısı, hücre yapısı, katman sayısı gibi ağın parametrelerinin ve ağın yapısının belirlenmesi için belirli kurallar yoktur. Uygun olan ağın oluşturulması tecrübe ve deneme yanılma yolu ile belirlenmektedir. - YSA sayısal bilgiler ile hesaplama yapmaktadır. Bundan dolayı problemler YSA’ ya sunulmadan önce örneklerin sayısal değerlere çevrilmesi zorunludur. Bu çevrim için belirlenen yöntem ağın verimliliğini etkilemektedir. - YSA için eğitimin ne zaman sonlanacağına dair belirli bir kural yoktur. Eğitimin sonlanması ağın örnekler üzerinde ürettiği çıktıların üzerindeki hatasının belirli bir değerin altına indirilmesine veya belirli sayıda eğitim turuna bağlı olabilmektedir. - Ağın davranışları açıklanamamaktadır. YSA bir probleme çözüm ürettiği zaman bu çözümün nasıl ve neden olduğuna dair bir bilgi vermez. - Bazı ağlar haricinde YSA’ lar için kararlılık analizi yapılamamaktadır.
Yapay sinir ağları biyolojik sinir hücrelerinin bir benzetimi olduğundan ötürü sinir hücrelerine (işlem elemanları- nöronlar) sahiptir. Nöronlar 5 temel elemandan meydana gelmektedir :
· Girdiler
· Ağırlıklar
· Toplama fonksiyonu
· Aktivasyon fonksiyonu
· Çıktılar
YSA temel bileşeni olan nöron çalışma prensibi
YSA’nın temel elemanı olan nöron çalışma prensibi Şekil 2.1 de gösterilmiştir. Şekilde girişler x(i) sembolü ile gösterilmiştir. Girdi değerlerinin her biri w(i) ile çarpılır. Bu çarpımların hepsi toplanır. Daha sonra elde edilen değere eşik değeri b eklenir. Daha sonra sonucun alınması için f(x) aktivasyon fonksiyonu uygulanır ve y çıktı değeri elde edilir. Sinirsel ağların yapısı bu mantığa dayanarak meydana gelmektedir. Modellenen YSA’nın öğrenme kabiliyeti mimari içerisindeki ağırlıkların en uygun şekilde güncellenip ayarlamasına bağlıdır. Bu işlemde öğrenme algoritması ile farklılaşabilmektedir. Girdiler dış dünyadan veya başka bir nörondan gelen, sayısal değerden oluşan verilerdir. YSA biyolojik sinir sistemini taklit ettiğinden ötürü girdiden sisteme gelen veriler toplanması için nöron çekirdeğine iletilir.
Ağırlıklar, nörona gelen bilginin problem için önemini ve nöron üzerindeki etkisini göstermektedir. YSA’ ya gelen veriler çekirdeğe iletilmeden önce sahip olduğu bağlantının ağırlığı ile çarpılır. Bu durum sayesinde girdinin hesaplaması yapılacak çıktı için etkisi ayarlanabilmektedir. Dolayısıyla problem için oluşturulacak olan modelde girdilerin etkisini belirleyen katsayılar ağırlık olarak tanımlanmaktadır. Bir ağırlığın değerinin büyük olması ağırlığa ait girişin öneminin fazla olduğunu, küçük olması ise girdinin değerinin öneminin az olduğunu göstermektedir. Ağırlık değerinin sıfır olması durumunda ise girdinin nöron üzerinde etkisin olmadığını göstermektedir. Bu durum oluştuğunda nöron üzerindeki bilginin bir sonraki katmana bir etkisi olmamaktadır.
Toplama fonksiyonu, yapay sinir hücresine gelen tüm sayısal girdilerin ağırlıklarıyla çarpıldıktan sonra toplanarak hücrenin net girdisini hesaplamaya yarar.
Aktivasyon fonksiyonu, toplama fonksiyonu tarafından bulunan net sayısal değeri işleyerek nöronun bu girdiye karşılık olarak üreteceği çıktıyı belirleyen fonksiyondur. Aktivasyon fonksiyonunun kullanılma nedeni zamanla ilgili durumlarda toplama fonksiyonunun çıkışının değişimine olanak sağlamaktır. Doğrusal olmayan problemler için de sonuç üretebilmesi için de genellikle aktivasyon fonksiyonu doğrusal olmayan bir fonksiyon olarak seçilir. Doğrusal olmayan problemlerin çözümü YSA’ ların kuvvetli özelliklerinden biridir. Bu durum aktivasyon fonksiyonları sayesinde sağlanmaktadır. Aktivasyon fonksiyonunun seçiminde en önemli özellik seçilecek fonksiyonun türevinin alınabilir olması gerekliliğidir. Geri beslemeli ağlar üzerinde geriye yönelik hesaplamalar sırasında aktivasyon fonksiyonunun türevi alındığı için hesaplama maliyetinin artmaması adına fonksiyonun türevi kolay hesaplanabilir aktivasyon fonksiyonu tercih edilmelidir. Çok katmanlı yapay sinir ağ mimarisinde türevi alınabilen bir aktivasyon fonksiyon olduğundan ötürü genellikle Relu fonksiyonu kullanılmaktadır.
Çıktı aktivasyon fonksiyonu sonucunun dış dünyaya veya diğer nöronlara gönderilen sayısal birimidir. Nöronun çıkışı başka bir nöronun girişi olabilmektedir. Nöronlara birden fazla giriş gelebilir. Fakat her nöronun mutlaka yalnızca bir çıktısı olmalıdır. Bu çıktıdan diğer hücrelere istenilen sayıda bağlantı yapılabilir.
YSA’ ların öğrenmesi sırasında, sistemin çıkışı eğitim setinden girişe karşılık gelmesi gereken beklenen değer ile karşılaştırılarak hata bulunur. Farklı öğrenme algoritmalarıyla hata değeri azaltılarak beklenen çıkışa yaklaşılmaya çalışılır. Bu süreçte güncellenen ağın ağırlıklarıdır. Ağırlıklar her tekrarlamada güncellenerek hedef olan beklenen çıkışa yakınlaşmaya yani hatayı en aza indirmeye ulaşılmaya çalışılır. Hatayı en aza indirme ölçütündeki en az miktarının ne olacağı ise dışarıdan verilen bir değerdir. Eğer YSA verilen giriş-çıkış ile hedefe ulaşmış ise ağırlık değerleri güncellenmez. Bu ağırlıklar tutulur. Ağırlıkların güncellenerek istenilen duruma gelmesine kadar geçen zamana öğrenme adı verilir.
YSA öğrendikten sonra ağa daha önce verilmeyen girişler sunularak sinir ağı test edilir. Ağ daha önce karşılaşmadığı bu örneklere de iyi sonuç verebiliyorsa ağ problemi öğrenmiş demektir. Bu durumu sınamak için probleme ait veriler eğitim seti ve test seti olarak ikiye ayrılmalıdır. Eğitim seti, öğrenmenin sağlanabilmesi için giriş ve çıkışları sisteme verilen verilerdir. Test seti ise eğitim setinden farklı olarak sisteme daha önce sunulmamış, çıktıları sisteme gösterilmeyen sadece girdilerin sisteme sunulduğu verilerdir. Probleme ait verilerin ne kadarının eğitim ne kadarının test seti olacağına dair belirli bir kural yoktur. Fakat önem verilmesi gereken husus özellikle eğitim setinin problem uzayını kapsayacak şekilde seçilmesidir.
Ağın öğrenme süreci şu şekilde ilerlemektedir:
· Ağın öğrenmesi istenen probleme ait veriler, problem uzayını kapsayacak şekilde bulunmalıdır. Eğitim setinde bulunan veriler sisteme sırayla gösterilerek ağın problemi öğrenmesi sağlanır. Ağ problemi öğrendikten sonra test setindeki veriler ağa sunularak ağın performansı ölçülür. Hiç karşılaşmadığı örnekler karşısındaki ağın davranışı ağın problemi ne kadar öğrendiğini ortaya koyar.
· Ağın topolojik yapısı belirlenir. Ağda girdi, ara katman sayısı, ara katmandaki nöronların sayısı, çıktılar belirlenir.
· Ağ için toplama ve aktivasyon fonksiyonları, öğrenme katsayısı, momentum katsayısı gibi parametreler belirlenir.
. Nöronları birbirine bağlayan ağırlık değerlerinin ve eşik değerlerinin başlangıç değerlerinin ataması yapılır. Sistemin problemi öğrenmesi esnasında kullanılacak olan ilk değerler genellikle rastgele olarak verilir ve öğrenme esnasında hesaplanan hata değerine göre bu değerler güncellenir.
· Ağın öğrenmeye başlaması ve öğrenme kuralına uygun olarak ağırlıkların güncellenmesi için ağa eğitim setindeki veriler sunulur.
· Eğitim setinden sunulan girdiler için ileri yönde hesap ile ağın çıktısı hesaplanır.
· Geriye doğru hesaplama ile hesaplanan hatanın azalması için ağırlıkların güncellenmesi gerçekleştirilir.
· Ağ öğrenmeyi tamamlayıncaya kadar işlemler devam eder.
YSA’ ların öğrenimi sürecinde bazı durumlarda hata istenen seviyenin altına inmeyebilir. Böyle bir durumla karşılaşıldığında ağın topolojik yapısında, başlangıç değerlerinde, eğitim seti seçiminde veya parametrelerde değişiklik yapılarak ağın eğitiminin tekrar yapılması gerekmektedir. Günümüzde en çok kullanılan yapay sinir ağı mimarileri Çok Katmanlı Ağlar’ dır (ÇKA). ÇKA, giriş katmanı, çıkış katmanı ve bu katmanlar arasında bağlantıları sağlayan gizli ara katmanlardan oluşur.
Giriş katmanı, modele dış dünyadan iletilen verileri herhangi bir işlem yapmaksızın ara (gizli) katmanlara yönlendirir. Giriş katmanında herhangi bir veri işleme yapılmamaktadır. Gelen bilgi doğrudan sonraki katmana yönlendirilir. Birden fazla girdi bu katmana gelebilir. Bir sonraki katmandaki tüm nöronların hepsiyle bağlantı mevcuttur.
Gizli katman, giriş katmanından kendisine iletilen verileri işledikten sonra bir sonraki katmana gönderir. Gönderilen katman çıkış katmanı veya başka bir gizli katman olabilir. Ağın mimari yapısında gizli katman sayısı birden fazla olabilir. Ayrıca her katman içinde birden fazla nöron yer alabilir. Gizli katmanda bulunan her nöron bir sonraki katmanda bulunan tüm nöronlarla bağlantılıdır.
Çıkış katmanı ise kendisinden bir önceki gizli katmandan aldığı verileri işlemektedir. Modele sunulan girdilere karşılık modelin sunacağı çıktıları üreterek dış dünyaya sistemin sonuçlarını iletir. Bu katmanda birden fazla nöron bulunabilir ama her nörona ait sadece tek bir çıktı olabilir.
Comments