Generative Adversarial Networks (GANs) Çekişmeli Üretici Ağlar

Emre Çetiner
5 min readFeb 22, 2022

Son zamanlarda sosyal medyada oldukça gerçekçi ve insani mimiklere sahip yapay zeka simaları görmekteyiz. Bunlardan en bilinen örneğini aşağıda paylaştım, Morgan Freeman ‘ın gerçek olmayan bu konuşması ….. Yazıyı okumadan önce izlemenizi ve üzerinde düşünmenizi öneririm…

Bu yazımda bu kadar gerçekçi bir yapay zeka yaratmanın arkasındaki algoritmayı ,Generative Adversarial Networks (GAN) yani Türkçe ‘de literatüre Çekişmeli Üretici Ağlar olarak geçen algoritma yapısından çok teknik detaya girmeden bahsetmeye çalışacağım.

Peki bu GANs nedir? 🤔

GAN , bir karalamayı gerçek resme, bilinen bir tabloyu gerçek bir manzaraya, basit ve donuk bir vücut hareketlerini oldukça gerçekçi bir yapıya çevirebilen bir algoritmadır.

Biraz da teknik anlamda incelemeye devam edelim.

(GAN) Çekişmeli üretici ağlar iki farklı ağ algoritmasından oluşur. Bu algoritmalardan birincisi üretici olan ağ (Generator), diğeri se ayırt edici(Discriminator) ağdır. Üretici ağ adından da anlaşılacağı üzere, örnek bir data kümesinden yeni örneklemler oluştururken, ayırt edici ağ ise kaynak veriseti ile üretilen kümelere bakarak True ( Doğru !) ve False ( Yanlış !) örnekleri ayırt etmeye çalışır. Rekabet eden iki farklı algoritmadan oluştuğu için de bu algoritma rekabetçi ya da çekişmeli üretici ağlar olarak adlandırılmıştır.

Generator,Üretici ağ sürekli yeni örneklem oluşturmayı öğrenirken, Discriminator,ayırt edici ağ ise input olarak kabul edilen veri seti ile üretilen verileri ayırt etmeyi öğrenir. Öğrenme sürecinde ise rekabetçi bu yapı kuralsız olarak öğrenmektedir yani başka bir deyişle öğretmensiz bir sınıfta öğrencilerin kendi kendine öğrenmesi gibi de düşünebilirsiniz👩‍🏫…

Bu öğrenme metodu Gözetimsiz Öğrenme (Unsupervised Learning) olarak adlandırılmaktadır. Burada şöyle düşünebilirsiniz, yukarıda da dediğim gibi öğretmensiz bir sınıfta öğrencilerin kendi aralarında grup olması gibidir. Öğrenciler anlaştıkları , kişilerle grup kurarak birlikte zaman geçirebilirler. Aslında unsupervised learning ‘de en en basit haliyle böyle özetlenebilir. Benzer özelliklere sahip input ‘lar gruplaşırlar ( Tabii en basit açıklamayla böyle aslında çok detaylı ve farklı çıktı/girdi yapıları olan unsupervised learning algoritmaları mevcut 🧠)

Biraz daha teknik olarak Unsupervised learning ‘den bahsetmek gerekirse;

IBM ‘in de tanımladığı şekilde ; Denetimsiz makine öğrenimi olarak da bilinen denetimsiz öğrenme, etiketlenmemiş veri kümelerini analiz etmek ve kümelemek için makine öğrenimi algoritmalarını kullanır. Bu algoritmalar, insan müdahalesine ihtiyaç duymadan gizli kalıpları veya veri gruplamalarını keşfeder. Bilgilerdeki benzerlikleri ve farklılıkları keşfetme yeteneği, onu keşifsel veri analizi, çapraz satış stratejileri, müşteri segmentasyonu ve görüntü tanıma için ideal çözüm haline getirir.

Konumuza dönersek ;

Yukarıdaki tanım biraz karmaşık gelmiş olabilir 😲 Daha özet şekilde anlatmak gerekirse ;

Üretici ağ örneklem kümesi dağılımına uygun yeni resimler üretirken ayırt edici ağ ise üretilen resimleri farklılaştırmaya çalışır. İnput olarak kullanılan resim gürültü sayesinde farklı bir olasılık dağılımı ile eşleştirerek ‘yeni’ resimler /görüntüler oluşturmaya çalışır. Aslında bunu pixel seviyesinde katmanlarına farklı gürültü değerleri atayarak gerçekleştirmeye çalışır.

Yukarıdaki örnekte “Generator ( Yaratıcı) ve Discriminator (Ayırt edici) katmanlarını görebilirsiniz.

Discriminator

Gerçek ve sahte görüntü arasında farkı anlamak üzere tasarlanmıştır ve gelenekler CNN mimarisini kullanır. CNN mimarisi Türkçe ‘de literatüre (evrişim olarak geçmiştir.)

Peki bu CNN algoritması nedir ?

Çok basit bir anlatımla aslında verilen görüntüyü farklı katmanlardan geçirerek boyut ayarlaması yapan ve daha sonrasında bu resimleri anlamamızı sağlayan algoritmadır.

Facebook’a bir resim yüklediğinizde size “Emre ‘yi etiketlemek istermisiniz?” şeklinde bir öneri getirir. Ya da Google ‘da görsel aramala yaptığımızda bize bazı sonuçlar getirir işte tüm bu işlemleri yapan algoritmaların temelinde CNN vardır. Uzmanlık gerektiren bir konu olduğu için detayına girmeden link ‘i bırakıyorum , güzel ve kaliteli anlatım için bu link ‘i inceleyebilirsiniz.

🐻 https://stanford.edu/~shervine/l/tr/teaching/cs-230/cheatsheet-convolutional-neural-networks)

Generator

Generator yani Üretici de bu işlemin tam tersini yapar ve buradaki amaç yaratılan her görüntü için discrimantor ‘u yanıltmaktır. Üretici rastgele sentetik çıktılar (örneğin, yüzlerin görüntüleri) oluşturmaya çalışırken, ayrımcı bunları gerçek çıktılardan (örneğin bir ünlüler veri tabanı) ayırmaya çalışır. İki ağ karşı karşıya geldikçe, birbirine verdikleri feedback’ler dahilinde her ikisi de daha iyi hale gelecek ve sonuçta gerçekçi çıktılar üreten bir generator ağı ortaya çıkacaktır.

Özetle GAN nasıl çalışıyor

  • Generator rastgele sayıları alır ve bir görüntü döndürür.
  • Oluşturulan bu görüntü, gerçek veri kümesinden alınan bir görüntü akışıyla birlikte ayırıcıya Discriminator ‘a beslenir.
  • Discriminator, hem gerçek hem de sahte görüntüleri alır ve olasılıkları döndürür. ( ♯🖊Hatırlatma 0 ile 1 arasında bir sayı, 1 gerçekliğin bir tahminini ve 0 sahteyi temsil eder.)

Peki Etik Açıdan ? 👨‍⚖️

GAN’ların hem iyi 👼 hem de kötü 👿 yönde kullanılma potansiyeli çok yüksektir (ünlü düşünürün dediği gibi Be the devil and angel, too), çünkü herhangi bir veri kümesini taklit etmeyi kolaylıkla öğrenebilirler. Yani, GAN’lara herhangi bir alanda bizimkine ürkütücü bir şekilde benzeyen dünyalar yaratmaları öğretilebilir; görüntü, müzik, konuşma, yazılar gibi .

GAN algoritmaları ile bir anlamda robot sanatçılar yaratabiliriz ve çıktıları gerçeğinden daha fazla etkileyici de olabilir .Ancak ne var ki sahte medya içeriği oluşturmak için de kullanılabilirler.

Yazımın başında da bahsettiğim Deepfakes’in temelini oluşturan teknolojidir.

Deepfake mevcut bir görüntü veya videodaki bir kişinin başka birinin benzeriyle değiştirildiği sentetik medyadır.

Aşağıdaki örnekte de görüleceği üzere ; Deepfake yapısı var olan gerçek yüz üzerinde çalışarak gerçek mimik efektleri oluşturmayı hedefleyerek GAN algoritması eğitmektedir.

Yazının bitimini yapay zekaya bırakıyorum. Yapay zeka bakalım ne demiş.

🤖🤖 Rekabetçi = Düşman demiş kalsın bari öyle …

Yapay zeka bir süredir var ve sürekli gelişiyor. Bu makale, algoritmalar hakkında en çok konuşulanlardan biri olan Üretken Düşman Ağları (GAN’lar) ve bunların AI’nın geleceğini nasıl şekillendirdiğini keşfedecek.

GAN’lar, verilerden öğrenen bir tür Yapay Zeka algoritmasıdır. Veri oluşturmada daha iyi olmak için birbirleriyle rekabet eden iki ağ olarak oluşturulurlar. Jeneratör adı verilen bir ağ, ayrımcı adı verilen ikinci ağdan gelen girdiye yanıt olarak sahte veriler oluşturur. Jeneratör, ayrımcıyı sahte verilerinin gerçek olduğunu düşünmesi için kandırabiliyorsa, ağlar arasındaki bu rekabeti kazanmış demektir.

🤖🤖

--

--

Emre Çetiner

Boun MSC.- Metu,Gazi Üni / Digital Services Product Growth & Data Analyst @Turkcell for more; https://www.linkedin.com/in/mehmetemrecetiner