saplama Üretici Düşman Ağı (GAN) nedir? - Unite.AI
Bizimle iletişime geçin

AI 101

Üretici Düşman Ağı (GAN) nedir?

mm
Güncellenmiş on

Generatif Düşman Ağları (GAN'lar) sinir ağı mimarisi türleridir yeni veri üretebilen öğrenilen kalıplara uygundur. GAN'lar, insan yüzlerinin veya diğer nesnelerin görüntülerini oluşturmak, metinden görüntüye çeviri yapmak, bir görüntü türünü diğerine dönüştürmek ve diğer uygulamaların yanı sıra görüntülerin çözünürlüğünü (süper çözünürlük) artırmak için kullanılabilir. GAN'lar tamamen yeni veriler üretebildikleri için, birçok ileri teknoloji yapay zeka sistemi, uygulaması ve araştırmasının başında yer alırlar. Yine de GAN'lar tam olarak nasıl çalışır? GAN'ların nasıl çalıştığını keşfedelim ve birincil kullanımlarından bazılarına göz atalım.

Üretken Modelleri ve GAN'ları Tanımlama

GAN, üretici modele bir örnektir. Çoğu AI modeli iki kategoriden birine ayrılabilir: denetimli ve denetimsiz modeller. Denetimli öğrenme modelleri genellikle sınıflandırmak için farklı girdi kategorileri arasında ayrım yapmak için kullanılır. Buna karşılık, denetimsiz modeller tipik olarak veri dağıtımını özetlemek için kullanılır, genellikle öğrenme verilerin Gauss dağılımı. Bir veri setinin dağılımını öğrendikleri için bu öğrenilen dağılımdan örnekler çekip yeni veriler üretebilirler.

Farklı üretken modeller, farklı veri üretme ve olasılık dağılımlarını hesaplama yöntemlerine sahiptir. Örneğin, Saf Bayes modeli çeşitli giriş özellikleri ve üretken sınıf için bir olasılık dağılımı hesaplayarak çalışır. Naive Bayes modeli bir tahmin oluşturduğunda, farklı değişkenlerin olasılıklarını alıp bunları bir araya getirerek en olası sınıfı hesaplar. Diğer derin öğrenme olmayan üretken modeller arasında Gauss Karışım Modelleri ve Gizli Dirichlet Tahsisi (LDA) bulunur. Derin öğrenme tabanlı üretken modeller dahil Kısıtlanmış Boltzmann Makineleri (RBM'ler), Varyasyonel Otomatik Kodlayıcılar (VAE'ler)ve tabii ki GAN'lar.

Üretken Düşmanlık Ağları ilk olarak 2014 yılında Ian Goodfellow tarafından önerildi2015 yılında Alec Redford ve diğer araştırmacılar tarafından geliştirildi ve GAN'lar için standartlaştırılmış bir mimariye yol açtı. GAN'lar aslında birleştirilmiş iki farklı ağdır. GAN'lar iki yarıdan oluşur: üreteç ve ayrımcı olarak da adlandırılan bir nesil modeli ve bir ayrım modeli.

GAN Mimarisi

Üretken Düşmanlık Ağları bir üreteç modeli ve ayırıcı modelin bir araya getirilmesiyle oluşturulmuştur. Jeneratör modelinin işi, modelin eğitim verilerinden öğrendiği kalıplara dayalı olarak yeni veri örnekleri oluşturmaktır. Ayırıcı modelin işi, görüntüleri analiz etmek (görüntüler üzerinde eğitildiğini varsayarak) ve görüntülerin oluşturulmuş/sahte veya gerçek olup olmadığını belirlemektir.

İki model, oyun teorisi tarzında eğitilmiş, birbirine karşı çukurlaştırılmıştır. Jeneratör modelinin amacı, rakibi olan ayrımcı modeli aldatan görüntüler üretmektir. Bu arada, ayrımcı modelin işi, rakibi olan jeneratör modelinin üstesinden gelmek ve jeneratörün ürettiği sahte görüntüleri yakalamaktır. Modellerin karşı karşıya getirilmesi, her iki modelin de geliştiği bir silahlanma yarışıyla sonuçlanıyor. Ayırıcı, hangi görüntülerin gerçek olduğu ve hangi görüntülerin üreteç tarafından üretildiği hakkında geri bildirim alırken, oluşturucuya ayrımcı tarafından hangi görüntülerin yanlış olarak işaretlendiğine dair bilgi verilir. Her iki model de temel olarak gerçek, gerçek verilerden ayırt edilemeyen sahte veriler üretebilen bir nesil modeli eğitmek amacıyla eğitim sırasında gelişir.

Eğitim sırasında bir Gauss veri dağılımı oluşturulduktan sonra, üretken model kullanılabilir. Jeneratör modeli başlangıçta, Gauss dağılımına dayalı olarak dönüştürdüğü rastgele bir vektörle beslenir. Başka bir deyişle, vektör neslin tohumlarını oluşturur. Model eğitildiğinde, vektör uzayı, verilerin Gauss dağılımının sıkıştırılmış bir versiyonu veya temsili olacaktır. Veri dağıtımının sıkıştırılmış versiyonuna gizli alan veya gizli değişkenler denir. Daha sonra, GAN modeli gizli uzay temsilini alabilir ve ondan üretim modeline verilebilen ve eğitim verilerine oldukça benzeyen yeni veriler üretmek için kullanılabilen noktaları çizebilir.

Ayırıcı model, hem gerçek hem de üretilmiş veri örneklerinden oluşan tüm eğitim alanından örneklerle beslenir. Gerçek örnekler, eğitim veri setinde bulunurken, sahte veriler üretken model tarafından üretilir. Ayrımcı modeli eğitme süreci, temel, ikili sınıflandırma modeli eğitimi ile tamamen aynıdır.

GAN Eğitim Süreci

Tamamına bakalım Eğitim süreç varsayımsal bir görüntü oluşturma görevi için.

Başlangıç ​​olarak GAN, eğitim veri setinin bir parçası olarak orijinal, gerçek görüntüler kullanılarak eğitilir. Bu, oluşturulan görüntüler ile gerçek görüntüler arasında ayrım yapmak için ayırıcı modeli kurar. Ayrıca üreticinin yeni veri üretmek için kullanacağı veri dağıtımını da üretir.

Jeneratör, rastgele sayısal verilerin bir vektörünü alır ve bunları Gauss dağılımına göre dönüştürerek bir görüntü döndürür. Oluşturulan bu görüntüler, eğitim veri setinden bazı gerçek görüntülerin yanı sıra ayrımcı modele beslenir. Ayırıcı, aldığı görüntülerin doğası hakkında olasılıksal bir tahminde bulunacak ve 0 ile 1 arasında bir değer çıkaracaktır; burada 1, tipik olarak gerçek görüntüler ve 0, sahte bir görüntüdür.

Jeneratöre diskriminatör tarafından performansı hakkında geri bildirim verilirken, zemin ayrımcısı görüntülerin temel gerçeğini beslediğinden, oyunda bir çift geri bildirim döngüsü vardır.

Üretken ve ayrımcı modeller birbiriyle sıfır toplamlı bir oyun oynuyor. Sıfır toplamlı bir oyun, bir tarafın kazançlarının diğer tarafın pahasına geldiği bir oyundur (toplam, her iki eylemin de sıfır olmasıdır). Ayırıcı model, gerçek ve sahte örnekleri başarılı bir şekilde ayırt edebildiğinde, ayırıcının parametrelerinde herhangi bir değişiklik yapılmaz. Ancak, gerçek ve sahte görüntüleri ayırt edemediğinde modelin parametrelerinde büyük güncellemeler yapılır. Üretken model için bunun tersi doğrudur, ayrımcı modeli kandıramadığında cezalandırılır (ve parametreleri güncellenir), ancak aksi halde parametreleri değişmez (veya ödüllendirilir).

İdeal olarak, jeneratör performansını ayrımcının sahte ve gerçek görüntüler arasında ayrım yapamayacağı bir noktaya kadar geliştirebilir. Bu, ayrımcının gerçek ve sahte görüntüler için her zaman %50'lik olasılıklar oluşturacağı anlamına gelir; bu, oluşturulan görüntülerin gerçek görüntülerden ayırt edilemez olması gerektiği anlamına gelir. Uygulamada, GAN'lar tipik olarak bu noktaya ulaşmaz. Bununla birlikte, üretken modelin, GAN'ların kullanıldığı birçok görev için yararlı olmaya devam etmesi için tamamen benzer görüntüler oluşturmasına gerek yoktur.

GAN Uygulamaları

GAN'ların, çoğu görüntülerin oluşturulması ve görüntülerin bileşenleri etrafında dönen bir dizi farklı uygulaması vardır. GAN'lar, gerekli verileri üretme yöntemi olarak, gerekli görüntü verilerinin eksik veya bazı kapasitelerde sınırlı olduğu görevlerde yaygın olarak kullanılır. GAN'lar için yaygın kullanım örneklerinden bazılarını inceleyelim.

Veri Kümeleri İçin Yeni Örnekler Oluşturma

GAN'lar, basit görüntü veri kümeleri için yeni örnekler oluşturmak için kullanılabilir. Yalnızca bir avuç eğitim örneğiniz varsa ve bunlardan daha fazlasına ihtiyacınız varsa, GAN'lar bir görüntü sınıflandırıcı için yeni eğitim verileri oluşturmak için kullanılabilir ve farklı yönlerde ve açılarda yeni eğitim örnekleri oluşturur.

Eşsiz İnsan Yüzleri Yaratmak

Bu fotoğraftaki kadın yok. Görüntü StyleGAN tarafından oluşturuldu. Fotoğraf: Wikimedia Commons üzerinden Owlsmcgee, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Yeterince eğitildiğinde, GAN'lar şu amaçlarla kullanılabilir: insan yüzlerinin son derece gerçekçi görüntülerini oluşturur. Oluşturulan bu görüntüler, yüz tanıma sistemlerini eğitmeye yardımcı olmak için kullanılabilir.

Görüntüden Görüntüye Çeviri

Gans görüntü çevirisinde mükemmel. GAN'lar, siyah beyaz görüntüleri renklendirmek, eskizleri veya çizimleri fotoğrafik görüntülere çevirmek veya görüntüleri gündüzden geceye dönüştürmek için kullanılabilir.

Metinden Resme Çeviri

Metinden Resme çeviri: GAN'ların kullanımıyla mümkün. Bir görüntüyü ve eşlik eden görüntüyü açıklayan bir metin sağlandığında, bir GAN şunları yapabilir: yeni bir görüntü oluşturmak için eğitilmiş olmak istenen görüntünün açıklaması sağlandığında.

Görüntüleri Düzenleme ve Onarma

GAN'lar mevcut fotoğrafları düzenlemek için kullanılabilir. GAN'lar yağmur veya kar gibi unsurları kaldırın bir görüntüden, ancak bunlar aynı zamanda eski, hasarlı görüntüleri veya bozuk görüntüleri onarın. 

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

Süper çözünürlük, düşük çözünürlüklü bir görüntü alıp görüntüye daha fazla piksel ekleyerek bu görüntünün çözünürlüğünü artırma işlemidir. GAN'lar bir görüntü almak için eğitilebilir ve bu görüntünün daha yüksek çözünürlüklü bir sürümünü oluşturun. 

Uzmanlık alanlarına sahip blogcu ve programcı Makine öğrenme ve Derin Öğrenme konular. Daniel, başkalarının yapay zekanın gücünü toplumsal fayda için kullanmasına yardım etmeyi umuyor.