Tôi đã triển khai VAE và tôi nhận thấy hai cách triển khai trực tuyến khác nhau về phân kỳ gaussian đơn biến đơn giản. Phân kỳ ban đầu theo ở đây là
Nếu chúng tôi giả sử trước là đơn vị gaussian tức là và , điều này đơn giản hóa thành
Và đây là lúc sự nhầm lẫn của tôi dừng lại. Mặc dù tôi đã tìm thấy một vài repos github tối nghĩa với cách thực hiện ở trên, nhưng điều tôi thường thấy hơn được sử dụng là:
KLloss=log(σ2σ1)+σ21+(μ1−μ2)22σ22−12
μ2=0σ2=1KLloss=−log(σ1)+σ21+μ212−12
KLloss=−12(2log(σ1)−σ21−μ21+1)
=−12(log(σ1)−σ1−μ21+1)
Ví dụ: trong
hướng dẫn bộ mã hóa tự động Keras chính thức . Câu hỏi của tôi là sau đó, tôi còn thiếu gì giữa hai điều này? Sự khác biệt chính là giảm hệ số 2 trên thuật ngữ nhật ký và không bình phương phương sai. Phân tích tôi đã sử dụng sau này với thành công, cho những gì giá trị của nó. Cảm ơn trước sự giúp đỡ nào!