Skip to content

Course Philosophy: Math → Manual Code → Library → Benchmark → Production

Why is this course different from a typical 'Coursera style'? We approach every topic in 5 stages: (1) Pen-and-paper math, (2) From-scratch NumPy, (3) Production-style library, (4) Benchmark on the same dataset, (5) 'Production gotcha' note. Why does this order give 3x deeper learning?

Şükrü Yusuf KAYA
18 min read
Beginner
Kurs Felsefesi: Matematik → Manuel Kod → Kütüphane → Benchmark → Üretim
🤔 Klasik kursların derdi
Bir mühendis arkadaşımla konuşuyorum. 'Andrew Ng'nin Coursera ML kursunu, sonra Fastbook'u bitirdim, sonra ChatGPT ile recommender önerisi yapmaya başladım — ama hala paper'larda kayboluyorum.' Tanıdık geldi mi? Sebep basit: o kurslar çalışan kod verir ama çalışan zihinsel model vermez.

Bu Kursun 5 Aşamalı Felsefesi#

Her teknik konuyu her modülde şu sırayla işleyeceğiz:

1️⃣ Kağıt-Kalem Matematik#

Formülü yazıyoruz. Türetiyoruz. Niçin böyle olduğunu anlıyoruz.
Örnek (Modül 6'dan): Funk SVD'de
min Σ(r_ui - p_u · q_i)²
neden chain rule ile
∂L/∂p_u = -2(r_ui - p_u·q_i) q_i
veriyor?

2️⃣ Saf NumPy ile Sıfırdan Implementation#

Aynı formülü 30-50 satır NumPy ile yazıyoruz. Kütüphane yok. Hile yok. Her şey görünür.
Örnek (Modül 6'dan): Funk SVD'yi NumPy ile yazıp MovieLens-100K'da 0.94 RMSE almak.

3️⃣ Üretim-Kalitesinde Kütüphane Kullanımı#

Sonra kütüphaneye geçiyoruz —
implicit
,
lightfm
,
surprise
,
pytorch
,
tensorflow-recommenders
. Çünkü production'da kütüphane kullanırsın.
Örnek (Modül 6'dan): Aynı problemi
implicit
kütüphanesi ile yapıp 30x daha hızlı çalıştırmak.

4️⃣ Benchmark — Aynı Veri Üstünde Karşılaştırma#

Tüm yöntemler aynı dataset, aynı metrik, aynı protokol ile karşılaştırılıyor. "Hangisi gerçekten daha iyi?" sorusu net bir tabloyla bitiyor.
Örnek (Modül 7 sonu): MovieLens-1M üstünde k-NN, Funk SVD, BiasedMF, ALS, BPR ve LightFM'in NDCG@10, HR@10, Recall@20 karşılaştırma tablosu.

5️⃣ Production Gotcha Notu#

Her dersin sonunda "Üretimde Hatırla:" kısmı: bu yöntem production'da hangi sorunu çıkarır, ne tetikler, hangi monitoring eklenir.
Örnek (Modül 6 sonu): "Production gotcha — BiasedMF eğitiminden 1 hafta sonra cold-start item'ların yayılması, popularity bias'ın ekranı domine etmesi. Çözüm: re-ranking layer'da popularity penalty."
5 aşamalı öğrenme felsefesi: matematik, manuel kod, kütüphane, benchmark, üretim notu — her modülde tekrar.
Her modülün omurgası — 5 aşama, tekrar tekrar, derinleşerek.

Neden Bu Sıra? 3x Daha Derin Öğrenme#

Sebep 1: Matematik Olmadan Kod Karadelik Olur#

model.fit(X, y)
çağırıyorsun — model bir şey yapıyor — bir sayı çıkıyor. Bu hangi makinenin nasıl döndüğü hakkında zihninizde hiçbir model yoktur. Bir sonraki problem geldiğinde tahmin etmen gereken her şey körlemesine olur.
Matematik aslında bir görüş aparatı. Bir formülü türetebiliyorsan, kütüphanenin kapağını açıp niye bir parametrenin orada olduğunu görebilirsin.

Sebep 2: Sıfırdan Implementation, Soruları Görmeyi Öğretir#

Kütüphane sana cevap verir. Sıfırdan implementation sana soru öğretir.
"BPR loss'unu yazarken sigmoid'in argümanı neden sıfırın etrafında olmalı?" — Bu soruyu sormak için bir kez kendin yazmış olman gerekir. Yoksa formülü "bilmek" sadece okumaktır.
Sıfırdan implementation sayesinde:
  • Numerik stability sorunlarına burnunu sokarsın. (Log-sum-exp trick öğrenmen 3 saatten 30 saniyeye iner.)
  • Memory allocation patternlerini görürsün. (Sparse vs dense karar verme refleksi gelir.)
  • Vectorization alışkanlığı kazanırsın.

Sebep 3: Kütüphane Olmadan Production'a Çıkamazsın#

Manuel kod öğretici, kütüphane üretkenlik. İkisini bilmeden kariyer kurulmaz.
Bu kursta her teknik konunun iki versiyonunu öğrenirsin: didaktik (sıfırdan), pragmatik (kütüphane). İşe alındığında pragmatik versiyonla çalışacaksın — ama didaktik versiyonu bilmen, kütüphanenin niçin bir hatayı verdiğini çözmene yarar.

Sebep 4: Benchmark, Bullshit Detector Verir#

Internette her makale "yöntemim her şeyden iyi" der. Gerçek hayatta — değildir. Aynı dataset üzerinde, aynı metrikle, aynı protokolle karşılaştırma yaptığında görürsün.
Dacrema et al. 2019'un "Are We Really Making Much Progress?" paper'ı son 10 yılın önemli silkelemelerinden biri — birçok yeni neural recommender, eski iyi tuned k-NN'den iyi değildi. Bu silkelemeyi sen de yaşamalısın.

Sebep 5: Üretim Notu, Mühendis Olmanı Tamamlar#

"Çalışıyor" ile "production-ready" arasında 100 km var. Kursumun her dersinin sonundaki gotcha bölümü o 100 km'nin bir kısmını size hediye eder.
🎯 Somut bir örnek: Modül 6 nasıl işlenecek?
Konu: Funk SVD. 1) Andrew Ng tarzı: Türev, gradient güncellemesi (~30 dk). 2) NumPy: 40 satır kod, MovieLens-100K, 10 epoch, 0.94 RMSE (~45 dk). 3)
implicit
: aynı problem 5 satırda, 30x hızlı (~15 dk). 4) Benchmark: k-NN baseline (Modül 5'ten) ile karşılaştırma — Funk SVD %12 daha iyi (~20 dk). 5) Gotcha: 'Funk SVD bias çıkarmadan çalışır — production'da popüler item dominasyonu sorun yaratır. Modül 6.3'te BiasedMF ile çözeceğiz.' (~5 dk). Toplam: ~2 saat. Sonunda sen sadece 'eğittin' demezsin — kavramışsındır.

Bu Kursun Yapmadığı Şeyler#

Aynı net olalım — bu kurs bazı şeyleri yapmaz:
  • Slide-bazlı, sadece teorik anlatım yapmaz. Her teorinin altında çalışan kod vardır.
  • Sadece kütüphane "tutorial'ı" yapmaz. Çoğu kurs "scikit-surprise'a girdiniz buyrun" der; sen kavramı bilmeden kütüphaneyle çalışırsın. Biz tam tersi.
  • "AutoML butonu bas, bitti" demez. AutoML harika bir araç ama mühendislik yetkinliğini ikame edemez.
  • GPT'ye sorup geçilen "shortcut" demez. GPT senin yardımcın, ama temelin değil. Bu kursu bitirdiğinde GPT'ye iyi soru sormayı öğrenirsin — bu cevap almaktan daha değerlidir.

Sen ne taahhüt etmelisin?#

Bu kurs ücretsiz — ama bedava değil. Senin bedeli zaman ve odak:
  • Haftalık taahhüt: Realistik olarak 5-8 saat/hafta. Daha hızlı gidersen geçer ama derin kazanmaz.
  • Aktif çalışma: Her dersin notebook'unu açıp kodu kendi makinende çalıştır, varsayılan parametrelerle yetinme — değiştir, kır, gör.
  • Sorularını yaz: Anlamadığın yerleri bir kenara not al. Bu kursun discord/forum bağlantısı var; takıldığın yerleri sor. (Cevap verilir.)
  • Sabır: Modül 6 (MF), Modül 10 (SASRec), Modül 14 (DCN-v2) ve Modül 25 (Capstone) — bunlar zor modüller. 2-3 gün takılırsan normal.
Hazır mısın? Bir sonraki derste atölyeyi kuruyoruz — Python 3.12, uv, PyTorch, FAISS, Polars, Jupyter Lab. 🛠️

Frequently Asked Questions

Gerçek karşılaştırma: 5 aşamalı = 2-3 saat **derin kavrayış + 6 ay sonra hatırlamak**. Klasik (sadece kütüphane çağırma) = 30 dk **yüzeysel + 1 hafta sonra unutmak**. Pratik testle: 6 ay sonra paper okuduğunda hangisinde matrix factorization'ın gradient'ini hatırlayacak olduğun farkı görürsün. Üstelik bu kurs sonunda toplam saat (~75) — gerçekçi bir mühendislik bootcamp'inden hızlıdır.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

Related Content