Makine öğreniminde sigmoid fonksiyonunun rolünü keşfedin. Bu aktivasyon fonksiyonunun Ultralytics gibi modellerde ikili sınıflandırmayı nasıl mümkün kıldığını öğrenin.
Sigmoid fonksiyonu, makine öğrenimi (ML) ve derin öğrenme (DL) alanlarında yaygın olarak kullanılan temel bir matematiksel bileşendir. Genellikle "ezme fonksiyonu" olarak adlandırılan bu fonksiyon, herhangi bir gerçek sayıyı girdi olarak alır ve onu 0 ile 1 arasındaki bir değere eşler. Bu karakteristik "S" şeklindeki eğri, ham model çıktılarını yorumlanabilir olasılıklara dönüştürmek için inanılmaz derecede kullanışlıdır. Sinir ağı (NN) bağlamında, Sigmoid fonksiyonu bir aktivasyon fonksiyonu olarak işlev görür ve modellerin basit doğrusal ilişkilerin ötesinde karmaşık kalıpları öğrenmesini sağlayan doğrusal olmayanlık getirir. Derin gizli katmanlarda büyük ölçüde diğer fonksiyonlarla değiştirilmiş olsa da, ikili sınıflandırma görevlerinde çıktı katmanları için standart bir seçim olmaya devam etmektedir .
Sigmoid fonksiyonunun temelinde, genellikle logit olarak adlandırılan girdi verilerini normalize edilmiş bir aralığa dönüştürmek yatmaktadır. Bu dönüşüm, bir olayın olasılığını tahmin etmeyi amaçlayan görevler için çok önemlidir. Çıktıyı 0 ile 1 arasında sınırlayarak, fonksiyon net bir olasılık puanı sağlar.
Sigmoid bir zamanlar tüm katmanlar için varsayılan seçenektirken, araştırmacılar kaybolan gradyan sorunu gibi sınırlamalar keşfettiler. Bu sorunda gradyanlar çok küçük hale gelir ve derin ağlarda ağırlıkları etkili bir şekilde güncelleyemez. Bu durum, gizli katmanlar için alternatiflerin benimsenmesine yol açtı .
Sigmoid fonksiyonunun kullanımı, olasılık tahmininin gerekli olduğu çeşitli endüstrilere yayılmıştır.
Sigmoid'in, derin öğrenme modelleri oluşturmak için popüler bir kütüphane olan PyTorch kullanarak verileri nasıl dönüştürdüğünü gözlemleyebilirsiniz. Bu basit örnek, bir dizi girdi değeri üzerinde "ezme" etkisini göstermektedir.
import torch
import torch.nn as nn
# Create a Sigmoid layer
sigmoid = nn.Sigmoid()
# Define input data (logits) ranging from negative to positive
input_data = torch.tensor([-5.0, -1.0, 0.0, 1.0, 5.0])
# Apply Sigmoid to squash values between 0 and 1
output = sigmoid(input_data)
print(f"Input: {input_data}")
print(f"Output: {output}")
# Output values near 0 for negative inputs, 0.5 for 0, and near 1 for positive inputs
Düşük seviyeli kod yazmadan bu kavramları kullanan modeller eğitmek isteyenler için Ultralytics , veri kümelerini yönetmek ve YOLO26 gibi son teknoloji modelleri eğitmek için sezgisel bir arayüz sunar. Mimari karmaşıklıkları otomatik olarak ele alarak, kullanıcıların belirli bilgisayar görme uygulamaları için yüksek kaliteli eğitim verileri toplamaya odaklanmalarını sağlar.