0Pricing
Learn AI with Python · Ders

Koşullu GAN'ler ve Stil Aktarımı

Sınıf koşullandırmalı cGAN, CycleGAN kavramı, VGG ile nöral stil aktarımı.

Koşullu GAN'ler ve Stil Aktarımı, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 4. 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.

GANs'in Ürettiklerini Denetleme

Sıradan bir GAN rastgele örnekler üretir; belirli bir sınıfı isteyemezsiniz. Bu derste koşullu üretim (cGANs), eşleşmemiş çeviri (CycleGAN) ve sinirsel stil aktarımı ele alınır.

Koşullu GAN'ler (cGAN)

Bir cGAN, hem üreticiye hem de ayırt ediciye bir koşul (örneğin bir sınıf etiketi) ekler. Artık etiketi gürültüyle birlikte vererek "7 üret" isteğinde bulunabilirsiniz.

Üreticiyi Koşullandırma

Üretici, etiketi birleştirir (tek etkin kodlanmış veya gömülmüş) ve bunu gürültü vektörüyle bir araya getirir. Birleşik girdi, istenen sınıfa ait örnekler üretmesini sağlar.

label_emb = embedding(label)        # e.g. dim 10
z = torch.randn(batch, 100)
gen_input = torch.cat([z, label_emb], dim=1)
fake = generator(gen_input)

Ayırt Ediciyi Koşullandırma

Ayırt edici de etiketi alır; böylece yalnızca "bu gerçek mi?" sorusunu değil, "bu, bu sınıfa ait gerçek bir örnek mi?" sorusunu da değerlendirir. Bu, üreticiyi koşula uymaya zorlar.

d_input = torch.cat([image, label_emb], dim=1)
score = discriminator(d_input)

Eşleşmemiş Görüntü Çevirisi

Çoğu zaman eşleşmiş çiftlerimiz olmaz (örneğin aynı atın zebra hâli). CycleGAN, eşleşmemiş görüntüler kullanarak iki alan arasında çeviri yapar; hizalanmış örnekler olmadan attan zebrayı ve geri dönüşü öğrenir.

İki Üretici, İki Alan

CycleGAN iki üretici kullanır: G: A to B ve F: B to A; her birinin kendine ait bir ayırt edicisi vardır. Birlikte, alanlar arasında her iki yönde de çeviri yaparlar.

# G: photo -> painting
# F: painting -> photo

Döngü Tutarlılığı Kaybı

Temel fikir şudur: A'yı B'ye çevirip yeniden A'ya döndürdüğünüzde özgün değer elde edilmelidir. Döngü tutarlılığı kaybı, eşlenmiş veriler olmadan eşlemeyi kısıtlayan F(G(a)) == a koşulunu zorunlu kılar.

cycle_loss = (
    l1(F(G(a)), a) +
    l1(G(F(b)), b)
)

Sinirsel Stil Aktarımı

Sinirsel stil aktarımı, bir görüntünün içeriğini başka bir görüntünün stiliyle birleştirir (örneğin Van Gogh tarafından resmedilmiş gibi görünen bir fotoğraf). Önceden eğitilmiş bir CNN'nin özelliklerini kullanarak çıktı görüntüsünü doğrudan eniyiler.

İçerik Kaybı

İçerik kaybı, derin CNN özellik haritalarını eşleştirerek çıktının üst düzey yapısını içerik görüntüsüne yakın tutar. Görüntüde ne olduğunu korur.

content_loss = mse(features_out, features_content)

Stil Kaybı ve Gram Matrisi

Stil, özellik kanalları arasındaki korelasyonları gösteren Gram matrisiyle yakalanır. Gram matrislerini eşleştirmek dokuları ve renkleri aktarır. Stil kaybı, çıktı görüntüsünün ve stil görüntüsünün Gram matrislerini karşılaştırır.

def gram(f):
    b, c, h, w = f.size()
    f = f.view(c, h * w)
    return f @ f.t()

style_loss = mse(gram(features_out), gram(features_style))

Kayıpları Birleştirme

Toplam kayıp ağırlıklı bir toplamdır: alpha * content_loss + beta * style_loss. Ağırlıkları ayarlayarak sonucun içeriği ne ölçüde koruyacağıyla stili ne kadar güçlü benimseyeceği arasındaki dengeyi belirlersiniz.

total = alpha * content_loss + beta * style_loss
total.backward()  # gradients update the output IMAGE

Hızlı Kontrol

Koşullu üretim bilginizi sınayın.

Özet: Koşullu GANs ve Stil Aktarımı

Denetimli üretim için cGANs'in sınıf etiketini üreticinin (ve ayırt edicinin) girdisine eklediğini, CycleGAN'in eşleşmemiş çeviri için döngü tutarlılığı kaybını kullandığını ve sinirsel stil aktarımının görüntüleri yeniden boyamak üzere içerik kaybını Gram matrisi stil kaybıyla birleştirdiğini öğrendiniz.

Sıkça Sorulan Sorular

“Koşullu GAN'ler ve Stil Aktarımı” dersi ücretsiz mi?

Evet — “Koşullu GAN'ler ve Stil Aktarımı” 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.

“Koşullu GAN'ler ve Stil Aktarımı” dersinde ne öğreneceğim?

Sınıf koşullandırmalı cGAN, CycleGAN kavramı, VGG ile nöral stil aktarımı. 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 4. dersidir.

“Koşullu GAN'ler ve Stil Aktarımı” 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