Bilişim dünyasına kaliteli, özgün ve Türkçe içerikler kazandırmayı hedefleyen bir platform..

friends friends friends

Aktivasyon Fonksiyonları

Aktivasyon fonksiyonları girdi verileri ve ağırlıklara karşılık nöronun çıktısını belirleyen matematiksel bir denklemdir.

Aktivasyon fonksiyonları; bir katmanda bulunan nöronlardaki çıktı değerini sonraki katmanlara iletilirken kullanılır. Bu çıktı değerinin, diğer katmanlara iletilip iletilmeyeceğine karar verebilmek için bir eşik değerinin belirlenmesi gerekir. Çünkü bir yapay sinir hücresindeki bilginin değeri (−∞, +∞) aralığında olabilir ve nöron gerçek değerin sınırlarını bilmeyebilir. Bu nedenle, nöronun aktif olup-olmaması gerektiğine karar verebilmesi için aktivasyon fonksiyonlarına ihtiyaç duyulur. Böylece bir nöron tarafından üretilen çıktı değerini kontrol edebilecek ve dış bağlantıların nöronu aktif olarak görüp-görmeyeceğine karar verilebilecektir(Sharma, 2017).

Derin öğrenmede kullanılan aktivasyon fonksiyonları, yapay sinir ağlarının (neural networks) katmanları arasındaki işaretleri dönüştürmek ve modelin karmaşık ve doğrusal olmayan ilişkileri öğrenmesine yardımcı olmak için kullanılır. Aktivasyon fonksiyonları, sinir ağındaki nöronların çıktılarını hesaplamak için kullanılır ve aşağıdaki temel amaçlara hizmet eder:

  1. Doğrusallık ve doğrusal olmayanlık eklemek: Aktivasyon fonksiyonları, sinir ağının doğrusal olmayan ilişkileri öğrenmesine ve temsil etmesine olanak tanır. Bu, ağın karmaşık ve gerçek dünya problemlerini daha iyi modellemesine yardımcı olur.
  2. Eşik değeri belirlemek: Aktivasyon fonksiyonları, bir nöronun aktive olup olmayacağına karar verir. Özellikle, bir nöronun çıktısı belirli bir eşik değerinin üzerindeyse, nöron aktive olur ve sinyal ileriye doğru iletilir. Bu, sinir ağının bilgiyi daha etkili bir şekilde işlemesine ve öğrenmesine yardımcı olur.
  3. Gradyanların yayılmasını kontrol etmek: Derin öğrenme modellerinde, geri yayılım (backpropagation) algoritması, modelin öğrenmesi ve hataları azaltması için kullanılır. Aktivasyon fonksiyonlarının türevleri, modelin ağırlıklarını güncellemek için kullanılır ve bu nedenle uygun aktivasyon fonksiyonları seçmek, modelin eğitiminin hızı ve kararlılığı üzerinde önemli bir etkiye sahiptir.

Aktivasyon fonksiyonlarının seçimi, problemin doğası ve sinir ağı mimarisine bağlıdır. Farklı aktivasyon fonksiyonları, modelin öğrenme hızı, kararlılık ve doğruluğu üzerinde farklı etkilere sahip olabilir. Yapay sinir ağlarında en çok tercih edilen aktivasyon fonksiyonları:

  1. Sigmoid
  2. tanhHiper Tanjant
  3. ReLu(Rectified Linear Unit)
  4. Leaky ReLu
  5. Softmax
  6. Maxout
  7. ELU

1- Sigmoid

Tekli sınıflandırmalarda kullanılır. Gelen girdi değerini (0,1) aralığında sıkıştırır. Örnek olarak eğer kedi olan bir resmi YSA modeline verip çıktı olarak sigmoid fonksiyonunda 0.85 değerini alıyorsak, bu resimde kedi olma ihtimalini %85 olarak değerlendirebiliriz. Tam tersi kedi olmayan resmi modelimize verip çıktı olarak 0.05 alıyorsak, bu resimde kedi olmama ihtimalini %99.95 olarak veya resimde kedi olma ihtimalini %0.05 olarak düşünebiliriz.

(0-1 arası)

f(x)=1/(1+e^-x)
Sigmoid Fonksiyonu
Sigmoid Fonksiyonu (kaynak:https://towardsdatascience.com/illustrated-guide-to-lstms-and-gru-s-a-step-by-step-explanation-44e9eb85bf21)

Aktivasyon fonksiyonları sayesinde girdimizi belirli bir aralığa indirgeyebiliriz. Bu aralık genelde -1 ve 1 veya 0 ve 1 aralığıdır. Ufak bir alana indirgediğimiz için girdimizdeki büyük bir değişim aktivasyon fonksiyonunda o kadar büyük bir değişime yol açmayabilir. Dolayısıyla türevi de küçük olur. Eğer türevi çok küçükse, o katman yeteri kadar öğrenemez.

2- Tanh (Hiperbolik Tanjant)

Tanh fonksiyonu, -1 ile 1 arasında değerler alır ve Sigmoid'a göre daha iyi performans gösteren doğrusal olmayan bir fonksiyondur.

(Hiper tanjant 1,-1 arası)

tanh(x)=2sigmoid(2x)-1
#veya
tanh(x)=2/(1+e^(-2x)) -1
Tanh Fonksiyonu
Tanh Fonksiyonu (kaynak:https://towardsdatascience.com/illustrated-guide-to-lstms-and-gru-s-a-step-by-step-explanation-44e9eb85bf21)

3- Relu

ReLU (Rectified Linear Unit): ReLU fonksiyonu, girişi doğrudan geçiren (0'dan büyükse) veya 0'a ayarlayan (0'dan küçükse) popüler bir aktivasyon fonksiyonudur. ReLU, derin öğrenme modellerinde sıklıkla kullanılır ve hızlı hesaplama avantajı sunar.

Negatifse çok küçük sayı, pozitifse aynı

f(x)=max(0,x)

4- Leaky ReLU

Leaky ReLU, ReLU'nun sıfır altındaki değerler için küçük bir eğimle iyileştirilmiş bir versiyonudur. Bu, nöronların tamamen ölmesini önlemeye ve gradyanların daha iyi yayılmasına yardımcı olur.

5- Softmax

Çoklu sınıflandırmalarda kullanılır. Çıktı olarak vektör verir. Çıktı vektörü her bir sınıfın olasılık değerinin tutar. Bu olasılık değerlerinin toplamı 1.0 eder. Örnek olarak 0’ dan 9’ a kadar olan sayıların resimlerini YSA modelimize verdiğimizde çıktı olarak [0.03, 0.07, 0.1, 0.04, 0.005, 0.001, 0.06, 0.67, 0.02, 0.004] vektörünü veriyor ise resimde %67 olasılığında 7 rakamı var diyebiliriz.

Softmax fonksiyonu, gerçek sayıların N boyutlu bir vektörünü alır ve onu (0,1) aralığında toplamı 1 olan bir gerçek sayı vektörüne dönüştürür. Örnek python kodunu inceleyebilirsiniz.

def softmax(X):
    exps = np.exp(X)
    return exps / np.sum(exps)

Aktivasyon Fonksiyonlarındaki Amaç

Aktivasyon fonksiyonlarındaki amaç; ağırlık ve eşik (bias) değerlerini ayarlamaktır. Sigmoid, tanh, relu, leaky relu ve elu gibi birçok aktivasyon fonksiyonu bulunmaktadır. Günümüzün en popüler aktivasyon fonksiyonu relu fonksiyonudur. 2012 yılında ilk defa kullanılmaya başlanmıştır. Her yıl imagenal dataset (Alex.Net) yarışmalarında çok iyi sonuç vermektedir.

Aktivasyon fonksiyonları, yapay sinir ağlarında kullanılan matematiksel işlevlerdir. Bu fonksiyonlar, yapay sinir ağı katmanlarındaki girdi sinyallerini dönüştürmek veya modifiye etmek için kullanılır. Aktivasyon fonksiyonlarının temel amacı, ağın çıktılarını belirlemek ve ağın öğrenme yeteneğini artırmaktır.

Aktivasyon fonksiyonlarının birkaç önemli amacı şunlardır:

  • Nonlinearite: Aktivasyon fonksiyonları, sinir ağlarının nonlineer ilişkileri modelleyebilmesini sağlar. Lineer fonksiyonlar sadece doğrusal ilişkileri temsil edebilirken, nonlineer fonksiyonlar karmaşık, doğrusal olmayan ilişkileri ifade edebilir. Bu sayede sinir ağları, daha karmaşık veri dağılımlarını ve modellerini öğrenebilir.
  • Gradyan Aktarımı: Aktivasyon fonksiyonları, geri yayılım (backpropagation) algoritmasının kullanıldığı öğrenme sürecinde, hata sinyallerini katmanlardan geriye doğru aktarırken gradientin etkin bir şekilde taşınabilmesini sağlar. Gradyan aktarımı, ağın parametrelerini güncellemek için hata sinyallerini kullanır ve bu süreçte aktivasyon fonksiyonları, gradientin doğru bir şekilde hesaplanmasına yardımcı olur.
  • Sınırlama: Aktivasyon fonksiyonları, çıktı aralığını sınırlamak veya normalize etmek için kullanılabilir. Örneğin, sigmoid veya tanh fonksiyonları, çıktıyı [0,1] veya [-1,1] aralığına sınırlayarak, olasılık değerleri veya simetrik sinyaller elde etmek için kullanılabilir.
  • İşaret Aktarımı: Bazı aktivasyon fonksiyonları, girdi değerlerinin işaretini koruyarak pozitif ve negatif değerler arasındaki ayrımı korur. Bu, sinir ağındaki bilgilerin daha tutarlı bir şekilde taşınmasını sağlar ve ağın daha hızlı öğrenmesine yardımcı olabilir.
Aktivasyon Fonksiyonları CheatSheet
Aktivasyon Fonksiyonları CheatSheet

Kaynaklar

  1. https://devreyakan.com/aktivasyon-fonksiyonlari/
  2. https://atcold.github.io/pytorch-Deep-Learning/tr/week11/11-1/
  3. https://mfakca.medium.com/lstm-nedir-nas%C4%B1l-%C3%A7al%C4%B1%C5%9F%C4%B1r-326866fd8869
  4. https://www.parasdahal.com/softmax-crossentropy
  5. https://deepai.org/machine-learning-glossary-and-terms/sigmoid-function
aktivasyon fonksiyonları Sigmoid tanh ReLu Leaky ReLu Softmax Maxout ELU Hiper Tanjant yapay zeka derin öğrenme makine öğrenmesi activation functions activation function gif
0 Beğeni
Makine Öğrenmesi
Önceki Yazı

Satranç Tahtası İle Buğday Taneleri Üzerine Bir Hikaye

28 Eyl. 2020 tarihinde yayınlandı.
Sonraki Yazı

JQuery ile Cookie Kullanımı

28 Eyl. 2020 tarihinde yayınlandı.
arrow