Sıfırdan Sinir Ağları — Karpathy Neural Networks: Zero to Hero’dan
ML Builder için Türkçe Notlar
1 Bu kitap nedir?
Bu, Andrej Karpathy — Neural Networks: Zero to Hero ders serisinin Türkçe ders notlarıdır. Hedef, videoları izlerken paralel okunabilecek; sonradan tek başına da yeterli olabilecek bir referans seti üretmek.
Serinin tek bir iddiası var ve her ders onu biraz daha somutlaştırır: bir sinir ağı sihir değildir. Boş bir Jupyter notebook’tan başlayıp, GPT ölçeğine kadar, her parçayı kendi elinle kurarsın. Karpathy’nin sözüyle: “micrograd is what you need to train your networks, and everything else is just efficiency.” Yani bir ağı eğiten matematiğin tamamı yaklaşık 100 satırlık bir motorda; gerisi — tensörler, GPU, milyar parametre — yalnızca verimliliktir.
Her bölüm bir Builder Notu katmanı taşır: kavramın hem geriye (calculus zincir kuralı, lineer cebir dot product, olasılık) hem de ileriye (PyTorch, GPU, üretim) köprüsü. micrograd’ın backward()’ı PyTorch autograd’ın skaler prototipidir; Neuron / Layer / MLP API’si torch.nn.Module ile birebir hizalanır. Bu seriyi “tek başına ML teorisi” olarak değil, kendi elinle kurarak öğrenme disipliniyle okuyoruz: yeniden kur, sonra kullan.
- Seri: Neural Networks: Zero to Hero (YouTube playlist) — Andrej Karpathy
- Yazar: Andrej Karpathy — eski Tesla AI direktörü, OpenAI kurucu ekibi
- Ders 1 repo: github.com/karpathy/micrograd
- Ders depoları: github.com/karpathy/nn-zero-to-hero
- Çeviri ve genişletme: Phase 2 (TR + ML Builder köprüleri)
2 Nasıl Okumalı
Sıralı oku. Seri kümülatiftir — her ders bir öncekinin kurduğu motoru ve dili kullanır. micrograd (Ders 1) bütün serinin temelidir; makemore dersleri (2-6) dil modellemeyi sıfırdan kurar; sonraki dersler GPT’ye kadar tırmanır.
Karpathy’nin önerdiği akış: önce videoyu izle, sonra ilgili dersi oku, en sonunda kodu kendin yaz. Bu set videoyu destekler, ikame etmez.
Her bölüm sonundaki egzersizleri atlama. Karpathy’nin felsefesi tek cümle: kütüphaneyi kapağı açıkken gör. Value sınıfını sıfırdan yaz, gradient check yap, küçük bir MLP’yi elle eğit. Aynı forward → backward → update döngüsünü ileride PyTorch’ta yıllarca farklı kılıklarda yazacaksın; bir kez sıfırdan kurmak onu kara kutu olmaktan çıkarır.
3 10 Ders
Seri micrograd’dan başlayıp GPT’ye doğru tırmanır: önce autograd motoru, sonra karakter-düzeyli dil modelleri (makemore), en sonunda transformer.
| # | Ders | Ana Fikir |
|---|---|---|
| 1 | micrograd | Sıfırdan autograd ve geri yayılım (≈100 satır) |
| 2 | makemore 1 — Bigram | Karakter dil modeli; sayım + tek katmanlı ağ |
| 3 | makemore 2 — MLP | Bengio 2003; gömü (embedding) + gizli katman |
| 4 | makemore 3 — BatchNorm | Aktivasyon/gradyan istatistikleri; başlatma |
| 5 | makemore 4 — Backprop Ninja | Backprop’u elle, tensör düzeyinde türetmek |
| 6 | makemore 5 — WaveNet | Hiyerarşik (dilated) konvolüsyon; derinleşme |
| 7 | GPT’yi sıfırdan kur | Self-attention + transformer (nanoGPT) |
| 8 | Tokenizer (BPE) | GPT’nin byte-pair encoding tokenizer’ı |
| 9 | reproducing GPT-2 | GPT-2’yi (124M) sıfırdan yeniden üretmek |
| 10 | LLM’ler — genel bakış | Pretraining → finetuning → RLHF büyük resim |
Not: Phase 2 pilotu Ders 1 (micrograd) ile başlar. Dersler 2-10 aynı şablonla eklenecektir.
4 Notasyon
- Skaler değer kutusu:
Value(data)— micrograd’ın temel yapı taşı - Gradyan: \(\partial L / \partial x\) — \(x\)’in çıktı \(L\)’ye etkisi (kısmi türev)
- Yerel türev: bir düğümün çıkışının girişine göre türevi (toplama \(\to 1\), çarpma \(\to\) diğer operand, \(\tanh \to 1 - o^2\))
- Zincir kuralı: \(\dfrac{dz}{dx} = \dfrac{dz}{dy} \cdot \dfrac{dy}{dx}\) — backprop’un tek aracı
- Nöron: \(o = \tanh(\mathbf{w}\cdot\mathbf{x} + b)\) — dot product + bias + aktivasyon
- MSE kaybı: \(L = \sum_i (y_i^{\text{pred}} - y_i^{\text{gt}})^2\)
- Güncelleme: \(p \leftarrow p - \eta \, \dfrac{\partial L}{\partial p}\) — gradyanın tersine adım (\(\eta\) = learning rate)
Tüm matematik MathJax 3 ile render ediliyor.
5 Builder Eksen — micrograd → Üretim
| micrograd kavramı | Üretim karşılığı |
|---|---|
Value + backward() |
torch.Tensor + loss.backward() (autograd) |
İfade grafiği (_prev, _op) |
PyTorch computation graph (grad_fn) |
İşleme gömülü _backward |
torch.autograd.Function (forward/backward çifti) |
| Topolojik sıralama | reverse-mode autodiff |
Neuron / Layer / MLP + parameters() |
torch.nn.Module, model.parameters() |
| \(\mathbf{w}\cdot\mathbf{x} + b\) (dot product + bias) | nn.Linear; donanımda GEMM (GPU/TPU) |
| backprop = zincir kuralı | Calculus zincir kuralı (geriye köprü) |
zero_grad + gradyan biriktirme (+=) |
optimizer.zero_grad() (“unutursan bug”) |
| “Gerisi sadece verimlilik” | skalerden tensöre, oradan GPT ölçeğine |
Bir sinir ağını eğitmek tek bir döngüye iner: bir ifade grafiğinde ileri geçişle loss’u hesapla, zincir kuralını geriye uygula (backprop) ve her parametrenin gradyanını bul, sonra gradyanın tersine küçük bir adım at. micrograd bu çekirdeği 100 satırda gösterir; GPT yalnızca aynı şeyi devasa ölçekte tekrarlar.
6 Yazım Kuralları
- Türkçe terminoloji + parantez içinde İngilizce orijinal ilk geçtiğinde: “otomatik gradyan (autograd)”, “ifade grafiği (expression graph)”, “geri yayılım (backpropagation)”.
- Karpathy’den alıntılar İngilizce orijinal hâliyle, blockquote içinde, zaman damgasıyla verilir.
- Builder Notu callout’ları her ana bölüm sonunda; ML köprüsünü (geriye + ileriye) buraya yazıyoruz.
- Öğretim kodu (Karpathy’nin notebook’ta yazdığı
Value,_backward, training loop) görünürpythonbloklarında; figürler ise tam motoru kullanan executable hücrelerdir (echo:true— kaynak figürle birlikte görünür). - Kontrol Soruları collapse’lu — cevap kapalı başlar, okur kendi düşündükten sonra açar.
- Egzersizler cevapsız — en az bir Python/elle-türetme egzersizi.
Tek başına bu set yetmez — Karpathy’nin satır satır canlı kodlama anlatımının ve sezgisinin yerine geçemez. Önce videoyu izle, sonra ilgili dersi oku, son olarak kodu kendin yaz. Set videoyu destekler, ikame etmez.