0Pricing
Learn AI with Python · Ders

Varyasyonel Otokodlayıcılar (VAE)

ELBO kaybı, yeniden parametreleme hilesi, gizli uzayı keşfetme, VAE ile görüntü oluşturma.

Varyasyonel Otokodlayıcılar (VAE), CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

Otomatik Kodlayıcıdan VAE'ye

Sıradan bir otomatik kodlayıcı dağınık noktalar öğrenir; bu nedenle yeni noktalar örneklendiğinde anlamsız çıktılar üretir. Varyasyonel Otomatik Kodlayıcı (VAE), örnekleme yapabileceğiniz pürüzsüz ve sürekli bir gizil uzay öğrenir ve böylece gerçek bir üretici modele dönüşür.

Bir Dağılıma Kodlama

VAE kodlayıcısı tek bir nokta yerine her girdi için bir dağılım üretir: bir ortalama mu ve bir log-varyans log_var. Her girdi, gizil uzayda tek bir nokta yerine küçük ve belirsiz bir bölgeye eşlenir.

class Encoder(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc = nn.Linear(784, 256)
        self.fc_mu = nn.Linear(256, 64)
        self.fc_logvar = nn.Linear(256, 64)

mu ve log_var Neden?

Varyansı doğrudan tahmin etmek yerine log_var tahmin ederiz; çünkü log_var herhangi bir gerçek sayı olabilir, yani pozitif olma kısıtlaması yoktur ve sayısal olarak daha kararlıdır. Gerektiğinde üstelini alarak varyansı elde ederiz.

    def forward(self, x):
        h = torch.relu(self.fc(x))
        return self.fc_mu(h), self.fc_logvar(h)

Gizil z'yi Örnekleme

Kodu çözmek için tahmin edilen dağılımdan z örneklememiz gerekir. Bu rastgele çekiliş doğrudan yapıldığında türevlenebilir değildir; dolayısıyla geri yayılımı bunun üzerinden gerçekleştiremeyiz. Yeniden parametreleştirme hilesi bu sorunu çözer.

Yeniden Parametreleştirme Hilesi

Örneği, eps'in rastgele gürültü olduğu z = mu + eps * exp(0.5 * log_var) biçiminde yeniden yazın. Böylece rastgelelik eps içinde kalır; bunun gradyana ihtiyacı yoktur ve gradyanlar mu ile log_var üzerinden akar.

def reparameterize(mu, log_var):
    std = torch.exp(0.5 * log_var)
    eps = torch.randn_like(std)
    return mu + eps * std

Kod Çözücü

Kod çözücü, örneklenen z'yi alır ve tıpkı sıradan bir otomatik kodlayıcının kod çözücüsü gibi görüntüyü yeniden yapılandırır; 64 boyutu Sigmoid çıktısıyla yeniden 784 piksele genişletir.

decoder = nn.Sequential(
    nn.Linear(64, 256),
    nn.ReLU(),
    nn.Linear(256, 784),
    nn.Sigmoid()
)

Yeniden Yapılandırma Kayıp Terimi

VAE kaybının ilk yarısı yeniden yapılandırmadır: kodu çözülmüş görüntünün girdiyle ne kadar iyi eşleştiğini ölçer. Pikseller üzerinde ikili çapraz entropi (veya MSE) kullanılır.

recon_loss = nn.functional.binary_cross_entropy(
    recon, x, reduction="sum"
)

KL Iraksaması Terimi

İkinci yarı, her kodlanmış dağılımı standart normal dağılıma yaklaştıran KL ıraksamasıdır. Bu, gizil uzayı düzenleyerek pürüzsüz ve sürekli olmasını sağlar ve üretime olanak tanır.

kl = -0.5 * torch.sum(1 + log_var - mu.pow(2) - log_var.exp())

ELBO Amacı

VAE'ler ELBO'yu (Kanıt Alt Sınırı) en büyüklemeye çalışır; bu, reconstruction + KL ifadesini en aza indirmeye eşdeğerdir. Yeniden yapılandırma çıktıları aslına sadık kılar; KL ise uzayın düzgün biçimli kalmasını sağlar. Önemli olan bu ikisi arasında denge kurmaktır.

loss = recon_loss + kl
loss.backward()

Yeni Görüntüler Üretme

Gizil uzay standart normal dağılımla eşleştiği için z'yi N(0,1)'den örnekleyip kodunu çözerek, herhangi bir girdi görüntüsüne ihtiyaç duymadan tamamen yeni görüntüler üretebilirsiniz.

with torch.no_grad():
    z = torch.randn(16, 64)
    new_images = decoder(z)  # 16 generated samples

VAE'ler Neden Önemlidir?

VAE'ler, ara değerler üretebileceğiniz ve örnekleme yapabileceğiniz, ilkeli ve pürüzsüz bir gizil uzay sunar. Pek çok üretici tekniğin temelini oluşturur ve yalnızca noktaları değil, dağılımları öğrenme fikrini öğretir.

Hızlı Kontrol

VAE anlayışınızı sınayın.

Özet: Varyasyonel Otomatik Kodlayıcılar

VAE'yi öğrendiniz: kodlayıcı mu ve log_var üretir, yeniden parametreleştirme hilesi olan z = mu + eps * exp(0.5 * log_var) örnekleme işlemini türevlenebilir tutar ve kayıp ELBO = reconstruction + KL şeklindedir. z'yi N(0,1)'den örnekleyip kodunu çözmek yeni görüntüler üretir.

Sıkça Sorulan Sorular

“Varyasyonel Otokodlayıcılar (VAE)” dersi ücretsiz mi?

Evet — “Varyasyonel Otokodlayıcılar (VAE)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“Varyasyonel Otokodlayıcılar (VAE)” dersinde ne öğreneceğim?

ELBO kaybı, yeniden parametreleme hilesi, gizli uzayı keşfetme, VAE ile görüntü oluşturma. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Varyasyonel Otokodlayıcılar (VAE)” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Gösterim Öğrenmesi için Otokodlayıcılar
  2. Varyasyonel Otokodlayıcılar (VAE)
  3. GAN'ler: Üretici ve Ayrıştırıcı
  4. Koşullu GAN'ler ve Stil Aktarımı
← Learn AI with Python Sayfasına Dön