• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

PyTorch sigmoid çıktısı nasıl yorumlanır?

Garfield

YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
664
Mesajlar
689
AI Seviyesi
Yeni
torch.sigmoid(x), bir logiti 0 ile 1 arasında değere dönüştürür. Bu değer, uygun biçimde eğitilmiş ikili sınıflandırma modelinde hedefi 1 olarak tanımlanan sınıfa ait olasılık tahmini gibi yorumlanabilir. Ancak sigmoid uygulamak, tahminin doğru veya iyi kalibre edilmiş olduğunu tek başına göstermez. Çıktıyı yorumlamadan önce modelin ham çıktısının logit mi, yoksa zaten olasılık mı olduğunu kontrol edin; sigmoid’i iki kez uygulamayın.

Logit, olasılık ve karar arasındaki fark​


Matematiksel olarak logit negatifse sigmoid çıktısı 0,5’in altında, logit sıfırsa tam 0,5, pozitifse 0,5’in üzerindedir. Matematiksel olarak sonlu girdilerde sonuç 0 ile 1 arasındadır; kayan noktalı hesapta çok büyük pozitif veya negatif logits, yuvarlama nedeniyle tam 1 veya 0 üretebilir. Bu uç değerler de kesin doğru tahmin anlamına gelmez. Fonksiyon her elemana ayrı uygulanır ve tensörün şeklini değiştirmez; ayrıntılar resmî Sigmoid belgesindedir.

Aşağıdaki örnek yalnızca dönüşümü ve karar kuralını gösterir; eğitilmiş bir modelin başarısını ölçmez:

Python:
import torch

logits = torch.tensor([-2.0, 0.0, 2.0])
olasikliklar = torch.sigmoid(logits)
tahminler = (olasikliklar >= 0.5).to(torch.int64)

print(torch.round(olasikliklar, decimals=4))
print(tahminler)

Olasılıklar yaklaşık 0.1192, 0.5000, 0.8808, kararlar ise 0, 1, 1 olur. Burada eşitliği pozitif sınıfa sayan >= 0.5 kuralı seçildi. Eşitlik davranışını uygulamanızda açıkça belirleyin; “0,5’in üzeri” ifadesi tek başına tam 0,5 için karar tanımlamaz.

Sigmoid mi, softmax mı kullanmalısınız?​


Çıkış sayısını ve etiketlerin birbirini dışlayıp dışlamadığını birlikte değerlendirin:

ProblemÇıktıyı yorumlamaTipik eğitim kaybı
Tek logitli ikili sınıflandırmaSigmoid ile pozitif sınıf tahminiBCEWithLogitsLoss
Birbirini dışlayan C sınıftan biriSınıf ekseni boyunca softmaxCrossEntropyLoss
Aynı örnekte birden çok, birbirini dışlamayan etiketHer etiket için ayrı sigmoidBCEWithLogitsLoss

Çok etiketli problemde sigmoid değerlerinin toplamının 1 olması gerekmez. Örneğin aynı içerik hem “spor” hem “sağlık” etiketi alabiliyorsa bu etiketlerin kararları ayrı değerlendirilir. Buna karşılık yalnızca bir sınıfın seçileceği modelde softmax, sınıf skorlarını birlikte normalleştirir.

Eğitimde ham logits kullanın​


BCEWithLogitsLoss, sigmoid ve ikili çapraz entropiyi sayısal açıdan daha kararlı tek işlemde birleştirir. Bu kayba sigmoid çıktısını tekrar vermeyin. Hedefler kayan noktalı olmalı ve logits ile aynı şekli taşımalıdır; sert ikili etiketlerde değerler 0 veya 1’dir. Örneğin (N, 1) logits ile (N) hedefi doğrudan eşleştirmeyin. Resmî kayıp belgesi giriş ve hedef koşullarını açıklar.

Python:
import torch

logits = torch.tensor([-2.0, 0.0, 2.0], requires_grad=True)
hedefler = torch.tensor([0.0, 1.0, 1.0])

kayip = torch.nn.BCEWithLogitsLoss()(logits, hedefler)
kayip.backward()

print(round(kayip.item(), 4))
print(logits.grad.shape)

Bu örnekte kayıp yaklaşık 0.3157, gradyan şekli torch.Size([3]) olur. Kayıp, pozitif sınıf olasılığı değildir. Örnek, ham logits ile kayıp hesaplamasını ve geriye yayılımın çalışmasını gösterir.

Karar eşiğini nasıl seçmelisiniz?​


0,5 eşiği başlangıç seçeneğidir; sınıf dengesine ve yanlış pozitif ile yanlış negatif hatalarının maliyetine göre değiştirilebilir. Eşiği ayrı doğrulama verisinde precision, recall ve karışıklık matrisiyle değerlendirin. Nihai performans için ayırdığınız test verisinde tekrar tekrar eşik seçmeyin; bu, sonuçları olduğundan iyi gösterebilir. Yüksek bir sigmoid değerinin güvenilirliğini anlamak için kalibrasyonu da ayrıca inceleyin.

Sık sorulan soru​


Tek çıkışta softmax neden hep 1 veriyor?​


(N, 1) tensöründe tek elemanlı sınıf eksenine softmax uygularsanız o eleman kendisine göre normalleştirilir ve 1 olur. Tek logitli ikili modelin olasılık dönüşümü için sigmoid kullanın; iki sınıfa ait iki logit üreten tasarımda ise sınıf ekseninde softmax kullanılabilir.
 
Son düzenleme:

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Geri
Üst