Softmax

Türkçe karşılığı: SoftmaxAlan: Makine Öğrenmesi

Gerçek değerli skor vektörünü pozitif ve toplamı bir olan normalize edilmiş ağırlıklara dönüştüren üstel normalizasyon fonksiyonu.

Softmax, bir skor vektörünü pozitif ve toplamı 1 olan normalize edilmiş değerlere dönüştürür.

Bir z vektörü için:

softmax(z_i) = exp(z_i) / Σ_j exp(z_j)

Neden Maksimum Değer Çıkarılır?

Üstel fonksiyon büyük girişlerde taşma üretebilir. Bu nedenle uygulamada genellikle:

exp(z_i - max(z))

kullanılır. Bütün skorlardan aynı sabitin çıkarılması softmax sonucunu değiştirmez, fakat sayısal kararlılığı belirgin biçimde iyileştirir.

Logit ile İlişkisi

Sınıflandırma ağının normalizasyon öncesindeki skorları çoğu zaman logit olarak adlandırılır. Softmax bu skorları göreli ağırlıklara dönüştürür.

Olasılık Yorumunun Sınırı

Çıktıların toplamının 1 olması, modelin her zaman iyi kalibre edilmiş gerçek dünya olasılıkları ürettiğini göstermez. Model confidence ile gerçek başarı olasılığı ayrı değerlendirilmelidir.

Temperature ölçekleme dağılımı daha keskin veya daha yumuşak hale getirebilir; attention mekanizmalarında da softmax normalize edilmiş ağırlık üretmek için kullanılır.

Sabit Kaydırmaya Neden Değişmez?

Sayısal kararlılık için maksimum logit'i çıkarmak yalnız pratik bir hile değildir; cebirsel olarak sonucu korur. Her bileşenden aynı c sabiti çıkarılırsa:

exp(z_i-c) / Σ exp(z_j-c)
= exp(z_i)exp(-c) / [exp(-c)Σ exp(z_j)]
= softmax(z_i)

ortak exp(-c) çarpanı sadeleşir. Uygulamada c = max(z) seçimi en büyük üstel terimi exp(0)=1 yaparak overflow riskini azaltır. Bununla birlikte softmax yalnız normalize edilmiş göreli ağırlık üretir; kalibrasyon ayrı bir istatistiksel özelliktir. Bir modelin 0.9 softmax skoru üretmesi, benzer örneklerin tam %90'ında doğru olacağını kendiliğinden kanıtlamaz. İlgili kavramlar Logit ve Temperature'dır.