Özet - GAN ve VAE
- Makine Öğrenmesi kursu
- Uzman
- Ders 34/44
- 6 dk
Bu grupta GAN ve VAE üretici modellerini öğrendin.
Özet: GAN ve VAE
Bu grupta:
- GAN: üretici ile ayırt edicinin oyunu; dengede D her örneğe 0.5 der.
- Üretici için doymayan kayıp
bce(D(G(z)), 1)kullanılır; mod çökmesi bilinen sorundur. - Üretici kalitesi, gerçek/sahte ayıran yeni bir sınıflandırıcıyla (C2ST) ölçülebilir.
- VAE: encoder μ ve log σ² verir; yeniden parametreleme ile z = μ + σ·ε.
- VAE kaybı = yeniden kurma + β·KL; doğrusal otokodlayıcı PCA'ya denktir.
# GAN: keskin örnekler, kararsız eğitim
# VAE: kararlı eğitim, düzgün gizil uzay, bulanık örnekler
# Difüzyon modelleri: ikisinin güçlü yanlarını birleştirir (Stable Diffusion)Uygulama VAE kaybını hesapla
Verilen x, encoder çıktıları mu, logvar ve eps ile z'yi yeniden parametreleme ile hesapla. Decoder doğrusal (z @ W). Yeniden kurma hatasını (kare hataların toplamı), KL'yi ve β = 1 ile β = 4 için toplam kaybı round(..., 3) ile aynı satırda yazdır.
Başlangıç kodu
import numpy as np
x = np.array([1.0, 2.0, 0.5])
mu = np.array([0.8, -0.2])
logvar = np.array([-1.0, -0.5])
eps = np.array([0.1, -0.3])
W = np.array([[1.0, 2.0, 0.5], [0.5, -1.0, 0.0]])
# buraya yazÖrnek çözüm
import numpy as np
x = np.array([1.0, 2.0, 0.5])
mu = np.array([0.8, -0.2])
logvar = np.array([-1.0, -0.5])
eps = np.array([0.1, -0.3])
W = np.array([[1.0, 2.0, 0.5], [0.5, -1.0, 0.0]])
z = mu + np.exp(0.5 * logvar) * eps
x_hat = z @ W
yk = float(((x_hat - x) ** 2).sum())
kl = float(-0.5 * np.sum(1 + logvar - mu ** 2 - np.exp(logvar)))
print(round(yk, 3), round(kl, 3), round(yk + kl, 3), round(yk + 4 * kl, 3))Beklenen çıktı
0.156 0.577 0.733 2.465
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Eğitimi kararlı, gizil uzayı düzgün ama örnekleri bulanık olan model hangisidir?
- GAN
- GPT
- BERT
- VAE Doğru cevap
Açıklama: VAE'nin yeniden kurma kaybı ortalama bir çıktıya yönelir.
2 Yeni örnek için gizil vektörü standart normalden çek.
z = rng.____(size=(16, 2))
z = rng.normal(size=(16, 2))
Açıklama: Önsel dağılım N(0, I)'dir.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
GAN |
Çekişmeli eğitim |
VAE |
Olasılıksal otokodlayıcı |
KL |
Önsele yakınlık |
mod çökmesi |
GAN sorunu |