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,  makaletez 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...

4 yorum:

Ceyhun Alyeşil dedi ki...

YSA'na nerden başlanır diye sorayım o zaman.

bluekid dedi ki...

Başlamak için pek çok yazı yazdım aslında
"Tek Satır Kod yazmadan YSA"
mesela

Keza başlayacaksanız, Uygun bir konunuz varsa, biz burdayız yardımcı oluruz...

Adsız dedi ki...

üstad fanntool un kullanımını az detaylandırabilirmisiniz, resimli anlatım veya videolu anlatım olarak bir örnekle, mesela hava sıcaklığı tahminini...

bluekid dedi ki...

kullanım kılavuzu var
keza vakti zamanında bir tanıtım videosuda yapmıştım
fanntool'un sitesinde duruyor