Bir yükseliş başlatan Wasserstein GAN, son zamanlarda herhangi bir araştırma ilerleme kaydetti mi?

Lei Feng Net Not: Bu makalenin yazarı Sun Yat-Sen Üniversitesi'nden Zheng Huabin, "Üretken yüzleşme ağı GAN'daki en son gelişmeler neler ve pratikte hangi senaryolar uygulanabilir?" Diye sordu. "Yanıtlandı", Wasserstein GAN'ın en son geliştirmesini tanıttı. Bu makale, Zheng Huabin'in bu yanıta dayalı Leifeng.com'a katkısıdır ve izinsiz çoğaltılamaz.

Bir süre önce, Wasserstein GAN, sofistike teorik analizi, son derece basit algoritma uygulaması ve mükemmel deneysel sonuçlarıyla, GAN araştırma çemberinde bir çılgınlık dalgası başlattı (WGAN'a aşina olmayan okuyucular, daha önce yazdığım giriş makalesine başvurabilir: Ling Ünlü Wasserstein GAN-Sütunu bilmek). Ancak birçok kişi (laboratuvarımızdaki sınıf arkadaşları dahil) deneyi çalıştırmaya başladıklarında, WGAN'ın aslında o kadar mükemmel olmadığını gördüler, bunun yerine, eğitim zorlukları ve yavaş yakınsama hızında sorunlar var. Aslında, WGAN'ın yazarı Martin Arjovsky, kısa bir süre sonra reddit'te, bu sorunun da farkında olduğunu ve anahtarın orijinal tasarımda Lipschitz kısıtlamalarını getirmenin yanlış bir yolu olduğuna inandığını söyledi ve yeni makalede buna karşılık gelen iyileştirmeler önerdi:

Belge: Wasserstein GAN'larının Geliştirilmiş Eğitimi

Tensorflow uygulaması: igul222 / advanced_wgan_training

İlk önce WGAN'ın temel bölümünü gözden geçirin - Lipschitz sınırlaması nedir. WGAN'da, ayırıcı D ve jeneratör G'nin kayıp fonksiyonları şunlardır:

(Formül 1)

(Formül 2)

Formül 1, ayırt edicinin gerçek numunenin puanını olabildiğince artırıp sahte numunenin puanını düşürmek istediğini, Formula 2 ise jeneratörün sahte numunenin puanını olabildiğince artırmak istediğini belirtir.

Lipschitz'in kısıtlaması tüm numune alanına yansıtılır

Yukarıda, ayırt edici işlevi talep edin

Gradyanın Lp-normu sonlu bir sabitten büyük değildir

:

(Formül 3)

Sezgisel açıklama, girdi örneklemi biraz değiştiğinde, ayırıcı tarafından verilen puanın çok büyük ölçüde değişemeyeceğidir. Orijinal makalede, bu sınırlama özellikle ağırlık kırpılmasıyla elde edilir: ayırıcının parametreleri her bir kez güncellendiğinde, diskriminatörün tüm parametrelerinin mutlak değerinin 0.01 gibi bir eşiği aşıp aşmadığı kontrol edilir. Ardından bu parametreleri aralığa geri koyun. Eğitim sürecinde ayırıcıya ait tüm parametrelerin sınırlandırılması sağlanarak, ayırıcının farklı puanlara sahip hafif farklı iki örnek verememesi ve dolaylı olarak Lipschitz kısıtlamasını gerçekleştirmesi sağlanır.

Bununla birlikte, kilo kesme uygulamasının iki ciddi sorunu vardır:

İlk olarak, formül 1'de belirtildiği gibi, ayırıcı kaybı, doğru ve yanlış örnekler arasındaki puan farkını olabildiğince büyütmeyi umar, ancak ağırlık kırpılması her bir ağ parametresinin değer aralığını bağımsız olarak sınırlar. Bu durumda, en uygun olduğunu hayal edebiliriz. Strateji, maksimum değeri (0.001 gibi) veya minimum değeri (-0.001 gibi) alarak tüm parametreleri olabildiğince uç yapmaktır! Bunu doğrulamak için, yazar, tam eğitimli ayırıcıdaki tüm ağ parametrelerinin sayısal dağılımını saydı ve gerçekten maksimum ve minimum olmak üzere iki uç noktaya yoğunlaştığını buldu:

Bunun sonucu, ayırıcının basit bir haritalama fonksiyonunu öğrenmeye çok meyilli olmasıdır (bir düşünün, neredeyse tüm parametreler artı veya eksi 0.01'dir, zaten doğrudan bir ikili sinir ağı olarak kabul edilebilir, çok basit ). Derin bir sinir ağı olarak, bu gerçekten güçlü yerleştirme yeteneğinin büyük bir israfıdır! Ayırıcı, kendi model yeteneklerinden tam olarak yararlanamaz ve bunun içinden jeneratöre döndürülen gradyan da bozulacaktır.

Gradyan cezasının resmi olarak tanıtılmasından önce, ilk olarak, onun rehberliğinde, ayırıcıyı tam olarak eğittikten sonra, parametrelerin sayısal dağılımının çok daha makul olduğunu ve ayırt edenin kendi modelinin uydurma yeteneğinden tam olarak yararlanabileceğini görebiliriz:

İkinci sorun, ağırlık kırpmanın eğimin yanlışlıkla kaybolmasına veya patlamasına neden olabilmesidir. Bunun nedeni, ayırıcının çok katmanlı bir ağ olmasıdır. Kırpma eşiğini biraz daha küçük ayarlarsak, gradyan ağın her katmanından sonra biraz daha küçülür ve birden çok katmandan sonra üssel olarak bozulur; tam tersine, biraz daha büyük ayarlarsak Birazcık, bir ağ katmanı boyunca her seferinde gradyan biraz daha büyür, çoklu katmandan sonra üssel olarak patlar. Sadece ayar büyük veya küçük olmadığında jeneratör doğru dönüş gradyanını elde edebilir, ancak pratik uygulamalarda bu denge alanı çok dar olabilir ve bu da ayarlama işinde sorunlara neden olur. Tersine, gradyan cezası, geriye doğru yayılma sırasında degradeyi düzgün tutabilir. Kağıt bunu aşağıdaki şekil aracılığıyla yansıtır; burada yatay eksen, alçaktan yükseğe doğru ayırıcının seviyesini temsil eder, dikey eksen, bu seviyeye kadar olan gradyan ölçeğini temsil eder (dikey eksenin logaritmik bir ölçek olduğuna dikkat edin) ve c kırpılır eşik:

Bunu söyledikten sonra, gradyan cezası nedir?

Daha önce belirtildiği gibi, Lipschitz sınırı, ayırıcının gradyanının K'yi aşmamasını gerektirir, öyleyse neden bunu yansıtmak için doğrudan ek bir kayıp öğesi belirlemiyoruz? Örneğin:

(Formül 4)

Bununla birlikte, ayırıcı, doğru ve yanlış örnekler arasındaki puan farkını olabildiğince genişletmeyi umduğundan, gradyan ne kadar büyükse, değişim o kadar iyi ve büyükse, o kadar iyi olmasını ummak doğaldır, bu nedenle ayırıcı tam olarak eğitildikten sonra, gradyan normu aslında K'ye yakın olacaktır. . Bunu bilerek, gradyan normunun mümkün olduğunca K'ye yakın olmasını gerektirecek şekilde yukarıdaki kaybı değiştirebiliriz ve etki benzerdir:

(Formül 5)

Formula 4'ün iyi mi yoksa Formula 5'in mi iyi olduğunu bilemiyorum. Deneysel doğrulamaya ihtiyacı olabilir. Her neyse, makalenin yazarı Formula 5'i seçti. Sonra basitçe K'yi 1 olarak ayarladık ve ardından yeni bir ayırıcı kaybı elde etmek için WGAN'ın orijinal ayırıcı kaybı ile ağırlıklandırdık ve birleştirdik:

(Formül 6)

Bu sözde gradyan cezası mı? Daha bitmedi. Denklem 6'nın iki problemi var: Birincisi, kayıp fonksiyonunda bir gradyan terimi var.Bu kaybın optimizasyonunun gradyan gradyanını hesaplamasına gerek yok mu? Bazı okuyucuların bu konuda şüpheleri olabilir, ancak bu bir uygulama sorunudur ve daha sonra tartışılacaktır.

İkinci olarak, üç kayıp öğesinin tümü istenen biçimdedir ve uygulandığında bir örnekleme formu haline gelmelidir. Beklenen ilk iki numuneye aşinayız İlk beklenti, gerçek numune setinden numune almak, ikinci beklenti ise jeneratörün gürültü girdi dağılımından numune almak ve ardından bunu jeneratör tarafından numune alanına eşleştirmektir. Ancak üçüncü dağıtım, tüm örneklem alanında olmamızı gerektirir

Üst örnekleme tamamen bilim dışıdır! Sözde boyutsal felaket sorunu nedeniyle, örnekleme yoluyla resimler veya doğal dil gibi yüksek boyutlu bir örnek uzayda beklenen değeri tahmin etmek istiyorsanız, gerekli örnek boyutu üsteldir ve bu aslında imkansızdır.

Bu nedenle, makalenin yazarı akıllıca bir şekilde, üretilen numune konsantrasyon alanına, gerçek numune konsantrasyon alanına ve bunların arasında sıkıştırılmış alana odaklandığımız sürece, tüm numune alanına Lipschitz kısıtlamaları uygulamamıza gerek olmadığını öne sürdü. Spesifik olarak, önce rastgele bir çift doğru ve yanlış örnek ve rastgele bir 0-1 sayısı seçiyoruz:

(Formül 7)

Daha sonra

ile

Bağlantıda rastgele enterpolasyon örneklemesi:

(Formül 8)

Yukarıdaki işleme göre örnekleme

Memnun dağılım şu şekilde kaydedilir:

, Ayırıcı kaybının son halini alın:

(Formül 9)

Bu, yeni makalede kullanılan gradyan cezası yöntemidir ve buna karşılık gelen yeni WGAN modeli kısaca WGAN-GP olarak adlandırılır. Bir karşılaştırma yapabiliriz:

  • Ağırlık kırpma, numune alanı için küresel olarak etkilidir, ancak dolaylı olarak ayırıcının gradyan normunu sınırladığı için, gradyanın yanlışlıkla kaybolmasına veya patlamasına neden olur;

  • Gradyan cezası yalnızca doğru ve yanlış örneklerin yoğunlaştığı alan ve aradaki geçiş bölgesi için etkilidir, ancak ayırıcının gradyan normu doğrudan yaklaşık 1 ile sınırlı olduğundan, gradyan çok kontrol edilebilir ve uygun bir ölçeğe ayarlanması kolaydır.

Makalede ayrıca gradyan cezası kullanılırken dikkat edilmesi gereken bazı destekleyici konulardan da bahsedildi.İşte sadece bir nokta: Her bir numuneye bağımsız olarak gradyan cezası uyguladığımız için, Batch Normalization ayrımcının model mimarisinde kullanılamaz çünkü aynı şeyi tanıtacaktır. Bir serideki farklı numunelerin birbirine bağımlılığı. Gerekirse, katman normalizasyonu, ağırlık normalizasyonu ve örnek normalizasyonu gibi diğer normalleştirme yöntemlerini seçebilirsiniz.Bu yöntemler numuneler arasında bağımlılıklar oluşturmayacaktır. Kağıt, katman normalizasyonu önerir.

Deneyler, gradyan cezasının eğitim hızını önemli ölçüde artırabileceğini ve orijinal WGAN'ın yavaş yakınsama sorununu çözebileceğini gösteriyor:

Halen DCGAN ile karşılaştırılamaz olsa da, WGAN'ın ayırıcı ve jeneratörü dengeleme sorunu olmadığı için DCGAN'dan daha kararlı olacak ki bu yine de çok avantajlı. Peki yazar bunu neden söyleyebilir? Aşağıdaki deneyler, çeşitli ağ mimarileri altında diğer GAN değişkenlerinin iyi eğitilip eğitilemeyeceğini gösterdiğinden, ancak WGAN-GP'nin tümü, özellikle alt sıraya karşılık gelen 101 katmanlı kalıntı iyi eğitilebilir. Zayıf sinir ağı:

Kalan deneysel sonuçlar arasında daha güçlü olan ilk başarılı "saf" metin GAN eğitimidir! GAN eğitiminin görseller üzerinde ek denetimli bilgi gerektirmediğini biliyoruz, ancak daha önce hiç kimse bir dil modelinin ön eğitimine dayanarak veya mevcut olanları kullanarak GAN eğitim görüntüsü gibi bir metin GAN'ı eğitemedi. Temel gerçeği denetleyin ve rehberlik bilgileri sağlayın. Ve şimdi WGAN-GP nihayet aşağıdaki şekilde gösterilen İngilizce karakter dizisini herhangi bir denetimli bilgi olmadan oluşturur:

Bunu nasıl yapıyor? Bence kilit nokta örnek formattaki değişiklik. Geçmişte, genellikle metin gibi ayrı dizi örneklerini bir dizin dizisi olarak göstermiştik, ancak metni bir olasılık vektörü dizisi olarak temsil ediyordu. Oluşturulan örnek için, dizideki her konumun içeriği olarak ağ softmax katmanı tarafından sözlük olasılık dağılım vektörü çıktısını alabiliriz; gerçek örnek için, her olasılık vektörü aslında aşina olduğumuz tek vektör vektöre dejenere olur.

Ama bunu geleneksel GAN fikrine göre analiz ederseniz, bu bir ölüm değil mi? Bir taraf tek sert vektör, diğeri yumuşak olasılık vektörü Ayırıcı hepsini aynı anda ayırt edebilir Jeneratör nasıl öğrenebilir? Önemli değil. WGAN için, doğru ve yanlış örnekleri ayırt etmek bir sorun değil. WGAN, iki dağılım arasındaki Wasserstein mesafesini daraltır. Bir taraf tek sert, diğer taraf yumuşak olasılık olsa bile, eğitim sürecinde daraltılabilir. , Olasılık vektöründeki bazı öğeler yavaşça 0,8, 0,9 ila 1'e yakın hale gelebilir ve tüm vektör, bire yakın olacaktır.Son olarak, dizin örneklemlerinin dizisini gerçekten çıkarmak istediğimizde, maksimum değeri elde etmek için bu olasılık vektörleri için yalnızca argmax almamız gerekir Olasılık indeksi yapacak.

Yeni örnek temsil + WGAN'ın dağıtımı daraltma yeteneği "altın bir kombinasyondur", ancak ek olarak, makalenin yazarının yukarıdaki resmin etkisini çalıştırmasına yardımcı olan başka faktörler de vardır:

  • Metin ayrıntı düzeyi İngilizce karakterler değil, İngilizce karakterlerdir, bu nedenle sözlük boyutu yalnızca 20 ila 30 arasındadır, bu da arama alanını büyük ölçüde azaltır

  • Metin uzunluğu yalnızca 32

  • Jeneratör, ortak LSTM mimarisini değil, çok katmanlı bir ters evrişim ağını kullanır, bir Gauss gürültü vektörü girer ve 32 karakterin tümünü aynı anda doğrudan dönüştürür

Yukarıdaki üçüncü nokta çok ilginç, çünkü bana bir süre önce oldukça popüler olan dilbilimsel fantastik film "Varış" ı hatırlatıyor:

İçerideki uzaylı "heptapod" tarafından kullanılan dil, insanlarınkinden farklıdır.İnsanlar doğrusal ve seri bir dil kullanırken, "heptapod" doğrusal olmayan ve paralel bir dil kullanır. "Heptapodlar" kahramanı ile iletişim kurduğunda, tüm anlamsal birimleri aynı anda verirler, yani yapay zeka yaşamı bazı çok katmanlı evrişimsiz ağlardan mı evrimleşmiştir?

Beynimizi açtıktan sonra geriye dönüp baktık ve bu deneyin kurulumunun çok basitleştirilmiş olduğunu kabul etmek zorunda kaldık, daha pratik ve karmaşık senaryolara genişletilip genişletilemeyeceği de bir sorun olacak. Ancak ne olursa olsun, üretilen sonuç hala çığır açıcıdır.

Son olarak gradyan cezasının uygulanmasından bahsedelim. Kaybın kendisi gradyanlar içerir ve kaybı optimize etmek gradyan gradyanları gerektirir. Bu fonksiyon tüm derin öğrenme çerçevelerinin standart bir fonksiyonu değildir. Neyse ki, Tensorflow bu arayüzü-tf.gradients sağlar. Başlangıçta bağlanan GitHub kaynak koduna şöyle yazılır:

#interpolates, rastgele enterpolasyon örneklemesi ile elde edilen görüntüdür gradients = tf.gradients (Ayırıcı (interpolatlar), )

Benim gibi bir PyTorch partisi için çok talihsiz bir durum. Üst düzey fonksiyonlar hala geliştiriliyor. İlgilenen PyTorch partileri bu GitHub çekme isteğine abone olabilir: Autograd refactor.Eğer birleştirilirse, en son sürümde kullanabilirsiniz. Gradyan işlevi, gradyan cezasını gerçekleştirir.

Ama bizi beklemekten başka yolu yok mu? Aslında, gradyan cezası elde etmek için yaklaşık bir yöntem düşündüm, sadece farkı farka değiştirmem gerekiyor:

(Formül 10)

Başka bir deyişle, hala dağıtım yapıyoruz

Yukarıdakine göre rastgele örnekleme, ancak bir seferde iki ve daha sonra bağlantı eğiminin 1'e yakın olmasını gerektirir, böylece teorik olarak formül 9 ile aynı etkiye sahip olabilir. MNIST + MLP, PyTorch partisi üzerinde çalıştığını doğruladım. Tensorflow Partisi bile deneyebilir.

Kırmızı Bebek Sınıfı
önceki
Maowulu'nun derin ulusallaştırmasıyla karşılaştırılabilecek şekilde, dahili ginseng şarabı, gelişmiş şarap savaşını başlatmak için yeni bir strateji ortaya koyuyor
Sonraki
Görünüşe göre hala bu kadar taze ve zarif Hong Kong romantik filmlerini daha çok seviyorum
Hayattaki ilk düğmeye basın, Yubei Bölgesi "Alarm Planı" yasasını popülerleştirme faaliyetlerini başlattı
Maowulu'nun derin ulusallaştırmasıyla karşılaştırılabilecek şekilde, dahili ginseng şarabı, gelişmiş şarap savaşını başlatmak için yeni bir strateji ortaya koyuyor
Zehri kendi vücudunuzla test edin En son ve en ateşli çeşitlilik şovlarının dikkatli bir envanteri
"God of War" sınırlı sürüm PS4 Pro konsolunun fiyatı 3580 Hong Kong doları olarak duyuruldu
Yalnızca 4,9 mm kalınlığında ultra ince bir TV nasıl yapılır?
Esnaflar, asıl niyetlerini arayan sıradan insanlardır. Rahibe Zhiling şöyle dedi: Sen harikasın!
Fransız Le Su Sanat Merkezi Koleksiyonu Sergisi Chongqing'de
Bağımsız Game Butik "Ölümcül Çerçeve 12" Switch
Dell'in dar çerçeveli yeni XPS 13'ü takdir ediliyor
Film izlemek için paratoner | Bu hafta manasını kaybeden Goku ve Jing Tian'a aşık olan bir çocuk var
Doğrudan satış kıyafeti giymiş bir sağlık imparatorluğu: Quanjian'ın maskesini yırtın
To Top