Yapay zekanın en heyecan verici ve yenilikçi alanlarından biri olan Çekişmeli Üretici Ağ (Generative Adversarial Networks, GAN), iki sinir ağı modelinin birbirine karşı rekabet etmesine dayanan benzersiz bir öğrenme yöntemidir. Bu modellerden biri "üreteç" (generator) diğeri ise "ayrımcı" (discriminator) olarak adlandırılır. Üreteç, gerçekçi veri üretmeye çalışırken, ayrımcı ise bu verinin sahte mi yoksa gerçek mi olduğunu ayırt etmeye çalışır. Bu rekabetçi süreç sayesinde GAN'lar, görüntüler, sesler ve daha fazlası gibi son derece gerçekçi çıktılar üretebilir.
2014 yılında Ian Goodfellow ve ekibi tarafından geliştirilen bu teknoloji, yapay zeka ve makine öğrenimi dünyasında adeta bir devrim meydana getirmiştir. Şirketimiz de bu alandaki en yenilikçi yaklaşımlardan biri olan GAN mimarisini kullanarak projelerimizi bir adım öne taşımaktadır.
Bu yazımızda, GAN'ın ne olduğunu, nasıl çalıştığını ve neden bu kadar önemli olduğunu keşfedeceğiz. GAN teknolojisinin sunduğu bu heyecan verici dünyaya bir adım atarken, sizlere de farklı bir dünyanın kapılarını aralamayı amaçlıyoruz.
Şekil-1 GAN uygulama alanları
GAN Nedir?
Çekişmeli Üretici Ağ (GAN), bir derin öğrenme mimarisidir. Bu mimari, belirli bir eğitim veri kümesinden daha özgün yeni veriler üretmek amacıyla iki sinir ağını birbirleriyle rekabet edecek şekilde eğitir. Örneğin, mevcut bir görüntü veritabanından yeni görüntüler veya bir şarkı veritabanından orijinal müzik üretebilirsiniz. GAN'lere "çekişmeli" adı verilmesinin nedeni, iki farklı ağı eğitip birbiriyle yarıştırmasıdır. Ağlardan biri, giriş verileri örneği alarak bunu olabildiğince değiştirerek yeni veriler üretir. Diğer ağ ise, üretilen veri çıktısının orijinal veri kümesine ait olup olmadığını tahmin etmeye çalışır. Başka bir deyişle, tahminde bulunan ağ, üretilen verilerin sahte mi yoksa gerçek mi olduğunu belirler. Sistem, tahminde bulunan ağın sahte ile orijinal veriyi ayırt edemez hale gelene kadar sahte veri değerlerinin daha yeni ve geliştirilmiş sürümlerini üretir.
GAN'ların Temel Yapısı?
GAN'ların temel bileşenleri iki ana bileşenden oluşur: Generator (Üreteç) ve Discriminator (Ayrımcı). Üreteç, rastgele girdi verilerini alarak bu verileri gerçekçi görseller veya veriler üretmek amacıyla işler. Ayrımcı ise hem gerçek verileri hem de üreteç tarafından üretilen sahte verileri alır ve bu verilerin gerçek mi yoksa sahte mi olduğunu ayırt etmeye çalışır. Bu iki bileşen, birbirleriyle etkileşime girerek ve sürekli olarak kendilerini geliştirerek çalışır. Üreteç, ayrımcının sahte verileri doğru bir şekilde tespit edememesi için daha iyi ve daha gerçekçi veriler üretmeye çalışırken, ayrımcı da bu sahte verileri daha iyi tespit edebilmek için kendini geliştirir. Bu rekabetçi süreç, her iki bileşenin de zamanla daha yetenekli hale gelmesini sağlar.
Şekil-2 Temel GAN Mimarisi
GAN'ların Çalışma Prensibi?
Çekişmeli üretici ağ (GAN), iki derin sinir ağından oluşan bir sistemdir. Bir taraf üretici ağ, diğer taraf ise ayırıcı ağdır. Bu sistem, üretici ağın yeni veri üretmeye çalıştığı ve ayırıcı ağın üretilen verinin gerçek mi yoksa sahte mi olduğunu belirlemeye çalıştığı bir çekişmeli senaryo üzerine kuruludur.
GAN'ın çalışma prensibi aşağıdaki adımlarla özetlenebilir:
1. Üretici sinir ağı, eğitim setini analiz ederek veri özniteliklerini tanımlar.
2. Ayırıcı sinir ağı, ilk eğitim verilerini analiz ederek öznitelikler arasında bağımsız olarak ayrım yapar.
3. Üretici ağ, belirli özniteliklere gürültü ekleyerek bazı veri özniteliklerini değiştirir.
4. Değiştirilmiş verileri ayırıcı ağa ileterek ayırıcı ağın oluşturulan çıktının orijinal veri kümesine ait olma olasılığını hesaplamasını sağlar.
5. Ayırıcı ağ, bir sonraki döngüde üretici ağa kılavuzluk yaparak gürültü vektörünün rastgeleleştirilmesini azaltmaya çalışır.
6. Üretici ağ, ayırıcı ağın hata olasılığını maksimize etmeye çalışırken, ayırıcı ağ ise hata olasılığını minimize etmeye çalışır.
7. Eğitim iterasyonları boyunca, hem üretici ağ hem de ayırıcı ağ sürekli olarak değişime uğrar ve çekişmeli bir şekilde gelişir.
8. Eğitim süreci dengeye ulaştığında, ayırıcı ağ artık sentezlenmiş verileri tanıyamaz hale gelir ve eğitim sona erer.
GAN Türleri Nelerdir?
1. Standard GAN (SGAN): İlk olarak 2014 yılında Ian Goodfellow ve arkadaşları tarafından tanıtılan temel GAN yapısı. Üretici ve ayırıcı ağların temel çekişmeli yapıya sahip olduğu versiyonudur.
2. Conditional GAN (CGAN): Şartlı GAN, GAN'ın üretici ve ayırıcı ağlarını, belirli bir koşula (genellikle etiket veya sınıf bilgisi) göre eğittiğimiz versiyonudur. Bu yöntem, belirli özelliklere sahip örneklerin sentezlenmesinde veya dönüşümünde kullanışlıdır.
3. Deep Convolutional GAN (DCGAN): Derin evrişimli GAN, evrişimli sinir ağları (CNN'ler) ile güçlendirilmiş bir GAN türüdür. Görüntü verileri için daha stabil ve kaliteli sonuçlar üretmeye odaklanır.
4. Wasserstein GAN (WGAN): WGAN, GAN'ın eğitim sürecinde yaşanan bazı problemleri çözmek için geliştirilmiştir. Eğitim stabilitesini artırmak ve gradient sorunlarını önlemek için Wasserstein mesafe ölçüsü kullanılır.
5. Progressive GAN: İlk olarak NVIDIA tarafından önerilen bu GAN türü, aşamalı olarak yüksek çözünürlüklü görüntüler üretmek için eğitilir. Başlangıçta düşük çözünürlükte başlayıp zamanla yüksek çözünürlüklü görüntüler elde etmek için ağın aşamalı olarak büyütülmesini içerir.
6. StyleGAN ve StyleGAN2: NVIDIA tarafından geliştirilen bu GAN türleri, yüksek kaliteli ve yüksek çözünürlüklü görüntü sentezi için stil transferi tekniklerini kullanır. Özellikle yüz ve insan görüntüleri için çok başarılı sonuçlar verir.
7. CycleGAN: Döngüsel GAN, farklı alanlar arasında çeviri yapmak için kullanılır. Örneğin, bir tarzdan başka bir tarza resim veya video dönüşümü için kullanılabilir.
8. Self-Attention GAN (SAGAN): Kendi dikkat GAN'ı, dikkat mekanizmalarını kullanarak uzak bağlantıları ele alır ve daha büyük ve daha karmaşık veri kümelerinde daha iyi sonuçlar sağlar.
Şekil-3 Temel GAN türleri
Bu yazımızda Style GAN türünden bahsedeceğiz.
Style GAN nedir?
Style GAN (Stil Uyumlu Üretici Ağ), NVIDIA araştırmacıları tarafından geliştirilmiş bir GAN türüdür. Bu model, geleneksel GAN'lardan farklı olarak, sentezlenen görüntülerin stil ve içerik kontrolünü ayrı ayrı yönetebilme yeteneği ile öne çıkar. Üretici ağ, girdi olarak rastgele bir vektör ve stil vektörlerini (latent space) alır. Stil vektörleri, oluşturulan görüntünün renk, dokular ve diğer görsel özellikleri üzerinde doğrudan kontrol sağlar. Bu sayede, Style GAN hem görsel kaliteyi artırır hem de daha gerçekçi ve çeşitli görüntüler üretme yeteneği kazandırır.
Şekil-4 Style GAN ile üretilmiş fotoğraflar
Latent Space Nedir ve Style GAN'da Nasıl Kullanılır?
Latent Space, görüntünün özelliklerini temsil eden soyut bir uzaydır. Style GAN'da, bu uzay rastgele vektörler (latent vector) ile temsil edilir. Bu vektörler, görüntünün stil veya özelliklerini belirlemek için kullanılır. Örneğin, bir latent vektör ile saç rengi, yüz ifadesi veya arka plan gibi özellikler kontrol edilebilir.
Mapping Network ve Synthesis Network Yapısı
Style GAN'da iki ana ağ yapısı bulunur:
1. Mapping Network (Eşleme Ağı): Bu ağ, rastgele latent vektörleri alır ve onları görüntü sentezi için uygun bir uzaya dönüştürür. Mapping network, latent vektörlerin daha düzenli bir şekilde dağılmasını sağlayarak, görüntü sentezinin daha tutarlı ve kontrol edilebilir olmasını sağlar.
2. Synthesis Network (Sentez Ağı): Bu ağ, Mapping Network tarafından üretilen latent vektörleri alır ve bu vektörleri gerçekçi görüntülere dönüştürür. Synthesis network, her katmanda görüntünün detaylarını ve yapısal özelliklerini iyileştirir, böylece sonuç olarak daha gerçekçi ve detaylı görüntüler elde edilir.
Bu yapılar, Style GAN'ın genişletilmesi ve optimize edilmesi için temel oluşturur. Geliştiriciler, bu yapıları kullanarak özgün ve yenilikçi görseller oluşturabilirler, bu da Style GAN'ı sanat, moda ve dijital içerik oluşturma gibi çeşitli alanlarda kullanılabilir hale getirir.
GAN ve Style GAN Uygulama Alanları
1. Sanat ve Yenilikçi Endüstriler: Style GAN, sanatçıların yenilikçi dijital sanat eserleri oluşturmalarına olanak tanır, yüksek çözünürlüklü ve gerçekçi görseller elde etmelerini sağlar.
2. Moda Tasarımı: Moda endüstrisinde, yeni desenler, kumaş dokuları ve giysi stilleri oluşturmak için GAN'lar ve Style GAN kullanılır. Bu yöntem, moda tasarımcılarının inovasyon kabiliyetlerini sınırlamadan yeni trendler ve koleksiyonlar geliştirmelerine yardımcı olur.
3. Oyun Geliştirme: GAN teknolojileri, oyun geliştiricilerinin oyun dünyalarını ve karakterleri oluşturmasına yardımcı olur, daha gerçekçi ve çeşitli görseller sunmalarını sağlar.
4. Tıp ve Sağlık:
-
- Medikal Görüntüleme: GAN'lar, MRI ve CT taramaları gibi medikal görüntüleme tekniklerinde kullanılarak, görüntüleri iyileştirebilir veya yeniden oluşturabilir, doktorların doğru teşhis koymasına yardımcı olabilir.
- Cerrahi Simülasyonlar: GAN'lar, karmaşık cerrahi prosedürlerin simülasyonları için kullanılabilir, cerrahi eğitimde pratik yapma imkanı sunar.
5. Makine ve Otomotiv Endüstrisi: GAN'lar, ürün tasarımı ve optimizasyon süreçlerinde kullanılarak, yeni parça ve bileşenlerin tasarımını iyileştirebilir, makine ve otomotiv endüstrilerindeki inovasyon süreçlerine katkıda bulunabilir.
6. Eğitim ve Simülasyon: GAN'lar, eğitim simülasyonları ve sanal laboratuvar ortamları oluşturmak için kullanılabilir, öğrencilerin pratik yapmalarını sağlar, teorik bilgilerini uygulamaya dökmelerine yardımcı olur.
Referanslar
1. https://www.innodeed.com/wp-content/uploads/2022/09/GAN-1170x640.png
2. https://cdn1.ntv.com.tr/gorsel/IKHMHEUbe0et1mQm8yWUUg.jpg?width=1000&mode=both&scale=both&v=1545216985506
3. Evaluating Synthetic Medical Images Using Artificial Intelligence with the GAN Algorithm. https://www.mdpi.com/2213968
4. https://towardsdatascience.com/generative-adversarial-networks-gans-a-beginners-guide-f37c9f3b7817
5. Ten Years of Generative Adversarial Nets (GANs): A survey of the state-of-the-art. https://www.researchgate.net/publication/373551906_Ten_Years_of_Generative_Adversarial_Nets_GANs_A_survey_of_the_state-of-the-art.
6. GAN nedir? - Çekişmeli Üretici Ağlara Ayrıntılı Bakış - AWS (amazon.com)
7. Çekişmeli Üretici Ağlar (GAN). Çekişmeli üretici ağlar, 2014 yılında… | by Burcu Koca | Deep Learning Türkiye | Medium
8. 942990 (dergipark.org.tr)