Connect with us

Yapay Zekâ 101

Nesne Olarak Oluşturulan Karşıt Ağ (GAN) Nedir?

mm

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 ileri teknoloji AI sistemi, uygulama ve araştırmanın başında gelmektedirler. Ancak GAN’ler nasıl çalışır? GAN’lerin nasıl işlediğine ve bazı temel kullanımlarına göz atalım.

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, genellikle veri için bir Gaussian dağılımı öğrenmek için kullanılır. 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), Variational Autoencoders (VAEs) 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 dayanarak yeni veri örnekleri oluşturmaktır. Ayırt edici modelin görevi, resimleri (eğer resimlerle eğitildiyse) 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ı, rakibi olan ayırt edici modeli aldatmak için resimler oluşturmaktır. Buna karşılık, ayırt edici modelin görevi, rakibi olan oluşturucu modeli yenmek ve oluşturucunun ürettiği sahte resimleri yakalamaktır. Modellerin birbirlerine karşı olması, her iki modelin de iyileştiği bir silah yarışına yol açar. Ayırt edici model, hangi resimlerin gerçek ve hangi resimlerin oluşturucu tarafından üretildiği hakkında geri bildirim alır, mentre oluşturucu, ayırt edici tarafından yanlış olarak işaretlenen resimleri hakkında bilgi alır. Her iki model de eğitim sırasında iyileşir, oluşturucu modelin gerçek verilerden ayırt edilemeyen sahte veri oluşturabilmesi hedeflenerek eğitilir.

Eğitim sırasında oluşturulan Gaussian dağılımı kullanılarak, oluşturucu model kullanılabilir. Oluşturucu model ilk olarak rastgele bir vektörle beslenir, bu vektör Gaussian dağılımına göre dönüştürülü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 temsilinden noktalar çekebilir ve bunları oluşturucu modelle kullanabilir, böylece eğitim verisine çok benzeyen yeni veri oluşturabilir.

Ayırt edici model, tüm eğitim alanından örneklerle beslenir, bu da gerçek ve oluşturulan veri örneklerinin bir karışımından oluşur. Gerçek örnekler, eğitim veri kümesinde bulunur, mentre sahte veri oluşturucu model tarafından üretilir. Ayırt edici 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 tüm eğitim sürecine göz atalı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 Gaussian dağılımına göre dönüştürür, bir resim döndürür. Oluşturulan bu resim, eğitim veri kümesinden bazı gerçek resimlerle birlikte ayırt edici modele beslenir. Ayırt edici, aldığı resimlerin doğası hakkında olasılıksal bir tahminde bulunur, 0 ile 1 arasında bir değer çıktısı verir, burada 1 genellikle gerçek resimleri ve 0 sahte resimleri temsil eder.

İki model birbirlerine karşı bir oyun oynar. Oluşturucu modelin amacı, rakibi olan ayırt edici modeli aldatmak için resimler oluşturmaktır. Buna karşılık, ayırt edici modelin görevi, rakibi olan oluşturucu modeli yenmek ve oluşturucunun ürettiği sahte resimleri yakalamaktır. Modellerin birbirlerine karşı olması, her iki modelin de iyileştiği bir silah yarışına yol açar. Ayırt edici model, hangi resimlerin gerçek ve hangi resimlerin oluşturucu tarafından üretildiği hakkında geri bildirim alır, mentre oluşturucu, ayırt edici tarafından yanlış olarak işaretlenen resimleri hakkında bilgi alır. Her iki model de eğitim sırasında iyileşir, oluşturucu modelin gerçek verilerden ayırt edilemeyen sahte veri oluşturabilmesi hedeflenerek eğitilir.

İdeal olarak, oluşturucu modeli gerçek resimlerle ayırt edilemeyen sahte veri oluşturmak için yeterli düzeyde iyileşir. Bu, ayırt edici modelin her zaman gerçek ve sahte resimlere %50 olasılık vereceği anlamına gelir, yani 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 vẫn kullanışlı olması için mükemmel benzerlikte resimler oluşturması gerekmez.

GAN Uygulamaları

GAN’ler principalmente görüntü ve görüntü bileşenleri oluşturma görevlerinde kullanılır. GAN’ler genellikle gerekli görüntü verisi eksik veya sınırlı olduğunda, gerekli veriyi oluşturmak için kullanılır. GAN’lerin bazı ortak kullanım örneklerine göz atalım.

Veri Setleri İç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 verisi oluşturmak için kullanılabilir, bu da bir görüntü 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ğil. Resim, StyleGAN tarafından oluşturuldu. Foto: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Yeterince eğitildiğinde, GAN’ler çok gerçekçi insan yüzü resimleri oluşturabilir. Bu oluşturulan resimler, 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 için uygundur. GAN’ler siyah beyaz resimleri renklendirebilir, çizimler veya çizimleri fotoğraflara çevirebilir veya resimleri gündüzden geceye çevirebilir.

Metinden Görüntüye Çeviri

Metinden görüntüye çeviri GAN’ler kullanılarak mümkündür. Bir resmin açıklaması ve eşlik eden resim verildiğinde, bir GAN istenen bir resim 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 resimden kaldırabilir, ayrıca eski, hasarlı veya bozulmuş resimleri onarmak için kullanılabilir.

Süper Çözünürlük

Süper çözünürlük, bir düşük çözünürlüklü görüntüye daha fazla piksel ekleyerek görüntünün çözünürlüğünü artırma işlemidir. GAN’ler bir görüntüyü yüksek çözünürlüklü bir görüntüye dönüştürmek için eğitilebilir.

Blog yazarı ve programcı, Machine Learning ve Deep Learning konularında uzmanlık sahibi. Daniel, başkalarının AI'nin gücünü sosyal fayda için kullanmasına yardımcı olmak umudu taşıyor.