Yapay Zekâ 101
Nesne Olarak Oluşturulan Karşıt Ağ (GAN) Nedir?

Oluşturulan Karşıt Ağlar (GAN’ler) öğrenilen kalıplara uygun yeni veri oluşturabilen sinir ağı mimarileri türleridir. GAN’ler insan yüzleri veya diğer nesnelerin resimlerini oluşturmak, metin-resim çevirisi yapmak, bir resim türünü başka bir resim türüne dönüştürmek ve resimlerin çözünürlüğünü artırmak (süper çözünürlük) gibi birçok uygulama için kullanılabilir. GAN’ler tamamen yeni veri oluşturabildikleri için birçok öncü AI sistemi, uygulama ve araştırmanın başında gelmektedirler. Ancak GAN’ler tam olarak nasıl çalışır? GAN’lerin nasıl işlediğini ve bazı temel kullanım alanlarını keşfedelim.
Oluşturulan Modeller ve GAN’ler Tanımlama
Bir GAN, oluşturulan bir model örneğidir. Çoğu AI modeli iki kategoriye ayrılabilir: denetimli ve denetimsiz modeller. Denetimli öğrenme modelleri genellikle farklı girdi kategorileri arasında ayırt etmek, sınıflandırmak için kullanılır. Buna karşılık, denetimsiz modeller genellikle veri dağılımını özetlemek, souvent öğrenmek için kullanılır veri dağılımının bir Gauss dağılımı. Veri dağılımını öğrendikleri için bu öğrenilen dağılımdan örnekler çekebilir ve yeni veri oluşturabilirler.
Farklı oluşturulan modeller farklı veri oluşturma yöntemleri ve olasılık dağılımlarını hesaplama yöntemlerine sahiptir. Örneğin, Naive Bayes modeli girdi özelliklerinin ve oluşturulan sınıfın olasılık dağılımını hesaplayarak çalışır. Naive Bayes modeli bir tahmin yaptığı zaman, farklı değişkenlerin olasılığını birleştirerek en olası sınıfı hesaplar. Diğer derin öğrenme olmayan oluşturulan modeller Gaussian Karışım Modelleri ve Latent Dirichlet Atama (LDA) içerir. Derin öğrenme tabanlı oluşturulan modeller Kısıtlı Boltzmann Makineleri (RBMs), Değişkenlik Otokodlayıcılar (VAE’ler) ve elbette GAN’leri içerir.
Oluşturulan Karşıt Ağlar ilk olarak 2014 yılında Ian Goodfellow tarafından önerildi ve 2015 yılında Alec Redford ve diğer araştırmacılar tarafından geliştirildi, bu da GAN’ler için standardize bir mimariye yol açtı. GAN’ler aslında birleştirilen iki farklı ağdan oluşur. GAN’ler iki parçadan oluşur: bir oluşturma modeli ve bir ayırt etme modeli, ayrıca oluşturucu ve ayırt edici olarak da adlandırılır.
GAN Mimarisi
Oluşturulan Karşıt Ağlar bir oluşturucu model ve ayırt edici model birleştirilerek oluşturulur. Oluşturucu modelin görevi, modelin eğitim verisinden öğrendiği kalıplara göre yeni veri örnekleri oluşturmaktır. Ayırt edici modelin görevi, resimleri (eğer resimlere eğitim verilmişse) analiz etmek ve resimlerin oluşturulan/sahte veya gerçek olup olmadığını belirlemektir.

İki model birbirlerine karşı oyun teorik bir şekilde eğitilir. Oluşturucu modelin amacı, düşmanını – ayırt edici modeli – aldatmak için resimler oluşturmaktır. Buna karşılık, ayırt edici modelin görevi, düşmanını, oluşturucu modeli, yenmek ve oluşturucunun ürettiği sahte resimleri yakalamaktır. Modellerin birbirlerine karşı olması, her iki modelin de geliştiği bir yarışmaya yol açar. Ayırt edici, hangi resimlerin gerçek ve hangi resimlerin oluşturucu tarafından üretildiğine ilişkin geri bildirim alır, mientras oluşturucu, ayırt edici tarafından yanlış olarak işaretlenen resimlerine ilişkin bilgi alır. Her iki model de eğitim sırasında gelişir, oluşturucu modelin gerçek, gerçek verilerden ayırt edilemeyen sahte veri oluşturabilmesi amacıyla.
Eğitim sırasında Gauss dağılımı oluşturulduktan sonra, oluşturucu model kullanılabilir. Oluşturucu model ilk olarak rastgele bir vektörle beslenir, bu vektörü Gauss dağılımına göre dönüştürür. Diğer bir deyişle, vektör oluşturmayı başlatır. Model eğitildiğinde, vektör uzayı veri dağılımının sıkıştırılmış bir sürümü veya temsili olacaktır. Veri dağılımının sıkıştırılmış sürümü gizil uzay veya gizil değişkenler olarak adlandırılır. Daha sonra, GAN modeli gizil uzay temsilini alabilir ve bu temsilin üzerinden noktalar çekebilir, bu noktalar oluşturucu modeline verilebilir ve eğitim verisine çok benzer yeni veri oluşturmak için kullanılabilir.
Ayırt edici model, tüm eğitim alanından örneklerle beslenir, bu alan hem gerçek hem de oluşturulan veri örneklerini içerir. Gerçek örnekler, eğitim veri kümesinde bulunurken, sahte veriler oluşturucu model tarafından üretilir. Ayırt edici modelin eğitimi, temel bir ikili sınıflandırma modeli eğitimiyle aynıdır.
GAN Eğitim Süreci
Bir görüntü oluşturma görevi için tüm eğitim sürecine bakalım.
İlk olarak, GAN gerçek, gerçek resimlerle eğitilir, bu da ayırt edici modeli oluşturulan resimlerle gerçek resimleri ayırt etmeye ayarlar. Ayrıca, oluşturucunun yeni veri oluşturmak için kullanacağı veri dağılımını üretir.
Oluşturucu, rastgele sayısal veri vektörünü alır ve Gauss dağılımına göre dönüştürür, bir resim döndürür. Bu oluşturulan resim, eğitim veri kümesinden bazı gerçek resimlerle birlikte ayırt edici modeline verilir. Ayırt edici, aldığı resimlerin doğası hakkında olasılıksal bir tahminde bulunur, 0 ile 1 arasında bir değer verir, burada 1 genellikle gerçek resimleri ve 0 sahte resimleri temsil eder.

Çift bir geri bildirim döngüsü vardır, zemin ayırt edici model gerçek resimlerin gerçekliğine ilişkin geri bildirim alırken, oluşturucu model ayırt edici tarafından performansına ilişkin geri bildirim alır.
Oluşturucu ve ayırt edici modeller birbirleriyle bir sıfır toplamlı oyun oynarlar. Bir sıfır toplamlı oyun, bir tarafın kazancının diğer tarafın kaybına eşit olduğu oyundur (her iki action’ın toplamı sıfırdır). Ayırt edici model gerçek ve sahte örnekleri başarılı bir şekilde ayırt edebildiğinde, ayırt edici modelin parametrelerinde hiçbir değişiklik yapılmaz. Ancak, ayırt edici model gerçek ve sahte resimleri ayırt edemezse, modelin parametrelerinde büyük güncellemeler yapılır. Oluşturucu model için tersi doğrudur, oluşturucu model ayırt edici modeli aldatamadığında cezalandırılır (ve parametreleri güncellenir), ancak otherwise parametreleri değişmez (veya ödüllendirilir).
İdeal olarak, oluşturucu model performansı, ayırt edici modelin sahte ve gerçek resimleri ayırt edemeyeceği bir noktaya kadar geliştirilir. Bu, ayırt edici modelin gerçek ve sahte resimlere her zaman %50 olasılık vereceği anlamına gelir, bu da oluşturulan resimlerin gerçek resimlerden ayırt edilemeyeceği anlamına gelir. Uygulamada, GAN’ler genellikle bu noktaya ulaşmazlar. Ancak, oluşturucu modelin GAN’lerin kullanıldığı birçok görev için hala faydalı olabilmesi için resimleri mükemmel bir şekilde benzer yapması gerekmez.
GAN Uygulamaları
GAN’ler resim ve resim bileşenlerinin oluşturulmasıyla ilgili birçok farklı uygulama sahiptir. GAN’ler genellikle gerekli resim verisi eksik veya sınırlı olduğunda, gerekli verilerin oluşturulması için bir yöntem olarak kullanılır. GAN’lerin bazı ortak kullanım örneklerine bakalım.
Veri Kümeleri için Yeni Örnekler Oluşturma
GAN’ler basit resim veri kümeleri için yeni örnekler oluşturmak için kullanılabilir. Sadece birkaç eğitim örneğiniz varsa ve daha fazlasına ihtiyacınız varsa, GAN’ler yeni eğitim verisi oluşturmak için kullanılabilir, bu da bir resim sınıflandırıcı için farklı açılarda ve yönlerde yeni eğitim örnekleri oluşturabilir.
Benzersiz İnsan Yüzleri Oluşturma

Bu fotoğraftaki kadın gerçek değildir. Resim, StyleGAN tarafından oluşturulmuştur. Foto: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)
Yeterince eğitildiğinde, GAN’ler insan yüzlerinin çok gerçekçi resimlerini oluşturabilir. Oluşturulan bu resimler, yüz tanıma sistemlerini eğitmek için kullanılabilir.
Resim-Resim Çevirisi
GAN’ler resim çevirisi konusunda uzmanlaşmıştır. GAN’ler siyah beyaz resimleri renklendirmek, çizimler veya çizimleri fotoğraflara çevirmek veya resimleri gündüzden geceye çevirmek için kullanılabilir.
Metin-Resim Çevirisi
Metin-resim çevirisi GAN’ler kullanılarak mümkündür. Bir resmin açıklaması ve eşlik eden resim verildiğinde, bir GAN istenen resmin açıklaması verildiğinde yeni bir resim oluşturmak için eğitilebilir.
Resim Düzenleme ve Onarma
GAN’ler mevcut fotoğrafları düzenlemek için kullanılabilir. GAN’ler yağmur veya kar gibi unsurları bir resimden kaldırabilir, ancak ayrıca eski, hasarlı resimleri veya bozulmuş resimleri onarmak için de kullanılabilir.
Süper Çözünürlük
Süper çözünürlük, bir resme daha fazla piksel ekleyerek resmin çözünürlüğünü artırmaktır. GAN’ler daha yüksek çözünürlüklü bir resim oluşturmak için eğitilebilir.












