Jeneratör

Bir GAN'ın oluşturucu bölümü, ayrımcıdan geri bildirim alarak sahte veriler oluşturmayı öğrenir. Ayrımcının sonucunu gerçek olarak sınıflandırmayı öğrenir.

Jeneratör eğitiminde, jeneratör ve ayrımcı arasındaki ayrımcılık, ayrımcı eğitiminin gerektirdiğinden daha sıkıdır. GAN'ın oluşturucuyu eğiten kısmı şunları içerir:

  • rastgele giriş
  • rastgele girişi bir veri örneğine dönüştüren oluşturucu ağı
  • Oluşturulan verileri sınıflandıran ayrımcı ağ
  • ayrımcı çıkışı
  • üretkenliği cezalandırarak cezalandıranları

Zahmetli bir karşıt ağın şeması. Diyagramın ortasında 'ayırıcı' etiketli bir kutu bulunur. Soldan bu kutuya iki dal besleniyor.  Üst dal, şemanın sol üst tarafında 'gerçek dünyadan resimler' etiketli bir kutuyla başlar. Bu silindirden 'Örnek' etiketli bir oka giden bir ok var. 'Örnek' etiketli kutudan bir ok 'Ayırtlayıcı' kutusuna. Alt dal, 'Ayırtlayıcı' kutusuna 'Rastgele Giriş' etiketli bir kutuyla başlar. Bir ok, 'Rastgele Giriş' kutusundan 'Generator' etiketli bir kutuya yönlendiriyor. 'Generator' kutusundan ikinci bir 'Sample' kutusuna giden bir ok vardır. Bir oktan 'Örnek' kutudan 'Ayrımcı kutusuna gidin. Kutunun sağ tarafındaki 'Ayrımcı' kutusunun sağ tarafındaki iki ok,diyagramın sağ tarafındaki iki kutuya götürür. Oklardan biri 'Ayırt edici kayıp' etiketli bir kutuya yönlendiriyor. Diğer ok, 'Generator Loss' etiketli bir kutuya gider. Sola bakan bir okla etiketlenmiş sarı bir kutu ve 'Rastgele Giriş' kutusu, 'Kutusu' kutusu, 'Üretici' kutusu, 'Kutusunun (#39;Kutusu\39;resmi'simgesi33;

Şekil 1: Jeneratör eğitiminde geri yayılma.

Rastgele Giriş

Nöral ağların bir miktar giriş şekline ihtiyacı vardır. Normalde, sınıflandırmak veya tahminde bulunmak istediğimiz bir örnek gibi yapmak istediğimiz verileri gireriz. Peki tamamen yeni veri örnekleri üreten bir ağ için giriş olarak ne kullanırız?

En temel biçiminde, GAN girdisi olarak rastgele bir gürültü alır. Jeneratör daha sonra bu gürültüyü anlamlı bir çıkışa dönüştürür. Gürültüyü kullanıma sunarak GAN'ın, hedef dağıtımdaki farklı yerlerden örnekleme yaparak çok çeşitli veriler üretmesini sağlayabiliriz.

Denemeler, gürültünün dağılımının çok önemli olmadığını gösterir. Bu nedenle, tek tip dağılım gibi, örneklemesi kolay olan bir şey seçebiliriz. Kolaylık sağlamak için gürültünün örneklendiği alan, genellikle çıkış alanının boyutundan daha küçük boyuttadır.

Jeneratörü Eğitmek için Ayırıcıyı Kullanma

Bir nöral ağı eğitmek için net ve ağırlıkları değiştirerek çıkışının hatasını veya kayıplarını azaltırız. Ancak GAN'ımızda, oluşturucu doğrudan etkilemeye çalıştığımız kayıpla bağlantılı değil. Oluşturma aracı, ayrımcı ağına beslenir ve ayırıcı etkilemeye çalıştığımız çıkışı üretir. Jeneratör kaybı, ayırıcı ağın sahte olarak sınıflandırdığı bir örnek oluşturmak için oluşturucuyu cezalandırır.

Bu ekstra ağ parçası, tekrar yayılma sürecine dahil edilmelidir. Geri yayılma, ağırlığın çıkış üzerindeki etkisini hesaplayarak her ağırlığı doğru yönde ayarlar (ağırlığı değiştirdiğinizde sonucun nasıl değişeceğini). Ancak jeneratör ağırlığının etkisi, beslendiği ayrımcı ağırlıkların etkisine bağlıdır. Böylece, yayılma çıkıştan başlar ve ayrımcıdan jeneratöre geri akar.

Aynı zamanda, jeneratör eğitimi sırasında ayrımcının değişmesini istemeyiz. Hareketli bir hedefe ulaşmaya çalışmak, jeneratör için çok daha zor bir sorun yaratır.

Bu nedenle, jeneratörü şu prosedürle eğitiyoruz:

  1. Rastgele gürültü örneği.
  2. Örneklenmiş gürültüden jeneratör çıkışı üretir.
  3. Jeneratör çıkışı için ayrımcı "Gerçek" veya "Sahte" sınıflandırması alın.
  4. Ayrımcı sınıflandırmasındaki kaybı hesaplayın.
  5. Renk geçişi elde etmek için hem ayrımcıyı hem de jeneratörü kullanarak geriye doğru yayılın.
  6. Yalnızca jeneratör ağırlıklarını değiştirmek için gradyan kullanın.

Bu, jeneratör eğitiminin bir yinelemesidir. Bir sonraki bölümde, hem jeneratörün hem de ayrımcının eğitimini nasıl uygulayacağınızı göreceğiz.