Activation Functions, Artificial Neural Network
YAPAY ZEKANIN SİHİRBAZLARI: AKTİVASYON FONKSİYONLARI
İki kişi bir araya geldiğinde arada oluşan bir elektriğin var olabileceğinden bahsederler, değil mi? Hatta biraz daha ileri giderek derler ki: ”Kimyamız tuttu/ tutmadı” ve arada bir kimyasal çekimden bahsederler. Bu iki kavramın yani “elektrik” ve “kimyasal çekim” in varlığı iki kişiyi birbirine bir tutkal gibi bağlarken yokluğu birbirinden koparır, yani ne oluyorsa bu kişiler arasında bu elektrik ve kimyaya bağlı olarak gelişir ya da kaybolur gider.
İşte beynimizdeki nöronlar arasında da benzer bir iletişim vardır; devam eden ya da kaybolup giden.
Aşağıda ilk olarak nöronlar ve aralarındaki iletişimin nasıl gerçekleştiği ile ilgili bilgi yer almıştır. Bu bilgilerin verilmesinin bir yapay sinir ağının oluşturulmasındaki temel mantığı anlamak açısından önemli olduğunu düşünüyorum.
Nöronlar, organizmadaki yapılar arasındaki iletişimi sağlayarak düşünmemizi, hareket etmemizi, yaşamsal faaliyetlerimizin devamını sağlar. Beynin temel işlevlerinden sorumludurlar.
Nöron, sinir sisteminin temel bileşenidir. Beynimizde milyarlarca nöron bulunur. Nöronların görevi elektriksel ve kimyasal sinyalleri almak, işlemek ve iletmektir.
Bir nöronun temel bileşenleri şunlardır:
- Dendrit: Nöronun girdi aldığı uzantılarıdır. Dendritler sinyalleri alır ve hücre gövdesine iletir.
- Hücre gövdesi: Nöronun ana gövdesini oluşturur. Alınan sinyalleri işler ve nöronun aksiyon potansiyeli olarak adlandırılan tepkiyi oluşturur
- Akson: Nöronun çıktı iletiminden sorumlu uzun uzantısıdır. Aktivasyon potansiyelini komşu nöronlara iletir.
- Sinaptik uç: Aksonun ucundaki genişlemedir. Burada depo edilen nörotransmitterlerin, sinaptik aralığa salınarak komşu nörona kimyasal sinyal olarak iletilir.
- Sinaps: İki nöron arasındaki küçük boşluğu birbirine bağlayan yapıdır. Burada elektriksel sinyal kimyasal sinyale dönüştürülerek komşu nörona iletilir.
Bir nöronun çalışması temelde dendritler yoluyla gelen girdi sinyallerinin toplanması, hücre gövdesinde bir eylem potansiyeline dönüştürülmesi, akson boyunca iletilmesi ve komşu nöronlara sinapslardan geçerek ulaştırılması işidir. Adım adım, basitçe incelenirse nöronların içinde iletim aşağıdaki şekilde gerçekleşir:
- Bir uyarıcı, nöronun dendritlerine ulaşır. Dendritler, nöronun uzantılarıdır ve sinyalleri alırlar.
- Dendritlerdeki iyon kanalları açılır ve iyonlar hücre içine girer. Bu akım dendritlerden hücre gövdesine iletilir.
- Hücre gövdesine ulaşan aksiyon potansiyeli, eksi yüklü iç ortamda bulunan pozitif iyonların salınmasına neden olur. Bu salınım sonucu hücre içi Aksiyon Potansiyeli oluşur.
- Aksiyon potansiyeli, hücre gövdesinden aksona doğru iletilir. Akson, nöronun uzun uzantısıdır ve sinyalleri diğer nöronlara taşır.
- Akson boyunca ilerleyen aksiyon potansiyeli, sinaptik uçlarda nörotransmiterlerin salgılanmasına yol açar. Nörotransmiterler kimyasal sinyale dönüşerek komşu nöronlara geçer.
- Komşu nöronun aldığı kimyasal sinyal, yeni bir elektriksel aksiyon potansiyeline dönüşerek içinde iletilmeye devam eder.
Yukarıda verilen bilgilerden de anlaşılacağı üzere, nöronlar birbirleriyle hem elektriksel hem de kimyasal sinyaller kullanarak konuşurlar. Mesajlar elektrik sinyalleri olarak hızla bir nöron boyunca seyahat eder, bu sinyallere eylem potansiyeli denir. Nöronlar arasındaki boşluğa yani sinapslara ulaştıklarında, bilgi, eylem potansiyelinden boşluğun karşısına geçen kimyasal mesaja dönüştürülür.
Bu kimyasal haberci maddelerin salınımı, sinapsın öteki tarafındaki nöronda bir eylem potansiyeli tetikleyebilir, böylece mesaj iletilmiş olur ya da mesajı susturabilir.
Bu süreç tekrar tekrar gerçekleşir ve sinaps ne kadar aktif olursa, nörotransmitterler o kadar çok salınır ve reseptörlere bağlanır. Sinapsın bu şekilde güçlenmesi, nöronlar arasındaki iletişimi kolaylaştırır.
Bütün bu işlemlerin sonucunda nöronlar, önemli mesajları iletmeyi ve geri kalanları yok saymayı öğrenir, tıpkı giriş kısmında bahsedilen iki kişi arasındaki elektriklenme durum gibi …
YAPAY SİNİR AĞI
Yapay sinir ağı, insan beyninin bu işleyişini taklit eden, beyindeki sinir ağlarından ilham alan ve geniş bir veri setini işleyerek karmaşık problemleri çözebilen ve bilgisayar sistemlerinde kullanılan bir hesaplama modelidir.
Yapay sinir ağları, temelde çok sayıda yapay sinir hücresi veya “nöron” denilen bilgi işleme birimlerinden oluşur. Her bir nöron, girdi verilerini alır, bu girdileri bir ağırlıkla çarpar, bunları bir aktivasyon fonksiyonundan geçirir ve ardından çıktı üretir. Bu çıktılar, bir sonraki katmana veya çıktı katmanına iletilir ve işlem tekrarlanır.
Bir yapay sinir ağı, genellikle bir giriş katmanı, bir veya daha fazla gizli katman ve bir çıktı katmanı içerir. Giriş katmanı, dış dünyadan gelen verileri alır ve nöronlara iletir. Gizli katman(lar), girdi verilerini işler ve bir sonraki katmana iletilir. Son olarak, çıktı katmanı, sonuçları üretir ve elde edilen çıktılar kullanıcıya sunulur.
Sinir Ağı Nasıl Çalışır?
Bir sinir ağı aşağıdaki adımları takip ederek çalışır:
- Girdi katmanına veriler girilir. Girdi katmanındaki her nöron bir girdi değişkenini temsil eder.
- Girdi katmanından gelen değerler, gizli katmandaki nöronlara bağlantılar aracılığıyla iletilir. Her bağlantının bir ağırlığı vardır.
- Gizli katmandaki her nöron, girdi katmanından gelen tüm değerleri kendisine gelen bağlantı ağırlıkları ile çarpar ve toplar. Bu toplam sonuca bir aktivasyon fonksiyonu (örn. sigmoid) uygulanarak nöronun çıktısı elde edilir.
- Gizli katmandan elde edilen çıktı değerleri, çıktı katmanına bağlı nöronlara iletilir. Yine her bağlantı için bir ağırlık vardır.
- Çıktı katmanındaki her nöron, gelen tüm girdi değerlerini kendisine bağlı bağlantı ağırlıkları ile çarpar ve toplar. Bir aktivasyon fonksiyonundan geçirilerek çıktı değeri üretilir.
- Elde edilen çıktılar, sinir ağının tahminini temsil eder. Eğer bu çıktılar istenen sonuçla eşleşmiyorsa ağırlıklar ayarlanır (öğrenme gerçekleşir).
- Ağa yeni örnekler gösterilerek adım 1'den başa dönülür ve öğrenme devam eder. Ağırlıklar yavaş yavaş doğru çıktılar üretmeye yönlendirilir.
Temel olarak bir sinir ağı bu şekilde çalışır. Çok sayıda örnek gösterilerek ve ağırlıkların kademeli olarak ayarlanmasıyla, karmaşık ilişkileri ve kalıpları öğrenir.
Yukarıda bahsi geçen iki kavrama dikkat çekmek istiyorum “Aksiyon Potansiyeli “ ve “Aktivasyon Fonksiyonu”. Zira bu iki kavram arasındaki ilişki, ikisinin de “sırlı( gizemli)” olması diye ifade edilebilir ve bugün yapay zeka algoritmalarındaki temel düşünce de buraya dayanıyor diyebiliriz.
Öncelikle bu iki kavramı açıklayalım:
Aksiyon potansiyeli, sinir hücreleri veya nöronlar tarafından iletilen elektriksel bir sinyaldir. Bir nöron, uyarıldığında, girdi sinyallerinin bir sonucu olarak aksiyon potansiyeli üretilir. Aksiyon potansiyeli, bir nöronun uyarıyı bir sonraki nörona iletmesini sağlar. Bu iletim, nöronlar arasında bilginin aktarılmasını sağlayan sinir ağı ağının temel işlevidir.
Bir nöronun uyarılması sonucu, aksiyon potansiyeli adı verilen elektriksel sinyal, sinir hücresinin gövdesinden başlayarak sinir lifi boyunca ilerler. Sinir lifi, akson adı verilen bir uzantıdır. Aksiyon potansiyeli, akson boyunca elektriksel olarak iletilir.
Aktivasyon fonksiyonları ise yapay sinir ağlarında kullanılan matematiksel işlevlerdir. Bir nöronun girdi toplamını alır ve çıktı değerini belirlemek için bu toplamı bir eşik değeri ile karşılaştırır. Aktivasyon fonksiyonları, nöronun çıktısını belirlemek için kullanılan bir karar mekanizmasıdır. Aktivasyon fonksiyonları, genellikle nöronun çıktısını bir eşik değeri ile karşılaştırarak nöronun etkinleştirilip etkinleştirilmeyeceğini belirler.
Aktivasyon fonksiyonları, nöronun çıktı aralığını sınırlar ve non-linearite (doğrusal olmayan) özellikler ekleyebilir. Bu sayede, yapay sinir ağları daha karmaşık işlevleri öğrenebilir ve daha esnek bir şekilde verileri işleyebilir.
Bir yapay sinir ağındaki her bir yapay nöron, giriş verilerini toplar, bu girdileri bir ağırlıkla çarpar, bir toplam değer hesaplar ve ardından bu toplam değeri bir aktivasyon fonksiyonuna iletir. Aktivasyon fonksiyonu, toplam değeri bir eşik değeriyle karşılaştırılarak nöronun çıktısını belirler. Bu çıktılar daha sonra bir sonraki katmana veya çıktı katmanına iletilir.
Bu bağlamda bu iki kavram arasındaki benzeşme net bir şekilde ifade edilirse:
Aksiyon potansiyeli, bir sinir hücresinin içsel durumunu ve uyarılmış olup olmadığını temsil ederken, Aktivasyon Fonksiyonu, yapay sinir ağındaki yapay nöronların çıktılarını belirlemek için kullanılan matematiksel işlevi ifade eder. Aktivasyon fonksiyonları, nöronların çıktılarının belirlenmesinde aksiyon potansiyelinin gerçek dünya benzerini taklit eder.
ABRA KADABRA
Şimdi bu iki kavramını kendi sistemleri içinde çalışırken nasıl bir büyücü gibi çalışıp bir magic (sihir) gerçekleştirdiklerine bakalım:
Bir nöron içinde iletim elektriksel olarak gerçekleşirken, sinapslara ulaştığında kimyasal sinyale dönüşür. Bu sayede iki nöron arasındaki iletişim sağlanmış olur. Sinapsta elektriksel sinyalin kimyasal sinyale dönüşümünü sağlayan şey aksiyon potansiyelidir. Aksiyon potansiyeli sinaptik uçlara ulaştığında, burada depo edilmiş olan nörotransmiterleri salgılanmaya neden olur. Nörotransmiterler kimyasal haberci moleküllerdir ve sinaptik aralığa salınarak komşu nörona bilgi iletirler. Resmen bir ABRA KADABRA!!! ve gelen bilgi elektrik iken birden bir kimyasala dönüşüyor. Böylece sinir hücreleri veya nöronlar arasındaki iletişim elektriksel sinyallerin kimyasal sinyallere dönüşmesi ile gerçekleşir. İletişimin sağlandığı yer sinapslardır ve buradaki büyücü aksiyon potansiyelidir. Bu işlemi tam olarak neye göre gerçekleştirdiği bilinmemektedir.
Yani, aksiyon potansiyeli sinapslara ulaştığında, sinaptik uçlarda depo edilen nörotransmitterlerin salınmasını tetikler ve bu nörotransmitterler sinaptik aralığa yayılarak komşu nörona kimyasal olarak bilgi aktarımını sağlar.
Bir aktivasyon fonksiyonu ise, bir sinir hücresinin aktive olup olmadığını belirleyen mekanizmadır. Bir nöronun aktive olması ve aksiyon potansiyeli üretmesi için gerekli eşik değerini hesaplar.
Aktivasyon fonksiyonu öncelikle nörona gelen toplam girdi miktarını alır. Bu girdi, nöronun birçok bağlantısından gelen sinyallerin toplam uyarıcı ya da inhibitör etkisidir. Sonra nörona ulaşan birçok girdiyi tek bir değere indirgemek için toplar. Bu sayede nöronun aldığı toplam uyarım miktarı hesaplanmış olur. Her nöronun aktive olabilmesi için bir eşik uyarım değeri vardır. Aktivasyon fonksiyonu bu eşik değeri ile toplam girdi miktarını karşılaştırır. Eğer toplam girdi, nöronun eşik değerini aşıyorsa, aktivasyon fonksiyonu 1 (aktif) sonucunu üretir. Aksi halde 0 (inaktif) sonucunu verir. Aktivasyon fonksiyonunun ürettiği sonuç (1 veya 0), nörondan çıkacak çıktıyı belirler. 1 ise nöron aksiyon potansiyeli üretir ve sinyal iletir, 0 ise sessiz kalır.
Bu şekilde aktivasyon fonksiyonları, bir nörona gelen toplam girdiyi hesaplayarak, nöronun aktif olup olmayacağına karar verir ki bu karar aşaması resmen bir ABRA KADABRA ihtiva ediyor ve bu kararı sonuç olarak çıktısına yansıtır.
Böylece aktivasyon fonksiyonları yapay sinir ağlarında ve biyolojik sinir sistemlerinde bilgi işlemeyi sağlar. Aktivasyon fonksiyonları, yapay sinir ağlarının non-linearite (doğrusal olmayan) özellikler kazanmasını sağlar. Bu sayede, sinir ağları daha karmaşık problemleri çözebilir ve daha esnek bir şekilde verileri işleyebilir.
En çok kullanılan aktivasyon fonksiyonları ve Python da bu fonksiyonların grafiklerini çizdirmek için kullanılan kod blokları aşağıda verilmiştir.
STEP FONKSİYONU
plt.figure()
plt.xlabel("Inputs/ Step Function")
plt.ylabel("Function Outputs")
plt.grid(True)
plt.plot(x, step, label="Step", color='C0', lw=3)
plt.savefig('Step.png')
Step fonksiyonu, üst ve alt limitleri keskin olarak değiştiren bir aktivasyon fonksiyonudur. Girdi 0’ın altında iken 0, üstünde iken 1 değerini alır. Bu nedenle adına basamak fonksiyonu (step function) denir.
Step fonksiyonunun bazı özellikleri şunlardır:
- Keskin sınırlar: Step fonksiyonu girdi değeri 0’a ulaştığı anda çıktısını keskin bir şekilde değiştirir. Üst sınır ve alt sınır arasında ani bir geçiş vardır.
- Sınırlı çıktı: Step fonksiyonu çıktıyı sadece 0 ve 1 olarak üretir. Ara değer almaz.
- Doğrusal olmama: Step fonksiyonu doğrusal bir fonksiyon değildir. Çıktısı girdiyle doğru orantılı artmaz.
- Türevsiz: Step fonksiyonu türevsiz bir fonksiyondur. Bu nedenle optimizasyon algoritmalarında kullanılması zordur.
- Eşik değeri: Step fonksiyonu bir eşik değeri belirleyerek, bu değerin altındaki girdiler için 0, üstündeki girdiler için 1 çıktısı üretir.
Step fonksiyonu, yapay sinir ağlarında nadiren kullanılır. Çünkü türevsiz ve doğrusal olmaması optimizasyonu zorlaştırır. Ancak mantık kapılarının modellenmesinde ve bazı sınıflandırma uygulamalarında kullanılabilir. Ayrıca biyolojik olarak gerçek nöronların çalışma prensibine daha uygundur.
TANH FONKSİYONU
plt.figure()
plt.xlabel("Inputs / TanH Function")
plt.ylabel("Function Outputs")
plt.grid(True)
plt.plot(x,tanh, label="TanH", color='C5', lw=3)
plt.savefig('Tanh.png')
Tanh fonksiyonu, hiperbolik tanjant fonksiyonunun kısaltmasıdır. Tanh fonksiyonu, girdi alanını -1 ile 1 arasında değişen çıktılara dönüştüren bir aktivasyon fonksiyonudur.
Tanh fonksiyonunun felsefi yapısı şu şekilde özetlenebilir:
- Sınırlı çıktı: Tanh fonksiyonu girdiyi her zaman -1 ile 1 arasında bir çıktıya dönüştürür. Bu sayede çıktının sınırlı olmasını sağlar.
- Merkezi sıfır noktası: Tanh fonksiyonu sıfır girdi için sıfır çıktı üretir. Yani orijinde merkeze sıfır noktasına sahiptir.
- Yumuşak geçiş: Tanh fonksiyonu pürüzsüz ve yumuşak bir eğri çizer. Bu sayede girdi uzayındaki değişimler yumuşak bir şekilde çıktı uzayına aktarılır. Keskin değişimlerden kaçınılır.
- Türevlenebilir: Tanh fonksiyonu türevlenebilir bir fonksiyondur. Bu özellik fonksiyonun optimizasyon algoritmalarında kullanılmasını sağlar.
- Sigmoid benzeri: Tanh fonksiyonu sigmoid fonksiyona benzer bir aktivasyon fonksiyonudur. Ancak çıktı aralığı -1 ile 1 arasında değiştiği için sigmoid fonksiyonuna göre daha simetriktir.
Tanh fonksiyonu, yukarıdaki özellikleri sayesinde yapay sinir ağlarında sık kullanılan bir aktivasyon fonksiyonudur. Uygun ve dengeli bir aktivasyon sağladığı için tercih edilir.
SİGMOİD FONKSİYONU
plt.figure()
plt.xlabel("Inputs / Sigmoid Function")
plt.ylabel("Function Outputs")
plt.grid(True)
plt.plot(x,sigmoid, label="Sigmoid", color='C1', lw=3)
plt.savefig('Sigmoid.png')
Sigmoid fonksiyonu, S şeklindeki bir aktivasyon fonksiyonudur. Girdiyi 0 ile 1 arasında değişen çıktılara dönüştürür.
Sigmoid fonksiyonunun bazı özellikleri şunlardır:
- Sınırlı çıktı: Sigmoid fonksiyonu çıktıyı her zaman 0 ile 1 arasında tutar. Böylece çıktının aşırı büyümesini engeller.
- Yumuşak eğri: Sigmoid fonksiyonu yumuşak bir eğri çizer. Bu sayede girdi uzayındaki değişimler kademeli olarak çıktıya yansır. Ani ve keskin değişimler engellenir.
- Merkezi eğim: Sigmoid fonksiyonunun merkezinde eğim en yüksektir. Bu bölgede küçük girdi değişimleri, çıktıda büyük değişimlere neden olur. Kenarlarda ise eğim azalır ve girdi değişimlerine çıktı duyarsızlaşır.
- Türevlenebilir: Sigmoid fonksiyonu türevlenebilir bir fonksiyondur. Bu özellik optimizasyon algoritmalarında fonksiyonun kullanılmasını sağlar.
- Lojistik benzeri: Sigmoid fonksiyonu lojistik fonksiyona benzerdir. Ancak aralığı 0 ile 1 arasında olduğu için daha kısıtlıdır.
Sigmoid fonksiyonu, yukarıdaki özellikleri sayesinde yapay sinir ağlarında yaygın olarak kullanılan bir aktivasyon fonksiyonudur. Doğrusal olmayan verilerin sınıflandırılmasında ve karmaşık problemlerin modellenmesinde sıklıkla tercih edilir.
ReLU FONKSİYONU
plt.figure()
plt.xlabel("Inputs / ReLU")
plt.ylabel("Function Outputs")
plt.grid(True)
plt.plot(x,relu, label="ReLU", color='C2', lw=3)
plt.savefig('Relu.png')
ReLU fonksiyonu, doğrusal bir aktivasyon fonksiyonudur. Girdi değerlerinin pozitif olan kısmını olduğu gibi geçirir, negatif olan kısmını ise 0 çıktısına dönüştürür. ReLU, rectified linear unit kavramının kısaltmasıdır.
ReLU fonksiyonunun bazı özellikleri şunlardır:
- Doğrusal: ReLU fonksiyonu pozitif bölgede doğrusal bir fonksiyondur. Girdi ile çıktı doğru orantılı olarak artar.
- Türevlenebilir: ReLU fonksiyonu türevlenebilir bir fonksiyondur. Bu sayede optimizasyon algoritmalarında kolaylıkla kullanılabilir.
- Pozitif çıktı: ReLU fonksiyonu çıktıyı her zaman 0 veya pozitif yönde üretir. Negatif çıktı üretmez.
- Basit: ReLU fonksiyonu uygulaması basit bir işlem gerektirir. Bu da hızlı çalışan modellerin geliştirilmesine olanak sağlar.
- Orta noktasız: ReLU fonksiyonunun eğrisi orijinden geçmez. Bu sayede orta noktada sıfır eğim sorunu yaşanmaz.
ReLU fonksiyonu, yukarıdaki özellikleri sayesinde derin sinir ağlarında en yaygın kullanılan aktivasyon fonksiyonlarındandır. Özellikle görüntü işleme ve doğal dil işleme alanlarında sıklıkla tercih edilmektedir. ReLU ağları, eğitim hızını ve başarımı artırmaktadır.
SOFTMAX FONKSİYONU
plt.figure()
plt.xlabel("Inputs / Softmax ")
plt.ylabel("Function Outputs")
plt.grid(True)
plt.plot(x,softmax, label="Softmax", color='C3', lw=3)
plt.savefig('Softmax.png')
Softmax fonksiyonu, birçok sinirin çıktılarını 0 ile 1 arasında normalleştirerek, bunları olasılık dağılımlarına dönüştüren bir aktivasyon fonksiyonudur.
Softmax fonksiyonunun bazı özellikleri şunlardır:
- Olasılık dağılımı: Softmax fonksiyonu birçok sinirin çıktısını, toplamları 1 olan olasılık değerlerine dönüştürür. Böylece bu çıktılar rastgele değişkenlerin olasılık dağılımını temsil eder.
- Normalleştirme: Softmax fonksiyonu girdi değerlerini 0 ile 1 arasında normalleştirir. En yüksek değere sahip girdiye yakın olanların ağırlığını arttırır. Böylece girdiler arasında rekabet oluşturulur.
- Sıralama: Softmax fonksiyonu, birden fazla rastgele değişken arasında olasılıkları hesapladığı için, bu değişkenleri olasılıklarına göre sıralamış olur. En yüksek olasılığa sahip değişken ilk sırada yer alır.
- Türevlenebilir: Softmax fonksiyonu türevlenebilir bir fonksiyondur. Bu sayede optimizasyon algoritmalarında kolayca kullanılabilir.
Softmax fonksiyonu, özellikle çok sınıflı sınıflandırma problemlerinde ve olasılık dağılımlarının modellenmesinde kullanılır. Sinir ağlarının çıktı katmanında, her bir çıktının olasılık değerini hesaplamak için tercih edilir.
SOFTPLUS FONKSİYONU
plt.figure()
plt.xlabel("Inputs/ SoftPlus Function ")
plt.ylabel("Function Outputs")
plt.grid(True)
plt.plot(x,softplus, label="SoftPlus", color='C4', lw=3)
plt.savefig('SoftPlus.png')
Softplus fonksiyonu, logaritmik bir aktivasyon fonksiyonudur. Girdiyi 0'dan büyük çıktılara eğrisel bir şekilde dönüştürür. Softplus fonksiyonu, logaritmik sigmoid fonksiyon olarak da adlandırılır.
Softplus fonksiyonunun bazı özellikleri şunlardır:
- Logaritmik eğri: Softplus fonksiyonu girdi uzayında logaritmik bir eğri çizer. Bu eğri sayesinde küçük girdiler büyük çıktılara, büyük girdiler ise doygunlaşmış çıktılara dönüştürülür.
- Sınırlı asimptotik çıktı: Softplus fonksiyonu çıktıyı 0'dan sonsuza doğru artan değerler olarak üretir, ancak bir noktadan sonra doygunlaşmaya uğrar. Bu sayede çıktının sonsuza gitmesi engellenir.
- Yumuşak geçiş: Softplus fonksiyonu girdi uzayında yumuşak geçişlere sahiptir. Ani ve keskin değişimler göstermez. Bu özellik verilerdeki anomaliyi yok etmeye yardımcı olur.
- Türevlenebilir: Softplus fonksiyonu türevlenebilir bir fonksiyondur. Bu sayede optimizasyon algoritmalarında kullanılabilir.
- Basit: Softplus fonksiyonu uygulanması basit bir fonksiyondur. Bu da modellerin hızlı çalışmasını sağlar.
Softplus fonksiyonu, sinir ağlarında sigmoid fonksiyonunun alternatiflerinden biri olarak kullanılır. Özellikle verilerde aykırı değerlerin olduğu durumlarda tercih edilir. Ayrıca çıktının sınırlı olmasının istendiği modellerde sigmoid fonksiyonuna göre daha uygundur.
ELU FONKSİYONU
plt.figure()
plt.xlabel("Inputs/ ELU Function")
plt.ylabel("Function Outputs")
plt.grid(True)
plt.plot(x,elu, label="ELU", color='C8', lw=3)
plt.savefig('elu.png')
ELU fonksiyonu (Exponential Linear Unit), doğrusal ve üstel bir aktivasyon fonksiyonudur. Girdi değerlerinin pozitif olan kısmını doğrusal, negatif olan kısmını ise üstel bir şekilde aktarır. ELU fonksiyonu, ReLU fonksiyonunun sorunlarını gidermek için geliştirilmiştir.
ELU fonksiyonunun bazı özellikleri şunlardır:
- Doğrusal ve üstel: ELU fonksiyonu pozitif girdilerde doğrusal, negatif girdilerde ise üstel davranış gösterir. Böylece hem doğrusal hem de doğrusal olmayan özellikler bir arada bulunmuş olur.
- Ortalamaya çekme: ELU fonksiyonun üstel bölümü, negatif girdileri ortalama 0'a çeker. Bu sayede istatistiksel özellikler korunmuş olur ve veri kayması engellenir.
- Sürekli ve türevlenebilir: ELU fonksiyonu sürekli ve her noktada türevlenebilir bir fonksiyondur. Bu optimizasyon algoritmaları için önemli bir özelliktir.
- Negatif değerlere duyarlı: ELU fonksiyonu negatif girdilere karşı duyarlıdır. Bu sayede öğrenme sürecinde ağırlıkların optimal değerlere yaklaşmasını sağlar.
- Orta noktasız: ELU fonksiyonun eğrisi orijinden geçmez. Böylece orta noktada eğimin sıfır olması sorunu ortadan kalkmış olur.
ELU fonksiyonu, derin sinir ağlarında kullanılan yeni aktivasyon fonksiyonlarındandır. Özellikle görüntü işleme ve doğal dil işleme gibi uygulamalarda kullanılmaktadır. ELU fonksiyonu; eğitim hızını arttırır, doymuşluk sorununu azaltır ve düzensiz verilerde daha iyi çalışır.
PReLU FONKSİYONU
plt.figure()
plt.xlabel("Inputs / PReLU Function")
plt.ylabel("Function Outputs")
plt.grid(True)
plt.plot(x,prelu, label="PReLU", color='C6', lw=3)
plt.savefig('Preelu.png')
PReLU (Parametric ReLU) fonksiyonu, ReLU fonksiyonunun parametreli versiyonudur. Negatif girdi bölgesindeki eğim parametresi öğrenilebilir. Böylece her bir nöron için en uygun eğim değeri bulunmuş olur.
PReLU fonksiyonunun bazı özellikleri şunlardır:
- Parametreli: PReLU fonksiyonu, ReLU fonksiyonuna kıyasla ek parametrelere sahiptir. Negatif bölgedeki eğim katsayısı öğrenilebilir.
- Esnek: PReLU fonksiyonu her bir nöron için farklı negatif eğim parametresi öğrenebildiğinden esnektir. ReLU fonksiyonunda ise bu parametre sabittir.
- Doğrusal: PReLU fonksiyonu pozitif bölgede doğrusal bir fonksiyondur. Girdi ile çıktı doğru orantılı olarak artar.
- Türevlenebilir: PReLU fonksiyonu, türevi kolayca hesaplanabilen bir fonksiyondur. Bu optimizasyon algoritmalarında kullanılmasını sağlar.
- En uygun eğim: PReLU fonksiyonu her bir nöron için veri kümesine ve probleme en uygun olan negatif eğim değerini öğrenir. Bu genelleme performansını artırır.
- Orta noktasız: PReLU fonksiyonun eğrisi orijinden geçmez. Bu sayede orta noktada sıfır eğim sorunu yaşanmaz.
PReLU fonksiyonu, derin öğrenme modellerinde kullanılan gelişmiş aktivasyon fonksiyonlarından biridir. ReLU fonksiyonuna göre daha esnek olduğu ve performansı artırdığı için tercih edilmektedir. Özellikle derin sinir ağlarında kullanıldığında eğitim hızını ve doğruluğunu geliştirmektedir.
SWISH FONKSİYONU
plt.figure()
plt.xlabel("Inputs/ Swish Function")
plt.ylabel("Function Outputs")
plt.grid(True)
plt.plot(x,swish, label="Swish", color='C9', lw=3)
plt.savefig('Swish.png')
Swish fonksiyonu, sigmoid fonksiyonu ile ReLU fonksiyonunun birleşiminden oluşan bir aktivasyon fonksiyonudur. Hem doğrusal hem de doğrusal olmayan özelliklere sahiptir. Swish, “sigmoid weighted linear unit” kavramının kısaltmasıdır.
Swish fonksiyonunun bazı özellikleri şunlardır:
- Doğrusal ve doğrusal olmayan: Swish fonksiyonu sigmoid fonksiyonu sayesinde doğrusal olmayan, ReLU fonksiyonu sayesinde doğrusal bir aktivasyon fonksiyonudur. Her iki özelliği de içerir.
- Yumuşak geçiş: Swish fonksiyonu girdi uzayında yumuşak geçişler gösterir. Ani değişimler ve keskin kenarları yoktur. Bu verilerdeki anomaliyi gidermeye yardımcı olur.
- Merkezi eğim: Swish fonksiyonun merkezinde, sigmoid fonksiyonun eğimi en yüksektir. Bu bölgede küçük girdi değişimleri büyük çıktı değişimlerine neden olur.
- Sınırlı çıktı: Swish fonksiyonu çıktıyı her zaman 0 ile 1 arasında tutar. Çıktının aşırı büyümesini engeller.
- Türevlenebilir: Swish fonksiyonu, türevi kolayca hesaplanabilen bir fonksiyondur. Bu optimizasyon algoritmalarında kullanılmasını sağlar.
Swish fonksiyonu, derin sinir ağlarında kullanılan gelişmiş aktivasyon fonksiyonlarındandır. Geleneksel aktivasyon fonksiyonlarına kıyasla daha iyi optimizasyon ve genelleme yeteneği gösterdiği için tercih edilmektedir. Özellikle görüntü işleme ve nesne tanıma gibi görevlerde başarımı artırdığı görülmüştür.
Şimdi bu sihirbazları son bir kez de birlikte sahneye davet edelim ve 3 evetle uğurlayalım: 👏👏👏