Ana içeriğe geç

Sinir Ağlarında Aktivasyon Fonksiyonlarına Giriş

Sağlam ReLU’dan, softmax’in olasılıksal gücüne kadar yaygın aktivasyon fonksiyonlarının dünyasında yolunuzu bulun.
· 11 dk. oku

Yapay Zeka ile Keşfedin

Sinir Ağı Temsili

Sinir ağı temsili. Görsel kaynağı

Aktivasyon Fonksiyonları Nedir?

Aktivasyon fonksiyonları, sinir ağlarının verideki karmaşık örüntüleri öğrenmesini sağlayan temel yapı taşlarıdır. Sinir ağındaki bir düğümün giriş sinyalini, bir sonraki katmana iletilen çıktı sinyaline dönüştürürler. Aktivasyon fonksiyonları olmadan, sinir ağları yalnızca girdiler ve çıktılar arasındaki doğrusal ilişkileri modellemekle sınırlı kalırdı. 

Aktivasyon fonksiyonları doğrusal olmayanlıklar katarak, sinir ağlarının girdiler ve çıktılar arasında son derece karmaşık eşlemeleri öğrenmesine olanak tanır. 

Doğru aktivasyon fonksiyonunu seçmek, iyi genelleşen ve doğru tahminler üreten sinir ağlarını eğitmek için kritik öneme sahiptir. Bu yazıda, en yaygın aktivasyon fonksiyonlarına, rollerine ve farklı kullanım senaryoları için uygun aktivasyon fonksiyonlarını nasıl seçeceğinize genel bir bakış sunacağız. 

İster derin öğrenmeye yeni başlıyor olun ister deneyimli bir uygulayıcı olun, aktivasyon fonksiyonlarını derinlemesine anlamak sezginizi güçlendirir ve sinir ağlarını uygulamanızı iyileştirir.

Aktivasyon Fonksiyonları Neden Gerekli?

Aktivasyon fonksiyonları olmadan sinir ağları, matris çarpımı gibi doğrusal işlemlerden ibaret olurdu. Tüm katmanlar girdinin doğrusal dönüşümlerini gerçekleştirir ve hiçbir doğrusal olmayanlık eklenmezdi.

Gerçek dünya verilerinin çoğu doğrusal değildir. Örneğin, ev fiyatları ile büyüklük, gelir ile satın almalar arasındaki ilişkiler vb. doğrusal değildir. Sinir ağlarında aktivasyon fonksiyonları olmasaydı, gerçek dünya verilerinde bulunan karmaşık doğrusal olmayan örüntüleri öğrenemezlerdi.

Aktivasyon fonksiyonları, doğrusal olmayan davranışlar ekleyerek sinir ağlarının bu doğrusal olmayan ilişkileri öğrenmesini sağlar. Bu da sinir ağlarının karmaşık ve nüanslı verileri modelleme esnekliğini ve gücünü büyük ölçüde artırır.

Aktivasyon Fonksiyonlarının Türleri

Sinir ağları, doğrusal olmayanlıkları eklemek ve karmaşık örüntüleri öğrenmek için çeşitli aktivasyon fonksiyonlarından yararlanır. Her aktivasyon fonksiyonunun kendine özgü özellikleri vardır ve belirli kullanım durumları için uygundur. 

Örneğin, sigmoid fonksiyonu ikili sınıflandırma problemleri için idealdir, softmax çok sınıflı tahminlerde kullanışlıdır ve ReLU sönümlenen gradyan sorununu aşmaya yardımcı olur. 

Göreve uygun aktivasyon fonksiyonunun kullanılması daha hızlı eğitim ve daha iyi performans sağlar.

Şimdi yaygın aktivasyon fonksiyonlarından bazılarına bakalım:

Doğrusal aktivasyon

doğrusal aktivasyon fonksiyonu

Doğrusal aktivasyon fonksiyonu. Görsel: Yazar

Doğrusal aktivasyon fonksiyonu en basit aktivasyon fonksiyonudur ve şu şekilde tanımlanır:

doğrusal aktivasyon fonksiyonu

Girdi x’i olduğu gibi çıktı olarak döndürür. Grafikte, eğimi 1 olan düz bir çizgi gibi görünür.

Doğrusal aktivasyon fonksiyonunun başlıca kullanım alanı, regresyon için kullanılan bir sinir ağının çıktı katmanıdır. Sayısal bir değer tahmin etmek istediğimiz regresyon problemlerinde, çıktı katmanında doğrusal aktivasyon kullanmak sinir ağının sayısal bir değer üretmesini sağlar. Doğrusal aktivasyon fonksiyonu çıktıyı kısıtlamaz veya dönüştürmez, bu nedenle tahmin edilen gerçek değer döndürülür.

Bununla birlikte, doğrusal aktivasyon fonksiyonu sinir ağlarının gizli katmanlarında nadiren kullanılır. Bunun nedeni herhangi bir doğrusal olmayanlık sağlamamasıdır. Gizli katmanların amacı, girdi özelliklerinin doğrusal olmayan bileşimlerini öğrenmektir. Baştan sona doğrusal aktivasyon kullanmak, modeli girdinin yalnızca doğrusal dönüşümlerini öğrenmekle sınırlar.

Sigmoid aktivasyon

Sigmoid aktivasyon fonksiyonu. Görsel: Yazar

Genellikle σ(x) ile gösterilen sigmoid aktivasyon fonksiyonu, sinir ağlarının gelişiminde tarihsel olarak önemli, düzgün ve sürekli türevlenebilir bir fonksiyondur. Sigmoid aktivasyon fonksiyonunun matematiksel biçimi şöyledir:

Gerçek değerli bir girdi alır ve bunu 0 ile 1 arasında bir değere sıkıştırır. Sigmoid fonksiyonunun, büyük negatif sayılar için 0’a ve büyük pozitif sayılar için 1’e yaklaşan “S” şeklinde bir eğrisi vardır. Çıktılar kolayca olasılık olarak yorumlanabildiğinden ikili sınıflandırma problemleri için doğaldır.

Sigmoid birimleri, birimin çıktısı 0,5’e yakınken gradyanın en güçlü olması sayesinde, geri yayılım eğitimini verimli kıldığı için erken dönem sinir ağlarında popülerdi. Ancak sigmoid birimleri, derin sinir ağlarında öğrenmeyi sekteye uğratan “sönümlenen gradyan” probleminden muzdariptir.

Girdi değerleri önemli ölçüde pozitif veya negatif hale geldikçe, fonksiyon 0 veya 1’de doygunluğa ulaşır ve eğimi son derece düzleşir. Bu bölgelerde gradyan sıfıra çok yakındır. Bu da özellikle derin ağların ilk katmanlarındaki nöronlar için geri yayılım sırasında ağırlıklarda çok küçük değişikliklere yol açar; öğrenme acı verici derecede yavaşlar veya durur. Bu durum sinir ağlarında sönümlenen gradyan problemi olarak adlandırılır.

Sigmoid fonksiyonunun başlıca kullanım alanı, ikili sınıflandırma modellerinin çıktı katmanındaki aktivasyon olarak yer almasıdır. Çıktıyı 0 ile 1 arasında bir olasılık değerine sıkıştırır; bu da girdinin belirli bir sınıfa ait olma olasılığı olarak yorumlanabilir.

Tanh (hiperbolik tanjant) aktivasyon

Tanh aktivasyon fonksiyonu. Görsel: Yazar

Tanh (hiperbolik tanjant) aktivasyon fonksiyonu şu şekilde tanımlanır:

tanh aktivasyon fonksiyonu

Tanh fonksiyonu -1 ile +1 aralığında değerler üretir. Bu, aralığı 0 ile 1 olan sigmoid fonksiyonuna kıyasla negatif değerlerle daha etkili şekilde başa çıkabildiği anlamına gelir. 

Sigmoid fonksiyonundan farklı olarak tanh sıfır merkezlidir; yani çıktısı koordinat sisteminin orijeni etrafında simetriktir. Bu, öğrenme algoritmasının daha hızlı yakınsamasına yardımcı olabileceği için genellikle bir avantaj olarak görülür.

Tanh’in çıktısı -1 ile +1 arasında değiştiğinden, sigmoid fonksiyonuna göre daha güçlü gradyanlara sahiptir. Daha güçlü gradyanlar genellikle eğitim sırasında daha hızlı öğrenme ve yakınsama sağlar; çünkü sigmoid fonksiyonunun gradyanlarına kıyasla sönümlenen gradyan problemine karşı daha dayanıklıdırlar.

Bu avantajlara rağmen tanh fonksiyonu yine de sönümlenen gradyan probleminden etkilenir. Geri yayılım sırasında tanh’in gradyanları çok küçük (sıfıra yakın) hale gelebilir. Bu sorun, çok sayıda katmana sahip derin ağlar için özellikle sorunludur; kayıp fonksiyonunun gradyanları, başlangıç katmanlarına geri yayılırken eğitim sırasında ağırlıklarda anlamlı değişiklikler yapamayacak kadar küçük olabilir. Bu, eğitim sürecini ciddi şekilde yavaşlatabilir ve zayıf yakınsama özelliklerine yol açabilir.

Tanh fonksiyonu, sinir ağlarının gizli katmanlarında sıklıkla kullanılır. Sıfır merkezli yapısı sayesinde, veri de ortalaması sıfır olacak şekilde normalize edildiğinde daha verimli eğitim sağlayabilir.

Sigmoid ile tanh arasında seçim yapılacak ve birini diğerine tercih etmek için özel bir neden yoksa, yukarıda belirtilen nedenlerden ötürü genellikle tanh daha iyi bir tercihtir. Ancak karar, belirli kullanım durumundan ve ağın ilk eğitim deneyimlerindeki davranışından da etkilenebilir.

Şu PyTorch ile sıfırdan Basit Bir Sinir Ağı öğreticimizi Kurtis Pykes’ın rehberliğinde takip ederek oluşturabilir veya ileri düzey bir kullanıcıysanız PyTorch ile Derin Öğrenme kursumuz tam size göre.

ReLU (düzeltilmiş doğrusal birim) aktivasyon

Düzeltilmiş Doğrusal Birim (ReLU) aktivasyon fonksiyonu. Görsel: Yazar

Düzeltilmiş Doğrusal Birim (ReLU) aktivasyon fonksiyonunun biçimi şöyledir:

ReLU aktivasyon fonksiyonu

Girdiyi sıfırda eşikleyerek, negatif değerler için 0, pozitif değerler için girdinin kendisini döndürür.

0’dan büyük girdiler için ReLU, gradyanı 1 olan doğrusal bir fonksiyon gibi davranır. Bu, pozitif girdilerin ölçeğini değiştirmediği ve geri yayılım sırasında gradyanın olduğu gibi geçmesine izin verdiği anlamına gelir. Bu özellik, sönümlenen gradyan problemini hafifletmede kritik öneme sahiptir.

ReLU, giriş uzayının yarısı için doğrusal olsa da, teknik olarak x=0 noktasında türevlenemez ve bir anda x’ten 0’a geçiş yapar; dolayısıyla doğrusal olmayan bir fonksiyondur. Bu doğrusal olmayanlık, sinir ağlarının karmaşık örüntüleri öğrenmesini sağlar.

ReLU tüm negatif girdiler için sıfır ürettiğinden, doğal olarak seyrek aktivasyonlara yol açar; herhangi bir anda yalnızca bir alt küme nöron etkinleşir, bu da daha verimli hesaplama sağlar.

ReLU fonksiyonu hesaplama açısından ucuzdur çünkü yalnızca sıfırda basit bir eşikleme içerir. Bu da, tanh veya sigmoid gibi daha karmaşık fonksiyonlarla karşılaştırıldığında, ağların katman sayısını önemli bir hesaplama yükü artışı olmadan ölçeklendirmesine olanak tanır.

Softmax aktivasyon

Softmax aktivasyon fonksiyonu. Görsel: Yazar

Normalize edilmiş üstel fonksiyon olarak da bilinen softmax aktivasyon fonksiyonu, çok sınıflı sınıflandırma problemlerinde özellikle kullanışlıdır. Bu fonksiyon, genellikle önceki katmanların her sınıf için hesapladığı ham tahminleri veya puanları temsil eden logits adı verilen bir vektör üzerinde çalışır.

x1, x2, ..., xC öğelerinden oluşan girdi vektörü x için softmax fonksiyonu şu şekilde tanımlanır:

softmax aktivasyon fonksiyonu

Softmax fonksiyonunun çıktısı toplamı bire eşit olan bir olasılık dağılımıdır. Çıktının her bir elemanı, girdinin belirli bir sınıfa ait olma olasılığını temsil eder.

Üstel fonksiyonun kullanımı tüm çıktı değerlerinin negatif olmamasını sağlar. Bu kritiktir; çünkü olasılıklar negatif olamaz.

Softmax, girdi vektöründeki farkları büyütür. Girdi değerlerindeki küçük farklar bile çıktı olasılıklarında önemli farklara yol açabilir; en yüksek girdi değeri(leri) ortaya çıkan olasılık dağılımında baskın olma eğilimindedir.

Softmax, girdi birden fazla (ikiden fazla) olası kategoriden birine sınıflandırılacaksa genellikle sinir ağının çıktı katmanında kullanılır (çok sınıflı sınıflandırma).

Softmax’in ürettiği olasılıklar, her sınıf için güven puanları olarak yorumlanabilir; bu da modelin tahminlerine ne kadar emin olduğuna dair içgörü sunar.

Softmax farkları büyüttüğü için aykırı değerlere veya aşırı değerlere duyarlı olabilir. Örneğin, girdi vektöründe çok büyük bir değer varsa, softmax diğer sınıfların olasılıklarını “bastırarak” modelin aşırı özgüvenli olmasına yol açabilir.

Doğru Aktivasyon Fonksiyonunu Seçmek

Aktivasyon fonksiyonu seçimi, çözmeye çalıştığınız problem türüne bağlıdır. İşte bazı yönergeler:

İkili sınıflandırma için

Çıktı katmanında sigmoid aktivasyon kullanın. Çıktıları 0 ile 1 arasına sıkıştırarak iki sınıf için olasılıkları temsil eder.

Çok sınıflı sınıflandırma için

Çıktı katmanında softmax aktivasyonu kullanın. Tüm sınıflar üzerinde olasılık dağılımları üretir.

Emin değilseniz

Gizli katmanlarda ReLU aktivasyonunu kullanın. ReLU en yaygın varsayılan aktivasyon fonksiyonudur ve genellikle iyi bir seçimdir.

Sonuç

Aktivasyon fonksiyonlarının sinir ağlarının eğitimindeki belirleyici rolünü inceledik. Bunların yalnızca isteğe bağlı eklentiler değil, sinir ağlarının gerçek dünya verilerindeki karmaşıklığı yakalayıp modellemesini mümkün kılan temel unsurlar olduğunu gördük. Basit ama etkili ReLU’dan, softmax fonksiyonunun sunduğu olasılıksal yorumlara kadar her aktivasyon fonksiyonunun bir ağın farklı katmanlarında ve çeşitli problem alanlarında kendine özgü bir yeri ve amacı vardır.

Sinir ağları gelişmeye devam ettikçe, aktivasyon fonksiyonlarının keşfi de kuşkusuz genişleyecek ve yükselen mimarilerin belirli zorluklarını ele alan yeni biçimleri içerebilir. Ancak bu blogda tartışılan ilke ve fonksiyonlar, öngörülebilir gelecekte sinir ağı tasarımının çekirdeğinde kalmaya muhtemelen devam edecektir.

Aktivasyon fonksiyonlarının dikkatli seçimi, sinir ağlarının performansını önemli ölçüde etkileyebilen—bilimsel bir anlayışla sanatsal bir sezginin harmanlandığı—ince bir denge işidir. 

Keras çatısı ile derin öğrenmeyi öğrenmek ister misiniz? Keras ile Derin Öğrenmeye Giriş kursumuza göz atın.

Moez Ali

Yazar

Moez Ali

Veri Bilimci, PyCaret'in Kurucusu ve Yaratıcısı

SSS

Bir sinir ağında aktivasyon fonksiyonu nedir?

Bir aktivasyon fonksiyonu, bir sinir ağındaki bir nöronun etkinleşip etkinleşmeyeceğini belirler. Girdilerin ağırlıklı toplamını bir çıktı sinyaline dönüştürür ve ağa, verideki karmaşık örüntüleri öğrenmeyi sağlayan doğrusal olmayanlık katar. Aktivasyon fonksiyonları olmadan sinir ağları yalnızca doğrusal ilişkileri modelleyebilir.

Aktivasyon fonksiyonları derin öğrenmede neden önemlidir?

Aktivasyon fonksiyonları, verideki doğrusal olmayan ilişkileri yakalamayı mümkün kıldıkları için derin öğrenmede hayati öneme sahiptir. Görüntü tanıma, konuşma işleme ve duygu analizi gibi gerçek dünya problemleri doğası gereği doğrusal değildir ve ReLU, sigmoid ve tanh gibi aktivasyonlar bu karmaşıklıkları etkili biçimde modellemeyi sağlar.

En yaygın aktivasyon fonksiyonu türleri nelerdir?

En yaygın aktivasyon fonksiyonları arasında ReLU (Düzeltilmiş Doğrusal Birim), Sigmoid, Tanh (Hiperbolik Tanjant), Softmax ve Doğrusal yer alır. ReLU, hesaplama verimliliği nedeniyle gizli katmanlarda yaygın olarak kullanılır; sigmoid ikili sınıflandırmada, softmax çok sınıflı problemlerde ve doğrusal aktivasyon regresyon görevlerinde yaygındır.

Sinir ağım için doğru aktivasyon fonksiyonunu nasıl seçerim?

Doğru aktivasyon fonksiyonunu seçmek göreve bağlıdır.

  • İkili sınıflandırma için Sigmoid kullanın.

  • Çok sınıflı sınıflandırma için Softmax kullanın.

  • Regresyon çıktıları için Doğrusal kullanın.

  • Gizli katmanlar için ReLU’yu (veya Leaky ReLU gibi türevlerini) kullanın. Farklı fonksiyonları test etmek, hangisinin daha hızlı yakınsama ve daha iyi model performansı sağladığını belirlemenize yardımcı olabilir.

Aktivasyon fonksiyonlarıyla hangi sorunlar ortaya çıkabilir?

Bazı aktivasyon fonksiyonları, gradyanların etkili öğrenme için fazla küçük hale geldiği sönümlenen gradyan problemi (sigmoid ve tanh ile görülen) gibi zorluklara yol açabilir. Diğerleri, örneğin ReLU, nöronların sıfır üretip öğrenmeyi durdurduğu dying ReLU probleminden muzdarip olabilir. Uygun fonksiyonların seçilmesi ve ağırlıkların dikkatli başlatılması bu sorunları hafifletmeye yardımcı olabilir.

Konular

İlgili