Softmax
Yapay zekada Softmax fonksiyonunu keşfet. Ultralytics YOLO26 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ü öğren.
Softmax, yapay zeka alanında çok önemli olan ve özellikle birçok sınıflandırma algoritmasında son adım olarak hizmet eden matematiksel bir fonksiyondur. Genellikle logitler olarak adlandırılan ham sayılardan oluşan bir vektörü, olasılıklar vektörüne dönüştürür. Bu dönüşüm, çıkış değerlerinin tamamının pozitif olmasını ve tam olarak bire toplanmasını sağlayarak etkili bir şekilde geçerli bir probability distribution oluşturur. Bu özelliği nedeniyle Softmax, sistemin karşılıklı olarak dışlayıcı ikiden fazla seçenekten tek bir kategori seçmesi gereken çok sınıflı sınıflandırma için tasarlanmış neural networks çıkış katmanında kullanılan standart activation function türüdür.
Softmax'in İşleyişi#
Tipik bir deep learning (DL) iş akışında, bir ağın katmanları karmaşık matris çarpımları ve toplamaları gerçekleştirir. Aktivasyondan önce son katmanın çıktısı, logits olarak bilinen ham skorlardan oluşur. Bu değerler eksi sonsuzdan artı sonsuza kadar uzanabilir, bu da doğrudan güven seviyeleri olarak yorumlanmalarını zorlaştırır.
Softmax bunu iki temel işlem gerçekleştirerek çözer:
-
Üstel İşlem (Exponentiation): Her bir girdi sayısının üstelini hesaplar. Bu adım, tüm değerlerin negatif olmamasını sağlar (çünkü $e^x$ her zaman pozitiftir) ve maksimumdan önemli ölçüde düşük olan değerleri cezalandırırken en büyük puanları öne çıkarır.
-
Normalizasyon: Bu üstel değerleri toplar ve her bir üstel değeri bu toplam üste böler. Bu normalization process, sayıları bir bütünün parçalarını temsil edecek şekilde ölçeklendirerek geliştiricilerin bunları yüzde güven puanları olarak yorumlamasına olanak tanır.
Gerçek Dünya Uygulamaları#
Net olasılıklar çıktısı verebilme yeteneği, Softmax'i çeşitli endüstrilerde ve machine learning (ML) görevlerinde vazgeçilmez kılmaktadır.
- Görüntü Sınıflandırma: Bilgisayarlı görüde modeller, görüntüleri kategorize etmek için Softmax kullanır. Örneğin, Ultralytics YOLO26 sınıflandırma modeli bir fotoğraft Alman Çoban Köpeği ve Poodle gibi sınıflar için skorlar üretebilir. Softmax bu skorları olasılıklara dönüştürerek (örn. 0.85, 0.10, 0.05) görüntünün bir Golden Retriever içerdiğine dair yüksek bir güven gösterir. Bu, otomatik fotoğraf düzenlemeden AI in Healthcare alanındaki tıbbi teşhise kadar uzanan uygulamalar için çok önemlidir.
- Doğal Dil İşleme (NLP): Softmax, Large Language Models (LLMs) içindeki metin üretiminin arkasındaki motordur. Transformer gibi bir model bir cümle ürettiğinde, kelime dağarcığındaki her kelime için bir skor hesaplayarak bir sonraki kelimeyi (token) tahmin eder. Softmax bu skorları olasılıklara dönüştürerek modelin en olası sonraki kelimeyi seçmesine olanak tanır ve akıcı bir machine translation ile sohbet tabanlı yapay zeka sağlar.
- Pekiştirmeli Öğrenme: reinforcement learning alanındaki aracılar genellikle eylemleri seçmek için Softmax kullanır. Bir aracı her zaman en yüksek değere sahip eylemi seçmek yerine, robotik kontrol veya oyun oynama gibi ortamlarda keşif ve sömürü arasında denge kurarak farklı stratejileri keşfetmek için olasılıkları kullanabilir.
Python Kod Örneği#
Aşağıdaki örnek, önceden eğitilmiş bir YOLO26 sınıflandırma modelinin nasıl yükleneceğini ve Softmax aracılığıyla oluşturulan olasılık skorlarına nasıl erişileceğini 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'i İlgili Kavramlardan Ayırma#
Softmax çok sınıflı senaryolarda baskın olsa da, bunu model training ve mimari tasarımında kullanılan diğer matematiksel fonksiyonlardan ayırmak önemlidir:
- Sigmoid: Sigmoid fonksiyonu da değerleri 0 ile 1 arasında ölçeklendirir ancak her çıktıyı bağımsız olarak ele alır. Bu, Sigmoid'i binary classification (evet/hayır) veya sınıfların birbirini dışlamadığı çok etiketli sınıflandırma (örneğin bir görüntünün hem "Kişi" hem de "Sırt Çantası" içerebilmesi) için ideal kılar. Softmax ise olasılıkların toplamının bir olmasını zorunlu kılarak sınıfların birbiriyle rekabet etmesini sağlar.
- ReLU (Rectified Linear Unit): ReLU öncelikle bir ağın gizli katmanlarında doğrusalsızlık eklemek için kullanılır. Softmax'ten farklı olarak ReLU çıktıları belirli bir aralıkla sınırlandırmaz (negatif girdiler için basitçe sıfır ve pozitif girdiler için girdinin kendisini döndürür) ve bir olasılık dağılımı oluşturmaz.
- Argmax: Softmax tüm sınıflar için olasılıkları sağlarken, en yüksek olasılığa sahip tek indeksi seçmek için genellikle Argmax function ile birlikte kullanılır. Softmax "yumuşak" güveni sağlarken Argmax "kesin" nihai kararı verir.
Gelişmiş Entegrasyon#
Modern ML boru hatlarında Softmax genellikle kayıp fonksiyonları içinde örtük olarak hesaplanır. Örneğin Cross-Entropy Loss, eğitim sırasında sayısal kararlılığı artırmak için Softmax ve negatif log-olabilirliği tek bir matematiksel adımda birleştirir. Ultralytics Platform gibi platformlar bu karmaşıklıkları otomatik olarak yöneterek kullanıcıların bu matematiksel işlemleri manuel olarak uygulamadan sağlam modeller eğitmesine olanak tanır.






