【发布时间】:2020-09-21 07:34:44
【问题描述】:
我正在使用未标记的输入图像训练变分自动编码器 (VAE)。我的兴趣是在潜在空间中可视化 3 类未标记的数据。 我将潜在维度设置为 128,并进一步使用 PCA 在 2D 中进行可视化。
我对此并不陌生,并希望对此有所了解。 首先,当我训练网络时,我看到显示的准确性和验证准确性。由于网络的输入图像没有标记,我想知道准确度是基于什么计算的。 (根据我的阅读,准确率=正确预测的样本数/样本总数)。
其次,我的训练代码如下所示:
vae.compile(optimizer='rmsprop', loss=kl_reconstruction_loss, metrics=['accuracy'])
history=vae.fit_generator(X_train, epochs=15,
validation_data=next(X_val), validation_steps=5,
callbacks=[ReduceLROnPlateau(monitor='val_loss', factor=0.5, verbose=2,
patience=4, cooldown=1, min_lr=0.0001)])
在训练期间,验证损失变为 0,准确度变为 2 个 epoch 中的 1 个。 在这里,对于三类未标记的数据,经过训练的网络不能很好地聚类 3 个不同的类。不太清楚为什么网络在测试数据集上不能很好地泛化,而准确率会上升到 1,而损失会下降到 0
Epoch 1/2
2164/2164 [==============================] - 872s 403ms/step - loss: 6668.9662 - accuracy: 0.7253 - val_loss: 3785921.0000 - val_accuracy: 0.9982
Epoch 2/2
2164/2164 [==============================] - 869s 401ms/step - loss: 0.0000e+00 - accuracy: 1.0000 - val_loss: 3857374.2500 - val_accuracy: 0.9983
有什么见解/建议吗?
【问题讨论】:
-
准确性是您案例的误导性指标
标签: keras neural-network autoencoder