Otomatik kodlayıcılar için kayıp fonksiyonu


21

Biraz otomatik kodlayıcıları deniyorum ve tensorflow ile MNIST veri kümesini yeniden yapılandırmaya çalışan bir model oluşturdum.

Ağım çok basit: X, e1, e2, d1, Y, burada e1 ve e2 katmanları kodlar, d2 ve Y katmanları çözer (ve Y yeniden yapılandırılmış çıktıdır).

X'in 784 birimi, e1'in 100, e2'nin 50, d1'in tekrar 100 ve Y 784'ü vardır.

E1, e2, d1 ve Y katmanları için aktivasyon fonksiyonu olarak sigmoid kullanıyorum. Girişler [0,1] 'de ve çıkışlar da öyle olmalı.

Eh, kayıp entropi kaybı fonksiyonu olarak kullanmayı denedim, ama çıktı her zaman bir blob oldu ve X'ten e1'e kadar olan ağırlıkların her zaman sıfır değerli bir matrise dönüşeceğini fark ettim.

Öte yandan, ortalama kare hatalarını kayıp fonksiyonu olarak kullanmak, iyi bir sonuç verecektir ve şimdi girdileri yeniden oluşturabiliyorum.

Neden böyle? Değerleri olasılık olarak yorumlayabileceğimi ve bu nedenle çapraz entropi kullanabileceğimi düşündüm, ama açıkçası yanlış bir şey yapıyorum.


1
İlk katmanlardaki aktivasyon fonksiyonları için sigmoid kullandığından bahsettiniz. Bunlar CS231n Notlarında daha ayrıntılı olarak açıklandığı gibi "doygunluk" sergiler . ReLU'lar gibi başka bir etkinleştirme işlevini denediniz mi?
Jerry

Başka birini denediysem şu an hatırlayamıyorum, ancak paylaştığınız için teşekkürler!
AkiRoss

Yanıtlar:


18

Bunun en iyi cevabının çapraz entropi kaybı fonksiyonunun bu özel göreve uygun olmadığını düşünüyorum.

Bu yaklaşımı kullanırken, gerçek MNIST verilerinin ikili olduğunu ve piksel yoğunluklarınızın her pikselin 'açık' olma olasılığını temsil ettiğini söylüyorsunuz. Ancak bunun aslında böyle olmadığını biliyoruz. Bu örtük varsayımın yanlışlığı bize sorunlara neden olmaktadır.

-[(hedef)günlük(tahmin)+(1-hedef)günlük(1-tahmin)]

çapraz entropi ve mse kaybı

Çapraz entropi kaybının asimetrik olduğunu görebiliriz. Neden bunu isteyelim ki? Bu 0,8 piksel için 0,9'u tahmin etmek 0,7'yi tahmin etmekten gerçekten daha mı kötü? Bir şey olursa, belki daha iyi olduğunu söyleyebilirim.

Muhtemelen daha fazla ayrıntıya girebilir ve bunun neden gördüğünüz belirli lekelere yol açtığını anlayabiliriz. Ben tahmin ediyorum ki, piksel yoğunluğu, lekeyi gördüğünüz bölgede ortalama 0,5'in üzerindedir. Ancak genel olarak bu, veriler için uygunsuz hale getirdiğiniz örtük modelleme varsayımlarının bir örneğidir.

Umarım yardımcı olur!


3
wo Giriş 0 ile 1 arasında değişiyorsa hangi kayıp fonksiyonu uygundur?
Jemshit Iskenderov

İkili Çapraz Entropi Kaybı
torayeff
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.