Aktivasyon fonksiyonunun kullanımının gerekliliğini ders-1’de bahsetmiştik. Yine kısaca değinerek başlayalım. Gerçek dünayada veriler non-lineer, bu non-lineer ilişkinin çıkarılması ve modellenebilmesi için aktivasyon fonksiyonlarına ihtiyaç duyuyoruz. 2 matematiksel işlem yapıyorduk. Lineer fonksiyon ile hesaplama ve çıkan değeri aktivasyon fonksiyonuna sokaray y değerini elde etmek.
Aktivasyon fonksiyonları, gizli katmanlardaki ve çıktı katmanındaki her bir node’da girdilerin ağırlıklı toplamlarına uygulanmaktadır ve z ile çağrılır. (burada girdi raw veri olabilir ya da bir önceki katmanın çıktısı olabilir)
Farklı aktivasyon fonksiyonlarını incelemeye başlayalım.
Bir sinir ağında farklı katmanlarda Aktivasyon Fonksiyonları:
Bir sinir ağı tipik olarak 3 katmandan oluşur. Giriş katmanı, Gizli katman(lar), ve Çıkış Katmanı.
Girdi katmanı, yalnızca girilen veriyi alır ve hesaplama icra etmez. Bu yüzden burada aktivasyon fonksiyonu kullanılmaz.
Sinir ağında, Non-lineer aktivasyon fonksiyonunu gizli katman içinde kullanırız. Bunun nedeni, karmaşık kalıpları öğretmek için ağa doğrusal olmayanlık gerektiğidir. Doğrusal olmayan aktivasyon fonksiyonları olmadan, birçok gizli katmana sahip bir sinir ağı, gerçek dünya verilerinden karmaşık kalıpları öğrenmek için faydasız olan dev bir doğrusal regresyon modeli haline gelecektir. Sinir ağı modelimizin performansı gizli katmanlar içinde kullanılan aktivasyon fonksiyonu tipine bağlı olarak ciddi farklılıklar gösterecektir.
Bir sinir ağında çıktı katmanı içinde aktivasyon fonksiyonu kullanmalıyız. Aktivasyon fonksiyonunun seçimi çözmek istediğimiz problem tipine bağlıdır.
Lineer ve Non-lineer Fonksiyonlar :
Birçok aktivasyon fonksiyonu non-lineerdir. Ancak, sinir ağında aynı zamanda lineer aktivasyon fonksiyonları da kullanılır. Örneğin, bir sinir ağında bir regresyon problemini çözmek için çıkış katmanında lineer aktivasyon fonksiyonunun kullanımı. Bazı aktivasyon fonksiyonları 2 veya 3 lineer bileşenden oluşur. Bu fonksiyonlar da non-lineer fonksiyonlar olarak sınıflandırılır.
Doğrusal ve doğrusal olmayan fonksiyonları ayırt etmek faydalı olacaktır. Doğrusal bir işlev (f olarak adlandırılır), z girdisini alır ve girdinin c sabiti ile çarpımı olan cz çıktısını döndürür. Matematiksel olarak bu, f(z) = cz olarak ifade edilebilir. c=1 olduğunda, fonksiyon girişi olduğu gibi döndürür ve girişte herhangi bir değişiklik yapılmaz. Doğrusal bir fonksiyonun grafiği tek bir düz çizgidir.
Lineer olmayan bir fonksiyon, non-lineer olarak sınıflandırılır. Non-lineer fonksiyonun grafiği düz çizgi değildir.
Aktivasyon Fonksiyonları tipleri :
Sinir ağlarında en çok kullanılan aktivasyon fonksiyonlarını tartışacağız.
- Sigmoid Aktivasyon Fonksiyon :
Özellikleri :
- Logistic regression modellerinde kullanılan lojistik fonksiyonudur.
- Sigmoid fonksiyonu S-şeklinde grafik çıkarır.
- Non-lineer fonksiyondur.
- Sigmoid fonksiyonu girdileri 0 ile 1 arasında bir olasılık değerine dönüştürür.
- Büyük negatif değerleri 0’a ve büyük pozitif değerleri 1’e dönüştürür.
- 0 girişi için 0,5 değerini döndürür. 0,5 değeri, belirli bir girişin hangi tür iki sınıfa ait olduğuna karar verebilen eşik değeri olarak bilinir.
Kullanımı :
- Ilk başlarda, sigmoid fonksiyonu MLP’lerde, CNN’lerde, RNN’lerde gizli katmanlarda aktivasyon fonksiyonu olarak kullanıldı.
- Sigmoid fonksiyonu, halen RNN’lerde kullanılır.
- Şu anda Sigmoid fonksiyonu MLP’lerde ve CNN’lerde genellikle gizli katmanlar için kullanılmaz. Bunun yerine, ReLU veya Leaky ReLU kullanılır.
- Sigmoid fonksiyonu çıktı katmanında kullanılır.
Sigmoid fonksiyonu , çoklu etiketli sınıflandırma modelleri (multilabel classification model) inşa ettiğimizde kullanılır.
Dezavantajları :
- Sigmoid fonksiyonu genellikle gizli katmanlarda kullanılmaz.
- Sigmoid fonksiyonunun yakınsaması yavaştır.
- Çıktısı sıfır (0) merkezli değildir. Bu nedenle optimizasyon sürecini zorlaştırır.
- Bu fonksiyon, bir e^z terimi dahil edildiğinden hesaplama açısından maliyetlidir.
2. Tanh Aktivasyon Fonksiyonu :
Özellikler :
- tanh çıktısının (tanjant hiperbolik) fonksiyonu daima -1 ve +1 değerleri arasındadır.
- Sigmoid fonksiyonu gibi, S-şeklinde grafiği vardır. Non-lineer bir fonksiyondur.
- Sigmoid fonksiyonu yerine, tanh fonksiyonunu kullanmanın bir avantajı 0 merkezlidir. Bu da optimizasyon işlemini daha kolay yapar.
- Tanh işlevi, sigmoid işlevinden daha dik bir eğime sahiptir.
Kullanımı :
- Son zamanlara kadar, tanh fonksiyonu MLP’lerde, CNN’lerde, RNN’lerde gizli katmanlar için aktivasyon fonksiyonu olarak kullanıldı.
- Ancak, tanh halen RNN’de kullanılır.
- MLP’lerde ve CNN’lerde şu anda genellikle gizli katmanlar için tanh fonksiyonu kullanılmaz. Bunun yerine, ReLU, Leaky ReLU kullanırız.
- tanh fonksiyonu çıkış katmanında hiç kullanılmaz.
Dezavantajları :
Gizli katmanlarda tanh fonksiyonu genellikle kullanmayız. Sebepleri ;
- tanh fonksiyonu kaybolan gradian sorununa sahiptir. (vanishing gradient problem)
- Bu fonksiyon, bir e^z terimi dahil edildiğinden hesaplama açısından maliyetlidir.
3. ReLU Aktivasyon fonksiyonu :
Özellikler :
- ReLU (Rectified Linear Unit) aktivasyon fonksiyonu hem sigmoid hem de tanh aktivasyon fonksiyonlarına en iyi alternatiftir.
- ReLU’nun icadı derin öğrenmedeki en önemli buluşlardan birisidir.
- Azalan eğim problemine sahip değildir.
- Hesaplama maliyeti az maliyetlidir.
- ReLU’nun yakınsaması sigmoid ve tanh fonksiyonlarına göre 6 kat hızlıdır.
- Girdi değeri 0 veya 0’dan büyükse, ReLU fonksiyonu girilen girdiyi çıktı olarak verir. Eğer girdi 0’dan küçükse, ReLU fonksiyonunun çıktısı 0’dır.
- ReLU fonksiyonu iki lineer bileşenden oluşur. Bu nedenle, ReLU fonksiyonu parçalı lineer bir fonksiyondur. Aslında, ReLU fonksiyonu doğrusal olmayan bir fonksiyondur.
- ReLU’nun çıktısı 0’dan pozitif sonsuza kadardır.
- Yakınsaması tanh ve sigmoid fonksiyonlarından daha hızlıdır.
- ReLU fonksiyonunun bir lineer bileşen için sabit bir türevi (eğim) ve diğer doğrusal bileşen için sıfır türevi olmasıdır. Bu nedenle Öğrenme süreci ReLU fonksiyonu ile çok daha hızlıdır.
- ReLU ile hesaplamalar çok hızlı gerçekleştirilir çünkü üslü bir hesaplama, fonksiyonda yoktur.
Kullanımı :
- ReLU fonksiyonu, Modern multi layer perceptron(MLP) ve CNN sinir ağı modellerinde gizli katmanlar için varsayılan aktivasyon fonksiyonudur.
- RNN modellerinin gizli katmanlarında ReLU fonksiyonu genellikle kullanmıyoruz.
- ReLU fonksiyonu çıktı katmanında asla kullanılmaz.
Dezavantajları :
- Pozitif tarafın değeri çok yükseklere gidebilir. Bu durumda eğitim süreci esnasında hesaplama problemlerine yol açabilir.
4. Leaky ReLU aktivasyon Fonksiyonu :
Özellikler :
- leaky ReLU aktivasyon fonksiyonu, varsayılan ReLU fonksiyonunun modifiye edilmiş versiyonudur.
- ReLU aktivasyon fonksiyonu gibi, bu fonksiyon azalan eğim problem (vanishing gradient problem) sahip değildir.
- Eğer girdi değeri 0’dan büyükse, leaky ReLU fonksiyonu aynı ReLU’da olduğu gibi giriş değerini çıktı olarak verir. Ancak, girdi 0’dan küçükse, leaky ReLU fonksiyonu, az olarak tanımlanan küçük bir negatif değer verir. (burada a küçük bir sabit değerdir. genellikle 0.01 ve z giriş değeridir)
- Sıfır türevli (eğimli) herhangi bir doğrusal bileşeni yoktur.
- leaky ReLU’ ile Öğrenme işlemi, default ReLU’ya göre daha hızlıdır.
Kullanımı :
- leaky ReLU fonksiyonu, Modern multi layer perceptron(MLP) ve CNN sinir ağı modellerinde gizli katmanlar için varsayılan aktivasyon fonksiyonudur.
- RNN modellerinin gizli katmanlarında leaky ReLU fonksiyonu genellikle kullanmıyoruz.
- leaky ReLU fonksiyonu çıktı katmanında asla kullanılmaz.
5. Parametrik ReLU (PReLU) aktivasyon Fonksiyonu :
Özellikler :
- ReLU fonksiyonunun başka bir varyasyonudur.
- leaky ReLU ile hemen hemen benzerdir. Yalnızca farklılık a değeri bu sefer öğrenebilir bir parametre olur. a ‘yı ağda her bir nöron için bir parametre olarak ayarlarız. Dolayısıyla, a optimal değerini ağdan öğrenir .
6. ReLU6 Aktivasyon Fonksiyonu :
Özellikler :
- ReLU ile ReLU6 arasındaki ana farklılık, ReLU pozitif tarafta çok yüksek değerlere izin verirken, ReLU6 değeri pozitif tarafta 6’da kısıtlar. Herhangi bir girdi değeri 6 veya 6’dan büyükse 6 değerinde kısıtlanacaktır. (adında olduğu gibi)
- ReLU6 fonksiyonu 3 lineer bileşenin biraraya gelmesiyle yapılmıştır. Non-lineer bir fonksiyondur.
7. Softmax Aktivasyon Fonksiyonu :
Özellikler:
- Non lineer aktivasyon fonksiyonudur.
- softmax fonksiyonu, bir olayın (sınıfın) olasılık değerini K farklı olay (sınıf) üzerinden hesaplar.
- Her sınıf için olasılık değerlerini hesaplar.
- Tüm olasılıkların toplamı 1’dir. yani tüm olaylar (sınıflar) birbirini dışlar.
Kullanımı :
- Çoklu sınıf sınıflandırma (Multiclass classification Problem) problemlerinde çıktı katmanında SOFTMAX aktivasyon fonksiyonunu kullanmalıyız.
- Softmax fonksiyonu gizli katmanlarda asla kullanılmaz.
8. Binary Step Aktivasyon Fonksiyonu :
Özellikler :
- Binary step aktivasyon fonksiyonu, Threshold activation function olarak da bilinir. bir değeri eşik değeri olarak ayarlarız ve burada bu değer 0’dır.
- Eğer girdi eşik değerinden büyükse, bu fonksiyonu 1 çıktısını üretir. Eğer girdi eşik değerine eşitse veya daha küçükse, bu fonksiyon 0 değerini çıkarır.
- 0 veya 1 binary değerini çıktı olarak verir.
- Binary step fonksiyonu, iki lineer bileşenden oluşmuştur. Bu yüzden, bu fonksiyon parçalı lineer fonksiyondur. Aslında, binary step fonksiyonu non-lineer fonksiyondur.
- Bu fonksiyon smooth fonksiyon değildir. Keskindir.
Kullanımı :
- Pratikte, Modern sinir ağı modellerinde bu fonksiyon genellikle kullanılmaz.
- Fakat, bu fonksiyonu teorik konsepti anlatmak için kullanırız. örneğin nöronun aktivasyonu/ateşlenmesi gibi.
9. Identity Aktivasyon Fonksiyonu :
Özellikler :
- Lineer aktivasyon fonksiyonu olarak da bilinir.
- Aktivasyon fonksiyonları hakkında konuştuğumuzda yalnızca identity aktivasyon fonksiyonu lineer bir fonksiyondur.
- Bu fonksiyon girdi değeri neyse, çıktı olarak verir. Girdide herhangi bir değişiklik yapılmaz.
Kullanımı :
- Bu fonksiyon yalnızca sinir ağı modelinin çıkış katmanında Regresyon problemi çözümünde kullanılır.
- Gizli katmanlarda asla identity fonksiyonu kullanılmaz.
10. Swish Aktivasyon Fonksiyonu :
Özellikler :
- Sigmoid fonksiyonu ile girdi değerinin (z) çarpımından oluşur.
- Non-lineer fonksiyondur.
- ReLU aktivasyon fonksiyonu grafiğine benzerdir.
- Eğim ReLU aktivasyon fonksiyonundan daha smooth’tur. Bu smooth modeli eğitirken önemlidir. Fonksiyon eğitimdeyken, kolayca yakınsar.
Kullanımı :
- Yalnızca gizli katmanlarda kullanılır.
- Bir sinir ağı modelinin çıkış katmanında bu fonksiyonu asla kullanmayız.
Dezavantajları :
- Fonksiyonda e^z terimi olduğu için hesaplama olarak swish fonksiyonu maliyetlidir. Hard swish fonksiyonu kullanılarak bu maliyetten kaçınılabilir.
11. Hard swish Aktivasyon Fonksiyonu :
Özellikler :
- Swish fonksiyonunun grafiğine benzerdir.
- Sigmoid fonksiyonu değiştirildiği için hesaplaması daha az maliyetlidir.
Kullanımı :
- Yalnızca gizli katmanlarda kullanılır.
- Bir sinir ağı modelinin çıkış katmanında bu fonksiyonu asla kullanmayız.
Özet :
Aktivasyon fonksiyonları yalnızca matematiksel fonksiyonlardır. Bir aktivasyon fonksiyonunun sahip olması gereken temel özellik, model eğitiminde geri yayılım için bir gereklilik olduğundan, fonksiyonun türevlenebilir olması gerektiğidir.
Doğru aktivasyon fonksiyonunu seçmek ana zorluktur ve programcının problem tanımını anlayarak ve modelin performansını ve kayıp fonksiyonunun yakınsamasını dikkate alarak aktivasyon fonksiyonunu manuel olarak seçtiği bir tür hiperparametre ayarı olarak düşünülebilir.
Doğru Aktivasyon fonksiyonunu seçmek için genel tavsiyeler :
- Giriş katmanında herhangi bir aktivasyon fonksiyonuna ihtiyaç yoktur.
- Çıkış katmanındaki aktivasyon fonksiyonu çözmek istediğimiz problem tipine bağlıdır. Bir regresyon probleminde, lineer aktivasyon fonksiyonu olan identity aktivasyon kullanılabilirken, bir binary sınıflandırma ise sigmoid aktivasyon fonksiyonunu kullanırız. multiclass sınıflandırma problemiyse, softmax aktivasyonu, multilabel sınıflandırma problem ise sigmoid aktivasyon fonksiyonu kullanılabilir.
- Gizli katmanlarda non-lineer aktivasyon fonksiyonu kullanılır. Modelin performansı düşünülerek veya loss fonksiyonunun yakınsamasına göre seçilebilir. ReLU aktivasyon fonksiyonu ile başla, dying ReLU problemi ile karşılaşırsan, leaky ReLU dene.
- MLP ve CNN sinir ağı modellerinde, ReLU gizli katmanlar için varsayılan aktivasyon fonksiyonudur.
- RNN sinir ağı modellerinde, gizli katmanlar için sigmoid veya tanh fonksiyonlarını kullanırız. tanh daha performansa sahiptir.
- Yalnızca identity aktivasyon fonksiyonu lineer’dir. Diğer tüm aktivasyon fonksiyonları non-lineer’dir.
- Softmax ve identity fonksiyonları asla gizli katmanlarda kullanmayız.
- tanh, ReLU, ReLU varyansları, swish ve hard swish fonksiyonlarını yalnızca gizli katmanlarda kullanırız.