Pazar, Aralık 08, 2013
YSA Büyü Değildir...
Yapay Sinir Ağlları hakkında böyle bir zannediş var. Pek çok kişi "YSA büyü gibi uçuk bir konu ona yanaşmamak lazım" düşüncesinde olup pek yanaşmıyorlar. diğer bir kısım kişilerde büyünün cazibesiyle yanaşıyorlar ve olmayacak şeyleri başarabilecek bir şey zannıyla giriştikleri çalışmadan hüsranla çıkıyorlar.
Gerek Yapay Sinir Ağları ve gerekse diğer Yapay Öğrenme Metodları - Machine Learning Algorithms- büyülü şeyler değildir. Çekinmeden ve Sihirli Lamba beklentisine kapılmadan kullanmaya başlamalısınız.
YSA ile hemen her sistemi modelleyebilirsiniz. Basit bir aramayla çok çeşitli alanlardaki YSA uygulamalarını görebilirsiniz. Keza FannTool'un sitesinde de çok değişik alanlardaki, makale , tez ve örnekleri inceleyebilirsiniz.
İlk Aşama Modelleyeceğiniz sistemin Giriş ve Çıkış değişkenlerini belirlemeniz lazım. Sonrasında YSA nın eğitimi için veri toplamanız lazım. Veriler yeterli çeşitlilikte ve yeterli sayıda olmalı, yoksa Eğitim aşamasında uygun bir sonuca ulaşamayız.
Eğitim nedir ; YSA giriş ve çıkış değişkenleri arasında bizim seçeceğimiz sayıda nodül ve katmandan oluşan bir ağ sistemi oluşturur. Giriş den çıkışa sinyalin aktarımı için başlangıçta rastgele ağırlık değerleri seçilir. Eğitim işleminde elimizdeki veri kullanılarak girişden çıkışa Ağ çalıştırılır. Bir çıkış değeri hesaplanır. Elimizdeki gerçek değer ile karşılaştırılır ve bir hata değeri hesaplanır bu hata değerine göre ağ içindeki ağırlıklar güncellenir ve istenen hata değerine yada çalışma adımına kadar bu işlem tekrarlanır.
Eğitimin 3 tür sonucu olabilir. Eğitim işlemi sonucunda istediğiniz hata değerine ulaşamazsınız -Underfitting-, yani eğitim başarısız olur. Yada Eğitim işleminde istediğinizden öte başarılı bir hata değerine ulaşırsınız fakat Test verilerinde yada gerçek uygulamada çok büyük hata değerleri çıkar, yani Eğitememişiz ezberletmişsinizdir -Overfitting- . Yada mutlu sona ulaşmış ve hem eğitim verileri için yeterli hata değerine ulaşmış ve Test verileri içinde kabul edilebilir bir hata düzeyinde kalmışsınızdır.
Şimdi yeterli çeşitlilikte ve yeterli sayıda veri konusuna dönebiliriz. Eğer yeterli çeşitlilikte verimiz yoksa kolaylıkla ezberlemeye düşebiliriz. Mesela bir öğrenciyi Eğitiyorsunuz, elinizde bir kitap var bu kitabın sadece bazı bölümlerine çalıştırıyorsunuz. Öğrenciniz gördüğü konularda yeterince başarılı olsada hiç görmediği bölümlerden gelen soruları bilemeyecektir. Keza her konu yeterli anlatılmamışsa hiç bir şey öğrenemeyecektir.
Veriler konusundaki bir başka husus, giriş ve çıkış arasında gerçekten bir ilişkinin olması gerekliliğidir. Şöyle örneklemeye çalışayım. Bir Liste oluşturalım rastgele seçeceğimiz bir sözcük ve yine rastgele karşılığında ikinci bir sözcük. Bu şekilde oluşturulmuş bir listesyi öğrenci yeterince zekiyse ezberleyebilir fakat malesef öğrenemez. Yani başka bir rastgele listede cevap veremez. Oysa kelime karşılıkları mesele eş anlamlısı olacak şekilde bir ilişkiyle seçilmiş olsa Öğrencimiz listeyi öğrenmek için okuduğun da bunu ilişkiyi kurup benzeri liste dışındaki kelimeler içinde cevap verebilir. Kısacası Başlangıçtaki modellememizi doğru ve tam kurmamız lazım ki sonuçda öğrenilebilir bir sistem olsun. YSA her şeyi -yeterli saklı katman ve nodül verildiğinde - ezberleyebilir fakat Her şey öğrenilebilir değildir...