Geçmiş Hatalardan Dersler Çıkarmak : Nöral Ağlar

noral-aglar

Sinema tutkunu bir Y kuşağı mensubu iseniz anımsayacaksınızdır. Lion King, “hakuna matata” mottosuyla hafızalarımıza kazınmıştı çocukluk yıllarımızda. Svahili dilindeki kalıbın çevirisi her ne kadar endişeye mahal yok olsa da filmin Türkçe dublajlı versiyonunda “geçmişi unut, geleceğe bak” şeklinde çevrilmişti. Oysa ki filmde bilge babun Rafiki’nin çok daha anlamlı bir repliği daha bulunuyordu: “Geçmiş canını acıtabilir. Sende geçmişinden kaçabilir ya da ondan ders çıkartabilirsin“. Nöral ağlar da işte bu prensibe dayanır. Hata yap ve hatalarından ders çıkar.

Yapay sinir ağları, insan merkezi sinir sisteminden esinlenerek tasarlanmış yapılardır. Maliyetli öğrenme süreçlerine sahip olan yapı, insan refleksleri gibi çok hızlı çıktı üretebilmektedir.

human-neural-network-cell

Örneğin, hiç sıcak bir yüzeye dokunarak elini yakmamış bir çocuk, bu sıcak yüzeye dokunarak elini yakacaktır. Ancak eli bir kere yandıktan sonra öğrenecek ve bir daha sıcak yüzeye dokunmayacaktır. Bu örneği nöral ağ disiplinine uygulayarak daha kolay anlaşılmasını sağlayalım.

artificial-neural-network-cell

Basit bir sinir ağı hücresi girdiler, ağırlıklar, toplama fonksiyonu, aktivasyon fonksiyonu ve çıktıdan oluşur. Örneğimizde yüzeye dokunma kararı sinir ağının çıktısı iken duyu organları insan sinir sistemi için girdilerdir. Yüzeyde bir duman tütmesi söz konusuysa veya sıcaklığı sebebiyle kırmızımsı bir renk mevcutsa görme duyusu sinir ağına katkı sağlayabilir. Bu durumda görme duyusundan alınan yüzeyde tüten duman olduğu bilgisi ve yüzey rengi bilgileri birer girdi olacaktır. Ağırlıklar, girdilerin çıktılar üzerindeki etkisini ifade eder. Örneğin avuç içinin, el yüzeyine göre daha hassas olması ağırlığının daha yüksek olmasındandır.

Ağırlıklara başlangıçta rassal değerler atanır ve yaşanılan tecrübeler ile ömür boyu güncellenmeye devam eder. Yüzeyde tüten duman olmasının algılanması girdisine ait ağırlık başlangıçta düşük bir değer olarak atanmış olabilir. Ancak çocuğun eli bir kere yandıktan sonra bu değer yüksek bir değer ile güncellenecektir. Böylelikle küçük çocuk bir daha tüten yüzeylere yaklaşmamayı öğrenmiş olacaktır.

Toplama fonksiyonu ağa giren tüm girdilerin ağırlık değerleri ile çarpımı ile dahil olan net girdiyi hesaplar. Aktivasyon fonksiyonu ise net çıktıyı hesaplar. Net çıktıdan kasıt tepki ya da acı için gerekli eşiğe ulaşılıp ulaşılmadığının hesabından sorumlu birimdir. Sıcak yüzeye dokunulması sonrası elin çekilmesi refleksi bunun bir örneğidir.

Yapay sinir ağlarında da öğrenme şu şekilde gerçekleşmektedir. Öncelikle bir nöral ağ modeli oluşturulur ve ağ girdileri tanımlanır. Çıktı ile ilişkili girdilerin belirlenmesi işin sanat tarafıdır (Hilary Mason, Veri Bilimcisi doğru cevapları veren kişi değil, doğru soruları soran kişidir der ki bu konularla ilgiliyseniz kendisini mutlaka takip edin). Sonrasında ağırlıklara rassal değerler atanır. Daha sonra, tarihsel veriler için ağ modelinde belirlenmiş girdi değerleri ağa verilerek çıktılar hesaplanır. Ağa başlangıçta rassal ağırlıklar atanmış olması sebebiyle ilk hesaplamalar yanlış çıktılar üretilecektir. Burada belirtelim tarihsel örneklere ait gerçek çıktılar zaten bilinmekte. Gerçek çıktı ile hesaplanan çıktının farkı hatadır ve bu hata tüm ağırlıklara etkileri oranında geri yansıtılır (bu sebeple yapay sinir ağı öğrenme algoritması  geri yayılım algoritması olarak adlandırılmıştır). Son olarak ağırlıklar önceki hataları baz alınarak güncellenir. Eğitim ya da öğrenme işte bu ağırlıkların güncellenmesi işlemidir.

Sinir ağlarında maliyetli olan işlem eğitimdir. Eğitim tamamlandıktan sonra çıktının hesaplanması girdiler ve ağırlıkların çarpılmasından ibarettir ve çok kısa sürelerde hesaplanmaktadır. Bu sebeple eğitim ve tahmin işlemlerinin asenkron şekilde yapılması tercih edilmektedir. Öğrenmenin en etkin uykuda gerçekleşmesi bu duruma benzetilebilir.

neural-network-system

Kompleks yapay sinir ağı sistemi çoklu sinir ağı hücrelerinin bir araya gelmesinden meydana gelir. Bir sinir ağı hücresinin çıktısı başka bir sinir ağı hücresine girdi olabilir. Girdi ve çıktı arasında kalan hücre katmanları gizli katmanı oluşturur. İşte bu gizli katmanlar sinir ağlarının lineer olmayan problemleri çözmesini sağlamaktadır. Ağ yapısının tasarımı (kaç gizli katman olacağı, her bir gizli katmandaki hücre sayısı) probleme göre değişiklik göstermektedir. Bu tasarım da işin sanat kısmıdır.

Özetle, nöral ağlar, öğrenme, hatırlama ve tahmin etme yeteneklerine sahip sistemlerdir. Daha fazlası, sinir ağları regresyon ve sınıflandırma problemlerinin çözümünde kullanılabilmektedir. Her ne kadar motivasyon maliyetli bir öğrenme süreci gerektirse de öğrenme tamamlandıktan sonra insan refleksleri gibi çok hızlı çıktılar üretmesi ve lineer olmayan problemlerin çözümündeki başarıları sebebiyle en güçlü makine öğrenmesi algoritmalarının başlarında yer almaktadır.

 

 

Kaynak: http://bilisim.io

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*