В настоящее время я пытаюсь создать вариационный автоэнкодер (VAE), который обучается работе с данными, масштабированными до минимума / максимума (от нуля до единицы). Общая архитектура представлена ниже:
Меня интересует выборка из изученного скрытого пространства после того, как оно достаточно обучено. Размер скрытого пространства равен 200, поэтому я решил, что могу создать образцы векторов, выполнив следующие действия:
NUM_SAMPLED_VECTORS = 100
sampled_latent = []
max_latent_values = encoded_latent_df.max(axis=0).values.tolist()
# Sample 100 vectors
for x in range(NUM_SAMPLED_VECTORS):
temp = []
for i,z in enumerate(max_latent_values):
temp.append(uniform(0, z))
sampled_latent.append(temp)
sampled_latent_df = pandas.DataFrame(sampled_latent)
sampled_pred_vectors = pd.DataFrame(decoder.predict_on_batch(sampled_latent_df))
Здесь я случайным образом выбираю минимальный / максимальный диапазон каждой скрытой переменной последовательно, а затем прогнозирую этот «выбранный скрытый вектор».
Однако, когда я смотрю на выходные векторы, они все отключены с коэффициентом ~ 10 ^ 30. Я ожидаю, что выходные векторы будут иметь значения ~ 0,5 (например, от 0 до 1), но все прогнозируемые векторы имеют значения ~ 10 ^ -30 (да, больше нуля, но едва ли вообще). Есть ли лучший способ для выборки скрытого пространства, чтобы получить соответствующие значения выборки?