10  Sparse Coding, Dünya Modelleri ve GAN

İki hocalı hafta — EBM serisinin üçüncü ve son dersi. Yann LeCun (Lecture) Hafta 7-8’i birleştiren güçlü bir ilke verir: non-contrastive (mimari) yöntemlerin ortak özü, latent değişkenin bilgi kapasitesini azaltarak düşük-enerji uzayının hacmini sınırlamaktır — bottleneck (Hafta 7), VAE’de gürültü/varyans (Hafta 8) ve sparse coding (bu hafta) hepsi aynı amaca hizmet eder. Ardından sparse coding’i, group/structural sparsity’yi ve araştırma programının kalbi olan dünya modellerini (belirsiz geleceği öngören latent-variable EBM) anlatır. Alfredo Canziani (Practicum) ise GAN’ı (üretken çekişmeli ağ) gösterir ve onu dersin omurgasıyla tutarlı biçimde bir EBM olarak çerçeveler: generator latent gürültüden sahte örnek üretir, cost network (enerji ağı) gerçeğe düşük, sahteye yüksek enerji verir; generator negatifleri öğrenerek üretir — yani GAN, akıllı/adaptif negatif üreteçli contrastive bir EBM’dir.

NotBölüm bilgisi

10.1 Bu Derste Ne Var?

Bu hafta EBM serisinin üçüncü ve son dersi. Yann LeCun Hafta 7-8’i birleştiren bir ilke veriyor (non-contrastive yöntemlerin ortak özü: düşük-enerji uzayının hacmini sınırlamak), sparse coding’i ve dünya modellerini (world models) anlatıyor. Alfredo Canziani ise GAN’ı (üretken çekişmeli ağ) gösteriyor — ve onu, dersin omurgasıyla tutarlı biçimde, bir EBM olarak çerçeveliyor.

Uyarı⚠️ Terminoloji notu (NYU sinyatürü)

Canziani GAN’daki “discriminator” terimini kullanmıyor; LeCun’u izleyerek ona cost network (maliyet/enerji ağı) diyor. Yani GAN, dersin EBM diline çevrilmiş: cost = enerji, generator negatifleri üretir.

Bu haftanın üç ana fikri:

  1. Non-contrastive yöntemler tek ilkede birleşir: düşük-enerji bölgesinin hacmini sınırla. Sparsity, gürültü ekleme (VAE), bottleneck — hepsi aynı amaca hizmet eder.
  2. Dünya modeli (world model): geleceği belirsizlik altında öngören bir EBM; LeCun’un araştırma programının kalbi.
  3. GAN = contrastive EBM: generator sahte örnekler (negatifler) üretir; cost network gerçeğe düşük, sahteye yüksek enerji verir; generator cost’u düşürerek (kandırarak) öğrenir.

flowchart TB
    EBM["EBM serisi 3/3 = enerji şekillendirme<br/>(Hafta 7 çerçeve → Hafta 8 yöntem → Hafta 9 birleşim)"]

    subgraph A["(A) Non-contrastive birleştirici ilke"]
        direction TB
        Kapasite["Kapasiteyi azalt<br/>→ düşük-enerji HACMİNİ sınırla"]
        Bottleneck["Bottleneck (Hafta 7)<br/>darboğaz"]
        VAE["VAE / gürültü (Hafta 8)<br/>varyans kısıtı"]
        Sparsity["Sparsity / L1 (Hafta 9)<br/>az aktif birim"]
        Kapasite --> Bottleneck
        Kapasite --> VAE
        Kapasite --> Sparsity
    end

    subgraph B["(B) Dünya modeli = latent EBM"]
        direction TB
        Belirsiz["Belirsiz gelecek<br/>(bir duruma çok sonraki)"]
        CokluMin["Çoklu minimum enerji<br/>(latent z belirsizliği yakalar)"]
        Belirsiz --> CokluMin
    end

    subgraph C["(C) GAN = contrastive EBM"]
        direction TB
        Generator["Generator<br/>(latent → sahte x̂)"]
        Cost["Cost network = enerji ağı<br/>(gerçeğe düşük / sahteye yüksek)"]
        Cekisme["Çekişme (min-max)<br/>generator cost'u düşürür"]
        OgrNeg["Öğrenilen negatif<br/>(adaptif, elle değil)"]
        Generator --> Cost
        Cost --> Cekisme
        Cekisme --> OgrNeg
    end

    EBM --> Kapasite
    EBM --> Belirsiz
    EBM --> Generator

İpucuBuilder Notu — EBM Serisi Tek Çatıda Kapanır

Geriye (önkoşul kurslar):

  • Düşük-enerji hacmini sınırla → Hafta 7 bottleneck + Hafta 8 VAE/gürültü + bu hafta sparsity (üçü aynı ilke).
  • Sparse coding (L1) → 18.06 (seyrek temsil) + Stat 110 (Laplace prior).
  • GAN = cost/enerji + generator → Hafta 7 EBM + Hafta 8 contrastive (generator = öğrenilen negatif üretici).

İleriye (production / research):

  • World model → LeCun’un JEPA programı (post-2020 ileriye köprü); model-based RL, planning.
  • GAN → CycleGAN, StyleGAN; ve diffusion (modern üretken modeller).

Tek cümleyle: Non-contrastive EBM yöntemleri (sparsity, VAE, bottleneck) düşük-enerji uzayının hacmini sınırlayarak çalışır; GAN ise contrastive bir EBM’dir — generator negatifleri öğrenerek üretir, cost network onları yukarı iter.

10.2 (LeCun) EBM Serisi 3/3 ve Birleştirici İlke

LeCun dersi “EBM’nin üçüncü parçası” diye açıyor (sparse coding, GAN’a kısa giriş, world models).

“this is the third part of the lecture on energy based models… sparse coding… GANs very briefly… learning world models.” — LeCun, 0:00

Önce Hafta 7-8’i birleştiren güçlü bir ilke veriyor. Hatırla: contrastive yöntemler negatifte enerji yukarı basar; non-contrastive yöntemler yapıyla kısıtlar. LeCun şimdi non-contrastive ailenin ortak özünü söylüyor: latent değişkenin (code) bilgi kapasitesini azaltırsan, düşük enerji alabilen uzayın hacmini azaltırsın.

“if you reduce the information capacity of the latent variable… as a consequence you also minimize the volume of space that can take low energy.” — LeCun, 16:00

Bu yüzden bottleneck (Hafta 7), VAE’de gürültü/varyans (Hafta 8) ve sparsity (bu hafta) aynı şeyi yapar: düşük-enerji hacmini sınırlar. Veriye düşük enerji verirsen, kapasite sınırlı olduğu için gerisi otomatik yükselir — negatif örnek üretmeden. Şekil 10.1 bu birleştirici ilkeyi şematize ediyor: üç yöntem (bottleneck, VAE-gürültü, sparsity) tek bir oka iner (“düşük-enerji hacmini sınırla”), ve sağdaki küçük görsel sezgiyi pekiştirir — yüksek kapasite geniş bir düşük-enerji bölgesi (kötü), düşük kapasite veriye sıkıca oturan dar bir bölge (iyi) bırakır.

Şekil 10.1: Hafta 9 Bölüm 1 — Enerji-tabanlı öğrenmenin birleştirici (non-contrastive) ilkesi. Üç farklı yöntem — darboğaz/autoencoder (Hafta 7), gürültü + KL ile VAE (Hafta 8) ve seyreklik/L1 sparse coding (Hafta 9) — tek bir ilkeye iner: düşük-enerji uzayının HACMİNİ sınırlamak, yani model kapasitesini azaltarak enerji manzarasını şekillendirmek. Üçü de negatif (sahte) örnek üretmeden çalışır. Sağdaki küçük görsel sezgiyi pekiştirir: yüksek kapasite geniş bir düşük-enerji bölgesi (kötü, her şeye düşük enerji verir) yaratırken, düşük kapasite veriye sıkıca oturan dar bir bölge (iyi) bırakır.
İpucuBuilder Notu — Kapasite = Hacim

Geriye (Hafta 7-8): Bu, Hafta 7 (bottleneck) + Hafta 8 (VAE gürültü) + bu hafta (sparsity) üçlüsünü tek cümlede birleştirir: “düşük-enerji hacmini sınırla”. Kapasite kısıtı = düzenlileştirme (Hafta 1 regularization).

İleriye: “Kapasiteyi sınırla → düşük-enerji hacmini sınırla” ilkesi, modern non-contrastive SSL’in (VICReg’in covariance terimi, post-2020) teorik temelidir.

10.3 (LeCun) Sparse Coding ve Group/Structural Sparsity

Sparse coding: bir girdiyi, az sayıda aktif birimle (seyrek code) temsil et. Bir L1 düzenlileştirici, code’un çoğu bileşenini sıfıra iter — yalnızca birkaçı aktif kalır. Bu, kapasiteyi sınırlamanın (Bölüm 1) bir yoludur.

LeCun bunu group sparsity ve structural sparsity ile genişletiyor: birimleri gruplar (örn. 2B topolojide 16×16 matris, ya da bir graf/ağaç) hâlinde düzenle; düzenlileştirici en az sayıda grubu açık tutmaya çalışır.

“[the sparsity regularizer] tends to turn off the maximum number of groups… the system [imposes] sparsity on groups.” — LeCun, 8:01

Gruplar 2B topolojide organize edilirse, yan yana birimler birlikte aktif olur — bu, complex cell’lere (Hafta 3) benzer bir yapı öğrenir. Şekil 10.2 aynı temsili yoğun (24 birimin hepsi aktif) ve seyrek (yalnızca 5 birim aktif) biçimde gösteriyor: L1 düzenlileştirme aktivasyonların çoğunu sıfıra iter, kapasiteyi — yani düşük-enerji hacmini — sınırlar.

Şekil 10.2: Sparse coding: aynı temsil yoğun (solda, 24 birimin hepsi aktif) ve seyrek (sağda, yalnızca 5 birim aktif) biçimde. L1 düzenlileştirme aktivasyonların çoğunu sıfıra iter; az sayıda aktif birim modelin kapasitesini — yani düşük-enerji hacmini — sınırlar (EBM bakışı). Group sparsity en az grubu açık tutarak yapılı bir seyreklik dayatır.
İpucuBuilder Notu — Sparse = Az Aktif

Geriye (18.06 + Stat 110 + Hafta 3): Seyrek temsil = az sayıda baz vektörle ifade (18.06); L1 düzenlileştirme = Laplace prior (Stat 110). Group sparsity’nin öğrendiği topoloji, Hafta 3’ün complex cell organizasyonunu andırır.

İleriye: Sparsity, yorumlanabilir temsil (interpretable features) ve verimli (seyrek) ağların temelidir; mixture-of-experts’in (seyrek aktivasyon) uzak akrabası.

10.4 (LeCun) Dünya Modelleri (World Models)

LeCun araştırma programının kalbine değiniyor: dünya modelleri. Bir dünya modeli, mevcut durumdan ve eylemden geleceği öngörür — ama gelecek belirsizdir (bir duruma birçok olası sonraki durum). Bu yüzden dünya modeli doğal olarak bir EBM’dir: olası gelecek durumlara düşük enerji, olanaksızlara yüksek enerji verir; belirsizliği latent değişkenlerle modeller.

Bu, Hafta 7’nin latent-variable EBM’sinin zaman/öngörü hâlidir: y (gelecek) belirsizdir, z (latent) belirsizliği yakalar. Tahminin belirsizliğini bir enerji manzarasıyla temsil etmek, tek-çıktılı bir öngörücünün yapamadığı şeydir (bulanık ortalama yerine olası gelecekler). Şekil 10.3 bu farkı bir enerji manzarasında gösteriyor: çoklu yerel minimum (gold yıldızlar) olası gelecekleri, violet X ise tek-çıktı öngörücünün ürettiği — hiçbir gerçek geleceğe karşılık gelmeyen — bulanık ortalamayı temsil eder.

Şekil 10.3: Dünya modeli, belirsiz geleceği latent enerji-tabanlı modelle yakalar: mevcut bir durumdan birden çok olası sonraki durum bulunduğu için enerji manzarasının çoklu yerel minimumu (gold yıldızlar) vardır. Tek-çıktı veren öngörücü tüm bu olasılıkların ortalamasını alır (violet X) ve hiçbir gerçek geleceğe karşılık gelmeyen, manifold dışı bulanık bir tahmin üretir. Latent değişken z bu belirsizliği temsil ederek modelin tek bir bulanık ortalama yerine ayrık geçerli gelecekleri ayırt etmesini sağlar.
İpucuBuilder Notu — Dünya Modeli = Latent EBM

Geriye (Hafta 7 + 6): Dünya modeli = latent-variable EBM (Hafta 7) + dizi/öngörü (Hafta 6); belirsiz gelecek = enerji fonksiyonunun birden çok minimumu.

İleriye: World model, LeCun’un bugünkü JEPA programının (post-2020 ileriye köprü) ve model-based RL / planning’in merkezidir — cevabı üretmek yerine enerji üzerinden planla.

10.5 Geçiş: LeCun’dan Canziani’ye

LeCun non-contrastive ilkeyi (düşük-enerji hacmini sınırla), sparse coding’i ve world model’leri kurdu — ve GAN’a kısaca değindi (“yarın Alfredo’dan daha çok duyacaksınız”). Şimdi Canziani GAN’ı açıyor. Kritik olan: Canziani GAN’ı sıfırdan EBM diliyle anlatıyor — “discriminator” yerine cost network (enerji ağı) diyor. Böylece GAN, Hafta 7-8’in enerji çerçevesine tam oturuyor: generator negatifleri üretir, cost network enerjiyi şekillendirir.

10.6 (Canziani) GAN: Generator + Cost Network (= Enerji)

Canziani GAN’ı iki parçayla kuruyor. Bir generator, bir latent z (Gaussian örneği) alıp sahte bir örnek \(\hat{x}\) üretir. Bir cost network (klasik adıyla discriminator — ama Canziani/LeCun bunu yanlış bulup “cost network” der) her girdiye bir maliyet (enerji) atar.

“in the classical formulation of a GAN we have a discriminator — [but] discriminators are just plain wrong, at least following Yann… we have this cost network.” — Canziani, 2:37

Cost network gerçek (pembe) örneklere düşük maliyet, sahte (mavi, generator’dan gelen \(\hat{x}\)) örneklere yüksek maliyet verir. Yani cost = enerji: gerçek veride düşük, sahtede yüksek — tam Hafta 7’nin EBM şekli. Şekil 10.4 bu mimariyi gösteriyor: latent gürültü z (gold bulut) generator’dan geçip sahte \(\hat{x}\) üretir; hem gerçek x hem sahte \(\hat{x}\) cost network’e girer ve ağ gerçeğe düşük, sahteye yüksek enerji atar.

Şekil 10.4: GAN mimarisi: latent gürültü z (Gauss bulutu) generator’dan geçerek sahte x̂ üretir; hem gerçek x hem sahte x̂ cost network’e (enerji ağı F) girer. Ağ gerçeğe DÜŞÜK, sahteye YÜKSEK enerji atar — bu, Hafta 7’deki EBM enerji şeklinin ta kendisidir. NYU/LeCun dilinde bu modül ‘discriminator’ değil ‘cost network’ olarak adlandırılır.
İpucuBuilder Notu — Cost Network ≠ Discriminator

Geriye (Hafta 7): Cost network = enerji fonksiyonu (LeCun’un diyagramında “cost” karesi, skaler çıktı); gerçeğe düşük, sahteye yüksek = Hafta 7’nin “veride düşük, dışında yüksek” şekli.

İleriye: GAN’ın “cost network” çerçevesi, EBM-tabanlı üretken modellere ve modern critic/reward modellerine (RLHF) köprüdür.

10.7 (Canziani) GAN Eğitimi: Çekişme (Generator Kandırır)

GAN eğitimi bir çekişmedir (adversarial): iki ağ birbirine karşı oynar.

  • Cost network öğrenir: gerçek örneklere düşük, sahtelere yüksek maliyet ver (enerjiyi doğru şekle sok).
  • Generator öğrenir: cost network’ün düşük maliyet vereceği örnekler üret — yani onu kandır, sahtelerini “gerçek gibi” göster.

“the cost network will be trained to have low cost for inputs that are [real] and high cost for inputs that are [fake]… [the generator] is going to be enforced to have a low cost [for its outputs].” — Canziani, 5:23 / 7:18

Bu min-max dansı: generator cost’u düşürmeye, cost network sahteyi yukarı itmeye çalışır. Dengede generator, gerçeğe çok benzeyen örnekler üretir. Klasik GAN amacı, Hafta 1-2’nin cross-entropy’siyle (gerçek/sahte ikili sınıflandırma) yazılır. Şekil 10.5 bu çekişmeyi gösteriyor: solda eğitim başında sahte örnekler (gold) dağınık bir buluttur, sağda eğitim sonunda gerçek veri manifolduna (violet halka) yakınsar.

Şekil 10.5: GAN çekişmesi (min-max): solda eğitim başında generator’ın ürettiği sahte örnekler (gold) dağınık bir buluttur ve gerçek veri manifoldundan (violet birim halka) uzaktır; sağda eğitim sonunda sahte örnekler halkaya yakınsar (sahte ≈ gerçek). Generator maliyeti düşürmeye (cost ağını kandırmaya), cost ağı ise sahteyi yukarı itmeye çalışır; denge bu iki kuvvetin eşitlendiği noktadır.
İpucuBuilder Notu — Min-Max Çekişme

Geriye (Hafta 1-2): Cost network’ün gerçek/sahte ayrımı = Hafta 1 cross-entropy (Bernoulli/ikili sınıflandırma); min-max = Calculus eyer noktası (saddle point).

İleriye: GAN eğitimi kararsızdır (mode collapse, dengesizlik); WGAN, spectral normalization gibi teknikler bunu yumuşatır.

10.8 (Canziani) GAN = Contrastive EBM

İşte dersin birleştirici fikri: GAN, bir contrastive EBM’dir. Hafta 8’de contrastive yöntemlerin negatif örnek ürettiğini görmüştük — ama oradaki negatifler elle (augmentation/rastgele) üretiliyordu. GAN’da generator, negatifleri öğrenerek üretir: cost network’ün en çok kandığı (en düşük enerjili sahte) örnekleri arar. Yani GAN = “akıllı negatif üreteçli” contrastive EBM.

Cost network gerçeğe düşük enerji (push down), generator’ın sahtelerine yüksek enerji (push up) verir — Hafta 8’in push-down/push-up’ı, ama negatifler artık sabit değil, rakip bir ağ tarafından adaptif üretiliyor. Bu, GAN’ı dersin EBM omurgasına tam oturtur. Şekil 10.6 bunu enerji eğrisi üzerinde gösteriyor: gerçek veri noktalarında çukur (violet, push-down), generator’ın sahtelerinde tepe (gold, push-up); kesikli yatay oklar ise generator’ın öğrenerek sahteleri çukurlara doğru taşıdığını (adaptif negatif) vurgular.

Şekil 10.6: GAN, kontrastif bir enerji modeli (EBM) olarak. Enerji eğrisi F(y) gerçek veri noktalarında çukur (violet noktalar, aşağı oklar = push-down), generator’ın ürettiği sahte noktalarda tepe yapar (gold elmaslar, yukarı oklar = push-up). Kesikli yatay oklar adaptifliği gösterir: Hafta 8’deki sabit/elle negatiflerin aksine generator, sahteleri öğrenerek çukurlara doğru taşır (akıllı/adaptif negatif).
İpucuBuilder Notu — GAN = Öğrenilen Negatif

Geriye (Hafta 8): GAN = contrastive EBM (push down gerçek, push up sahte); fark, negatiflerin öğrenilen bir generator’dan gelmesi. Hafta 8 contrastive + Hafta 7 enerji = GAN.

İleriye: “Öğrenilen negatif üreteci” fikri, modern üretken modellerin ve adversarial eğitimden RLHF reward-model’e uzanan tekniklerin ortak teması.

10.9 Bu Dersin Özeti

  1. Non-contrastive birleştirici ilke: latent kapasitesini azalt → düşük-enerji uzayının hacmini sınırla. Sparsity, gürültü (VAE), bottleneck — hepsi aynı (Hafta 7-8-9 birleşir).
  2. Sparse coding: az aktif birimle temsil (L1); group/structural sparsity en az grubu açık tutar.
  3. Dünya modeli: belirsiz geleceği öngören latent-variable EBM (LeCun programının kalbi).
  4. GAN: generator (latent → sahte \(\hat{x}\)) + cost network (= enerji; gerçeğe düşük, sahteye yüksek). “Discriminator” yerine “cost network” (NYU/LeCun dili).
  5. GAN eğitimi = çekişme: cost network sahteyi yukarı iter, generator cost’u düşürür (kandırır); min-max.
  6. GAN = contrastive EBM: generator negatifleri öğrenerek üretir — Hafta 8 contrastive’in adaptif-negatifli hâli.
ÖnemliTek Bir Cümle

EBM serisinin son dersi her şeyi tek çatıda topluyor: non-contrastive yöntemler (sparsity, VAE, bottleneck) düşük-enerji uzayının hacmini sınırlayarak enerjiyi şekillendirir; GAN ise contrastive bir EBM’dir — generator negatifleri öğrenerek üretir, cost network (enerji) gerçeğe düşük, sahteye yüksek değer vererek onu hizaya sokar.

10.10 Kontrol Soruları

Cevap: Üçü de aynı şeyi yapar: latent değişkenin (code) bilgi kapasitesini azaltır → düşük enerji alabilen uzayın hacmini sınırlar (LeCun 16:00). Kapasite sınırlıysa, veriye düşük enerji verdiğinde geri kalan otomatik olarak yükselir — negatif örnek üretmeden. Bottleneck (Hafta 7) code’u küçültür; VAE (Hafta 8) gürültü/varyansla kapasiteyi sınırlar; sparsity (bu hafta) çoğu birimi sıfıra iter. Hepsi “düşük-enerji hacmini sınırla” ilkesinin farklı uygulamalarıdır — contrastive’in (negatif itme) alternatifi.

Cevap: Dünya modeli mevcut durum + eylemden geleceği öngörür, ama gelecek belirsizdir (bir duruma birçok olası sonraki durum). Tek-çıktılı bir öngörücü bunları tek bir çıktıya — genelde bulanık bir ortalamaya — sıkıştırır (yanlış). EBM ise olası geleceklere düşük enerji, olanaksızlara yüksek enerji verir; belirsizliği latent değişkenle (\(z\)) yakalar (Hafta 7 latent-variable EBM). Yani dünya modeli = öngörü + latent-variable EBM; birden çok geçerli gelecek = enerjinin birden çok minimumu.

Cevap: Çünkü GAN’ı dersin EBM diline çeviriyor: “cost network” bir enerji fonksiyonudur — Canziani/LeCun “discriminator” terimini yanlış bulur (2:37). İki parça: Generator latent bir z (Gaussian örneği) alıp sahte örnek \(\hat{x}\) üretir; cost network her girdiye bir enerji (maliyet) atar — gerçeğe (pembe) düşük, sahteye (mavi, generator’dan) yüksek. Yani cost = enerji, ve “gerçeğe düşük/sahteye yüksek” tam Hafta 7’nin EBM şeklidir.

Cevap: GAN, Hafta 8’in push-down/push-up’ını yapar: cost network gerçeğe düşük enerji (push down), generator’ın sahtelerine yüksek enerji (push up) verir. Bu yüzden bir contrastive EBM’dir. Fark: Hafta 8’de negatifler elle/sabit üretiliyordu (augmentation, rastgele); GAN’da negatifleri generator öğrenerek, adaptif üretir — cost network’ün en çok kandığı (en düşük enerjili) sahteleri arar. Yani GAN = “akıllı/öğrenilen negatif üreteçli” contrastive EBM; min-max çekişme bu adaptif negatif üretiminin sonucudur.

10.11 Egzersizler

Egzersiz 1 (Kapasite = hacim). Bir autoencoder’ın code boyutunu 32 → 8 → 2 küçült. Her durumda reconstruction kalitesi ve “düşük enerji alan uzay” nasıl değişir? “Kapasiteyi sınırla = düşük-enerji hacmini sınırla” ilkesini gözlemle.

import numpy as np

# Kapasite (code boyutu) kuculdukce "dusuk enerji alan uzay" daralir.
# Sema: genis code -> her seyi yeniden kurabilir (genis dusuk-enerji = kotu);
#       dar code -> sadece veriyi kurabilir (dar dusuk-enerji = iyi).
def low_energy_width(code_dim, data_dim=32):
    # kabaca: dusuk-enerji hacmi ~ code kapasitesiyle orantili (sezgi)
    return code_dim / data_dim

for code in (32, 8, 2):
    w = low_energy_width(code)
    print(f"code={code:2d} -> dusuk-enerji hacmi ~ {w:.3f}  "
          f"({'genis=kotu' if w > 0.5 else 'dar=iyi (kapasite sinirli)'})")
# code=32 -> hacim ~1.0 (her sey dusuk = kotu); code=2 -> dar (veriye oturur = iyi)

Egzersiz 2 (Sparse coding). Bir code’a L1 düzenlileştirme ekle (loss += λ·\(\lVert\text{code}\rVert_1\)). λ’yı artırınca kaç birim aktif kalıyor? Group sparsity (birimleri gruplayıp grup-normuna L1) ne farklı yapar?

import numpy as np

# L1 yumusatma (soft-threshold): code = sign(z) * max(|z| - lam, 0)
# lam buyudukce daha cok birim sifira gider (aktif birim sayisi DUSER).
def soft_threshold(z, lam):
    return np.sign(z) * np.maximum(np.abs(z) - lam, 0.0)

rng = np.random.default_rng(0)
z = rng.normal(0, 1, 24)                          # ham code (yogun)
for lam in (0.0, 0.5, 1.0, 1.5):
    code = soft_threshold(z, lam)
    n_active = int(np.count_nonzero(code))
    print(f"lambda={lam:.1f} -> aktif birim = {n_active:2d} / 24")
# lambda buyudukce aktif birim DUSER (L1 cogu birimi sifira iter)
# group sparsity: birimleri gruplara ayir, grup-normuna L1 -> EN AZ grubu acik tut

Egzersiz 3 (GAN = cost network). Küçük bir GAN kur (generator + “cost network”/discriminator). Cost network’ün gerçek/sahte örneklere verdiği değerleri eğitim boyunca izle: gerçek düşük, sahte yüksek mi? Bunun Hafta 7 enerji şekliyle ilişkisini açıkla.

import torch
import torch.nn as nn

# Generator: gurultu z -> sahte ornek ;  Cost network: ornek -> enerji (skaler)
G = nn.Sequential(nn.Linear(8, 32), nn.ReLU(), nn.Linear(32, 2))
Cost = nn.Sequential(nn.Linear(2, 32), nn.ReLU(), nn.Linear(32, 1))  # = enerji agi

real = torch.randn(64, 2) * 0.1 + torch.tensor([1.0, 0.0])   # gercek veri (manifold)
z = torch.randn(64, 8)
fake = G(z)                                                   # sahte ornekler

E_real = Cost(real).mean()                                    # gercege DUSUK olmali
E_fake = Cost(fake).mean()                                    # sahteye YUKSEK olmali
# cost network kaybi: gercegi bas (dusur), sahteyi yukselt -> Hafta 7 EBM sekli
cost_loss = E_real - E_fake          # minimize et: E_real kucuk, E_fake buyuk
# generator kaybi: cost'u DUSUR (kandir) -> E_fake'i kucult
gen_loss = Cost(G(z)).mean()
print("cost(gercek)=enerji DUSUK, cost(sahte)=enerji YUKSEK -> Hafta 7 enerji sekli")

Egzersiz 4 (Mode collapse). GAN’ını eğit; generator’ın hep aynı birkaç örneği üretmeye başladığını (mode collapse) gözlemlemeye çalış. Bu, “generator cost’u kandırmanın kolay yolunu buldu” olarak nasıl yorumlanır?

import torch

# Mode collapse: generator cost'u kandirmanin KOLAY yolunu bulur ->
# tum z'leri ayni (dusuk-enerjili) cikti'ya esler (cesitlilik kaybolur).
def mode_collapse_score(samples):
    # cikti cesitliligi: dusukse -> collapse (hep ayni ornek)
    return samples.std(dim=0).mean().item()

healthy = torch.randn(200, 2)                       # cesitli cikti (saglikli)
collapsed = torch.randn(200, 2) * 0.02 + 1.0        # neredeyse tek nokta (collapse)
print(f"saglikli cesitlilik = {mode_collapse_score(healthy):.3f}")
print(f"collapse cesitlilik  = {mode_collapse_score(collapsed):.3f}")
# collapse: generator tek bir "cost'u kandiran" noktayi bulup oraya yiginlasti
# -> cesitlilik ~0; min-max dengesi bozuldu (WGAN/spectral norm bunu yumusatir)

Egzersiz 5 (Hafta 10 habercisi — görüde SSL). Hafta 8’de contrastive SSL’i (pozitif/negatif çift) gördük. Hafta 10’da konuk Ishan Misra bunu görüde derinleştirecek (pretext görevler, PIRL, ClusterFit). (a) Etiketsiz görüntülerden bir “pretext görevi” (örn. döndürme açısını tahmin et) nasıl gözetim sinyali üretir? (b) Bu, etiketli veri pahalı olduğunda neden değerlidir?

import torch

# (a) Pretext gorevi: ETIKETSIZ goruntuyu dondur, ACIYI tahmin ettir.
#     Donme acisi "bedava etiket" uretir -> oz-denetimli gozetim sinyali.
def make_rotation_task(img):
    angles = [0, 90, 180, 270]                       # 4 sinif (bedava etiket)
    k = torch.randint(0, 4, (1,)).item()
    rotated = torch.rot90(img, k, dims=[-2, -1])     # k*90 derece dondur
    return rotated, k                                # (girdi, otomatik etiket)

img = torch.rand(3, 32, 32)
rot, label = make_rotation_task(img)
print(f"pretext etiketi (donme sinifi) = {label}  -> ag bunu tahmin ederek ogrenir")
# (b) etiketli veri PAHALI; pretext gorevi etiketi BEDAVA uretir (oz-denetim)
#     -> bol etiketsiz veriyle on-egitim, sonra az etiketle ince-ayar (Hafta 10)

10.12 Sonraki Ders İçin Hazırlık

UyarıSonraki Hafta — H10: Görüde Öz-Denetimli Öğrenme (SSL) ve PPUU (Konuk: Ishan Misra)

SSL görüye iniyor. Bu hafta EBM serisini kapattık: non-contrastive birleştirici ilke (kapasite → düşük-enerji hacmi), sparse coding, dünya modelleri ve GAN (= contrastive EBM, öğrenilen negatif). Hafta 10’da konuk hoca Ishan Misra (Facebook AI Research) görüde öz-denetimli öğrenmeyi anlatacak (pretext görevler, ClusterFit, PIRL); Canziani ise belirsizlik altında öngörü/politika öğrenmeyi (PPUU) — dünya modellerinin pratiğini — gösterecek. Egzersiz 3 (GAN cost network) ve Egzersiz 5 (pretext görev) tam bu derse hazırlar.

Hafta 10: Görüde Öz-Denetimli Öğrenme (SSL) ve PPUU — Konuk: Ishan Misra (Lecture) + Canziani (Practicum)

Hafta 10’da konuk hoca Ishan Misra (Facebook AI Research) görüde öz-denetimli öğrenmeyi anlatacak: pretext görevler, ClusterFit, PIRL. Canziani ise belirsizlik altında öngörü/politika öğrenmeyi (PPUU) — dünya modellerinin pratiğini — gösterecek.

Hafta 10 öncesi yapılacak:

  • Egzersiz 3 (GAN cost network) ve Egzersiz 5 (pretext görev) çöz.
  • “GAN = contrastive EBM (öğrenilen negatif)” ve “non-contrastive = düşük-enerji hacmini sınırla” cümlelerini kendi sözcüklerinle yaz.
  • Hafta 8 contrastive SSL’i hatırla — Hafta 10 onu görüye uygular.

10.13 Anahtar Kavramlar (Cheat Sheet)

Kavram Tanım Hoca / timestamp
Düşük-enerji hacmini sınırla Non-contrastive’in ortak ilkesi (kapasite azalt) LeCun 16m00
Sparse coding Az aktif birimle temsil; L1 düzenlileştirme LeCun 0m33
Group / structural sparsity En az sayıda grubu açık tut; topolojik organizasyon LeCun 8m01
Dünya modeli (world model) Belirsiz geleceği öngören latent-variable EBM LeCun 0m22
GAN Generator (latent→sahte) + cost network (enerji) Canziani 1m55
Cost network (≠ discriminator) Enerji ağı; gerçeğe düşük, sahteye yüksek Canziani 2m37
GAN eğitimi (çekişme) Cost sahteyi yukarı iter, generator cost’u düşürür Canziani 5m23
GAN = contrastive EBM Generator negatifleri öğrenerek üretir Canziani / LeCun

10.14 ML Builder Bağlantıları

Geriye köprüler (önkoşul kurslar):

  1. Düşük-enerji hacmini sınırla → Hafta 7 bottleneck + Hafta 8 VAE + bu hafta sparsity (birleşim).
  2. Sparse coding (L1) → 18.06 seyrek temsil + Stat 110 Laplace prior.
  3. Cost network = enerji → Hafta 7 EBM + Hafta 1 cross-entropy (gerçek/sahte).
  4. Min-max → Calculus eyer noktası (saddle point).
  5. GAN = contrastive EBM → Hafta 8 push-down/push-up (öğrenilen negatif).

İleriye köprüler (production / research):

  1. World model → LeCun JEPA programı (post-2020), model-based RL/planning.
  2. GAN → CycleGAN, StyleGAN, WGAN; diffusion (modern üretken).
  3. Sparse / structural → yorumlanabilir temsil, mixture-of-experts (seyrek aktivasyon).
  4. Öğrenilen negatif → adversarial eğitim, RLHF reward model.
ÖnemliBu dersten tek bir şey alıp gideceksen

EBM serisi tek çatıda kapanır — non-contrastive yöntemler (sparsity, VAE, bottleneck) hep aynı şeyi yapar: düşük-enerji uzayının hacmini sınırlamak; GAN ise contrastive bir EBM’dir, ama negatiflerini elle değil, bir generator’la öğrenerek üretir, ve cost network (LeCun’un dilinde “discriminator” değil, enerji ağı) gerçeğe düşük, sahteye yüksek enerji vererek onu hizaya sokar. Dünya modelleri de aynı çerçevenin geleceğe bakan hâlidir — ve LeCun’un bugünkü araştırmasının (JEPA) tohumudur.