ReLU yıllardır derin öğrenmede varsayılan aktivasyon fonksiyonu oldu. Bunun iyi bir nedeni var — basittir ve çoğu durumda iyi çalışır. Ancak eğitim sırasında nöronlar sıfır çıktısı üretmeye başladığında öğrenmeyi durdururlar, gradyanları sıfır olur ve geri yayılım ağırlıkları güncelleyemez. Daha derin ağlarda bu sorun birden fazla nöronu etkileyebilir ve modelinizin verinizdeki desenleri yakalama yeteneğini azaltabilir.
Softplus, bu sorunu ele alan pürüzsüz, türevlenebilir bir alternatif sunar ve bunu yaparken ReLU’nun çoğu avantajını korur. Pozitif girdiler için ReLU’nun davranışını yaklaştırır ancak negatif değerler için sıfır olmayan gradyanlar sağlar. Bu da nöronların eğitim boyunca aktif kalmasını sağlar.
Bu yazıda Softplus’un ne olduğunu, ReLU ile matematiksel olarak nasıl karşılaştırıldığını ve diğer aktivasyon fonksiyonlarına ne zaman tercih edilmesi gerektiğini öğreneceksiniz.
Softplus, ReLU’nun türevlenebilir bir yaklaştırması olarak davranan pürüzsüz bir aktivasyon fonksiyonudur.
Fonksiyon herhangi bir gerçek sayıyı girdi olarak alır ve pozitif bir değer üretir. Softplus, ReLU gibi sıfırda keskin bir köşeye sahip değildir. O geçiş noktasından pürüzsüzce kıvrılır.
Matematiksel tanımı şöyledir:
Burada:
x, girdi değeridir
e, Euler sayısıdır (yaklaşık 2,718)
ln, doğal logaritmadır
Büyük pozitif girdiler için Softplus, girdinin kendisine yakın değerler döndürür. Negatif girdiler için sıfır yerine küçük pozitif değerler verir.
Burada σ(x) daha önce muhtemelen gördüğünüz sigmoid fonksiyonudur.
Bu türev özelliği, geri yayılım sırasında pürüzsüz gradyan akışına ihtiyacınız olduğunda Softplus’u kullanışlı kılar. Gradyanlar asla sıfıra düşmez. Bu da nöronların ağırlıklarını her zaman güncelleyebileceği ve öğrenmeye devam edebileceği anlamına gelir.
Aşırı uçlardaki davranış
Softplus, girdinin büyük ve pozitif ya da büyük ve negatif olmasına bağlı olarak farklı davranır.
Büyük pozitif değerler için:
Büyük negatif değerler için:
Softplus’un ReLU’yu bu kadar iyi yaklaştırmasının nedeni budur. x pozitif ve büyük olduğunda, her iki fonksiyon da yaklaşık olarak aynı değeri döndürür.
Fark negatif girdilerde görünür. ReLU negatif girdiler için tam olarak sıfır verirken Softplus küçük pozitif değerler üretir.
Bu küçük fark ölü nöron sorununu önler. Softplus kullanan nöronlar, gradyanları tamamen yok olmadığı için negatif aktivasyonlardan kurtulabilir.
Matematiksel ve Hesaplamalı Özellikler
Softplus’un bilmeniz gereken matematiksel özellikleri vardır. Onlar, onu yalnızca ReLU’nun pürüzsüz bir sürümü olmaktan daha fazlası yapar.
Pürüzsüzlük ve türevlenebilirlik
Softplus her noktada sonsuz kez türevlenebilir.
Bu, türevi istediğiniz kadar alabileceğiniz ve fonksiyonun pürüzsüz kalacağı anlamına gelir. Matematiksel olarak, analitik bir fonksiyondur.
ReLU ise sıfırda bir kırığa sahiptir — türevin var olmadığı keskin bir köşe. Bu, pürüzsüz gradyan varsayan optimizasyon algoritmalarında sorunlara yol açabilir.
Derin öğrenmede, kayıp yüzeyi pürüzsüz olduğunda pürüzsüz optimizasyon daha iyi çalışır. İkinci dereceden optimizasyon yöntemleri veya pürüzsüz gradyan geçişlerine dayanan herhangi bir algoritma kullanıyorsanız, Softplus size bu pürüzsüzlüğü sağlar.
Sayısal kararlılık
Üstel hesaplamalar, girdiler büyüdüğünde taşma sorunlarına neden olabilir.
Derin öğrenme çatıları bunu bir threshold parametresiyle ele alır. Girdi bu eşiği aştığında, fonksiyon logaritma hesaplamaktan doğrusal çıktı döndürmeye geçer.
Nasıl çalıştığı şöyledir:
Küçük girdiler için: Softplus’u doğrudan hesaplayın
Eşiği aşan büyük girdiler için: girdileri doğrudan döndürün
Bu, sayısal taşmayı önlerken ihtiyacınız olan davranışı korur. Zaten büyük pozitif girdiler için Softplus doğrusal bir fonksiyonu yaklaştırır, bu nedenle geçiş çıkışı anlamlı biçimde etkilemez.
Diğer fonksiyonlarla ilişki
Softplus, bazı diğer aktivasyon ve olasılık fonksiyonlarıyla bağlantılıdır. Şöyle:
Sigmoid: Daha önce gördüğünüz gibi, Softplus’un türevi sigmoid fonksiyonudur. Bu, Softplus’un sigmoidin integrali olduğu anlamına gelir; şekillerini düşündüğünüzde bu mantıklıdır.
LogSumExp: Softplus aslında LogSumExp fonksiyonunun özel bir halidir. İki girdi için, LogSumExp(0, x) = ln(1 + e^x) = Softplus(x). Bu, Softplus’u makine öğreniminde kullanılan sayısal kararlılık tekniklerine bağlar.
Softmax: LogSumExp, Softmax’in temelidir; dolayısıyla Softplus bu soy paylaşımına sahiptir. Her iki fonksiyon da sayısal kararlılık için log-exp hilesini kullanır.
Logit fonksiyonu: Logit, sigmoidin tersidir. Sigmoid Softplus’un türevi olduğuna göre, bu üç fonksiyon olasılık kuramında bağlantılı bir aile oluşturur.
Konveks eşlenik: Konveks analizde, Softplus’un konveks eşleniği negatif ikili entropidir. Bu, Softplus’u bilgi kuramı ve olasılıksal modellemede kullanılan entropi maksimizasyonu ilkelerine bağlar.
Olasılıksal modeller veya Bayesçi çerçevelerle çalışıyorsanız, bu entropi bağlantısı, aktivasyonlarınızın maksimum entropi ilkeleriyle uyumlu olmasını sağlamak için Softplus’u doğal bir seçim haline getirir.
Softplus Kullanmanın Avantajları
Softplus, ReLU’nun iyi başa çıkamadığı belirli sorunları çözer. İşte bunlardan dördü.
Pürüzsüz ve türevlenebilir
Softplus eğrinin her noktasında pürüzsüzdür.
Bu, geri yayılım sırasında gradyanların ani sıçrama veya kopmalar olmadan sürekli akması demektir. Bir ağı eğitirken pürüzsüz gradyan akışı daha istikrarlı ağırlık güncellemelerine ve daha iyi yakınsama davranışına yol açar.
ReLU’nun sıfırdaki keskin köşesi gradyan süreksizliklerine neden olabilir. Softplus’ta bu sorun yoktur.
Ölü nöronları önler
Softplus, büyük negatif girdilerde bile asla tam olarak sıfır üretmez.
Bu, her nöronun öğrenmeye devam edebileceği anlamına gelir çünkü gradyanlar tamamen yok olmaz. ReLU’da sıfır üretmeye başlayan bir nöron sonsuza dek orada takılı kalabilir — gradyanı sıfırdır, dolayısıyla ağırlık güncellemeleri onu hareket ettirmez.
Softplus size bir güvenlik ağı sunar. Nöronlar negatif aktivasyonlardan toparlanabilir ve yeniden ağa katkı sağlamaya başlayabilir.
Çıktı her zaman pozitiftir
Softplus, herhangi bir girdi için negatif olmayan çıktıları garanti eder.
Bu, pozitif tahminler gerektiren modeller kurarken önemlidir. Poisson regresyonu müşteri, olay, tıklama gibi sayım verilerini modeller; negatif değerlerin anlamı yoktur. Üretici modeller de sıklıkla olasılık veya yoğunlukları temsil etmek için pozitif çıktılara ihtiyaç duyar.
Belirli görevler için daha uygundur
Bazı görevler pürüzsüz, sürekli aktivasyon davranışından fayda sağlar.
Pürüzsüz hedef fonksiyonlarına sahip regresyon görevleri, pürüzsüz aktivasyonlarla daha iyi çalışır. Sıcaklık, fiyat veya mesafe gibi sürekli değerleri tahmin ediyorsanız, Softplus verinizin altta yatan pürüzsüzlüğüyle daha iyi örtüşür.
Bayesçi modeller ve olasılıksal çerçeveler de pürüzsüz fonksiyonları tercih eder. Belirsizliği modelliyor veya olasılık dağılımlarıyla çalışıyorsanız, Softplus’un sürekli türevleri matematiksel işlemleri daha temiz ve daha kararlı kılar.
Bu alanlarda çalışıyorsanız, Softplus size ReLU’nun keskin geçişlerinden daha iyi teorik garantiler ve pratik sonuçlar sunar.
Sınırlamalar ve Tavizler
ReLU’yu tamamen terk etmeden önce Softplus hakkında bilmeniz gereken bazı sınırlamalar var. İşte üçü.
Daha yüksek hesaplama maliyeti
ReLU basit bir maksimum işlemi kullanır: max(0, x).
Softplus ise üstel ve logaritmaları hesaplar: ln(1 + e^x). Bu işlemler daha yavaştır; özellikle binlerce nöronlu büyük ağlar boyunca milyonlarca kez çalıştırıldıklarında.
Fark birikir. Bu hesaplama yükü eğitim süresini artırabilir.
Daha yavaş yakınsama
Softplus daha pürüzsüz gradyanlara sahiptir; bu kâğıt üzerinde kulağa iyi gelir.
Ancak pürüzsüz her zaman hızlı demek değildir. ReLU’nun keskin geçişleri seyrek aktivasyonlar yaratır — birçok nöron tam olarak sıfır üretir. Bu seyreklik, geri yayılım sırasında gradyanların ağ boyunca daha hızlı yayılmasına yardımcı olur.
Softplus’ta bu seyreklik yoktur. Her nöron sıfır olmayan bir değer üretir; bu da daha fazla hesaplama ve derin mimarilerde potansiyel olarak daha yavaş yakınsama anlamına gelir.
Uygulamada daha az yaygın
ReLU yıllardır derin öğrenmeye hakimdir.
Bu da etrafında daha fazla dokümantasyon, problem/çözüm ve genel kaynak olduğu anlamına gelir. Softplus aynı muameleyi görmez. Daha az kişi kullanır; bu nedenle daha az topluluk bilgisi, daha az Stack Overflow yanıtı ve daha az önceden eğitilmiş model vardır.
Softplus’u seçtiğinizde, daha az destekli ve potansiyel olarak daha fazla kendi başınıza hata ayıklama yapacağınız bir yolu seçmiş olursunuz.
PyTorch’ta Softplus
PyTorch, yerleşik destek ve davranışını kontrol eden iki parametre ile Softplus’u kullanmayı kolaylaştırır.
Referans olması için, kullandığım PyTorch sürümü şu:
import torch
import torch.nn as nn
print(torch.__version__)Altyapı:
Temel uygulama şöyle:
# Create a Softplus activation function
softplus = nn.Softplus(beta=1, threshold=20)# Apply it to some input
x = torch.tensor([-2.0,-1.0,0.0,1.0,2.0])
output = softplus(x)print(output)Altyapı:
Yeterince basit. Ancak bu iki parametre — beta ve threshold — fonksiyonun davranışını değiştirir. Gelin bunları daha derinlemesine inceleyelim.
Beta parametresi
beta parametresi, Softplus eğrisinin pürüzsüzlüğünü kontrol eder.
betayı artırdığınızda fonksiyon daha dik hale gelir ve ReLU’ya yaklaşır. Azalttığınızda fonksiyon daha pürüzsüz ve kademeli olur. Kodda çalışma şekli şöyledir:
Varsayılan beta=1 çoğu durumda iyi çalışır. Bu değeri yalnızca, belirli görevler için aktivasyonun keskinliğini ayarlamanız gerektiğinde değiştirirsiniz.
Threshold parametresi
threshold parametresi, büyük girdiler için sayısal taşmayı önler.
Unutmayın, e^x hesaplamak, x büyük olduğunda patlayabilir. Girdi eşiği aştığında, PyTorch tam Softplus formülünü hesaplamaktan sadece girdiyi doğrudan döndürmeye geçer:
softplus = nn.Softplus(beta=1, threshold=20)# Large input bypasses the exponential
large_input = torch.tensor([25.0])print(softplus(large_input))Altyapı:
Varsayılan threshold=20 çoğu senaryo için uygundur. Bu noktada Softplus zaten doğrusal bir fonksiyonu yaklaştırdığından, geçiş sonuçları etkilemez.
Softplus Ne Zaman Kullanılır
Optimizasyon için gradyan pürüzsüzlüğüne ihtiyaç duyduğunuzda Softplus’u seçin. İkinci dereceden optimizasyon yöntemleri veya pürüzsüz kayıp yüzeyleri varsayan algoritmalar kullanıyorsanız, Softplus bu yöntemlerin dayandığı sürekli türevleri sağlar.
Modelinizin negatif olmayan çıktılara ihtiyaç duyduğu durumlarda kullanın. Sayım verileri, yoğunluk değerleri ve olasılık parametreleri pozitif kalmalıdır. Softplus bunu ek kısıtlar olmadan doğal olarak ele alır.
Sığ ağlar Softplus’tan derin olanlardan daha çok fayda sağlar. Yalnızca birkaç katmana sahip olduğunuzda, ReLU’nun ölü nöron sorunuyla tek bir nöronu bile kaybetmek performansı zedeler. Softplus tüm nöronları aktif ve öğrenir halde tutar.
Ayrıca olasılıksal modeller ve Bayesçi çerçeveler için de Softplus’u tercih edebilirsiniz. Pürüzsüz gradyanlar ve entropi bağlantıları matematiksel işlemleri daha temiz kılar. Enerji tabanlı modeller de Softplus’un sürekli doğasından faydalanır.
Sürekli gradyanları yorumlamanız gereken modeller Softplus ile daha iyi çalışır. Ağınızın girdilerdeki değişimlere nasıl yanıt verdiğini analiz ediyor veya gradyan akışını inceliyorsanız, pürüzsüz türevler size ReLU’nun keskin geçişlerinden daha net içgörüler sunar.
ReLU’nun hâlâ daha iyi olduğu durumlar
Kâğıt üzerinde daha iyi göründüğü ya da yeni ve havalı olduğu için Softplus’a geçmeyin.
Büyük, derin ağlar ReLU ile daha hızlı eğitilir. Softplus’un hesaplama yükü yüzlerce katman ve milyonlarca parametre boyunca birikir. ReLU’nun seyrekliğinin bellek ve hız açısından da faydası vardır.
Üretim sistemleri genellikle ReLU’yu tercih eder çünkü donanım optimizasyonları özellikle ona yöneliktir. Aynı donanımda Softplus ile eğitiminiz %10–20 daha yavaş olabilir.
Standart bilgisayarlı görü ve NLP görevleri genellikle Softplus’tan fayda görmez. Topluluk yıllarını ReLU etrafında mimarileri optimize etmeye harcadı ve aktivasyon fonksiyonunu değiştirmek bu bilgi birikimini yeniden inşa etmek demektir.
Çoğu proje için ReLU ile başlayın. Yalnızca Softplus’un özelliklerinin çözdüğü belirli sorunlarla karşılaştığınızda ona geçin.
Sonuç
Kısacası, Softplus ihtiyacınız olduğunda ReLU’ya pürüzsüz bir alternatiftir.
Varsayılan aktivasyon fonksiyonu olarak ReLU’nun yerini almayacak — ve alması da gerekmiyor. Softplus belirli sorunları çözer: sığ ağlardaki ölü nöronlar, negatif olmayan çıktılara ihtiyaç duyan modeller ve optimizasyon için pürüzsüz gradyan akışının önemli olduğu görevler.
Hesaplama hızının maliyeti karşılığında daha iyi matematiksel özellikler elde edersiniz. Çoğu derin öğrenme projesinde ReLU’nun sadeliği ve hızı kazanır. Ancak olasılıksal modeller, Bayesçi çerçeveler veya pürüzsüz hedef fonksiyonlarına sahip regresyon görevlerinde Softplus daha iyi bir seçenektir.
İkisini de deneyin. Deneyler yapın. Kararı özel sorununuz versin.
Daha fazlasını öğrenmek ister misiniz? Harika kaynaklarımıza göz atın:
Hırvatistan merkezli Kıdemli Veri Bilimci. 700’ün üzerinde yayımlanmış makaleyle 10 M+ görüntüleme elde eden, önde gelen bir teknoloji yazarı. TPOT ile Makine Öğrenimi Otomasyonu kitabının yazarı.
Softplus SSS
Softplus aktivasyon fonksiyonu nedir?⌄
Softplus, f(x) = ln(1 + e^x) olarak tanımlanan ve ReLU’nun türevlenebilir bir yaklaştırması olarak hizmet eden pürüzsüz bir aktivasyon fonksiyonudur. ReLU’nun sıfırda keskin bir köşesi varken, Softplus geçiş noktasından pürüzsüzce kıvrılır. Büyük pozitif girdiler için girdinin kendisine yakın değerler döndürür; negatif girdiler için ise sıfır yerine küçük pozitif değerler verir. Bu da sinir ağlarında ölü nöron sorununu önlemede onu kullanışlı kılar.
ReLU yerine ne zaman Softplus kullanmalıyım?⌄
İkinci dereceden optimizasyon yöntemleri veya pürüzsüz kayıp yüzeyleri varsayan algoritmalar gibi durumlarda optimizasyon için gradyan pürüzsüzlüğüne ihtiyaç duyduğunuzda Softplus’u seçin. Modeliniz negatif olmayan çıktılar gerektiriyorsa (sayım verileri veya olasılık parametreleri gibi) ve sığ ağlarda, ölü ReLU sorunuyla bir nöronu bile kaybetmenin performansa zarar verdiği durumlarda idealdir. Softplus, olasılıksal modeller, Bayesçi çerçeveler ve pürüzsüz hedef fonksiyonlu regresyon görevlerinde iyi çalışır. Ancak hızın daha önemli olduğu büyük, derin ağlarda ve standart bilgisayarlı görü veya NLP görevlerinde ReLU’da kalın.
Softplus’un ReLU’ya göre başlıca avantajları nelerdir?⌄
Softplus dört temel avantaj sunar: her noktada pürüzsüz ve türevlenebilirdir, bu da gradyan süreksizliklerini önler; asla tam olarak sıfır üretmediği için ölü nöronları önler ve tüm nöronların öğrenmeye devam etmesini sağlar; herhangi bir girdi için negatif olmayan çıktıları garanti eder; ve regresyon ile olasılıksal modelleme gibi pürüzsüz, sürekli aktivasyon davranışı gerektiren görevlere daha uygundur. Sürekli gradyan akışı, eğitim sırasında daha istikrarlı ağırlık güncellemelerine ve daha iyi yakınsamaya yol açar.
PyTorch’taki Softplus’ta beta ve threshold parametreleri nasıl çalışır?⌄
Beta parametresi Softplus eğrisinin pürüzsüzlüğünü kontrol eder — beta’nın artırılması fonksiyonu daha dik ve ReLU’ya daha yakın yapar, azaltılması ise fonksiyonu daha pürüzsüz ve kademeli hale getirir. Threshold parametresi ise büyük girdiler için, girdi eşiği aştığında tam Softplus formülünü hesaplamaktan sadece girdiyi doğrudan döndürmeye geçerek sayısal taşmayı önler. Varsayılan değerler (beta=1, threshold=20) çoğu senaryo için uygundur.
Softplus ile ReLU arasındaki hesaplama maliyeti farkı nedir?⌄
Softplus, ReLU’ya göre daha yüksek hesaplama maliyetine sahiptir çünkü ReLU’nun basit maksimum işlemi (max(0, x)) yerine üstel ve logaritmaları (ln(1 + e^x)) hesaplar. Bu işlemler daha yavaştır; özellikle binlerce nörona sahip büyük ağlar boyunca milyonlarca kez çalıştırıldığında. Bu hesaplama yükü aynı donanımda eğitim süresini %10–20 artırabilir; bu nedenle hızın kritik olduğu üretim sistemleri ve büyük, derin ağlar için ReLU tercih edilmeye devam eder.
Bir sinir ağı neden bir aktivasyon fonksiyonuna ihtiyaç duyar?⌄
Bir sinir ağının modele doğrusal olmayanlık kazandırmak için bir aktivasyon fonksiyonuna ihtiyacı vardır. Bu olmadan, ağ kaç katmana sahip olursa olsun yalnızca doğrusal dönüşümler yapar ve verideki karmaşık örüntüleri veya ilişkileri öğrenemez. Aktivasyon fonksiyonları sinir ağlarının doğrusal olmayan fonksiyonları yaklaştırmasına olanak tanır; böylece görüntü tanıma, dil anlama ve karar verme gibi görevleri yerine getirebilirler.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
ReLU yıllardır derin öğrenmede varsayılan aktivasyon fonksiyonu oldu. Bunun iyi bir nedeni var — basittir ve çoğu durumda iyi çalışır. Ancak eğitim sırasında nöronlar sıfır çıktısı üretmeye başladığında öğrenmeyi durdururlar, gradyanları sıfır olur ve geri yayılım ağırlıkları güncelleyemez. Daha derin ağlarda bu sorun birden fazla nöronu etkileyebilir ve modelinizin verinizdeki desenleri yakalama yeteneğini azaltabilir.
Basitçe söylemek gerekirse: ağınız öğrenmeyi bırakır.
Softplus, bu sorunu ele alan pürüzsüz, türevlenebilir bir alternatif sunar ve bunu yaparken ReLU’nun çoğu avantajını korur. Pozitif girdiler için ReLU’nun davranışını yaklaştırır ancak negatif değerler için sıfır olmayan gradyanlar sağlar. Bu da nöronların eğitim boyunca aktif kalmasını sağlar.
Bu yazıda Softplus’un ne olduğunu, ReLU ile matematiksel olarak nasıl karşılaştırıldığını ve diğer aktivasyon fonksiyonlarına ne zaman tercih edilmesi gerektiğini öğreneceksiniz.
Derin öğrenmeye tamamen yeniyseniz, sinir ağlarında aktivasyon fonksiyonlarına dair kapsamlı rehberimize göz atın.
Softplus Fonksiyonu Nedir?
Softplus, ReLU’nun türevlenebilir bir yaklaştırması olarak davranan pürüzsüz bir aktivasyon fonksiyonudur.
Fonksiyon herhangi bir gerçek sayıyı girdi olarak alır ve pozitif bir değer üretir. Softplus, ReLU gibi sıfırda keskin bir köşeye sahip değildir. O geçiş noktasından pürüzsüzce kıvrılır.
Matematiksel tanımı şöyledir:
Burada:
Büyük pozitif girdiler için Softplus, girdinin kendisine yakın değerler döndürür. Negatif girdiler için sıfır yerine küçük pozitif değerler verir.
Softplus’un Türevi
Softplus’un türevi lojistik sigmoid fonksiyonudur.
Bu şu anlama gelir:
Burada σ(x) daha önce muhtemelen gördüğünüz sigmoid fonksiyonudur.
Bu türev özelliği, geri yayılım sırasında pürüzsüz gradyan akışına ihtiyacınız olduğunda Softplus’u kullanışlı kılar. Gradyanlar asla sıfıra düşmez. Bu da nöronların ağırlıklarını her zaman güncelleyebileceği ve öğrenmeye devam edebileceği anlamına gelir.
Aşırı uçlardaki davranış
Softplus, girdinin büyük ve pozitif ya da büyük ve negatif olmasına bağlı olarak farklı davranır.
Büyük pozitif değerler için:
Büyük negatif değerler için:
Softplus’un ReLU’yu bu kadar iyi yaklaştırmasının nedeni budur. x pozitif ve büyük olduğunda, her iki fonksiyon da yaklaşık olarak aynı değeri döndürür.
Fark negatif girdilerde görünür. ReLU negatif girdiler için tam olarak sıfır verirken Softplus küçük pozitif değerler üretir.
Bu küçük fark ölü nöron sorununu önler. Softplus kullanan nöronlar, gradyanları tamamen yok olmadığı için negatif aktivasyonlardan kurtulabilir.
Matematiksel ve Hesaplamalı Özellikler
Softplus’un bilmeniz gereken matematiksel özellikleri vardır. Onlar, onu yalnızca ReLU’nun pürüzsüz bir sürümü olmaktan daha fazlası yapar.
Pürüzsüzlük ve türevlenebilirlik
Softplus her noktada sonsuz kez türevlenebilir.
Bu, türevi istediğiniz kadar alabileceğiniz ve fonksiyonun pürüzsüz kalacağı anlamına gelir. Matematiksel olarak, analitik bir fonksiyondur.
ReLU ise sıfırda bir kırığa sahiptir — türevin var olmadığı keskin bir köşe. Bu, pürüzsüz gradyan varsayan optimizasyon algoritmalarında sorunlara yol açabilir.
Derin öğrenmede, kayıp yüzeyi pürüzsüz olduğunda pürüzsüz optimizasyon daha iyi çalışır. İkinci dereceden optimizasyon yöntemleri veya pürüzsüz gradyan geçişlerine dayanan herhangi bir algoritma kullanıyorsanız, Softplus size bu pürüzsüzlüğü sağlar.
Sayısal kararlılık
Üstel hesaplamalar, girdiler büyüdüğünde taşma sorunlarına neden olabilir.
Derin öğrenme çatıları bunu bir
thresholdparametresiyle ele alır. Girdi bu eşiği aştığında, fonksiyon logaritma hesaplamaktan doğrusal çıktı döndürmeye geçer.Nasıl çalıştığı şöyledir:
Bu, sayısal taşmayı önlerken ihtiyacınız olan davranışı korur. Zaten büyük pozitif girdiler için Softplus doğrusal bir fonksiyonu yaklaştırır, bu nedenle geçiş çıkışı anlamlı biçimde etkilemez.
Diğer fonksiyonlarla ilişki
Softplus, bazı diğer aktivasyon ve olasılık fonksiyonlarıyla bağlantılıdır. Şöyle:
Sigmoid: Daha önce gördüğünüz gibi, Softplus’un türevi sigmoid fonksiyonudur. Bu, Softplus’un sigmoidin integrali olduğu anlamına gelir; şekillerini düşündüğünüzde bu mantıklıdır.
LogSumExp: Softplus aslında LogSumExp fonksiyonunun özel bir halidir. İki girdi için,
LogSumExp(0, x) = ln(1 + e^x) = Softplus(x). Bu, Softplus’u makine öğreniminde kullanılan sayısal kararlılık tekniklerine bağlar.Softmax: LogSumExp, Softmax’in temelidir; dolayısıyla Softplus bu soy paylaşımına sahiptir. Her iki fonksiyon da sayısal kararlılık için log-exp hilesini kullanır.
Logit fonksiyonu: Logit, sigmoidin tersidir. Sigmoid Softplus’un türevi olduğuna göre, bu üç fonksiyon olasılık kuramında bağlantılı bir aile oluşturur.
Konveks eşlenik: Konveks analizde, Softplus’un konveks eşleniği negatif ikili entropidir. Bu, Softplus’u bilgi kuramı ve olasılıksal modellemede kullanılan entropi maksimizasyonu ilkelerine bağlar.
Olasılıksal modeller veya Bayesçi çerçevelerle çalışıyorsanız, bu entropi bağlantısı, aktivasyonlarınızın maksimum entropi ilkeleriyle uyumlu olmasını sağlamak için Softplus’u doğal bir seçim haline getirir.
Softplus Kullanmanın Avantajları
Softplus, ReLU’nun iyi başa çıkamadığı belirli sorunları çözer. İşte bunlardan dördü.
Pürüzsüz ve türevlenebilir
Softplus eğrinin her noktasında pürüzsüzdür.
Bu, geri yayılım sırasında gradyanların ani sıçrama veya kopmalar olmadan sürekli akması demektir. Bir ağı eğitirken pürüzsüz gradyan akışı daha istikrarlı ağırlık güncellemelerine ve daha iyi yakınsama davranışına yol açar.
ReLU’nun sıfırdaki keskin köşesi gradyan süreksizliklerine neden olabilir. Softplus’ta bu sorun yoktur.
Ölü nöronları önler
Softplus, büyük negatif girdilerde bile asla tam olarak sıfır üretmez.
Bu, her nöronun öğrenmeye devam edebileceği anlamına gelir çünkü gradyanlar tamamen yok olmaz. ReLU’da sıfır üretmeye başlayan bir nöron sonsuza dek orada takılı kalabilir — gradyanı sıfırdır, dolayısıyla ağırlık güncellemeleri onu hareket ettirmez.
Softplus size bir güvenlik ağı sunar. Nöronlar negatif aktivasyonlardan toparlanabilir ve yeniden ağa katkı sağlamaya başlayabilir.
Çıktı her zaman pozitiftir
Softplus, herhangi bir girdi için negatif olmayan çıktıları garanti eder.
Bu, pozitif tahminler gerektiren modeller kurarken önemlidir. Poisson regresyonu müşteri, olay, tıklama gibi sayım verilerini modeller; negatif değerlerin anlamı yoktur. Üretici modeller de sıklıkla olasılık veya yoğunlukları temsil etmek için pozitif çıktılara ihtiyaç duyar.
Belirli görevler için daha uygundur
Bazı görevler pürüzsüz, sürekli aktivasyon davranışından fayda sağlar.
Pürüzsüz hedef fonksiyonlarına sahip regresyon görevleri, pürüzsüz aktivasyonlarla daha iyi çalışır. Sıcaklık, fiyat veya mesafe gibi sürekli değerleri tahmin ediyorsanız, Softplus verinizin altta yatan pürüzsüzlüğüyle daha iyi örtüşür.
Bayesçi modeller ve olasılıksal çerçeveler de pürüzsüz fonksiyonları tercih eder. Belirsizliği modelliyor veya olasılık dağılımlarıyla çalışıyorsanız, Softplus’un sürekli türevleri matematiksel işlemleri daha temiz ve daha kararlı kılar.
Bu alanlarda çalışıyorsanız, Softplus size ReLU’nun keskin geçişlerinden daha iyi teorik garantiler ve pratik sonuçlar sunar.
Sınırlamalar ve Tavizler
ReLU’yu tamamen terk etmeden önce Softplus hakkında bilmeniz gereken bazı sınırlamalar var. İşte üçü.
Daha yüksek hesaplama maliyeti
ReLU basit bir maksimum işlemi kullanır:
max(0, x).Softplus ise üstel ve logaritmaları hesaplar:
ln(1 + e^x). Bu işlemler daha yavaştır; özellikle binlerce nöronlu büyük ağlar boyunca milyonlarca kez çalıştırıldıklarında.Fark birikir. Bu hesaplama yükü eğitim süresini artırabilir.
Daha yavaş yakınsama
Softplus daha pürüzsüz gradyanlara sahiptir; bu kâğıt üzerinde kulağa iyi gelir.
Ancak pürüzsüz her zaman hızlı demek değildir. ReLU’nun keskin geçişleri seyrek aktivasyonlar yaratır — birçok nöron tam olarak sıfır üretir. Bu seyreklik, geri yayılım sırasında gradyanların ağ boyunca daha hızlı yayılmasına yardımcı olur.
Softplus’ta bu seyreklik yoktur. Her nöron sıfır olmayan bir değer üretir; bu da daha fazla hesaplama ve derin mimarilerde potansiyel olarak daha yavaş yakınsama anlamına gelir.
Uygulamada daha az yaygın
ReLU yıllardır derin öğrenmeye hakimdir.
Bu da etrafında daha fazla dokümantasyon, problem/çözüm ve genel kaynak olduğu anlamına gelir. Softplus aynı muameleyi görmez. Daha az kişi kullanır; bu nedenle daha az topluluk bilgisi, daha az Stack Overflow yanıtı ve daha az önceden eğitilmiş model vardır.
Softplus’u seçtiğinizde, daha az destekli ve potansiyel olarak daha fazla kendi başınıza hata ayıklama yapacağınız bir yolu seçmiş olursunuz.
PyTorch’ta Softplus
PyTorch, yerleşik destek ve davranışını kontrol eden iki parametre ile Softplus’u kullanmayı kolaylaştırır.
Referans olması için, kullandığım PyTorch sürümü şu:
Temel uygulama şöyle:
Yeterince basit. Ancak bu iki parametre —
betavethreshold— fonksiyonun davranışını değiştirir. Gelin bunları daha derinlemesine inceleyelim.Beta parametresi
betaparametresi, Softplus eğrisinin pürüzsüzlüğünü kontrol eder.betayı artırdığınızda fonksiyon daha dik hale gelir ve ReLU’ya yaklaşır. Azalttığınızda fonksiyon daha pürüzsüz ve kademeli olur. Kodda çalışma şekli şöyledir:Varsayılan
beta=1çoğu durumda iyi çalışır. Bu değeri yalnızca, belirli görevler için aktivasyonun keskinliğini ayarlamanız gerektiğinde değiştirirsiniz.Threshold parametresi
thresholdparametresi, büyük girdiler için sayısal taşmayı önler.Unutmayın,
e^xhesaplamak, x büyük olduğunda patlayabilir. Girdi eşiği aştığında, PyTorch tam Softplus formülünü hesaplamaktan sadece girdiyi doğrudan döndürmeye geçer:Varsayılan
threshold=20çoğu senaryo için uygundur. Bu noktada Softplus zaten doğrusal bir fonksiyonu yaklaştırdığından, geçiş sonuçları etkilemez.Softplus Ne Zaman Kullanılır
Optimizasyon için gradyan pürüzsüzlüğüne ihtiyaç duyduğunuzda Softplus’u seçin. İkinci dereceden optimizasyon yöntemleri veya pürüzsüz kayıp yüzeyleri varsayan algoritmalar kullanıyorsanız, Softplus bu yöntemlerin dayandığı sürekli türevleri sağlar.
Modelinizin negatif olmayan çıktılara ihtiyaç duyduğu durumlarda kullanın. Sayım verileri, yoğunluk değerleri ve olasılık parametreleri pozitif kalmalıdır. Softplus bunu ek kısıtlar olmadan doğal olarak ele alır.
Sığ ağlar Softplus’tan derin olanlardan daha çok fayda sağlar. Yalnızca birkaç katmana sahip olduğunuzda, ReLU’nun ölü nöron sorunuyla tek bir nöronu bile kaybetmek performansı zedeler. Softplus tüm nöronları aktif ve öğrenir halde tutar.
Ayrıca olasılıksal modeller ve Bayesçi çerçeveler için de Softplus’u tercih edebilirsiniz. Pürüzsüz gradyanlar ve entropi bağlantıları matematiksel işlemleri daha temiz kılar. Enerji tabanlı modeller de Softplus’un sürekli doğasından faydalanır.
Sürekli gradyanları yorumlamanız gereken modeller Softplus ile daha iyi çalışır. Ağınızın girdilerdeki değişimlere nasıl yanıt verdiğini analiz ediyor veya gradyan akışını inceliyorsanız, pürüzsüz türevler size ReLU’nun keskin geçişlerinden daha net içgörüler sunar.
ReLU’nun hâlâ daha iyi olduğu durumlar
Kâğıt üzerinde daha iyi göründüğü ya da yeni ve havalı olduğu için Softplus’a geçmeyin.
Çoğu proje için ReLU ile başlayın. Yalnızca Softplus’un özelliklerinin çözdüğü belirli sorunlarla karşılaştığınızda ona geçin.
Sonuç
Kısacası, Softplus ihtiyacınız olduğunda ReLU’ya pürüzsüz bir alternatiftir.
Varsayılan aktivasyon fonksiyonu olarak ReLU’nun yerini almayacak — ve alması da gerekmiyor. Softplus belirli sorunları çözer: sığ ağlardaki ölü nöronlar, negatif olmayan çıktılara ihtiyaç duyan modeller ve optimizasyon için pürüzsüz gradyan akışının önemli olduğu görevler.
Hesaplama hızının maliyeti karşılığında daha iyi matematiksel özellikler elde edersiniz. Çoğu derin öğrenme projesinde ReLU’nun sadeliği ve hızı kazanır. Ancak olasılıksal modeller, Bayesçi çerçeveler veya pürüzsüz hedef fonksiyonlarına sahip regresyon görevlerinde Softplus daha iyi bir seçenektir.
İkisini de deneyin. Deneyler yapın. Kararı özel sorununuz versin.
Daha fazlasını öğrenmek ister misiniz? Harika kaynaklarımıza göz atın: