Çekişmeli Üretici Ağlar (GAN)

Burcu Koca
Deep Learning Türkiye
3 min readDec 15, 2020

Çekişmeli üretici ağlar, 2014 yılında Ian Goodfellow ve çalışma grubu tarafından NIPS konferansında tanıtılmıştır.

Bunun üzerine Facebook yapay zeka direktörü olan Yann LeCun şöyle çarpıcı bir açıklama yaptı:

“Derin öğrenmede ilginç gelişmeler olmakta… Bana göre bunlardan en önemlisi çekişmeli eğitim veya diğer bir deyişle GAN yani Çekişmeli Üretici Ağlardır. Önerilmekte olan bu yapı ve çeşitleri, geçtiğimiz on yılın en ilginç fikridir.”

Yann LeCun.

Öyleyse GAN nedir?

Derin öğrenme, gerçek dünyadaki veri kümelerinde karmaşık yapıların öğrenildiği bir makine öğrenmesi yaklaşımı olarak ortaya çıkmıştır. Büyük ölçekli veriler kullanılarak eğitilen derin sinir ağları, görüntülerin anlamsal anlaşılmasıyla ilgili olarak klasik görüntü işleme tekniklerinden önemli ölçüde daha iyi performans göstermiştir. Derin öğrenme, ayrıca görüntü üretiminde büyük başarı sergilemiştir. Derin ağların görüntü üretebilen ilk modeli 2014 yılında Goodfellow tarafından önerilmiştir. Çekişmeli üretken ağlar olarak adlandırılan bu üretken modeller İngilizce yazılışının baş harfleriyle “GAN” olarak anılmaktadır. Üretken modelleme, girdi verilerindeki kalıpları, orijinal veri kümesinden uygun bir şekilde çıkararak yeni örnekler oluşturabilmek için otomatik olarak keşfetmeyi ve öğrenmeyi içeren denetimsiz öğrenme türüdür. Klasik derin ağ mimarilerinden farklı olarak bir üretici (generative, G) ve bir ayırıcı (discriminator, D) olmak üzere iki farklı derin ağa sahiptir ve bu iki ağın çekişmeli olarak çalışmasıyla öğrenme işlemini gerçekleştirir.

Ayırıcı Modeli:

Bir evrişimsel sınıflandırıcıdır ve gelen görüntüleri sahte ya da gerçek olarak sınıflandırır.

Veri seti örnekleri çoğaltılır. -minibatch
Eğitime başlanır.
Ağırlıklar eğitilir.

Gerçek ve sahte görüntü arasında ayrım yapmak için geleneksel CNN mimarisi kullanılır.

3 evrişimli katman ile;

1. 64x64x3 şeklindeki orijinal görüntü, 16 filtre tarafından geçirilerek 32x32x16 şeklinde bir şekil elde edilir. Boyutu küçültmek için #AveragePooling2D kullanılır.

2. Sonraki adım 32x32x16 tensörü 16x16x32'ye dönüştürür

3. Son olarak, bir sonraki evrişim katmanından sonra, 8x8x64 şeklinde bir tensör elde edilir.

Üretici Modeli:

Üretici modeli biraz daha karmaşıktır. Üretici bunun tersini yapar — 100 boyutundaki vektörü bir görüntüye dönüştürür. Bu özünde ters evrişim adı verilen bir süreci içerir. Birlikte tensörün boyutunun her katmanda artmasına neden olurlar. Ürettiği yeni görüntüler ile Discriminator sınıflandırıcıyı yanıltmak için çabalar.

GAN eğitimini ilk kez çalıştırdığınızda, birkaç nedenden dolayı mükemmel sonuçlar alamayabilirsiniz. Her şeyden önce, öğrenme oranı önemli bir parametre gibi görünmektedir ve çok yüksek öğrenme oranı kötü sonuçlara yol açabilir. Bu nedenle, en iyi sonuçlar için bir dizi deney yapmanız gerekebilir.

Kullanım alanları nelerdir?

  1. Yeni Görüntü Veri Kümeleri
GAN örnekleri. Generative Adversarial Nets.

2. Yüksek Çözünürlükte Gerçekçi Fotoğraflar

BigGAN. Generative Adversarial Nets.

3.Çizgi Film Karakterleri

StyleGAN. Generative Adversarial Nets.

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

Image to image . Generative Adversarial Nets.

5.Metinden Resme Çeviri

Text to image . Generative Adversarial Nets.

Neden GAN bu kadar önemli?

Bu kadar popüler ve önemli olmalarının çeşitli nedenleri var:

· İkna edici derecede iyi sonuçlar veren ilk üretken algoritmalar olması.

· Güçlü denetimsiz öğrenme vaad etmesi.

· Yüksek kaliteli sentetik veri üretme olasılığı.

· Çekişmeli eğitim, MSE’nin sağladığı bulanık ortalamalar yerine daha keskin, çıktılar üretme eğilimi.

--

--