Softmax
AI'da Softmax işlevini keşfedin. Ultralytics ve sinir ağlarını kullanarak logitleri çok sınıflı sınıflandırma için olasılıklara nasıl dönüştürdüğünü öğrenin.
Softmax, yapay zeka alanında çok önemli bir matematiksel fonksiyondur ve özellikle birçok sınıflandırma algoritmasında son
adım olarak kullanılır. Genellikle logit olarak adlandırılan ham sayı vektörünü, olasılık vektörüne dönüştürür
. Bu dönüşüm, çıktı değerlerinin tümünün pozitif olmasını ve toplamının tam olarak bire eşit olmasını sağlayarak,
etkin bir şekilde geçerli bir
olasılık dağılımı oluşturur. Bu
özelliği nedeniyle Softmax, sistemin birbirini dışlayan ikiden fazla seçenekten tek bir kategori seçmesi gereken çok sınıflı
sınıflandırma için tasarlanmış sinir ağlarının çıktı katmanında kullanılan standart
aktivasyon fonksiyonudur.
Softmax'in Mekaniği
Tipik bir derin öğrenme (DL) iş akışında,
ağın katmanları karmaşık matris çarpma ve toplama işlemleri gerçekleştirir. Son katmanın çıktısı,
aktivasyondan önce,
logit olarak bilinen ham puanlardan oluşur. Bu değerler
negatif sonsuzdan pozitif sonsuza kadar değişebilir, bu da onları doğrudan güven düzeyleri olarak yorumlamayı zorlaştırır.
Softmax bunu iki ana işlem gerçekleştirerek çözer:
-
Üs alma: Her bir girdi sayısının üssünü hesaplar. Bu adım, tüm
değerlerin negatif olmamasını sağlar (çünkü $e^x$ her zaman pozitiftir) ve maksimum değerden önemli ölçüde düşük olan değerleri cezalandırırken
en yüksek puanları öne çıkarır.
-
Normalleştirme: Bu üssel değerleri toplar ve her bir üssü bu toplam toplama böler.
Bu normalleştirme işlemi, sayıları bir bütünün parçalarını temsil edecek şekilde ölçeklendirir ve geliştiricilerin bunları yüzde güven puanları olarak yorumlamasına olanak tanır.
Gerçek Dünya Uygulamaları
Net olasılıklar üretme yeteneği, Softmax'ı çeşitli endüstriler ve
makine öğrenimi (ML) görevleri için vazgeçilmez kılar.
-
Görüntü Sınıflandırma: Bilgisayar görüşünde, modeller görüntüleri sınıflandırmak için Softmax kullanır. Örneğin,
Ultralytics sınıflandırma modeli bir fotoğrafı analiz ettiğinde
"Golden Retriever", "Alman Çoban Köpeği" ve
"Poodle" gibi sınıflar için puanlar üretebilir. Softmax, bu puanları olasılıklara (ör. 0,85, 0,10, 0,05) dönüştürerek görüntünün Golden Retriever içerdiğine dair yüksek
bir güven derecesi belirtir. Bu, otomatik fotoğraf
düzenlemeden sağlık hizmetlerinde yapay zeka ile tıbbi tanıya kadar
çeşitli uygulamalar için çok önemlidir.
-
Doğal Dil İşleme (NLP): Softmax, Büyük Dil Modellerinde (LLM) metin üretiminin arkasındaki motor
durumundadır. Transformer gibi bir
model bir cümle ürettiğinde, kelime dağarcığındaki her kelime için bir puan hesaplayarak bir sonraki kelimeyi (token) tahmin eder. Softmax bu puanları
olasılıklara dönüştürerek modelin en olası bir sonraki kelimeyi seçmesini sağlar ve akıcı
makine çevirisi ve konuşma yapabilen yapay zeka
-
Pekiştirme Öğrenimi: Pekiştirme öğrenimindeki
ajanlar genellikle eylemleri seçmek için Softmax'ı
kullanır. Ajan, her zaman en yüksek değere sahip eylemi seçmek yerine,
olasılıkları kullanarak farklı stratejileri keşfedebilir ve robotik kontrol veya oyun oynama gibi ortamlarda keşif ve kullanım arasında denge kurabilir.
.
Python Kod Örneği
Aşağıdaki örnek, önceden eğitilmiş bir
YOLO26 sınıflandırma modelini yüklemeyi ve Softmax aracılığıyla oluşturulan olasılık
puanlarına erişmeyi göstermektedir.
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference on a sample image
results = model("https://ultralytics.com/images/bus.jpg")
# The model applies Softmax internally. Access the top prediction:
# The 'probs' attribute contains the probability distribution.
top_prob = results[0].probs.top1conf.item()
top_class = results[0].names[results[0].probs.top1]
print(f"Predicted Class: {top_class}")
print(f"Confidence (Softmax Output): {top_prob:.4f}")
Softmax'ı İlgili Kavramlardan Ayırma
Softmax, çok sınıflı senaryolarda baskın olsa da, model eğitimi ve mimari tasarımında kullanılan diğer matematiksel
fonksiyonlardan ayırt edilmesi önemlidir:
-
Sigmoid: Sigmoid fonksiyonu da
değerleri 0 ile 1 arasında ölçekler, ancak her çıktıyı bağımsız olarak ele alır. Bu, Sigmoid'i
ikili sınıflandırma (evet/hayır) veya sınıfların birbirini dışlamadığı çok etiketli
sınıflandırma için ideal hale getirir (örneğin, bir görüntü hem "Kişi" hem de
"Sırt Çantası" içerebilir). Softmax, olasılıkların toplamının bir olmasına zorlayarak sınıfların birbiriyle rekabet etmesini sağlar.
-
ReLU (Düzeltilmiş Doğrusal Birim):
ReLU, ağın gizli katmanlarında doğrusal olmayanlık sağlamak için kullanılır. Softmax'tan farklı olarak, ReLU
çıktıları belirli bir aralığa sınırlamaz (negatif girdiler için sıfır, pozitif girdiler için ise girdinin kendisini
çıktı olarak verir) ve olasılık dağılımı oluşturmaz.
-
Argmax: Softmax tüm sınıflar için olasılıkları sağlarken,
Argmax işlevi genellikle
en yüksek olasılığa sahip tek bir endeksi seçmek için birlikte kullanılır. Softmax "yumuşak"
güven sağlarken, Argmax "sert" nihai kararı sağlar.
Gelişmiş Entegrasyon
Modern ML boru hatlarında, Softmax genellikle kayıp fonksiyonları içinde örtük olarak hesaplanır. Örneğin,
Çapraz Entropi Kayıp,
Softmax ve negatif log-olasılığı tek bir matematiksel adımda birleştirerek
eğitim sırasında sayısal kararlılığı artırır. Ultralytics gibi platformlar bu
karmaşıklıkları otomatik olarak ele alır ve kullanıcıların bu matematiksel
işlemleri manuel olarak uygulamadan sağlam modeller eğitmelerine olanak tanır.