为什么Autoencoder也将输入数据作为标签数据

Why does Autoencoder take the input data as label data as well

我正在按照指南构建一个基本的单层自动编码器来学习 Keras 和自动编码器。但是我意识到该模型在训练期间将 X_train 数据作为输入数据和标签数据,实际上与评估中的 X_test 相同。我还检查了另一个示例自动编码器代码,它们也具有相同的结构。

这是不是因为autoencoder是按原样取数据的,就像label就是数据本身没有特定的label?这背后的原因是什么,难道我们不能 运行 模型完全没有给出任何标签(我实际上尝试过这个但 Keras 不喜欢这个想法并给出了错误)?

训练和评估调用如下

autoencoder.fit(X_train,X_train, epochs=nb_epoch, batch_size=batch_size, shuffle=True, verbose=0)

test_predictions = autoencoder.predict(X_test)
print('Test reconstrunction error\n', sklearn.metrics.mean_squared_error(X_test, test_predictions))

注意:我的数据只是随机生成的,正态分布的5d数据如果有效果的话

编辑:谢谢大家这是我的bad/confusion,正如我在评论中所说,我完全忽略了系统将比较重构输出的部分与标签数据。因为据说比较是在口头交谈时用输入数据完成的。然而在构建的系统中,错误是根据给定的标签数据和输出之间的差异计算的

自动编码器旨在将输入数据压缩成精简的、有意义的参数,并将它们解码回输入数据。因此,当模型能够准确地再现输入数据时,它就训练有素。因此,y 标签是输入数据本身,作为输出获得的损失是衡量您想要预测的内容(输入数据本身)与您的模型实际生成的内容之间的相似性