Sözlük

Generative Adversarial Network (GAN)

GAN'ların gerçekçi görüntüler oluşturarak, verileri geliştirerek ve sağlık, oyun ve daha birçok alanda yenilikler sağlayarak yapay zekada nasıl devrim yarattığını keşfedin.

YOLO modellerini Ultralytics HUB ile basitçe
eğitin

Daha fazla bilgi edinin

Generative Adversarial Networks (GANs), ilk olarak 2014 yılında Ian Goodfellow ve meslektaşları tarafından tanıtılan güçlü bir makine öğrenimi (ML) çerçevesi sınıfını temsil etmektedir. Belirli bir eğitim veri setine benzeyen yeni veriler oluşturmaya odaklanan Üretken Yapay Zeka alanına aittirler. GAN'ların arkasındaki temel fikir, iki sinir ağının (NN), Üretici ve Ayırıcı, rekabetçi bir oyuna girmesini içerir. Bu çekişmeli süreç, sistemi görüntüler, müzik veya metin gibi son derece gerçekçi sentetik çıktılar üretmeye yönlendirir.

GANS Nasıl Çalışır?

Bir GAN mimarisi, eş zamanlı olarak eğitilen iki ana bileşenden oluşur:

  • Jeneratör: Bu ağ rastgele gürültüyü (genellikle Gauss dağılımından örneklenen rastgele sayılardan oluşan bir vektör) girdi olarak alır ve bunu gerçek veri dağılımını taklit eden verilere dönüştürmeye çalışır. Örneğin, eğitim veri kümesindeki görüntülere benzeyen sentetik bir kedi görüntüsü oluşturabilir. Amacı, gerçek verilerden ayırt edilemeyen çıktılar üreterek Ayırıcıyı etkili bir şekilde kandırmaktır.
  • Ayırıcı: Bu ağ ikili sınıflandırıcı olarak görev yapar. Hem gerçek veri örneklerini (gerçek veri kümesinden) hem de sahte veri örneklerini (Oluşturucu tarafından oluşturulan) alır. Görevi, her bir girdi örneğinin gerçek mi yoksa sahte mi olduğunu belirlemektir. Bunu standart denetimli öğrenme teknikleriyle öğrenir ve gerçek ve oluşturulmuş örnekleri doğru şekilde sınıflandırmayı amaçlar.

Çekişmeli Eğitim Süreci

Bir GAN'ın eğitimi, Üreteç ve Ayırıcının birlikte rekabet ettiği ve geliştiği dinamik bir süreçtir:

  1. Oluşturucu bir grup sentetik veri üretir.
  2. Ayırıcı, hem gerçek verileri hem de Jeneratörün sentetik verilerini içeren bir yığın üzerinde eğitilir ve bunları ayırt etmeyi öğrenir. Geri yayılım, sınıflandırma doğruluğuna göre ağırlıklarını güncellemek için kullanılır.
  3. Üreteç daha sonra Ayrıştırıcı'nın çıktısına göre eğitilir. Amacı, Ayırıcının gerçek olarak yanlış sınıflandırdığı verileri üretmektir. Gradyanlar, Üreteç'in ağırlıklarını güncellemek için (geçici olarak sabitlenmiş) Ayırıcı'ya geri akar.

Bu döngü devam eder ve ideal olarak Üreteç'in o kadar gerçekçi veriler ürettiği bir dengeye ulaşır ki Ayırıcı bir örneğin gerçek mi yoksa sahte mi olduğunu yalnızca rastgele (%50 doğrulukla) tahmin edebilir. Bu noktada, Üreteç eğitim setinin altında yatan veri dağılımına yaklaşmayı öğrenmiştir.

Anahtar Uygulamalar

GAN'lar çeşitli alanlarda önemli ilerlemelere olanak sağlamıştır:

  • Görüntü Oluşturma: İnsan yüzleri(StyleGAN by NVIDIA Research), hayvanlar veya var olmayan nesneler gibi fotogerçekçi görüntüler oluşturma. Bunun sanat, tasarım ve eğlence alanlarında uygulamaları vardır, ancak aynı zamanda deepfakes ile ilgili etik endişeleri de gündeme getirmektedir.
  • Sentetik Veri Büyütme: Gerçek veri kümelerini desteklemek için gerçekçi sentetik veriler üretmek. Bu özellikle gerçek verilerin az olabileceği veya gizlilik kısıtlamalarının bulunduğu tıbbi görüntü analizi gibi alanlarda kullanışlıdır. Örneğin, GAN'lar nesne algılama veya segmentasyon gibi görevler için kullanılan tanısal bilgisayarla görme (CV) modellerinin sağlamlığını artırmak için nadir durumları gösteren sentetik X-ray görüntüleri oluşturabilir. Bu artırma, aşağıdaki gibi modellerin eğitimini geliştirebilir Ultralytics YOLO11.
  • Görüntüden Görüntüye Çeviri: Görüntüleri bir alandan diğerine dönüştürme (örneğin, eskizleri fotoğraflara dönüştürme, bir manzaradaki mevsimleri değiştirme veya sinirsel stil aktarımı gerçekleştirme).
  • Süper Çözünürlük: Düşük kaliteli görüntülerin çözünürlüğünü artırma.
  • Metinden Görüntüye Sentez: Metinsel açıklamalara dayalı görüntüler oluşturma (genellikle Difüzyon Modelleri gibi daha yeni mimariler tarafından aşılsa da).

GANS ve Diğer Modeller

GAN'ları diğer model türlerinden ayırmak önemlidir:

  • Ayrımcı Modeller: Çoğu standart sınıflandırma ve regresyon modeli ( görüntü sınıflandırması veya standart nesne tespiti için kullanılanlar gibi) ayrımcıdır. Farklı sınıfları ayırmak için karar sınırlarını öğrenirler veya girdi özelliklerine dayalı olarak bir değer tahmin ederler. Buna karşılık, GAN'lar üretkendir - yeni örnekler oluşturmak için verinin altında yatan olasılık dağılımını öğrenirler.
  • Difüzyon Modelleri: Difüzyon Modelleri, son zamanlarda öne çıkan ve genellikle görüntü oluşturmada en son teknolojiye sahip sonuçlar elde eden bir başka güçlü üretici model sınıfıdır. Verilere kademeli olarak gürültü ekleyerek ve ardından bu süreci tersine çevirmeyi öğrenerek çalışırlar. Bazen daha yüksek doğrulukta görüntüler üretirken ve GAN'lardan daha istikrarlı eğitim sunarken, çıkarım sırasında hesaplama açısından daha yoğun olabilirler.

Zorluklar ve Gelişmeler

GAN'ları eğitmek, aşağıdaki gibi sorunlar nedeniyle oldukça zor olabilir:

  • Mod Çökmesi: Üreteç, eğitim verilerinin tüm çeşitliliğini yakalayamayarak yalnızca sınırlı çeşitlilikte çıktılar üretir. Mod çökmesi hakkında daha fazla okuma.
  • Eğitim Kararsızlığı: Üreteç ve Ayırıcı düzgün bir şekilde yakınsamayabilir, bu da salınımlara veya sapmaya yol açabilir. Kaybolan gradyan sorunu da ortaya çıkabilir.
  • Değerlendirme: Oluşturulan örneklerin kalitesini ve çeşitliliğini ölçmek zor olmaya devam etmektedir. Başlangıç Skoru (IS) ve Fréchet Başlangıç Mesafesi (FID) gibi ölçütler yaygın olarak kullanılmaktadır ancak sınırlamaları vardır.

Araştırmacılar, bu zorlukların üstesinden gelmek için gelişmiş kararlılık için Wasserstein GAN'ları (WGAN'lar) ve belirli özniteliklere bağlı olarak veri üretmeye izin veren Koşullu GAN'lar (cGAN'lar) gibi çok sayıda GAN çeşidi geliştirmiştir (örneğin, belirli bir rakamın görüntüsünü oluşturmak). Gibi çerçeveler PyTorch ve TensorFlowGAN'ların uygulanmasını ve eğitimini kolaylaştıran araçlar ve kütüphaneler sağlamak.

Tümünü okuyun