• Sonuç bulunamadı

3. MAKİNE ÖĞRENMESİ

3.3 Makine Öğrenmesi Tipleri

3.3.5 Yapay Sinir Ağları

3.3.5.4 Aktivasyon Fonksiyonları

Aktivasyon fonksiyonu her nöronun en son katmanındaki çıktısını belirleyen fonksiyondur. Etkili bir ağ oluşturmak için bu fonksiyonun doğru seçmesi önemlidir.

Biyolojik olarak nöronlar kendilerine gelen sinyaller belli bir eşik değerin üzerinde ise sinyali iletirler, ancak yeteri kadar büyük bir sinyal değilse bu sinyali iletmezler ve biyolojik olarak bir tepki oluşmamış olur. Aktivasyon fonksiyonu da, bir nöron üzerinde işlenen verinin çıkışa aktarılıp aktarılmayacağını belirleyen fonksiyondur. Ayrıca aktivasyon fonksiyonunun bir diğer görevi gönderilecek olan sinyali belli aralıktaki değerlere

36

sıkıştırmaktır. Bir nöronun çıkışı çok büyük değerler alabilir. Bu çıktı, değişiklik yapılmaksızın bir sonraki tabaka nöronuna beslendiğinde, daha da büyük sayılara dönüştürülebilir ve böylece hesaplama işlemi hesaplanamaz hale getirilebilir. Bundan dolayı nöronların çıkış değerleri aktivasyon fonksiyonu tarafından kontrol edilmektedir. Birçok aktivasyon fonksiyonu yapay sinir ağlarında kullanılmaktadır. Ancak hangi fonksiyonun en doğru yöntem olduğu sorusunun bir cevabı bulunmamaktadır. Her fonksiyonun kendine ait avantaj ve dezavantajları bulunmaktadır.

Lineer Aktivasyon Fonksiyonu

Basit bir doğrusal fonksiyondur. Hesaplanan değer f(x) = ax gibi bir fonksiyondan geçerek çıkış birimlerine gönderilir. Genellikle herhangi bir değişiklik yapılmadan geçiren nöronlarda kullanılır. Lineer aktivasyon fonksiyonları, verilerin lineer olarak ayrılabilir olduğu durumlarda kullanılmaktadır. Fonksiyonun grafiği Şekil 3.10’da verilmiştir.

Şekil 3.10. Lineer aktivasyon fonksiyonu

Sigmoid Aktivasyon Fonksiyonu

Sigmoid fonksiyonu logistik aktivasyon fonksiyonu olarak da bilinmektedir. Fonksiyon girdi değeri olarak gerçek sayıları alır ve çıktı olarak 0 ile 1 arasında değerler üretir. 0 ve 1 arasında değerler üretmesi, amacın yüzde olasılık hesaplaması olduğu uygulamalarda en son çıkış katmanında kullanılmasını sağlamaktadır. Büyük negatif sayıları 0'a ve büyük pozitif sayıları 1'e dönüştürür. Matematiksel olarak Denklem 3.4’teki gibi ifade edilir.

𝜎(𝑥) =1

1+ 𝑒

37

Fonksiyonun ve türevinin grafiği Şekil 3.11’de verilmiştir.

Şekil 3.11. Sigmoid aktivasyon fonksiyonu ve türev grafiği

Sigmoid aktivasyon fonksiyonu 3 ana dezavantaja sahiptir. Bunlardan ilki kaybolan gradyanlar problemidir. Sigmoid fonksiyonunun 0 ve 1 değerlerine yakın yerlerde düze yakın veya düz olduğu görülmektedir. Bu durumda sigmoid fonksiyonunun gradyanı (türevi- eğimi) 0 ve 1 noktalarında ve yakınında sıfır veya sıfıra çok yakın değerlerdir. Sigmoid aktivasyonu olan ağ üzerinden geri yayılımda, çıktısı 0 veya 1'e yakın olan nöronlardaki gradyanlar neredeyse sıfırdır. Bu tür nöronlara doymuş nöron adı verilir. Güncelleme işlemi gradyanlara bağlı olduğundan dolayı, bu nöronlardaki ağırlıklar güncellenmez. Ayrıca, bu nöronlara bağlı nöronların ağırlığı da yavaş yavaş güncellenir. Büyük yapılı bir yapay sinir ağında doymuş nöronların fazla bulunması geri yayılımın yapılamamasına ve dolayısıyla öğrenmenin gerçekleşmemesine yol açacaktır.

İkinci dezavantaj ise çıktı verilerin sıfır merkezli olmamasıdır. Sigmoid fonksiyonu 0 ve 1 arasında değerler ürettiğinden dolayı çıktı değerleri sıfır etrafında düzenli bir dağılıma sahip değildir. Sıfır merkezli girdiler makine öğrenmesinde ideal durum olarak düşünülmektedir ve eğitim işlemine başlanmadan önce ön işleme ile veriler sıfır merkezli bir uzaya aktarılır. Ancak bu fonksiyon sıfır merkezli çıktılar üretmemektedir.

Son dezavantaj ise, işlem yükünün üstel işlem nedeniyle maliyetli olmasıdır. Bu durum, işlemlerin diğer fonksiyonlara göre daha yavaş gerçekleştirilmesi anlamına gelmektedir.

Tanh Aktivasyon Fonksiyonu

Hiperbolik tanjant aktivasyon fonksiyonu olarak da bilinir. Sigmoid'e benzer şekilde, tanh da girdi değeri olarak gerçek sayılar alır, ancak çıktı değerleri sigmodden farklı olarak -1 ile 1 arasında bir aralıkta üretir. -1 ile 1 arasında çıktı değerleri üretmesi sayesinde sıfır merkezli bir fonksiyon halini almıştır. Bu yüzden uygulamada sigmoid yerine tercih

38

edilebilen bir fonksiyondur. Tanh fonksiyonu iki sigmoid fonksiyonunun birleşimi olarak düşünülebilir. Tanh fonksiyonunda büyük negatif girdiler -1, büyük pozitif sayılar 1 ve sıfır kendi değeri olarak nöronun çıkışına yönlendirilmektedir. Matematiksel olarak Denklem 3.5’teki gibi ifade edilir.

tanh(𝑥) = ( 2

1+𝑒−2𝑥) − 1 (3.5)

Fonksiyonun ve türevinin grafiği Şekil 3.12’de verilmiştir.

Şekil 3.12. Tanh fonksiyonu ve türev grafiği

Tanh fonksiyonu, sigmoidin taşıdığı sıfır merkezli olmama dezavantajından kurtulmuş olsa da kaybolan gradyanlar problemi ve exponansiyel işleminin karmaşıklığı bu yöntemde de mevcuttur.

Rectified Linear Unit (RELU) Aktivasyon Fonksiyonu

RELU işlem karmaşıklığı çok az olan hızlı bir aktivasyon fonksiyonudur. Oldukça hızlı sonuçlar üretmesi tercih edilmesini sağlamaktadır. Derin öğrenme uygulamalarının hemen hemen hepsinde tercih edilen aktivasyon fonksiyonu RELU’dur. Matematiksel olarak Denklem 3.6’daki gibi ifade edilir.

𝑓(𝑥) = max (0, 𝑥) (3.6)

Yani fonksiyona gönderilene değer pozitif ise aynı değeri çıktı olarak verirken, negatif girdileri sıfır olarak değiştirmektedir. İşlem karmaşıklığı sadece bir karşılaştırmadan ibarettir.

39

Şekil 3.13. RELU fonksiyonu ve türev grafiği

Relu aktivasyon fonksiyonunun grafikleri Şekil 3.13’deki gibidir. İlk bakışta pozitif tarafta lineer bir doğru olduğundan lineer aktivasyon fonksiyonu ile aynı problemleri taşıdığı düşünülebilir ancak Relu non-lineer bir fonksiyondur. Bunun yanında çıktı değerlerinin pozitif tarafında herhangi bir sınırlama yoktur. Relu’nun çıktı aralığı [0,∞) şeklinde ifade edilir. Buradan Relu’nun nöron aktivasyonunu bir anda yüksek değerlere çıkarabileceği görülmektedir. Ayrıca işlem kolaylığı ile global minimuma tanh gibi karmaşık yapılı yöntemlerden daha hızlı yakınsama yapılmasını sağlamaktadır. Bunun yanında negatif eksendeki girdiler sıfır olarak döndürüldüğünden ileri yayılım sırasında negatif değer alan nöronlar tamamen pasif kalmakta ve sinir ağı daha sade bir hale dönüşmektedir. Sigmoid ve tanh fonksiyonlarında her nöron bir çıktı ürettiğinden sinir ağı daha karmaşık olarak kalmakta idi. Bunlara ek olarak, Relu fonksiyonunda pozitif eksende nöronlar asla doyuma ulaşmazlar ve geri yayılım olumsuz yönde etkilenmez. Negatif yönde ise geri yayılım sırasında türev sıfır olduğundan dolayı ağırlıklar güncellenmez ve nöronlar aktif olmadığından girdi ve hata değerlerine tepki vermezler. Buna ölü nöron problemi denir. Bu problemin önüne geçilmesi için negatif eksende sıfır değeri üretmeyen çeşitli RELU varyasyonları önerilmiştir. Bundaki temel amaç türevin sıfır olmaması ve nöronların aktif kalarak eğitim sürecinde yenilenerek öğrenmeye katkı yapmasını sağlamaktır.

Leaky ve Parametrik RELU

Ölü nöron probleminin önüne geçmek için önerilen yöntemlerdir. Klasik RELU’da negatif eksende sıfır olan türevi çok küçük sayılarda sıfır olmayan değerlere taşımayı amaçlarlar. Leaky RELU Denklem 3.7’de matematiksel olarak gösterilmiştir.

40

Parametrik RELU’da ise çarpan olarak 0.01 sabit sayısı yerine kullanıcı tanımlı olarak uygulanan α değeri kullanılmaktadır. Fonksiyonun grafiği Şekil 3.14’te verilmiştir.

Şekil 3.14. Leaky ve Parametrik RELU grafiği

Leaky ve parametrik RELU ile ölü nöron problemi çözülmekle birlikte her zaman daha iyi sonuç vermeleri garanti değildir. Ancak, her biri hesaplama açısından verimli olma, çok daha hızlı yakınsama ve pozitif bölgede doymama gibi avantajlara sahiptir.

Swish

Swish, kendinden kapılı aktivasyon fonksiyonu olarak da bilinir ve yakın bir zamanda Google araştırmacıları tarafından önerilmiştir [45]. Matematiksel olarak Denklem 3.8’deki gibi ifade edilir.

∝ (𝑥) = 𝑥

1+𝑒−𝑥 (3.8)

Bu yöntemin RELU’dan daha iyi sonuç verdiği gösterilmiştir [45]. Şekil 3.15’te bu formüle ait grafik verilmiştir.

Şekil 3.15. Swish aktivasyon fonksiyonu grafiği

Yukarıdaki şekilden, x-ekseninin negatif bölgesinde kuyruk şeklinin ReLU aktivasyon fonksiyonundan farklı olduğunu gözlemlenebilir. Bu fark, Swish aktivasyon fonksiyonunun

41

çıktısının, giriş değeri arttığı zaman bile düşebilmesini sağlamaktadır. Çoğu aktivasyon fonksiyonu monotondur, yani giriş arttıkça çıkış değerleri asla düşmez. Swish ise monoton olmayan bir yapıya sahiptir. Bu nedenle daha dinamik ve değişken bir yapıya sahiptir [45].

Benzer Belgeler