varyasyon otomatik kodlayıcıda KLD kaybı ve yeniden yapılanma kayıplarının ağırlığı


26

Bir VAE'yi gördüğüm neredeyse tüm kod örneklerinde, kayıp işlevleri şu şekilde tanımlanır (bu tensorflow kodudur, ancak theano, torch vb. için de benzer şekilde gördüm. , sadece toplamların alındığı ekseni etkiler):

# latent space loss. KL divergence between latent space distribution and unit gaussian, for each batch.
# first half of eq 10. in https://arxiv.org/abs/1312.6114
kl_loss = -0.5 * tf.reduce_sum(1 + log_sigma_sq - tf.square(mu) - tf.exp(log_sigma_sq), axis=1)

# reconstruction error, using pixel-wise L2 loss, for each batch
rec_loss = tf.reduce_sum(tf.squared_difference(y, x), axis=[1,2,3])

# or binary cross entropy (assuming 0...1 values)
y = tf.clip_by_value(y, 1e-8, 1-1e-8) # prevent nan on log(0)
rec_loss = -tf.reduce_sum(x * tf.log(y) + (1-x) * tf.log(1-y), axis=[1,2,3])

# sum the two and average over batches
loss = tf.reduce_mean(kl_loss + rec_loss)

Bununla birlikte, sayısal kl_loss ve rec_loss aralığı, sırasıyla boşluk boşlukları ve giriş özelliklerinin boyutuna (örneğin piksel çözünürlüğü) bağlıdır. Z-dim KLD başına ve piksel başına (veya özellik) LSE veya BCE elde etmek için reduc_sum'ları reduc_mean ile değiştirmek mantıklı olur mu? Daha da önemlisi, nihai zararı bir araya getirirken gizli kaybı yeniden yapılanma kaybıyla nasıl ağırlıklandırırız? Sadece deneme yanılma mı? veya bunun için bir teori (veya en azından temel kural) var mı? Bu konuda hiçbir bilgi bulamadım (orijinal makale dahil).


Karşılaştığım mesele, eğer giriş özelliği (x) boyutları ve gizli boşluk (z) boyutları arasındaki denge 'optimum' değilse, yeniden yapılanmamın çok iyi olduğu ancak öğrenilen gizli alanın yapılandırılmamış olduğu (x boyutları ise) çok yüksektir ve yeniden yapılanma hatası KLD'ye egemendir) ya da tam tersi (yeniden yapılandırmalar iyi değildir ancak öğrenilen gizli alan KLD egemen olduğunda iyi yapılandırılmıştır).

Yeniden yapılanma kaybını (giriş özellik boyutuna göre bölme) ve KLD'yi (z boyutlarına bölme) normalleştirmek zorunda olduğumu ve ardından KLD terimini isteğe bağlı bir ağırlık faktörü ile manuel olarak ağırlıklandırmak için kendimi buldum x veya z boyutlarından bağımsız olarak benzer ağırlık ). Ampirik olarak yeniden yapılandırma ile bana 'tatlı bir nokta' gibi hissettiren yapılandırılmış gizli alan arasında iyi bir denge sağlamak için 0.1 civarında buldum. Bu alanda önceki çalışmaları arıyorum.


Talep üzerine yukarıdaki matematik notasyonu (yeniden yapılanma hatası için L2 kaybına odaklanmak)

Llatent(i)=12j=1J(1+log(σj(i))2(μj(i))2(σj(i))2)

Lrecon(i)=k=1K(yk(i)xk(i))2

L(m)=1Mi=1M(Llatent(i)+Lrecon(i))

burada , latent vektör boyutluluğu olan (ortalama karşılık gelen ve varyans ), , giriş özellikleri boyutluluğu olan mini parti boyutu, üst anlamına gelir inci verileri point ve , . mini toplu işleminin kaybıdır .z u σ 2 K M ( I ) i L ( m ) mJzμσ2KM(i)iL(m)m

Yanıtlar:


17

Bu yazıda tökezleyen herkes için bir cevap da arayanlar için, bu twitter ipliği , çok yararlı bilgiler sağladı .

Yani:

beta-VAE: Kısıtlı Bir Değişken Çerçeveli Temel Görsel Kavramları Öğrenme

Kesin sorumu birkaç deneyle tartışıyor. İlginçtir ki, (normalleştirilmiş KLD ağırlığımla aynı), daha düşük değerlerin daha yoksul yeniden yapılanma maliyetinde daha fazla yapılandırılmış gizli alan veren daha düşük değerlere sahip olması ve daha düşük yapılandırılmış olan daha iyi yeniden yapılanma veren düşük değerlerle de ortalanmış gibi göründüğü gizli alan (odakları özellikle ayrık olmayan temsilleri öğrenmeye odaklanmak olsa da ).βnorm

ve ilgili okuma (benzer konuların tartışıldığı yerlerde)


7

Bu konuyla ilgili bir makale daha eklemek istiyorum (şu anki itibarımın düşük olması nedeniyle yorum yapamam).

Makalenin 3.1 alt bölümünde, yazarlar, olasılık ve KL ayrılığını eşit derecede arttıran, VAE'nin düz bir uygulamasını geliştirmeyi başaramadıklarını belirtti. Bu durumda, KL kaybı, küçük bir değere sahip olması beklense de, istenmeyen bir şekilde sıfıra düşürüldü. Bunun üstesinden gelmek için, KL sapma teriminin (mavi eğri) ağırlık faktörünü yavaş yavaş 0'dan 1'e yükselten "KL maliyet tavlama" kullanılmasını önerdiler.

Şekil 2. Penn TreeBank'taki VAE için KL diverjans teriminin (ağırlıksız) değeri ile çizilen tipik bir sigmoid tavlama programına göre değişken alt sınırın KL diverjans teriminin ağırlığı.

Bu geçici çözüm, Ladder VAE'de de uygulanmaktadır.

Kağıt:

Bowman, SR, Vilnis, L., Vinyals, O., Dai, AM, Jozefowicz, R. ve Bengio, S., 2015. Sürekli bir yerden cümle kurma . arXiv ön baskı arXiv: 1511.06349.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.