Ana içeriğe atla

Amaç Fonksiyonu Açıklaması: Tanım, Örnekler ve Optimizasyon

Amaç fonksiyonunun ne olduğunu, optimizasyon ve makine öğreniminde nasıl çalıştığını ve gerçek örneklerle nasıl tanımlanıp yorumlandığını öğrenin.
Güncel 4 May 2026  · 11 dk. oku

Eğittiğiniz her makine öğrenimi modeli bir optimizasyon problemi çözer - ve aslında çözmeye çalıştığınız şeye amaç fonksiyonu denir.

Basitçe söylemek gerekirse, bir çözümün ne kadar "iyi" olduğunu ölçen matematiksel bir fonksiyondur. Bir dizi girdiyi alır ve tek bir puan üretir. Amaç, her zaman bu puanı maksimize edecek veya minimize edecek değerleri bulmaktır. Amaç fonksiyonları, doğrusal programlamadan derin öğrenmeye kadar her şeyin kalbinde yer alır. Nasıl çalıştıklarını anladıktan sonra her yerde karşınıza çıkacak kavramlardan biridir.

Bu yazıda amaç fonksiyonlarının ne olduğunu, kayıp ve maliyet fonksiyonlarından nasıl farklılaştıklarını ve makine öğrenimi ile optimizasyonda nasıl kullanıldıklarını açıklayacağım.

2026’da hâlâ güncel bir derin öğrenme derin dalışı mı arıyorsunuz? PyTorch portföyü oluşturmak için Python ile Deep Learning kursumuza kaydolun.

Amaç Fonksiyonu Nedir?

Amaç fonksiyonu, bir çözümün ne kadar iyi olduğunu değerlendiren matematiksel bir fonksiyondur.

Bir dizi girdi - model parametreleri, karar değişkenleri - verirsiniz ve tek bir sayı döndürür. Bu sayı, mevcut çözümünüzün ne kadar iyi performans gösterdiğini söyler. Bu sayı ne kadar yüksek (veya düşük) ise, çözümünüz o kadar iyi (veya kötü) demektir.

Hazır konusu açılmışken, genel olarak optimizasyondan bahsedelim.

Optimizasyon, bu sayıyı doğru yönde iten girdileri bulma sürecidir. Minimize ediyorsanız, mümkün olan en küçük değeri istersiniz. Maksimize ediyorsanız, en büyük değeri. Her iki durumda da ölçtüğünüz şey amaç fonksiyonudur.

Düz anlatımla, bunu bir puanlama sistemi olarak düşünün. Her aday çözüm bir puan alır ve sizin işiniz en iyi puana sahip olanı bulmaktır.

Amaç Fonksiyonu vs Kayıp Fonksiyonu vs Maliyet Fonksiyonu

Bu üç terim sık sık birbirinin yerine kullanılır - ancak tam olarak aynı şeyi ifade etmezler.

En geniş terim amaç fonksiyonudur. Maksimize etmeye veya minimize etmeye çalıştığınız herhangi bir fonksiyondur. Hata veya tahmin içermek zorunda değildir - sadece probleminiz için "daha iyi"nin ne anlama geldiğini tanımlar.

Bir kayıp fonksiyonu tek bir eğitim örneği için hatayı ölçer - modelinizin tahmini gerçek değerden ne kadar sapmış. Örneğin tek bir veri noktası için ortalama karesel hata, bir kayıp fonksiyonudur.

Bir maliyet fonksiyonu ise kaybı tüm veri kümeniz boyunca genellikle ortalama alarak toplar. Dolayısıyla eğitim sırasında aslında minimize ettiğiniz şey maliyet fonksiyonudur - sadece tek bir örnek yerine tüm örnekler boyunca model performansını özetler.

Uygulamada, çoğu ML çerçevesi ve makalesi bu terimleri gevşek kullanır. "Kayıp"ın, "maliyet"in daha doğru olacağı yerlerde kullanıldığını ve "amaç"ın da üçünü birden ifade etmek için kullanıldığını görürsünüz.

Araştırma makaleleri okurken bu ayrımlar önemlidir. Bağlam, yazarın aslında hangisini kastettiğini söyler.

Daha somut bir karşılaştırma için aşağıdaki tabloya bakın:

Amaç/Kayıp/Maliyet fonksiyonu karşılaştırma tablosu

Amaç/Kayıp/Maliyet fonksiyonu karşılaştırma tablosu

Optimizasyonda Amaç Fonksiyonları

Her optimizasyon probleminin bir hedefi ve bir dizi sınırı vardır.

Amaç fonksiyonu hedefi tanımlar - maksimize ya da minimize etmeye çalıştığınız şey. Kısıtlar ise sınırları tanımlar - çözümünüzün içinde kalması gereken çerçeveyi. Birlikte, problemi çerçevelerler.

Basit bir kaynak tahsisi örneği ele alalım.

Diyelim ki iki ürün üreten bir fabrika işletiyorsunuz ve kârı maksimize etmek istiyorsunuz. Amaç fonksiyonunuz, her bir üründen kaç birim ürettiğinize bağlı olarak toplam kârı yakalar. Kısıtlarınız ise mevcut hammadde, makine saatleri, iş gücü kapasitesi gibi sınırları ifade eder. Amaç fonksiyonu neyin optimize edileceğini, kısıtlar ise hangi imkânlarla çalıştığınızı söyler.

Doğrusal programlama bunun en yaygın uygulama alanlarından biridir. Doğrusal kısıtlar altında doğrusal bir amaç fonksiyonunu optimize etme yöntemidir. Lojistikten çizelgelemeye, tedarik zincirinden finansa kadar her yerde kullanılır. Matematiği iyi anlaşılmıştır ve çözücüler binlerce değişkenli problemleri bile ele alabilir.

Önemli bir not: Amaç fonksiyonu hangi kısıtların var olduğunu değiştirmez - sadece çözücünün neyin peşinden gideceğini söyler. Amaç fonksiyonunu değiştirirseniz, aynı kısıtlarla bile tamamen farklı bir çözüm elde edersiniz.

Makine Öğreniminde Amaç Fonksiyonları

Makine öğreniminde amaç fonksiyonu, modelinizin aslında ne yapmayı öğrendiğini tanımlar.

Her model eğittiğinizde, amaç fonksiyonunu minimize ya da maksimize etmek için model parametrelerini ayarlayan bir optimizasyon algoritması (gradyan inişi, Adam, RMSProp gibi) çalıştırırsınız. Model probleminiz hakkında hiçbir şey bilmez. Sadece amaç fonksiyonunun verdiği puanı bilir ve her güncellemede bu puanı iyileştirmeye çalışır.

Bu, seçeceğiniz amaç fonksiyonunun sonucu şekillendirdiği anlamına gelir. Sizin durumunuz için hangisinin en iyi çalıştığını görmek adına birkaçını denemek iyi bir fikirdir.

Ortalama karesel hata (regresyon)

Ortalama Karesel Hata (MSE), regresyon problemlerinin varsayılan amaç fonksiyonudur. Modelinizin tahminleri ile gerçek hedef değerler arasındaki ortalama karesel farkı ölçer.

MSE formülü

MSE formülü

Farkların karesini almak tüm hataları pozitif yapar ve büyük hataları küçük hatalardan daha fazla cezalandırır. 10 sapmış bir tahmin, toplama sadece 10 değil 100 katkıda bulunur. Bu da MSE’yi aykırı değerlere duyarlı kılar; gerçek dünya verilerinin dağınık olduğu durumlarda dikkat edilmesi gereken bir noktadır.

import numpy as np

y_true = np.array([3.0, 5.0, 2.5, 7.0])
y_pred = np.array([2.8, 5.2, 2.0, 6.5])

mse = np.mean((y_true - y_pred) ** 2)
print(f"MSE: {mse:.4f}")

MSE çıktısı

MSE çıktısı

Çapraz entropi kaybı (sınıflandırma)

Çapraz Entropi Kaybı, sınıflandırma problemleri için standart amaç fonksiyonudur. Modelinizin tahmin ettiği olasılık dağılımının gerçek sınıf dağılımından ne kadar uzak olduğunu ölçer.

Çapraz Entropi kayıp fonksiyonu

Çapraz Entropi kayıp fonksiyonu

Modeliniz doğru sınıfa yüksek olasılık atarsa, kayıp düşüktür. Eğer kendinden eminse ama yanlışsa, kayıp yüksektir ve bunu cezalandırır. Bu, modelin doğru sınıfı tahmin etmeye ve bunda kendinden emin olmaya yönelmesini sağlar.

import numpy as np

# True labels (one-hot encoded)
y_true = np.array([1, 0, 0])

# Model's predicted probabilities
y_pred = np.array([0.7, 0.2, 0.1])

cross_entropy = -np.sum(y_true * np.log(y_pred))
print(f"Cross-Entropy Loss: {cross_entropy:.4f}")

Çapraz Entropi çıktısı

Çapraz Entropi çıktısı

Log-olabilirlik

Log-olabilirlik, olasılıksal ve istatistiksel modellerde yaygındır. Fonksiyon, modelinizin parametrelerinin gözlemlediğiniz verileri üretme olasılığını maksimize eder.

Log-olabilirlik formülü

Log-olabilirlik formülü

Olasılığın kendisi yerine logunu kullanırsınız çünkü olasılıkların çarpımını toplama çevirir; bu da hesaplamayı ve optimizasyonu çok daha kolay hale getirir.

Uygulamada, çoğu çerçeve log-olabilirliği maksimize etmek yerine negatif log-olabilirliği (NLL) minimize eder. Aynı şeydir - sadece gradyan inişinin onunla çalışabilmesi için tersine çevrilmiştir.

import numpy as np
from scipy.stats import norm

# Observed data
data = np.array([1.2, 2.3, 1.8, 2.1, 1.9])

# Assumed model parameters
mu, sigma = 2.0, 0.5

# Compute negative log-likelihood
nll = -np.sum(norm.logpdf(data, loc=mu, scale=sigma))
print(f"Negative Log-Likelihood: {nll:.4f}")

Log-olabilirlik çıktısı

Log-olabilirlik çıktısı

Eğitim özünde sadece optimizasyondur. Her ileri geçiş amaç fonksiyonunun değerini hesaplar. Her geri geçiş gradyanları hesaplar. Ve her parametre güncellemesi modeli puanı iyileştirecek yönde hareket ettirir.

Konveks ve Konveks Olmayan Amaç Fonksiyonları

Tüm amaç fonksiyonları eşit yaratılmamıştır. Şekilleri, optimize edilmelerinin ne kadar zor olduğunu ve bulduğunuz çözüme güvenip güvenemeyeceğinizi belirler.

Doğrusal amaç fonksiyonları

Doğrusal bir amaç fonksiyonu, girdiler ile çıktı arasında doğrusal bir ilişki verir. Herhangi bir girdiyi sabit bir miktar değiştirirseniz, çıktı da sabit bir miktar değişir.

Doğrusal fonksiyonlar, hem amaç hem de kısıtların doğrusal olduğu doğrusal programlamada kullanılır. Bunlar, optimize edilmesi en kolay amaç fonksiyonu sınıfıdır; çözücüler büyük problemler için bile güvenilir şekilde küresel optimumu bulabilir.

Doğrusal olmayan amaç fonksiyonları

Doğrusal olmayan bir amaç fonksiyonu, girdiler ile çıktı arasında daha karmaşık bir ilişkiye sahiptir. Gerçek dünya problemlerinin çoğu - ve neredeyse tüm makine öğrenimi modelleri - bu kategoriye girer.

MSE doğrusal değildir. Çapraz entropi doğrusal değildir. Sinir ağlarının kayıp yüzeyleri doğrusal değildir. Bu ek karmaşıklık, bu fonksiyonların verideki karmaşık ilişkileri yakalamasına olanak tanır; ancak optimizasyonu da zorlaştırır.

Konveks ve konveks olmayan fonksiyonlar

İşler burada ilginçleşir.

Konveks bir fonksiyon kase benzeri bir şekle sahiptir. Eğri üzerindeki iki nokta arasında çizilen herhangi bir doğru parçası eğrinin üzerinde veya üzerinde kalır. Bu, herhangi bir yerel minimin aynı zamanda küresel minimum olmasını garanti eder - yani, optimize ediciniz bir dip bulursa, o gerçek dip demektir.

Konveks olmayan bir fonksiyon daha düzensiz bir şekle sahiptir - birden fazla vadi, plato ve eyer noktası. Optimize ediciler yerel minimumda takılıp kalabilir; dip gibi görünen ama olmayan bir vadide. Derin sinir ağlarının kayıp yüzeyleri oldukça konveks değildir; bu yüzden bunları eğitmek, öğrenme hızlarının, optimize edicilerin ve başlatmanın dikkatli bir şekilde ayarlanmasını gerektirir.

Konveks problemler tam olarak, konveks olmayan problemler yaklaşık olarak çözülür. Çözümünüzün kalitesi, optimizasyon stratejinize bağlıdır.

Görsel düşünenler için, doğrusal, doğrusal olmayan, konveks ve konveks olmayan amaç fonksiyonlarının bir karşılaştırması:

Amaç fonksiyonu türü karşılaştırması

Amaç fonksiyonu türü karşılaştırması

Amaç Fonksiyonları Nasıl Optimize Edilir

Bir amaç fonksiyonuna sahip olduğunuzda, onu minimize ya da maksimize etmenin bir yoluna ihtiyaç duyarsınız. İşte burada optimizasyon algoritmaları devreye girer.

En yaygın yaklaşım gradyan inişidir. Fikir, amaç fonksiyonunun modelinizin parametrelerine göre gradyanını hesaplamak ve ardından değeri azaltan yönde küçük bir adım atmaktır. Buradan, değer iyileşmeyi bırakana kadar tekrarlayın.

Gradyan, amaç fonksiyonunun türevinden ibarettir.

Bulunduğunuz noktadaki eğimi ve "yokuş yukarı" yönünü söyler. Fonksiyonu minimize etmek için ters yönde ilerlersiniz. Maksimize etmek için aynı yönde ilerlersiniz.

Bu süreç yinelemelidir; yani çözüme ulaşmak için bir dizi küçük güncelleme yaparsınız, her biri parametreleri optimuma biraz daha yaklaştırır. Her adımın boyutu öğrenme hızı ile kontrol edilir. Değer çok büyükse optimumu aşabilirsiniz; çok küçükse eğitim daha uzun sürer.

Uygulamada, çoğu ML çerçevesi temel sürümden daha hızlı ve daha kararlı olan gradyan inişi türevlerini kullanır:

  • Stokastik Gradyan İnişi (SGD) tam veri kümesi yerine adım başına rastgele tek bir örnek üzerinde gradyanı hesaplar
  • Mini-yığın gradyan inişi adım başına küçük bir örnek yığını kullanır - SGD ile tam yığın arasında bir orta yol
  • Adam her bir parametre için öğrenme hızını uyarlayarak ayarlamayı daha bağışlayıcı hale getirir

Gradyan tabanlı yöntemlerin çalışması için amaç fonksiyonunun türevlenebilir, en azından çoğunlukla türevlenebilir olması gerekir. Türev yoksa gradyan yoktur; bu da optimize edicinin takip edecek bir şeyi olmadığı anlamına gelir. Hatırlanması gereken kilit noktalardan biri budur.

Bir Amaç Fonksiyonu Örneği

Bunu basit bir doğrusal regresyon problemiyle somutlaştıralım.

Diyelim ki metrekareye göre konut fiyatlarını tahmin ediyorsunuz. Fiyatları bilinen konutlardan oluşan bir veri kümeniz var ve tahmin hatasını minimize eden bir doğruyu veriden geçirmek istiyorsunuz. Amaç fonksiyonunuz formülünü zaten bildiğiniz Ortalama Karesel Hata (MSE)dır.

Girdiler, modelinizin parametreleridir - doğrunun eğimi ve kesişimi. Çıktı tek bir sayıdır - tüm tahminler boyunca ortalama karesel hata. Bu durumda, daha düşük daha iyidir.

Olası bir Python uygulaması şöyle görünebilir:

import numpy as np

np.random.seed(42)

# Generate some fake housing data
square_footage = np.random.uniform(500, 3000, 100)
true_price = 150 * square_footage + 50000 + np.random.normal(0, 15000, 100)

def predict(x, slope, intercept):
    return slope * x + intercept

def mse(y_true, y_pred):
    return np.mean((y_true - y_pred) ** 2)

# Try two different parameter sets
slope_a, intercept_a = 150, 50000  # good fit
slope_b, intercept_b = 80, 100000  # bad fit

pred_a = predict(square_footage, slope_a, intercept_a)
pred_b = predict(square_footage, slope_b, intercept_b)

print(f"MSE (good fit):  {mse(true_price, pred_a):,.2f}")
print(f"MSE (poor fit):  {mse(true_price, pred_b):,.2f}")

MSE iyi ve kötü uyum

MSE iyi ve kötü uyum

İlk parametre kümesi çok daha düşük bir MSE üretir; bu da veriye daha iyi uyum sağladığı anlamına gelir. Optimize edicinin hangi yöne hareket edeceğine karar vermek için kullandığı şey tam olarak budur.

Görsel düşünenler için, aşağıdaki görsele bakın:

MSE örneği

MSE örneği

Her iki uyumu da veriye karşı görebilir ve ayrıca amaç fonksiyonunun kendisini görmek için bir dizi eğim değeri boyunca MSE yüzeyini inceleyebilirsiniz.

Sol grafik iki parametre kümesinin veriye nasıl uyduğunu gösterir. Sağ grafik, eğim değerleri boyunca MSE yüzeyini gösterir - amaç fonksiyonu bir eğri olarak; optimize edicinin bulmaya çalıştığı net bir minimumla. Gradyan inişinin her adımı bu eğri boyunca o minimuma doğru ilerler.

Kısıtlar ve Amaç Fonksiyonları

Bir amaç fonksiyonu neyin optimize edileceğini söyler. Kısıtlar ise neyi yapmanıza izin verildiğini.

Çoğu gerçek problemde, istediğiniz gibi maksimize ya da minimize edemezsiniz. Bütçe, zaman penceresi veya fiziksel kapasite gibi sınırlar dahilinde çalışırsınız. Bu sınırlara kısıtlar denir ve optimize edicinizin seçebileceği geçerli çözümler kümesini tanımlarlar.

Bir üretim örneği düşünün.

Diyelim ki iki ürün hattında kârı maksimize etmek istiyorsunuz. Kısıtlar olmadan cevap olabildiğince çok üretmektir. Ancak 500 saat makine zamanınız ve 1.000 birim hammadde stoğunuz var. Bunlar sizin kısıtlarınızdır. Amaç fonksiyonu aynı (kârı maksimize et) kalır, ancak optimize edici yalnızca bu kısıtların izin verdiği bölge içinde arama yapabilir.

Kısıtları değiştirdiğinizde, amaç fonksiyonu değişmese bile optimal çözüm de değişir.

Bir amaç fonksiyonu ile bir dizi kısıttan oluşan bu yapı, kısıtlı optimizasyonun temelidir. Doğrusal programlama böyle çalışır, portföy optimizasyonu böyle çalışır ve birçok gerçek dünya planlama problemi bu şekilde formüle edilir.

Sonuç

İster bir sinir ağını eğitiyor, ister kaynak tahsis ediyor, ister bir regresyon modeli uyduruyor olun, her optimizasyon problemi tek bir şeye dayanır: minimize ya da maksimize etmeye çalıştığınız bir fonksiyona.

Amaç fonksiyonu işte bu fonksiyondur. "Daha iyi"nin ne anlama geldiğini tanımlar, her parametre güncellemesini yönlendirir ve modelinizin gerçekte ne öğrendiğini belirler. Doğru seçerseniz, modeliniz elinizdeki problemi çözebilir. Yanlış seçerseniz, genellikle sizi uyaracak bariz bir hata olmadan tamamen farklı bir problemi çözer.

Doğru amaç fonksiyonunu seçmek veri biliminde bir tasarım kararıdır; sonrasında olacak her şeyi şekillendirir. Bir uygulayıcı olarak, farklı seçenekleri denemekten çekinmeyin - seçebileceğiniz pek çok amaç fonksiyonu vardır.

Nereden başlayacağınızdan emin değil misiniz? Python ile Model Doğrulama ve Python ile Hiperparametre Ayarlama kurslarımız, başlangıç ve orta seviye veri bilimciler için harika başlangıç noktalarıdır.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Hırvatistan merkezli Kıdemli Veri Bilimci. 700’ün üzerinde yayımlanmış makaleyle 10 M+ görüntüleme elde eden, önde gelen bir teknoloji yazarı. TPOT ile Makine Öğrenimi Otomasyonu kitabının yazarı.

SSS

Amaç fonksiyonu nedir?

Amaç fonksiyonu, bir çözümün ne kadar iyi olduğunu ölçen matematiksel bir fonksiyondur. Model parametreleri ve karar değişkenleri gibi bir dizi girdi verirsiniz ve tek bir sayı döndürür. Amaç, her zaman bu sayıyı mümkün olduğunca yüksek veya düşük yapan girdileri bulmaktır.

Amaç fonksiyonu ile kayıp fonksiyonu arasındaki fark nedir?

Kayıp fonksiyonu, makine öğreniminde tek bir eğitim örneği için tahmin hatasını ölçmekte kullanılan belirli bir tür amaç fonksiyonudur. Amaç fonksiyonu daha geniş bir terimdir - sadece tahmin hatası değil, minimize ya da maksimize ettiğiniz herhangi bir fonksiyonu ifade edebilir. Uygulamada iki terim sıklıkla birbirinin yerine kullanılır, ancak araştırma makaleleri okurken bu ayrım önemlidir.

Amaç fonksiyonları nerede kullanılır?

Amaç fonksiyonları optimizasyon içeren her problemde karşımıza çıkar - makine öğrenimi, doğrusal programlama, kaynak tahsisi, finans, lojistik ve daha fazlası. Makine öğreniminde amaç fonksiyonu, modelin eğitim sırasında ne öğrendiğini tanımlar. ML dışında ise, kısıtlı veya kısıtsız her optimizasyon probleminde hedefi tanımlar.

Makine öğreniminde amaç fonksiyonu seçimi neden önemlidir?

Amaç fonksiyonu, modelinizin eğitim sırasında gerçekte neyi optimize ettiğini belirler. Yanlış olanı seçerseniz, modeliniz yanlış şeyi minimize eder - ve bunu iyi yapar; bu da sorunu fark etmeyi zorlaştırır. Örneğin, bir sınıflandırma problemi için MSE kullanmak yalnızca kötü sonuç vermekle kalmaz, aynı zamanda güvenle kötü sonuç verir; bu daha da kötüdür.

Bir amaç fonksiyonunun birden fazla minimumu olabilir mi?

Evet - ve bu, derin öğrenme modellerini eğitmenin temel zorluklarından biridir. Konveks olmayan amaç fonksiyonlarının birden fazla yerel miniması vardır; bu da optimize edicinin küresel en iyi olmayan bir vadide takılı kalabileceği anlamına gelir. Bu yüzden ağırlık başlatma, öğrenme hızı planlaması ve optimize edici seçimi önemlidir - sonunda optimize edicinizin iyi bir çözüme ulaşıp ulaşmadığını etkilerler.

Konular

DataCamp ile Öğrenin

Kurs

Veri Bilimini Anlamak

2 sa
848.7K
Veri bilimine kodlama gerektirmeyen bir giriş.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör