Neden çok katmanlı ağlar?

Daha önce Perceptron algoritması ile tek katmanlı ve tek nöronlu sinir ağlarını incelemiştik. Bu yöntem ve yaklaşım sinir ağlarının temelleri hakkında bir fikir edinmek için faydalıdır. Diğer yandan bu yöntem ile çok kısıtlı öğrenme işlemleri gerçekleştirilebilir: lineer ayrılabilir problemleri içeren öğrenmeler.

Lineer ayrılabilirlik; problemin içerdiği verilerin uzayda doğrusal bir hat ile ayrılabilir olmasını ifade etmektedir. Daha basit şekilde düşünürsek iki boyutlu Öklid uzayında tek bir doğru ile ayırabildiğimiz veriler lineer ayrılabilirdir diyebiliriz.

Lineer ayrılabilir problem deyince akla sıklıkla AND ya da OR gibi işlemler gelir. Lineer ayrılamayan problemine örnek olarak da XOR işlemi örnek verilir. Bu örnekler lineer ayrılabilen ya da ayrılamayan verilerin farklarının anlaşılmasında kolaylık sağlar. Bu nedenle Perceptron yazısında örnek olarak AND işlemi gerçekleştirildi.

Lineer ayrılamayan problemlerin çözümü için ise tek katman yeterli olmamaktadır. Bunun nedeni tek katmanda birden nöron olsa da bu nöronların çıktılarının birlikte değerlendirilmesi gerekliliğidir. Dolayısıyla lineer ayrılamayan verilerin sınıflandırılması için en az iki katmana ihtiyaç duyulduğunu söyleyebiliriz.

Bu yazıda lineer ayrılamayan duruma örnek olarak klasik XOR problemini ele alacağız. Çünkü hem XOR işlemi çok bilinen bir işlemdir hem de iki katman ile ayrılabileceğini biliyoruz.

Öğrenme yöntemi olarak Sürekli Perceptron (Continuous Perceptron) olarak da bilinen Delta öğrenme algoritmasını [1] kullanacağız.

Delta Öğrenme Algoritması

Delta öğrenme algoritması sürekli aktivasyon fonksiyonları ile çalışmaktadır. Örneğin Sigmoid, Tanh vb. Bunun iki avantajı bulunmaktadır. İlki daha hasssas eğitim yapılabilmesidir. İkincisi ise türevlenebilir karakteri kullanmayı kolaylaştırarak, hata gradyanı hesaplamayı mümkün kılmaktır [1].

Delta öğrenme algoritmasına Zurada’nın kitabından[1] bakalım.

Bu yöntemde ileri yayılım kısmı Perceptron ile oldukça benzerdir. Girişler ile ağırlıklar çarpılıp toplanması sonucunda “net” toplam değeri elde edilmektedir. Perceptronda bu işlemden sonra bir eşik uygulanmaktadyı. Ancak bu yöntemde sürekli bir aktivasyon fonksiyonu kullanılır. Bu yazıda aktivasyon fonksiyonu olarak sigmoid fonksiyonundan faydalanılacaktır.

Çok uzatmadan ayrıntıları sonraki yazılara bırakalım.

Sonraki yazıda gradyan iniş ile ağırlık güncelleme değerlerinin nasıl elde edildiğinden bahsedeceğiz. Ağın ağırlık değişimlerinin nasıl gerçekleştirildiğini anlatan matematik ağırlıklı bu kısım için:

Çok Katmanlı Sürekli Ağlar-2 Ağırlık Güncellemelerinin Bulunması

Ardından algoritma adımlarına geçeceğiz. Matematiksel kısmı atlayıp doğrudan algoritma adımlarına ulaşmak için:

Çok Katmanlı Sürekli Ağlar-3 : Algoritma

KAYNAKLAR

  1. Zurada, Jacek M. “Artificial Neural Systems.” New Yrok: W est Publishing Co 1 (1995): 992.