AI Atlas
Orta· ~2 dk okuma#loss-function#optimization#training

Kayıp Fonksiyonu

Loss Function

Modelin tahmininin gerçek değerden ne kadar saptığını sayısallaştıran fonksiyon — eğitim, bu fonksiyonun değerini minimize edecek parametreleri arar.

KAYIP FONKSİYONUkayıpepochL(θ)eğitim ilerledikçe minimuma inerModelin tahmininin gerçekten ne kadar saptığını ölçer.
Tanım

Eğitim sırasında modelin "ne kadar iyi öğrendiğini" tek bir sayı olarak ifade eden mekanizma kayıp fonksiyonudur. Model bir tahmin üretir, gerçek etiketle kıyaslanır, aralarındaki sapma bir sayıya çevrilir. Eğitim algoritması (genelde gradient descent) bu sayıyı azaltacak yönde modelin parametrelerini günceller.

Kayıp fonksiyonu problem türüne göre seçilir, modelin nasıl öğreneceğini belirler. Bazı standart seçimler:

- MSE (Mean Squared Error): regresyonda klasik. Hatayı kareler — büyük hatalar ağır cezalandırılır. Aykırı değerlere duyarlı. - MAE (Mean Absolute Error): regresyonda. Mutlak hata — aykırılara daha tolerantlı, ama gradient daha az bilgi içerir. - Huber loss: MSE ve MAE arasında köprü. Küçük hatalarda MSE, büyük hatalarda MAE gibi davranır. - Cross-Entropy: sınıflandırmanın ana kayıp fonksiyonu. Olasılık tahmininin gerçek sınıfa ne kadar uzak olduğunu ölçer; öğrenmeyi olasılık tabanlı yapar. - Hinge loss: SVM'in temeli. Doğru tarafta yeterli marj varsa kayıp 0, yoksa orantılı.

Kayıp fonksiyonu seçimi modelin sonuç davranışını değiştirir. Aynı veri ve aynı mimari, farklı kayıpla farklı performans verir; bu yüzden iş problemine en uygun kaybı seçmek mühendisliğin kritik bir parçasıdır.

Benzetme

Bir okçunun antrenman sırasında kullandığı puanlama sistemi gibi. "Hedeften ne kadar uzakta?" sorusunun cevabını bir sayıya çevirir. MSE okçudan tam ortayı ister, dış halkalara ağır ceza verir. MAE her sapmayı eşit cezalandırır. Hinge yeterince yakınsa hiç ceza vermez. Hangi puan sistemini seçtiğin, okçunun nasıl antrenman yapacağını belirler. Model de tam böyle — kayıp fonksiyonu modelin "ne için optimize ettiğini" tanımlar.

Gerçek dünyadan örnek

Aynı veri seti üzerinde kâr tahmini için iki model eğitiyorsun: biri MSE, diğeri MAE ile.

- MSE versiyonu: Genelde ortalama kârı iyi bilir ama bir sezon yanlışlıkla giren 2 milyonluk uçuk değer modeli saptırmış. Sonraki sezon, normal aralık tahminleri sürekli yüksek çıkıyor. - MAE versiyonu: Aykırı değerden az etkilenmiş, normal aralıklarda doğruluk benzer ama ortalama hatası daha tutarlı.

İş ekibi "tutarlı tahmin lazım, aykırı sezonu ayrıca ele alacağız" der → MAE seçilir. Aynı veri, aynı algoritma, sadece kayıp fonksiyonu farkı; tamamen farklı bir model davranışı çıkar.

Kod örnekleri
Kayıp fonksiyonu seçiminin etkisiPython
from sklearn.linear_model import HuberRegressor, LinearRegression
from sklearn.metrics import mean_absolute_error
import numpy as np

# Aynı veri, farklı kayıp fonksiyonları
models = {
    "Linear (MSE)": LinearRegression(),
    "Huber (Huber)": HuberRegressor(epsilon=1.35),
}

# Aykırı değerlerle veri
rng = np.random.default_rng(0)
n = 200
X = rng.normal(size=(n, 1))
y = (3 * X.squeeze() + rng.normal(scale=0.5, size=n))
y[:10] += 50  # 10 aykırı değer ekle

for name, m in models.items():
    m.fit(X, y)
    preds = m.predict(X)
    mae = mean_absolute_error(y, preds)
    print(f"{name:15s}  katsayı={m.coef_[0]:+.3f}  MAE={mae:.3f}")
# MSE tabanlı doğruluğu aykırılar saptırır;
# Huber gerçek eğime daha yakın sonuç verir.
PyTorch · sınıflandırma için cross-entropyPython
import torch
import torch.nn as nn

# Logits → cross-entropy → kayıp
criterion = nn.CrossEntropyLoss()

logits = torch.tensor([[2.0, 1.0, 0.1], [0.5, 2.5, 0.3]])  # 2 örnek, 3 sınıf
targets = torch.tensor([0, 1])

loss = criterion(logits, targets)
print(f"Cross-entropy: {loss.item():.4f}")

# Tahmin sınıf 0 ve 1 → ikisi de doğru → kayıp düşük
Ne zaman kullan
  • Bu bir kavram; her ML eğitiminde mutlaka seçilir
Ne zaman kullanma
  • Kavramsal olarak her zaman gerekli
Sık yapılan hatalar

Yanlış kaybı seçmek

Olasılık çıktısı isteyen yerde MSE kullanmak, aykırı değer dolu veride MSE'de ısrar etmek, sınıflandırmada MAE kullanmak — kötü sonuç üretir. Probleme uygun kaybı seç.

Kayıp ile değerlendirme metriğini karıştırmak

Eğitimde optimize ettiğin kayıp ile son raporladığın metrik genelde farklıdır. Cross-entropy minimize edersin ama F1 raporlarsın. İkisi farklı amaçlara hizmet eder.

Düzenlileştirme terimini unutmak

Pratikte kayıp = veri kaybı + λ × düzenlileştirme. λ'yi ayarlamadan eğitirsen ya aşırı öğrenme ya yetersiz öğrenme alırsın.