Tôi đang thử nghiệm một bộ tạo tự động bit, và với tenorflow tôi đã tạo ra một mô hình cố gắng xây dựng lại bộ dữ liệu MNIST.
Mạng của tôi rất đơn giản: X, e1, e2, d1, Y, trong đó e1 và e2 là các lớp mã hóa, d2 và Y là các lớp giải mã (và Y là đầu ra được xây dựng lại).
X có 784 đơn vị, e1 có 100, e2 có 50, d1 có 100 lần nữa và Y 784 lại.
Tôi đang sử dụng sigmoids làm các hàm kích hoạt cho các lớp e1, e2, d1 và Y. Các đầu vào nằm trong [0,1] và do đó nên là đầu ra.
Chà, tôi đã thử sử dụng entropy chéo làm hàm mất, nhưng đầu ra luôn là một đốm màu và tôi nhận thấy rằng các trọng số từ X đến e1 sẽ luôn hội tụ đến một ma trận có giá trị bằng không.
Mặt khác, sử dụng các lỗi bình phương trung bình làm hàm mất mát, sẽ tạo ra một kết quả tốt và bây giờ tôi có thể xây dựng lại các đầu vào.
Tại sao lại như vậy? Tôi nghĩ rằng tôi có thể diễn giải các giá trị là xác suất, và do đó sử dụng entropy chéo, nhưng rõ ràng tôi đang làm gì đó sai.