我想其中输入基本应用了高斯噪声的向量训练的一些模拟数据自动编码。该代码是几乎完全一样在这个例子:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/autoencoder.py培训产生误差非常低,但非常不正确的(几乎所有的)输出
唯一的区别是,我改变了网络参数和成本函数:
n_hidden_1 = 32 # 1st layer num features
n_hidden_2 = 16 # 2nd layer num features
n_input = 149 # LunaH-Map data input (number of counts per orbit)
cost = tf.reduce_mean(-tf.reduce_sum(y_true * tf.log(y_pred), reduction_indices=[1]))
在训练过程中,误差稳步下降至0.00015,但预测值和真值非常不同,例如 as shown in this image。事实上,预测的y矢量几乎全是1。
如何通过非常错误的预测来减少误差?我的网络是否有可能试图将权重移近log(1),以尽量减少交叉熵成本?如果是这样,我该如何解决这个问题?
您使用哪些数据进行评估?训练数据或未使用的验证数据? – yuval
如果您所预测的结果是看不见的数据,那么您可能会遇到过度拟合的问题,即您的算法只是“记忆”了训练数据集,但没有足够好地归纳出新的,不可见的数据。 – kaufmanu