Forward Propagation

Kategori: Deep Learning , 25 Mart 2020 , JanFranco


Nöral ağların inputları alıp, output ürettikleri sürece forward propagation denir. Forward propagation işlemi gayet anlaşılır ve basittir.



Resimden de görüleceği gibi, her bileşen arasında bir ağırlık değeri vardır. Buna weight denir. Ve her katmanda (input hariç) bir bias değeri vardır. Her bir bileşenin değeri (yine input hariç) bir önceki katmandaki değerlerin weightler ile çarpılıp, bias değeri eklendiğindeki sonucudur. Örneğin bir bileşenimiz var. Bir önceki katmanda bu bileşene bağlı iki bileşen mevcut. Bileşenimizin değerini şu şekilde hesaplarız:

Değer = (Bir önceki katmandaki 1. değer * Weight 1) + (Bir önceki katmandaki 2. değer * Weight 2) + Bias

Tabi ki matematiksel gösterimi bu şekilde değil, burada daha kolay anlaşılması için böyle gösterdik. Input değerlerini aldık, bir sonraki katmandaki değerleri hesapladık. O katmandaki değerler ile bir sonraki katmanı da hesaplayıp bu şekilde sonuncu katman olan output layer'a kadar gittik. Peki nasıl tahmin yapılıyor? Output layer'daki bileşenlerin değeri de bir önceki katmanlar ve weightler + bias değeri ile hesaplanıyor. Bu üretilen sonuçlar, olması gereken değerler ile karşılaştırılıyor. Olması gereken değerleri, algoritma verisetinden biliyor. Bu tür öğrenme işlemine supervised learning denmekte. Değerler karşılaştırıldıktan sonra üretilen sonuç hangi outputa en yakınsa, sonuç yani tahmin o yönde yapılıyor.

Forward propagation işleminde bahsetmediğimiz son bir işlem kaldı: Activation fonksiyonları. Input layer haricindeki tüm katmanlarda üretilen sonuçlar kaydedilmeden önce bir aktivasyon fonksiyonuna tabi tutuluyor. Bu aktivasyon fonksiyonları beynimizdeki nöranların işleyişinden esinlenerek yapılmıştır. Örneğin bir iğne hafifçe kolumuza dokundurulduğunda, üretilen elektrik sinyali beynimizde eşik değerini geçemediğinden acı hisetmeyiz. Ancak iğneyi sertçe dokundurduğumuzda, eşik değerini geçer ve acı hissederiz. Nöral ağlarda da durum böyledir. Seçeceğimiz aktivasyon fonksiyonuna tabi tutulan değerler belli bir değeri geçemeze o değerleri görmezden geliriz ve sonuca etki etmezler. Bir çok aktivasyon fonksiyonu mevcut ve her katmanda istediğimiz fonksiyonu kullanabiliriz. Aktivasyon fonksiyonlarını bir sonraki yazıda anlatacağım.

Biraz toparlamak gerekirse, input değerleri veriliyor, o değerler ile weight değerleri çarpılıyor, üstüne bias değeri ekleniyor. Oluşan sonuç aktivasyon fonksiyonuna tabi tutuluyor ve eşik değerini geçmesi halinde bir sonraki katmanın değeri belirleniyor. Bu şekilde output layer'a kadar geliniyor, output layerdaki değerler de hesaplanıyor. Daha sonra seçilen karşılaştırma yöntemi ile üretilen değerler ve olması gereken değerler karşılaştırılıp bir sonuç, tahmin elde ediliyor. Peki weight ve bias değerleri nasıl oluşturuluyor? Weight ve bias değerleri, başlangıçta tamamen rastgele atanıyor. Forward propagation işleminden sonra, weight ve bias değerlerinin güncellenmesi, sonucun iyileştirilmesi için bir de back propagation işlemi yapılıyor. Bu işlemleri sonraki yazılarımda göreceğiz.


Sonraki Yazı: Activation Functions
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın