Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Softmax

Softmax, logit vektörünü toplamı bire eşit olan olasılıklara dönüştürür. Formülü, sıcaklığı, sayısal kararlılığı, dikkat mekanizmasındaki kullanımını ve kodu ele alır.

Softmax, logits adı verilen ham puan vektörünü olasılık dağılımına dönüştüren bir fonksiyondur: Her çıktı 0 ile 1 arasındadır ve çıktıların toplamı tam olarak 1'dir. z vektörü için softmax(z)ᵢ = e^(zᵢ) / Σⱼ e^(zⱼ) hesabını yapar; her puanın üstelini alır ve tüm üstel değerlerin toplamına böler. Softmax, birçok sınıf arasından birini seçen sinir ağlarının standart çıktı katmanıdır; benzerlik puanlarını Transformer'ların dikkat mekanizması içinde ağırlıklara, bir dil modelinin söz dağarcığı puanlarını ise sonraki belirteç olasılıklarına dönüştürür. Adı, olasılığın tamamını en yüksek puana veren argmax işleminin düzgün ve türevlenebilir bir sürümü olmasını yansıtır.

Softmax Nasıl Çalışır#

Üstel fonksiyon tüm çıktıları pozitif yapar ve puanlar arasındaki farkları büyütür; bu nedenle en büyük logit, olasılığın orantısız derecede büyük bir bölümünü alır. Softmax, logitlerin sıralamasını korur; bu yüzden en yüksek puan her zaman en yüksek olasılığı alır. Yalnızca logitler arasındaki farklar önemlidir: her logite aynı sabiti eklemek çıktıyı değiştirmez. Kütüphaneler, üstel alma işleminden önce en büyük logiti çıkararak bu özelliği sayısal kararlılık için kullanır; çünkü e¹⁰⁰⁰, 32 bit kayan nokta sınırını aşar.

T sıcaklığı, dağılımın ne kadar sivri olacağını belirler: softmax(z / T). 1'den küçük T değerleri dağılımı en üst sınıfa doğru sivriltir; 1'den büyük değerler ise dağılımı düzleştirerek tekdüze hâle getirir. Aynı formül, T'nin gerçek anlamda sıcaklık olduğu istatistiksel fizikte Boltzmann dağılımı olarak karşımıza çıkar. Aşağıdaki PyTorch kod örneği her iki etkiyi de gösteriyor:

import torch

logits = torch.tensor([2.0, 1.0, 0.1])

# Divide logits by a temperature before softmax: low sharpens, high flattens
for temperature in [0.5, 1.0, 2.0]:
    probs = torch.softmax(logits / temperature, dim=0)
    print(f"T={temperature}: {[round(p, 3) for p in probs.tolist()]}")

# Adding a constant leaves softmax unchanged, so libraries subtract the max to avoid overflow
big = logits + 1000
naive = big.exp() / big.exp().sum()
print(f"Naive: {naive.tolist()}, torch.softmax: {[round(p, 3) for p in torch.softmax(big, dim=0).tolist()]}")

T = 1 iken 2.0, 1.0 ve 0.1 logitleri [0.659, 0.242, 0.099] değerlerine dönüşür. Sıcaklığı yarıya indirmek dağılımı sivrilterek [0.864, 0.117, 0.019] sonucunu verir; iki katına çıkarmak ise dağılımı düzleştirerek [0.502, 0.304, 0.194] sonucunu verir. Her logite 1.000 eklenince saf formül sınırı aşar ve [nan, nan, nan] yazdırır; torch.softmax ise yine [0.659, 0.242, 0.099] döndürür.

Eğitimde Softmax#

Sınıflandırıcılar softmax ve çapraz entropi kaybı birlikte kullanılarak eğitilir. Kayıp, doğru y sınıfına atanan olasılığın negatif logaritması olan −log(pᵧ) değeridir; logitlere göre gradyanı ise tahmin edilen olasılıklardan one-hot etiketi çıkararak elde edilen p − y değeridir. Bu yüzden çerçeveler ikisini birleştirir: PyTorch'un CrossEntropyLoss işlevi ham logits alır ve log-softmax hesabını dahili olarak yapar; bu, ayrı ayrı hesaplanmış olasılıkların logaritmasını almaktan daha kararlıdır. Bu şekilde eğitilmiş bir model logits çıktısı verir; softmax yalnızca çıkarım sırasında olasılıklar gerektiğinde uygulanır.

Softmax Nerelerde Kullanılır#

  • Görüntü sınıflandırma: Sınıflandırıcının son katmanı her sınıf için bir logit üretir ve softmax bunları kullanıcının gördüğü güven puanlarına dönüştürür.
  • Dikkat: Transformer'lar, bir sorguyla her anahtar arasındaki benzerlik puanlarına softmax(QKᵀ / √dₖ) uygular; böylece her belirtecin dikkat ağırlıklarının toplamı 1 olur. √dₖ'ye bölmek, puanların boyutla birlikte büyüyüp softmax'ı doyuma ulaştırmasını engeller.
  • Metin üretimi: Bir büyük dil modeli (LLM), her adımda on binlerce veya yüz binlerce belirteçten oluşan söz dağarcığına softmax uygular; örnekleme sıcaklığı da yukarıdaki T değeridir. Ardından çekirdek örnekleme, olasılıkları belirli bir eşiğe ulaşan en küçük belirteç kümesinden seçim yapar.
  • Pekiştirmeli öğrenme: Eylem değerlerine uygulanan softmax, genellikle en iyi eylemi seçen ama diğerlerini de keşfetmeye devam eden bir politika sağlar; sıcaklık, keşif ile sömürü arasındaki dengeyi belirler.

YOLO26 sınıflandırma modelleri, çıkarım sırasında sınıflandırma başlıklarında softmax uygular; her sonucun probs özniteliği, 1.000 ImageNet sınıfına ait dağılımın tamamını içerir:

from ultralytics import YOLO

# Load a YOLO26 classification model trained on ImageNet
model = YOLO("yolo26n-cls.pt")
results = model("https://ultralytics.com/images/bus.jpg")

# probs holds the softmax output of the classification head
probs = results[0].probs
for index, conf in zip(probs.top5, probs.top5conf.tolist()):
    print(f"{results[0].names[index]}: {conf:.3f}")
print(f"Sum over all 1,000 classes: {probs.data.sum().item():.3f}")

En olası beş sınıfı olasılıklarıyla birlikte yazdırır; başlık bir softmax dağılımı döndürdüğü için 1.000 sınıfın toplamı 1.000 olarak görünür.

  • Sigmoid: Her puanı birbirinden bağımsız olarak 0 ile 1 arasına sıkıştırır; bu nedenle çıktıların toplamının 1 olması gerekmez. Sigmoid, görüntünün hem bir kişiyi hem de bir sırt çantasını içermesi gibi ikili ve çok etiketli problemlere uygundur; nesne algılayıcılar da genellikle her sınıfı bununla puanlar. İki sınıf için softmax, iki logit arasındaki farkın sigmoid işlevine tam olarak indirgenir.
  • Argmax: En yüksek puanın dizinini döndürür; bu, gradyanı olmayan kesin bir karardır. Softmax aynı sıralamayı korurken türevlenebilir kalır, dolayısıyla eğitimde kullanılabilir. Softmax olasılıklarına argmax uygulamak, logitlere argmax uygulamakla aynı sonucu verir.
  • Log-softmax: Kararlılık için doğrudan hesaplanan softmax logaritmasıdır ve çapraz entropi kaybı bunu kullanır.
  • Sıcaklık ölçekleme: Eğitimden sonra doğrulama verileriyle tek bir sıcaklığın uyarlandığı bir kalibrasyon yöntemidir; böylece softmax olasılıkları modelin gerçekte ne sıklıkta doğru tahmin yaptığını yansıtır. Her logiti aynı pozitif T değerine bölmek sıralamayı koruduğu için tahmin edilen sınıf değişmez.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla