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.