Dr. Mehmet Solak Siirt Üniversitesi · Ziraat Fakültesi · Biyosistem Mühendisliği · Tarım ve Tarımsal Eğitim İçin Makine Öğrenmesi İçeriği

Bölüm 4: Öğrenme Algoritması Anatomisi (Anatomy of a Learning Algorithm)

kitapburkovbölüm-4gradyan-inisikayip-fonksiyonuöğrenme-hizisgdoptimizasyon

Kaynak: Andriy Burkov -- "The Hundred-Page Machine Learning Book" (theMLbook.com)

Bölüm 4: Öğrenme Algoritmasi Anatomisi


4.1 Bir Öğrenme Algoritmasinin Yapi Taslari

Bölüm 3'teki algoritmalari inceleyerek, her öğrenme algoritmasinin uc temel parcadan olustugu gorulur:

1. Kayip Fonksiyonu (Loss Function)

Tek bir örnekteki hatanin olcusu. Örneğin: - Doğrusal regresyon: Karesel hata kaybi - Lojistik Regresyon: Log-olabilirlik kaybi - SVM: Mentes kaybi (hinge loss)

2. Optimizasyon Kriteri (Maliyet Fonksiyonu)

Kayip fonksiyonuna dayali genel hedef. Örnekler: - Doğrusal regresyon: Ortalama karesel hata (MSE) -- ampirik riski minimize et - Lojistik regresyon: Log-olabilirlik -- olabilirligi maksimize et - SVM: Marj büyüklugu + ceza -- C * ||w||^2 + ortalama mentes kaybi

3. Optimizasyon Yöntemi (Routine)

Eğitim verisini kullanarak optimizasyon kriterine çözüm bulan algoritma: - Kapali form çözüm (doğrusal regresyon) - Gradyan Inisi / SGD (lojistik regresyon, SVM, sinir aglari) - Acgozlu yaklasim (karar ağaçlari)

Önemli ayrinti: Bazi algoritmalar belirli bir kriteri acikca optimize eder (doğrusal regresyon, lojistik regresyon, SVM). Diger algoritmalar kriteri dolayli olarak optimize eder (karar ağaçi öğrenmesi, kNN). Karar ağaçi ve kNN, sezgiye dayali olarak deneysel bicimde icat edilmistir; optimizasyon kriterleri daha sonra bu algoritmalarin neden calistigini açıklamak için geliştirilmiştir.


4.2 Gradyan Inisi (Gradient Descent)

Gradyan Inisi, bir fonksiyonun minimumunu bulmak için kullanilan yinelemeli (iterative) bir optimizasyon algoritmasidir.

Temel Prensip

  1. Rasgele bir noktadan basla
  2. Fonksiyonun o noktadaki gradyaninin negatifine orantili adimlar at
  3. Gradyan inisi, fonksiyon azalan yone dogru ilerler
  4. Minimum noktaya yaklasildikca adimlar kuculur

Uygulama Alanlari

  • Doğrusal regresyon (kapali form çözümu de olsa gosterim amacli kullanilabilir)
  • Lojistik regresyon
  • SVM
  • Sinir aglari

Konveks fonksiyonlar (lojistik regresyon, SVM gibi) icin: Tek bir minimum vardir (global minimum). Gradyan inisi bu minimumu bulur.

Konveks olmayan fonksiyonlar (sinir aglari gibi) icin: Birden fazla yerel minimum olabilir, ancak pratikte yerel bir minimum bulmak bile yeterlidir.

Doğrusal Regresyon Ornegi ile Gosterim

Veri seti: 200 sirketin yillik radyo reklam harcamalari (M$) ve satis adetleri.

Model: f(x) = w*x + b

Ortalama karesel hata (MSE):

l = (1/N) * Toplam(i=1..N) (y_i - (w*x_i + b))^2

Kismi Turevlerin Hesaplanmasi

Gradyan inisi, her parametrenin kismi turevini hesaplayarak baslar:

w'ye gore kismi turev:

dl/dw = (1/N) * Toplam(i=1..N) -2*x_i * (y_i - (w*x_i + b))

b'ye gore kismi turev:

dl/db = (1/N) * Toplam(i=1..N) -2 * (y_i - (w*x_i + b))

Bu turevler zincir kurali kullanilarak elde edilir: - (y_i - (w*x + b))^2 ifadesinde f_1 = y_i - (w*x + b) ve f_2 = f_1^2 - f_2'nin f_1'e gore turevi: 2*(y_i - (w*x + b)) - f_1'in w'ye gore turevi: -x - Carpim: -2*x*(y_i - (w*x + b))

Parametre Guncelleme Kurali

Parametreler w ve b icin, başlangıç değerleri w_0 = 0 ve b_0 = 0 olarak atanir. Her eğitim örneği için guncelleme:

w_i <- alpha * (-2 * x_i * (y_i - (w_{i-1} * x_i + b_{i-1}))) / N
b_i <- alpha * (-2 * (y_i - (w_{i-1} * x_i + b_{i-1}))) / N

Burada alpha (öğrenme hizi / learning rate), guncellemenin büyüklugunu kontrol eder.

Epoch (Donem) Kavrami

Tum eğitim örnekleri üzerinden yapilan bir tam gecis bir epoch olarak adlandirilir.

  • Genellikle birden fazla epoch gerekir
  • w ve b değerleri fazla degismemeye basladiginda: durulur
  • Örnek: 15.000 epoch sonrasi kayip değerleri:
  • Epoch 0: kayip = 92.32
  • Epoch 400: kayip = 33.79
  • Epoch 800: kayip = 27.99
  • Epoch 3000: kayip = 19.08

Kayip her epoch'ta azalir ve regresyon cizgisi giderek veriye daha iyi uyar.

Python'da Gradyan Inisi Uygulamasi

Parametre guncelleme fonksiyonu (bir epoch): - Her eğitim örneği için dl/dw ve dl/db toplanir - Epoch sonunda w ve b guncellenir: w = w - (1/N) * dl_dw * alpha

Eğitim dongusu: - Belirli sayida epoch boyunca guncelleme fonksiyonu cagrilir - Periyodik olarak ortalama kayip hesaplanip yazdilir

Tahmin fonksiyonu: - Optimal w ve b bulunduktan sonra: tahmin = w * x_yeni + b - Örnek: x_yeni = 23.0 için tahmin sonuçu: 13.97


4.2.1 Öğrenme Hizi (Learning Rate) -- alpha

Öğrenme hizi (alpha), gradyan inisinin en kritik hiperparametresidir.

  • Cok büyük alpha: Adimlar cok büyük olur, minimum noktayi atlayabilir (iraksama)
  • Cok küçük alpha: Yakinlasma cok yavas olur, cok fazla epoch gerekir
  • Uygun alpha: Makul surede minimum noktaya yakinsama saglar

Gradyan Inisinin Iyilestirilmis Versiyonlari

Standart gradyan inisi büyük veri setleri için yavas olabilir. Önemli iyilestirmeler:

Stokastik Gradyan Inisi (Stochastic Gradient Descent -- SGD): - Gradyani, eğitim verisinin küçük alt kümeleri (mini-batch) kullanarak yaklasik olarak hesaplar - Hesaplama hizini önemli ölçüde arttirir - Her adimda tum veri seti yerine rastgele secilen bir parçası kullanılır

Adagrad: - Her parametre için alpha'yi gradyan gecmisine gore ölçekler - Büyük gradyanlar için alpha azaltilir, küçük gradyanlar için arttirilir - Her parametrenin farkli öğrenme hizi olmasi saglanir

Momentum: - SGD'yi ilgili yonde hizlandirarak salinimlari azaltir - Gradyanlarin hareketli ortalamasini kullanir - Fiziksel benzetme: Bir topun tepedan asagi yuvarlanmasi gibi ivme kazanir

RMSprop: - Sinir agi eğitiminde sik kullanılır - Her parametrenin gradyan karelerinin hareketli ortalamasini kullanarak öğrenme hizini adapte eder

Adam (Adaptive Moment Estimation): - Momentum ve RMSprop'un birlesimi - Sinir agi eğitiminde en sik kullanilan optimizer - Hem birinci moment (ortalama) hem ikinci moment (varyans) tahminlerini kullanir

Önemli Not: Gradyan inisi ve çeşitleri birer makine öğrenmesi algoritmasi degildir. Bunlar, gradyani olan fonksiyonlarin minimizasyonu için kullanilan cozuculerdir (solver).


4.3 Makine Öğrenmesi Muhendişleri Nasil Calisir?

Araştırma bilimcisi veya büyük AR-GE butceli bir sirket disinda calisiyorsaniz, genellikle MO algoritmalarini kendiniz uygulamazsiniz. Kutuphaneler (libraries) kullanirsiniz.

scikit-learn

En sik kullanilan acik kaynakli MO kutuphanesi. Python ve C ile yazilmistir.

Doğrusal regresyon örneği:

from sklearn.linear_model import LinearRegression
model = LinearRegression().fit(x, y)
y_new = model.predict(x_new)  # Sonuç: 13.97

Avantajlar: - LinearRegression'i baska bir algoritmayla degistirmek kolaydir - LogisticRegression, SVC (SVM), DecisionTreeClassifier, NearestNeighbors vb. ayni arayuzle kullanilabilir - Kod yapisini degistirmeden algoritma degisikli yapilabilir


4.4 Öğrenme Algoritmalarinin Özellikleri

Farkli öğrenme algoritmalari asagidaki özellikleriyle birbirinden ayrilir:

Hiperparametreler

Algoritma/Cozucu Hiperparametreler
SVM C (ceza katsayisi)
Karar Ağaçi (ID3) epsilon (min. entropi azalma), d (maks. derinlik)
Gradyan Inisi alpha (öğrenme hizi)

Kategorik vs. Sayisal Özellikler

  • Kategorik kabul edenler: Karar ağaçi algoritmasi ("kirmizi", "sari", "yesil" gibi değerleri doğrudan isleyebilir)
  • Yalnizca sayisal: SVM, lojistik regresyon, doğrusal regresyon, kNN (Oklid mesafesi veya kosinus benzerligi ile). scikit-learn'deki tum algoritmalar sayisal özellik bekler
  • Kategorik özellikleri sayisala donusturme yöntemleri Bölüm 5'te anlatilir

Sinif Agirliklandirma

Bazi algoritmalar (örneğin SVM) her sınıf için ağırlık tanimlamasina izin verir: - Yüksek ağırlıkli siniftaki örnekleri yanlis sınıflandırmaktan kacinir - Dengesiz veri setlerinde (bir sınıfın az örneği varken) özellikle faydalidir - Agirlik arttirmak, karar sinirini o sinifa daha hassas hale getirir

Cikti Turleri

Algoritma Cikti
SVM, kNN Yalnizca sınıf etiketi
Lojistik regresyon, karar ağaçi Sinif etiketi + 0-1 arasi skor (guven/olasılik)

SVM ve kNN için de sentetik skor oluşturma teknikleri mevcuttur.

Toplu vs. Yinelemeli Eğitim

Toplu eğitim (Batch): Modeli tum veri setiyle bir kerede oluşturur. Yeni veriler gelirse model sifirdan olusturulur. - Karar ağaçi, lojistik regresyon, SVM

Yinelemeli eğitim (Incremental/Online): Model, her seferinde bir parti (batch) veriyle guncellenir. Yeni veriler geldiginde model yalnizca yeni verilerle guncellenir. - Naive Bayes, cok katmanli algilayici (MLP), SGDClassifier/SGDRegressor, PassiveAggressiveClassifier/PassiveAggressiveRegressor

Sınıflandırma ve Regresyon Destegi

Algoritma Sınıflandırma Regresyon
Karar Ağaçi Evet Evet
SVM Evet Evet
kNN Evet Evet
Lojistik Regresyon Evet Hayir
Doğrusal Regresyon Hayir Evet

Kutuphane Dokumantasyonu

Her kutuphane (scikit-learn vb.) su bilgileri saglar: - Algoritmanin cozdugu problem turu - Kabul edilen girdi değerleri - Modelin urettigi çıktı turu - Hiperparametreler ve varsayilan değerleri


Ozet

Kavram Aciklama
Kayip Fonksiyonu Tek bir örnekteki hata olcusu
Maliyet Fonksiyonu Tum örnekler üzerindeki toplam/ortalama hata
Gradyan Inisi Gradyanin negatifine orantili adimlarla minimum arama
Öğrenme Hizi (alpha) Guncelleme adiminin büyüklugunu kontrol eden hiperparametre
Epoch Tum eğitim verisi üzerinden bir tam gecis
SGD Küçük alt kümelerle gradyan yaklasimi -- daha hizli
Adagrad Parametre basina adaptif öğrenme hizi
Momentum Gradyan yonunde ivme kazandirma
Adam Momentum + RMSprop bilesimi, en populer optimizer
scikit-learn En yaygin Python MO kutuphanesi
Toplu Eğitim Tum verilerle bir kerede model oluşturma
Yinelemeli Eğitim Verilerle parcali guncelleme

Lisans ve Atıf

Bu sayfa, Andriy Burkov tarafından yazılan "The Hundred-Page Machine Learning Book" kitabına dayalı notlar içermektedir.

MIT Lisansı gereği bu copyright bildirimi ve izin bildirimi, Yazılımın tüm kopyalarına veya önemli bölümlerine dahil edilmelidir.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. Bu içerik eğitim amaçlıdır ve orijinal eserin yerine geçmez. Tam kitap için themlbook.com adresini ziyaret edin.