Я думаю, что понимаю статью Auto-Encoding Variational Bayes. И я читаю некоторые коды тензорного потока, реализующие эту статью. Но я не понимаю их функцию потерь в этих кодах. Поскольку многие коды написаны одинаково, возможно, я ошибаюсь.
Проблема такая. Следующее уравнение взято из документа AEVB. Функция потерь похожа на это уравнение. Это уравнение можно разделить на две части: член регуляризации и член реконструкции. Поэтому становится
Loss_function = Regularization_term + Reconstruction_term
Однако во многих кодах этот термин регуляризации реализуется с отрицательным знаком, например
Loss_function = -Regularization_term + Reconstruction_term
Например, в этом коде в 79-й строке показан термин регуляризации. в качестве
KLD = -.5 * tf.reduce_sum(1. + enc_logsd - tf.pow(enc_mu, 2) - tf.exp(enc_logsd), reduction_indices=1)
И потом, это только увеличивает срок Реконструкции.
loss = tf.reduce_mean(KLD + BCE)
Я не понимаю. Знак КЛД противоположен уравнению из статьи. Таких кодов очень много. Я думаю, что ошибаюсь, но я не знаю, что не так. Можете ли вы объяснить, почему это должно быть так?