Если я правильно понял, есть два подхода к реализации сети декодера вариационного автоэнкодера (VAE). Первый подход - это декодер, который генерирует реконструкцию входной выборки сети, а другой подход - это декодер, который пытается генерировать распределение. Эти подходы описаны здесь .
Я реализовал первый подход, в котором я генерирую реконструкцию, однако при поиске примеров реализации VAE я могу найти только первый подход. Кто-нибудь знает примеры реализации с использованием Keras?
Я ожидал бы иметь декодер, который выглядит следующим образом:
def create_decoder():
decoder_input = layers.Input(latent_dim, name='decoder_input')
x = decoder_input
x = layers.Dense(hiden_layer_dim, activation='relu', name='Dense_1')(x)
x = layers.Dense(hiden_layer_dim, activation='relu', name='Dense_2')(x)
z_mean = layers.Dense(latent_dim, name='z_mean')(x)
z_log_variance = layers.Dense(latent_dim, name='z_log_variance')(x)
decoder = Model(inputs=decoder_input, outputs=[z_mean, z_log_variance])
decoder.summary()
return decoder
В этом случае, как следует модифицировать функцию потерь?