Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Generative Adversarial Network (GAN)

Üretici çekişmeli ağ (GAN), örnekleri gerçekmiş gibi görünene kadar bir üreticiyi bir ayırt ediciye karşı eğitir. Eğitim, çeşitler ve kullanım alanları ele alınır.

Üretici çekişmeli ağ (GAN), birbirine karşı eğitilen iki sinir ağından oluşan bir üretken yapay zekâ modelidir: Üretici rastgele gürültüyü örneklere dönüştürür, ayırt edici ise bu örnekleri gerçek eğitim verilerinden ayırmaya çalışır. Eğitim tamamlandığında üretici, tek bir ileri geçişte yeni görüntüler, sesler veya tablo kayıtları oluşturur. Ian Goodfellow ve Université de Montréal'deki çalışma arkadaşları, GAN'leri 2014 tarihli Generative Adversarial Nets makalesinde tanıttı; GAN'ler, 2021'de difüzyon modelleri öne geçene kadar görüntü sentezine öncülük etti.

GAN Eğitimi Nasıl Çalışır#

İki ağ bir minimaks oyunu oynar. Ayırt edici, girdisinin gerçek olma olasılığını veren ikili bir sınıflandırıcıdır; gerçek örnekleri 1, üretilenleri 0 olarak puanlaması için çapraz entropili bir kayıp fonksiyonuyla eğitilir. Üretici gerçek verileri hiçbir zaman görmez; yalnızca ayırt edicinin gradyanlarından öğrenir. Oyunun teorik optimumunda üretilen dağılım veri dağılımına eşit olur ve ayırt edici her girdi için 0,5 çıktısı verir. Eğitimin başlarında sahteleri ayırt etmek kolay olduğunda özgün üretici hedefi neredeyse hiç gradyan sağlamaz; bu, kaybolan gradyan sorununun bir biçimidir. Bu nedenle Goodfellow'un makalesi, üreticinin ayırt edicinin örneklerini gerçek olarak sınıflandırma olasılığını en üst düzeye çıkarmasını sağladı. Aşağıdaki kodda bu doygunlaşmayan kayıp kullanılır.

PyTorch ile yazılmış tek boyutlu bir GAN, yalnızca örneklerden bir Gauss dağılımı öğrenir:

import torch
from torch import nn

torch.manual_seed(0)

# Generator maps 8-D noise to a number; discriminator scores a number as real (high) or fake (low)
generator = nn.Sequential(nn.Linear(8, 32), nn.ReLU(), nn.Linear(32, 1))
discriminator = nn.Sequential(nn.Linear(1, 32), nn.LeakyReLU(0.2), nn.Linear(32, 1))
opt_g = torch.optim.Adam(generator.parameters(), lr=1e-3)
opt_d = torch.optim.Adam(discriminator.parameters(), lr=1e-3)
bce = nn.BCEWithLogitsLoss()
real_label, fake_label = torch.ones(64, 1), torch.zeros(64, 1)

for step in range(3000):
    real = 4.0 + 1.25 * torch.randn(64, 1)  # training data: samples from N(4, 1.25^2)
    fake = generator(torch.randn(64, 8))

    # Discriminator step: label real samples 1 and generated samples 0
    loss_d = bce(discriminator(real), real_label) + bce(discriminator(fake.detach()), fake_label)
    opt_d.zero_grad()
    loss_d.backward()
    opt_d.step()

    # Generator step: push the discriminator to label generated samples 1
    loss_g = bce(discriminator(fake), real_label)
    opt_g.zero_grad()
    loss_g.backward()
    opt_g.step()

samples = generator(torch.randn(10000, 8)).detach()
print(f"Generated mean {samples.mean():.2f}, std {samples.std():.2f} (data: 4.00, 1.25)")
print(f"Discriminator's average P(real) on generated samples: {torch.sigmoid(discriminator(samples)).mean():.2f}")

3.000 dönüşümlü adımın ardından üretilen örneklerin ortalaması 3,95, standart sapması 1,20 olurken verilerin ortalaması 4,00, standart sapması 1,25'tir; ayırt edici bu örneklerin gerçek olma olasılığına ortalama 0,51 verir. Bu değer, teorik optimumdaki yazı tura olasılığı olan 0,5'e yakındır.

Önemli GAN Varyantları#

  • DCGAN: Alec Radford, Luke Metz ve Soumith Chintala'nın 2015 tasarımı, evrişimli üreticilerin ve ayırt edicilerin güvenilir biçimde eğitilmesini sağladı; havuzlama katmanlarını adımlı evrişimlerle değiştirdi ve toplu normalleştirme ekledi.
  • Koşullu GAN'ler ve pix2pix: Her iki ağa da bir sınıf etiketi veya girdi görüntüsü vermek, üreticinin istenen çıktıyı üretmesini sağlar. Phillip Isola ve çalışma arkadaşlarının pix2pix modeli (2017), etiket haritalarından sokak fotoğraflarına ve kenarlardan ürün fotoğraflarına eşlenmiş dönüşümleri öğrenir.
  • CycleGAN: Atları zebralara veya yaz manzaralarını kış manzaralarına dönüştürmek gibi, eşleştirilmiş örnekler olmadan iki görüntü koleksiyonu arasında dönüşüm öğrenir. Bunun için dönüştürülmüş görüntünün özgün görüntüye geri eşlenmesini şart koşar.
  • Wasserstein GAN (WGAN): Martin Arjovsky ve çalışma arkadaşları, sınıflandırıcının yerine gerçek ve üretilmiş veriler arasındaki Wasserstein uzaklığını tahmin eden bir eleştirmen koydu (2017); böylece iki dağılım neredeyse hiç örtüşmediğinde bile gradyanlar işe yarar durumda kalır.
  • StyleGAN: NVIDIA'nın StyleGAN (2018) ve StyleGAN2 (2019) modelleri, öğrenilmiş bir stil vektörünü her üretici katmanına iletir. StyleGAN2, FFHQ veri kümesindeki 1024 x 1024 boyutlu yüzlerde 2,84 Fréchet Inception Distance (FID) değerine ulaştı.

Uygulamalar#

  • Süper çözünürlük: SRGAN (2017), ESRGAN (2018) ve Real-ESRGAN (2021), büyütme ağlarına çekişmeli kayıp ekler; böylece piksel bazlı kaybın tek başına bulanıklaştırdığı yerlerde net dokuları geri kazandırır.
  • Tıbbi görüntü artırma: Maayan Frid-Adar ve çalışma arkadaşları, 182 karaciğer lezyonuna ait BT taramalarında GAN'leri eğitip sentetik lezyonları eğitime ekledi; bunun sonucunda sınıflandırıcının duyarlılığı %78,6'dan %85,7'ye, özgüllüğü ise %88,4'ten %92,4'e yükseldi.
  • Deepfake: Sophie Nightingale ve Hany Farid'in 2022 tarihli bir çalışmasında katılımcılar, StyleGAN2 yüzlerinin gerçek mi sentetik mi olduğunu %48 doğrulukla belirledi; bu oran şanstan biraz daha düşüktü. Katılımcılar sentetik yüzleri daha güvenilir buldu.

GAN ile üretilen görüntüler, gerçek örneklerin az olduğu durumlarda sentetik veri olarak ve çevirme ile döndürme gibi geometrik dönüşümlere ek bir veri artırma katmanı olarak kullanılır. Bu görüntüler, diğer görüntüler gibi bir YOLO26 eğitim kümesine eklenir: Ultralytics algılama veri kümesi YAML dosyasındaki train bölümü dizin listesi kabul eder; bu nedenle sentetik görüntüleri gerçek görüntülerin yanındaki ayrı klasörlerinde tutabilir, tek satırı düzenleyerek ekleyebilir veya kaldırabilirsin.

GAN'ler, Difüzyon Modelleri ve VAE'ler Karşılaştırması#

OpenAI'den Prafulla Dhariwal ve Alex Nichol, 2021'de bir difüzyon modelinin o dönemdeki en güçlü GAN olan BigGAN-deep'ten daha iyi FID puanı aldığını bildirdikten sonra difüzyon modelleri görüntü kalitesinde GAN'leri geride bıraktı. Difüzyon eğitimi, rakibin olmadığı kararlı bir regresyon problemidir ve verilerin çeşitliliğini daha eksiksiz kapsar. GAN eğitimi yakınsamadan salınım yapabilir veya üreticinin ayırt ediciyi kandıran birkaç çıktıya yerleşip diğerlerini üretmeyi bıraktığı mod çökmesine uğrayabilir. Değişkenli otomatik kodlayıcılar da kararlı biçimde eğitilir ancak daha bulanık örnekler üretir. GAN'lerin kalıcı avantajı hızdır, çünkü örnekleme tek bir ileri geçişte gerçekleşir: Adobe Research, Carnegie Mellon University ve POSTECH'in geliştirdiği GigaGAN, 2023'te 512 piksel boyutunda metinden görüntüye sonuçları 0,13 saniyede üretti. Çekişmeli kayıplar difüzyon sistemlerinde de kullanılmaya devam ediyor. Stable Diffusion otomatik kodlayıcısı yama tabanlı bir ayırt ediciyle eğitilir; Stability AI'nin SDXL Turbo modeli ise ayırt ediciyi kayba ekleyen bir bilgi damıtma biçimi olan çekişmeli difüzyon damıtmasını kullanarak tek adımda görüntü üretir.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla