我使用自动编码器作为降维技术,将学习到的表示用作可用于进一步分析的低维特征。
代码片段:
# Note: implementation --> based on keras
encoding_dim = 32
# Define input layer
X_input = Input(shape=(X_train.shape[1],))
# Define encoder:
encoded = Dense(encoding_dim, activation='relu')(X_input)
# Define decoder:
decoded = Dense(X_train.shape[1], activation='sigmoid')(encoded)
# Create the autoencoder model
AE_model = Model(X_input, decoded)
#Compile the autoencoder model
AE_model.compile(optimizer='adam', loss='mse')
#Extract learned representation
learned_feature = Model(X_input, encoded)
history = AE_model.fit(X_train, X_train, epochs=10, batch_size=32)
我一直在寻找一种方法来衡量学习表示的质量。我发现一种方法是测量重建误差。我使用以下代码来这样做:
import math
reconstr_error = AE_model.evaluate(X_train, X_train, verbose=0)
print('The reconstruction error: %.2f MSE (%.2f RMSE)' % (reconstr_error , math.sqrt(reconstr_error )))
结果我得到了 0.00 MSE (0.05 RMSE)。然而,我不确定上面的代码在测量重构误差方面是否正确?另外,如果有其他方法可以这样做,请告诉我。
慕丝7291255
相关分类