Jeneratör

GAN'ın üretici kısmı, ayırıcıdan gelen geri bildirimleri dahil ederek sahte veri oluşturmayı öğrenir. Ayrıştırıcının çıkışını gerçek olarak sınıflandırmasını öğrenir.

Oluşturucu eğitimi, oluşturucu ile ayırt edici arasındaki entegrasyonun ayırt edici eğitimi gerektirdiğinden daha sıkı olmasını gerektirir. GAN'ın üreticiyi eğiten kısmı şunları içerir:

  • rastgele giriş
  • rastgele girişi veri örneğine dönüştüren bir üretken ağ
  • Oluşturulan verileri sınıflandıran ayırt edici ağ
  • ayırt edici çıkış
  • ayırt ediciyi kandıramadığı için jeneratörü cezalandıran jeneratör kaybı

Üretken zıttaşım ağının şeması. Şemanın ortasında "ayırt edici" etiketli bir kutu bulunur. Bu kutuya soldan iki dal geliyor.  Üst dal, diyagramın sol üst kısmındaki "gerçek dünyadaki resimler" etiketli kutudan başlar. Bu silindirden "Örnek" etiketli bir kutuya giden bir ok vardır. "Örnek" etiketli kutudan gelen bir ok, "Ayırt Edici" kutusuna gider. Alt dal, "Random Input" (Arızi Giriş) etiketli bir kutudan başlayarak "Discriminator" (Ayırt Edici) kutusuna beslenir. "Random Input" (Arızi Giriş) kutusundan "Generator" (Oluşturucu) etiketli bir kutuya yönlendiren bir ok. "Oluşturucu" kutusundan ikinci bir "Örnek" kutusuna giden bir ok vardır. "Örnek" kutusundan "Ayırt edici" kutusuna giden bir ok. "Ayırıcı" kutusunun sağ tarafındaki iki ok,diyagramın sağ tarafındaki iki kutuya yönlendirir. Bir ok, "Ayırt edici kaybı" etiketli bir kutuya yönlendirir. Diğer ok, "Jeneratör kaybı" etiketli bir kutuya yönlendirir. Geri yayılımın, sistemin sarı kutunun içine alınmış kısmında çalıştığını belirtmek için "Random Input" (Rastgele Giriş), "Generator" (Oluşturucu), alttaki "Sample" (Örnek), "Discriminator" (Ayırt Edici), "Real" (Gerçek) ve "Fake" (Sahte) etiketli kutu ve "Generator loss" (Oluşturucu kaybı) kutusunun etrafına solda bakan bir ok ve "Backpropagation" (Geri Yayılma) kelimesi etiketli bir sarı kutu çizilir.

Şekil 1: Oluşturucu eğitiminde geri yayılma.

Rastgele Giriş

Sinir ağlarının bir tür girişe ihtiyacı vardır. Normalde, sınıflandırmak veya hakkında tahminde bulunmak istediğimiz bir örnek gibi, bir işlem yapmak istediğimiz verileri gireriz. Ancak tamamen yeni veri örnekleri yayınlayan bir ağ için giriş olarak neyi kullanırız?

GAN'lar en temel hallerinde giriş olarak rastgele gürültü alır. Ardından jeneratör bu gürültüyü anlamlı bir çıkışa dönüştürür. Gürültü ekleyerek GAN'ın hedef dağılımındaki farklı yerlerden örnekleme yaparak çok çeşitli veriler üretmesini sağlayabiliriz.

Deneyler, gürültünün dağılımının çok önemli olmadığını gösteriyor. Bu nedenle, örnek almanın kolay olduğu bir dağılım (ör. tekdüze dağılım) seçebiliriz. Kolaylık sağlamak için gürültünün örneklendiği alan genellikle çıkış alanının boyutundan daha küçüktür.

Oluşturucuyu eğitmek için ayırt ediciyi kullanma

Bir sinir ağını eğitmek için ağın ağırlıklarını, çıkışındaki hatayı veya kaybı azaltacak şekilde değiştiririz. Ancak GAN'ımızda üretici, etkilemeye çalıştığımız kayıpla doğrudan bağlantılı değildir. Oluşturucu, ayırıcı ağına beslenir ve ayırıcı, etkilemeye çalıştığımız çıkışı oluşturur. Üretici kaybı, ayırt edici ağın sahte olarak sınıflandırdığı bir örnek ürettiği için üreticiyi cezalandırır.

Bu ek ağ parçası geri yayılmaya dahil edilmelidir. Geri yayılma, ağırlığın çıkış üzerindeki etkisini (ağırlığı değiştirirseniz çıkışın nasıl değişeceğini) hesaplayarak her ağırlığı doğru yönde ayarlar. Ancak bir jeneratör ağırlığının etkisi, beslediği ayırt edici ağırlıkların etkisine bağlıdır. Dolayısıyla geri yayılma çıkıştan başlar ve ayırıcıdan jeneratöre geri akar.

Aynı zamanda, ayırıcının jeneratör eğitimi sırasında değişmesini istemeyiz. Hareket eden bir hedefi vurmaya çalışmak, jeneratör için zor bir sorunu daha da zorlaştırır.

Bu nedenle, üreteci aşağıdaki prosedürle eğitiriz:

  1. Rastgele gürültü örneği.
  2. Örneklenen rastgele gürültüden jeneratör çıkışı oluşturun.
  3. Üretici çıkışı için ayırt edici "Gerçek" veya "Sahte" sınıflandırması alın.
  4. Ayrımcı sınıflandırmadan kaynaklanan kaybı hesaplama
  5. Gradyan elde etmek için hem ayırt edici hem de oluşturucu üzerinden geri yayılma.
  6. Yalnızca üreteç ağırlıklarını değiştirmek için gradyan kullanın.

Bu, jeneratör eğitiminin bir iterasyonudur. Bir sonraki bölümde, hem üretenin hem de ayırt edici özelliğin eğitimini nasıl yapacağımızı göreceğiz.