Я експериментую трохи автокодерами, і за допомогою tensorflow я створив модель, яка намагається відновити набір даних MNIST.
Моя мережа дуже проста: X, e1, e2, d1, Y, де e1 і e2 - це кодуючі шари, d2 і Y - декодуючі шари (а Y - реконструйований вихід).
X має 784 одиниці, e1 має 100, e2 має 50, d1 знову 100 і Y 784 знову.
Я використовую сигмоїди як функції активації для шарів e1, e2, d1 та Y. Вхідні дані знаходяться в [0,1], і таким чином мають бути виходи.
Ну, я спробував використовувати перехресну ентропію як функцію втрати, але вихід завжди був крапкою, і я помітив, що ваги від X до e1 завжди збігаються до матриці з нульовим значенням.
З іншого боку, використання середніх квадратичних помилок як функції втрати дало б гідний результат, і я зараз в змозі реконструювати вхідні дані.
Чому це так? Я думав, що можу інтерпретувати значення як ймовірності, а тому використовувати перехресну ентропію, але явно роблю щось не так.