El yazısını okuyabilen; yolcu, doluluk ve koltuk sayısına göre en uygun rezervasyonu yapabilen, insan vücudunu tarayarak hastalık varsa tanıyan ya da insan gibi davranan ve öğrenen akıllı bilgisayarlar… Daha düne kadar hayal olan bu teknolojik makineler bugün yavaş yavaş kendini belli etmeye başladı ve yakın bir gelecekte dünyamıza girmeye hazırlanıyor… Nasıl mı? İnsan sinirlerinin bir kopyası olan yapay sinir ağlarıyla.
Yapay sinir ağları (Artificial Neural Network-ANN) insan beyninin sinir sistemine ve çalışma prensibine dayanan elektriksel bir modeldir. Bir anlamda insan beyninin ufak bir kopyası gibidir. İnsan beyninin öğrenme yoluyla yeni bilgiler üretebilme, keşfedebilme, düşünme ve gözlemlemeye yönelik yeteneklerini, yardım almadan yapabilen sistemler geliştirmek için tasarlanmışlardır, çünkü bu özellikleri, geleneksel programlama algoritmaları ile yaratabilmek imkânsızdır.
Kısa Tarihçesi
İlk yapay nöron,1943 yılında nöropsikiyatrist Warren McCulloch ve bilim adamı Walter Pits tarafından üretilmiştir. Ancak dönemin kısıtlı olanakları nedeniyle, bu alanda çok gelişme sağlanamamıştır. Bundan sonra 1969’da Minsky ve Papert bir kitap yayınlayarak, yapay sinir ağları alanında duyulan etik kaygıları da ortadan kaldırmış ve bu yeni teknolojiye giden yolu açmışlardır. İlk gözle görülür gelişmeler ise 1990’lı yıllara dayanmaktadır.
YSA’nın Yapısı
Yapay sinir ağları insan beynini taklit edebilmek için birbirleriyle uyum içinde çalışan yoğun şekilde bağlanmış bilgi işleme merkezlerinden, yani nöronlardan, oluşmaktadır. İşlem birimleri aslında bir transfer denklemi gibidir. Bilgiyi alır, transfer fonksiyonunu uygulayarak işleme sokar ve bir çıktı oluşturur. İnsan beynindeki sinir hücresinde de bu görevi sırasıyla dentrit, hücre gövdesi ve akson üstlenir. Bir yapının bilgiyi nasıl işleyeceği, transfer fonksiyonuna, diğer ağlarla birbirlerine nasıl bağlandıklarına ve kendi sinaptik ağırlıklarına bağlıdır.
YSA Nasıl Çalışır?
Bir yapay sinir ağı belirli bir amaç için oluşturulur ve insanlar gibi örnekler sayesinde öğrenir. Nasıl insanın öğrenmesi sinaptik boşluklardaki (2 sinir hücresi arasındaki boşluklar) bazı elektriksel ayarlamalar sayesinde oluyorsa, aynı şekilde, yapay sinir ağları da tekrarlanan girdiler sayesinde kendi yapısını ve ağırlığını değiştirir. Yapay sinir ağları aynen canlıların sinir sistemi gibi adapte olabilen bir yapıya sahiptir. Yani içsel ve dışsal uyaranlara göre yapısı değişebilmekte ve bu sayede öğrenebilmektedir. Karar verme aşamasında bağlantı ağırlıkları da devreye girer. İşlem birimleri her ne kadar tek başlarına çalışıyor gibi gözükse de, aslında birçok yapay sinir ağı aynı anda çalışır ve dağınık, paralel hesaplama (distributed and parallel computing) örneği gösterir.
Ancak hesaplamanın duruma göre değişmesi bir başka sorunu da beraberinde getirebilir. Normal bilgisayarlar, ne yapmaları gerektiğini belirleyen kurallar(instructions) olmadan çalışamaz. Bu sistem ise bir problem karşısında, çözümü kendi kendine bulduğundan, sistemin belli bir durumda ne yapacağı bilinemez. Sisteme bir bilinmezlik(unpredictability) özelliği katan şey de budur.
Normal Bilgisayarların Hesaplama Sistemlerinden Farkı
Yapay sinir ağları geleneksel işlemcilerin hesaplamalarından farklı şekilde işlem yaparlar. Bir bilgisayarın işlemcisi(CPU) belirli bir algoritma çerçevesinde kendisine verilen görevi adım adım-lineer bir şekilde- yaparken, her yapay sinir ağı büyük bir problemin sadece kendine ait olan küçük bir parçasını doğrusal olmayan bir şekilde işler ve bir sonuç elde eder. Bu sonucu, bir sonraki ağa verir. İşlerken kullandığı denklem birçok denklemin bir araya gelmesinden oluşur. Kullanılan denklemler genelde optimizasyonda ve grafiksel modellerde gözlenen tarzdadır. Bazı fonksiyonların göreceli olarak aldığı girdiye bağlı olmaması da bir miktar paralel hesaplama sağlamaktadır.
Öğrenme çevreyi gözlemleyerek, bir f fonksiyonundan f* bulmayı sağlar. f*, f fonksiyonunun optimize edilmiş halidir. Yani yeni üretilen çözüm yolu problemi en kısa sürede çözer. Kabul edilebilir zaman aralığında tam optimize olamayanlarda ise bu süreyi kısaltmak için mükemmele yakın bir sonuç bulunur. Bunun için bazı yöntemler vardır. Mesela ateşleme kuralı(firing rule). Bu kuralın işleyişini anlayabilmek için bir örnek verelim.Öğrenilen 3 bilgi olsun ve yeni bir bilgi alınsın. Yeni alınan bu bilgi öğrenilmiş bir bilgiyse sonuç her zamanki gibi olur. Ancak öğrenilen kısma ait değilse, ondan ne kadar farklı bir bilgi olduğu kontrol edilir. Ona göre nasıl işlem yapılacağı belirlenir. Bu genelleme özelliği sayesinde benzer modellere benzer şekilde cevap verilmesi sağlanır. Model tanıma(pattern recognition) bu sayede sağlanır.
Ateşleme kuralı bir şekilde normal bilgisayarlarda da uygulanabilmektedir. Ancak yapay ağ sistemleri bundan çok daha karmaşık ilişkilere sahiptir. Daha üst seviyeli işlem birimlerinde girilen bilgiler 0-1 şeklinde değil, ağırlıklıdır(weighted). Sadece girilen bilginin türü değil ağırlığı da dikkate alınır. Eşik değer(treshold value) burada devreye girer. Eğer eşik değerin üzerinde bir girdi alınırsa cevap verilir, yoksa verilmez. Ayrıca her verilen cevaptan sonra sistemin ağırlığı tekrar ayarlanarak yeni gelen bilgi için daha farklı bir işlem uygulanabilir.
Öğrenme Yöntemleri
Başlıca 3 farklı öğrenme tipi tanımlanmıştır.
- Danışmalı öğrenme(MLP-BP): Danışmalı öğrenmede devreye bir eğitmen girer. İşlem birimi kendisine eğitim süresince verilen bilgi karşılığında bir fonksiyon üretir. Bu fonksiyon sayesinde verilebilecek tüm olası girdiler için bir sonuç üretir. Asıl cevap ile verilen cevap arasındaki fark değerlendirilerek ağırlıklar güncellenir. Bu süreç zarfında eğitici ödüllendirme ve cezalandırma mekanizmasını uygulayarak asıl cevap ile verilen cevap arasındaki farkı azaltmaya çalışır. Fark azaldıkça öğrenme gerçekleşir.
- Danışmasız öğrenme(ART-SOM): Danışmasız öğrenmede eğitmen yoktur. Danışmalı öğrenmedeki gibi çıkması gereken ya da çıkacak sonuçlar bilinmemektedir. Bu sebeple herhangi bir hata bilgisi ağın kendini düzeltmesi için kullanılamaz. Onun yerine girdilerin verdiği cevaplar öğrenmede kullanılır.
- Takviyeli öğrenme(GA): Ağın davranışının uygun olup olmadığını belirten bir mekanizma vardır. Ağırlıkların güncellenmesi buna bakılarak yapılır. Deneme yanılma esasına göre ağ eğitilir. Kesin bir giriş- çıkış ikilisi bulunmaması bakımından danışmalı öğrenmeden farklı bir yapı gösterir.
Bu Teknoloji Nerelerde Kullanılabilir?
Yapay sinir ağlarının organların modellenmesi ve hastalıkların insan vücudunda teşhisinde kullanılması bekleniyor, çünkü bu olay herhangi bir algoritmaya dayanmıyor ve çeşitli örneklerin sisteme sağlanması ile sitemin artık o hastalığı tanır hale gelmesi sağlanabiliyor. Tek yapılması gereken şey hastalığın çeşitli tiplerinin sisteme gösterilmesidir. İş alanında ise optimizasyon ve planlamada bu sistemlere ihtiyaç duyulmaktadır. Mesela bir uçak şirketinin koltuk rezervasyonu için en uygun sonuçları verebilecek tek bir algoritma yoktur çünkü koltukların durumunda sürekli bir değişiklik olmaktadır. Yani yeni şartlara uyum sağlayan bir yapıya ihtiyaç vardır. Yapay sinir ağları bu özelliği barındırmaktadır.
Diğer uygulama alanları ise; yazıyı konuşmaya dönüştürme, karakter tanıma, robotik, bomba detektörü, sinyal ve görüntü işlemedir.
Sonuç olarak; yapay sinir ağlarındaki gelişmeler bilgisayar dünyasında büyük bir çığır açacaktır. Her şarta adapte olabilen, duruma göre karar verebilen, kendi kendine öğrenen ve tüm bunları yaparken bizi karışık içsel detaylarla uğraşmak zorunda bırakmayan sistemler sayesinde, normal bilgisayarların başa çıkamayacağı sorunlar aşılabilir hale gelecektir. Yapay sinir ağları aynı zamanda bir gün bilinçli makinelerin yani insansı robotların yapılacağının da işaretlerini vermektedir.