Yapay zeka temelleri
Nesnelerin Oluşturucu Karşıt Ağları (GAN) Nedir?
Oluşturucu Karşıt Ağları (GAN) öğrenilen desenlere uygun yeni veriler oluşturabilen sinir ağı mimarileri türleridir. GAN’ler insan yüzleri veya diğer nesnelerin görüntülerini oluşturmak, metin-görsel çevirisi yapmak, bir görüntüyü başka bir görüntüye dönüştürmek veya görüntülerin çözünürlüğünü artırmak (süper çözünürlük) gibi birçok uygulama için kullanılabilir. GAN’ler tamamen yeni veriler oluşturabildikleri için, birçok ileri düzey AI sistemi, uygulama ve araştırmanın başında yer alırlar. Ancak GAN’ler tam olarak nasıl çalışırlar? GAN’lerin nasıl işlediğini ve bazı temel kullanımlarını keşfedelim.
Oluşturucu Modeller ve GAN’ler Tanımlama
GAN, bir oluşturucu 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ırmak, sınıflandırmak için kullanılır. Buna karşılık, denetimsiz modeller genellikle veri dağılımını özetlemek, genellikle verilerin normal dağılımını öğrenmek için kullanılır. Veri dağılımını öğrendikleri için, bu öğrenilen dağılımdan örnekler çekebilir ve yeni veriler oluşturabilirler.
Farklı oluşturucu modeller, veri oluşturma ve olasılık dağılımlarını hesaplama yöntemleri açısından farklılık gösterir. Örneğin, Naive Bayes modeli, girdi özelliklerinin ve oluşturucu sınıfın olasılık dağılımını hesaplayarak çalışır. Naive Bayes modeli bir tahmin yaptığında, farklı değişkenlerin olasılıklarını birleştirerek en olası sınıfı hesaplar. Diğer derin öğrenme dışı oluşturucu modeller arasında Gaussian Karışım Modelleri ve Gizli Dirichlet Dağılımı (LDA) bulunur. Derin öğrenme tabanlı oluşturucu modeller arasında Kısıtlı Boltzmann Makineleri (RBMs), Variational Autoencoder’lar (VAE’ler) ve elbette GAN’ler bulunur.
Oluşturucu 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ştirilmiş iki farklı ağdan oluşur. GAN’ler iki yarıdan oluşur: bir oluşturucu model ve bir ayrımcı model, ayrıca jeneratör ve ayrımcı olarak da adlandırılır.
GAN Mimarisi
Oluşturucu Karşıt Ağları, bir jeneratör modeli ve bir ayrımcı modelin birleştirilmesinden oluşur. Jeneratör modelinin görevi, öğrenilen desenlere dayalı olarak yeni veri örnekleri oluşturmaktır. Ayrımcı modelin görevi ise görüntüleri (eğer görüntülere eğitilmişse) analiz etmek ve bu görüntülerin gerçek mi yoksa sahte mi olduğunu belirlemektir.

İki model, oyun teorik bir şekilde birbirlerine karşı eğitilir. Jeneratör modelinin amacı, ayrımcı modeli aldatan görüntüler oluşturmaktır. Buna karşılık, ayrımcı modelin amacı, jeneratör modelini yenmek ve jeneratör tarafından oluşturulan sahte görüntüleri yakalamaktır. Modellerin birbirlerine karşı olması, her iki modelin de geliştiği bir yarışa yol açar. Ayrımcı, gerçek ve sahte görüntüler hakkında geri bildirim alırken, jeneratör de ayrımcı tarafından yanlış olarak belirlenen görüntüler hakkında geri bildirim alır. Her iki model de eğitim sırasında gelişir ve jeneratörün, gerçek görüntülerden ayırt edilemeyen sahte veriler oluşturabilmesi hedeflenir.
Eğitim sırasında Gaussian dağılımı oluşturulduktan sonra, oluşturucu model kullanılabilir. Jeneratör modeli ilk olarak rastgele bir vektle beslenir, bu vektörü Gaussian 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ı, verilerin Gaussian 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 bu gizil uzay temsilini alabilir ve ondan noktalar çekebilir, bu noktalar jeneratör modeline verilebilir ve eğitim verilerine çok benzeyen yeni veriler oluşturulabilir.
Ayrımcı model, tüm eğitim alanından örneklerle beslenir, bu alan hem gerçek hem de oluşturucu model tarafından üretilen sahte veri örneklerini içerir. Ayrımcı modelin eğitimi, temel bir ikili sınıflandırma modelinin eğitimiyle aynıdır.
GAN Eğitimi Süreci
Bir görüntü oluşturma görevi için GAN eğitimi sürecine bakalım.
Öncelikle, GAN gerçek görüntüler içeren bir eğitim kümesiyle eğitilir. Bu, ayrımcı modelin oluşturucu görüntülerle gerçek görüntüler arasında ayrım yapabilmesini sağlar. Ayrıca, jeneratörün yeni veriler oluşturmak için kullanacağı veri dağılımını oluşturur.
Jeneratör, rastgele sayısal veri vektörünü alır ve Gaussian dağılımına göre dönüştürür, bir görüntü döndürür. Bu oluşturulan görüntü, eğitim kümesinden bazı gerçek görüntülerle birlikte, ayrımcı modeline beslenir. Ayrımcı model, aldığı görüntüler hakkında olasılıksal bir tahminde bulunur, 0 ile 1 arasında bir değer döndürür, burada 1 genellikle gerçek görüntüleri ve 0 sahte görüntüleri temsil eder.

Çift bir geri bildirim döngüsü vardır, zemin ayrımcı model gerçek görüntülerin gerçekliğini alırken, jeneratör modeli de performansıyla ilgili geri bildirimi alır.
Jeneratör ve ayrımcı modeller, birbirleriyle sıfır toplamlı bir oyun oynarlar. Sıfır toplamlı bir oyun, bir tarafın kazancının diğer tarafın kaybına eşit olduğu oyundur. Ayrımcı model gerçek ve sahte örnekleri ayırt edebildiğinde, ayrımcı modelin parametrelerinde hiçbir değişiklik yapılmaz. Ancak, ayrımcı model gerçek ve sahte görüntüleri ayırt edemediğinde, modelin parametrelerinde büyük güncellemeler yapılır. Jeneratör modeli için bunun tersi geçerlidir; jeneratör, ayrımcı modeli aldatamadığında cezalandırılır (parametreleri güncellenir), ancak ayrımcı modeli aldatabildiğinde parametreleri değişmez (veya ödüllendirilir).
İdeal olarak, jeneratörün performansı, ayrımcı modelin gerçek ve sahte görüntüler arasında ayrım yapamayacağı noktaya ulaşır. Bu, ayrımcı modelin her zaman gerçek ve sahte görüntüler için %50 olasılık değerleri döndüreceği anlamına gelir, yani oluşturulan görüntüler gerçek görüntülerden ayırt edilemez olmalıdır. Uygulamada, GAN’ler genellikle bu noktaya ulaşmazlar. Ancak, jeneratörün mükemmel şekilde benzer görüntüler oluşturması gerekmez, çünkü GAN’ler birçok görev için hala faydalı olabilir.
GAN Uygulamaları
GAN’ler, çoğunlukla görüntü ve görüntü bileşenlerinin oluşturulmasıyla ilgili birçok farklı uygulama sahiptir. GAN’ler genellikle gerekli görüntü verilerinin eksik veya sınırlı olduğu görevlerde, gereken verilerin oluşturulması için kullanılır. GAN’lerin bazı ortak kullanım örneklerine bakalım.
Veri Setleri için Yeni Örnekler Oluşturma
GAN’ler, basit görüntü veri setleri 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 verilerini, farklı açılarda ve yönlerde oluşturulan yeni eğitim örnekleri olarak oluşturmak için kullanılabilir.
Benzersiz İnsan Yüzleri Oluşturma

Bu fotoğraftaki kadın gerçek değildir. Görüntü, StyleGAN tarafından oluşturulmuştur. Fotoğraf: Owlsmcgee via Wikimedia Commons, Kamu Malı (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)
Yeterince eğitildiğinde, GAN’ler insan yüzlerinin çok gerçekçi görüntülerini oluşturmak için kullanılabilir. Bu oluşturulan görüntüler, yüz tanıma sistemlerini eğitmek için kullanılabilir.
Görüntüden Görüntüye Çeviri
GAN’ler görüntü çevirisi konusunda başarılıdır. GAN’ler siyah beyaz görüntüleri renklendirmek, çizimler veya çizgiler gibi görüntüleri fotoğraflara çevirmek veya görüntüleri gündüzden geceye çevirmek için kullanılabilir.
Metinden Görüntüye Çeviri
Metinden görüntüye çeviri, GAN’ler kullanılarak mümkündür. Bir görüntüyü tanımlayan metin ve eşlik eden görüntü verildiğinde, bir GAN istenen görüntüyü oluşturmak için eğitilebilir.
Görüntü Düzenleme ve Onarma
GAN’ler mevcut fotoğrafları düzenlemek için kullanılabilir. GAN’ler yağmur veya kar gibi unsurları bir görüntüden kaldırabilir, ancak eski, hasarlı veya bozulmuş görüntüleri onarmak için de kullanılabilir.
Süper Çözünürlük
Süper çözünürlük, düşük çözünürlüklü bir görüntüye daha fazla piksel ekleyerek görüntünün çözünürlüğünü artırmaktır. GAN’ler, daha yüksek çözünürlüklü bir görüntüyü oluşturmak için eğitilebilir. GAN’ler ayrıca eski, hasarlı veya bozulmuş görüntüleri onarmak için de kullanılabilir. Süper çözünürlük, görüntülerin kalitesini artırarak daha net ve detaylı bir görünüm sağlar.












