Tensorflow 为什么可以';我的神经网络不能从输入中恢复信息吗?

Tensorflow 为什么可以';我的神经网络不能从输入中恢复信息吗?,tensorflow,neural-network,keras,theano,conv-neural-network,Tensorflow,Neural Network,Keras,Theano,Conv Neural Network,我正在尝试建立一个神经网络,学习预测给定多个输入统计(每个样本中的多个数据点)的一致性统计 换句话说,我的输入数据是形状的(n_样本、n_统计、n_点) 输出为(n个样本,1个共识统计,n个点) 神经网络应该学习给定n_统计量的单一一致性输出;其他n_点中的数据可能有助于恢复关系,因此可能值得添加一个完全连接的层。请注意,其中一个n_统计数据在量级上与1_共识统计数据非常相似(大多数n_点约为3.1,但有些值很小(0.5或0.2)第一个和第三个n_统计量与此相似;另一个n_统计量的值较小,但它们

我正在尝试建立一个神经网络,学习预测给定多个输入统计(每个样本中的多个数据点)的一致性统计

换句话说,我的输入数据是形状的(n_样本、n_统计、n_点) 输出为(n个样本,1个共识统计,n个点)

神经网络应该学习给定n_统计量的单一一致性输出;其他n_点中的数据可能有助于恢复关系,因此可能值得添加一个完全连接的层。请注意,其中一个n_统计数据在量级上与1_共识统计数据非常相似(大多数n_点约为3.1,但有些值很小(0.5或0.2)第一个和第三个n_统计量与此相似;另一个n_统计量的值较小,但它们与一致性输出之间应该存在非线性关系——即它们应该帮助网络学习一致性统计量)

相反,网络学习预测所有n_点的大小约为2.5-3.0。不知何故,它设法释放了可以从简单线性回归模型中检索到的信息。这是我在Keras的设置。我做错了什么

model = Sequential()
model.add(LocallyConnected1D(n_points, 3, input_shape=(n_statistics=6,n_points),  kernel_initializer="uniform"), activation='relu')
model.add(AveragePooling1D(strides=2))
model.add(LocallyConnected1D(n_points, 2, kernel_initializer="uniform"), activation='relu')
model.add(Dense(n_points, activation='relu',  kernel_initializer="uniform"))
model.add(Dense(n_points, activation='softplus', kernel_initializer="uniform")) 

model.compile(optimizer='adamax', loss='mean_squared_logarithmic_error', metrics=['mse'])

如何对数据进行预处理?这可能很重要,这样人们就可以看到你的整个过程,我根本不进行预处理。我将shape input_shape=(n_statistics=6,n_点)数组作为输入。它只是介于0.2和4.0之间的纯数字。实际上,统计1很好地反映了输出的大小,统计2不太好(数字很小,最大值约为1.0)等等。是否规范化输入数据并使输出不规范?否则我会丢失一些信息…你为什么会丢失信息?您不必规范化输出。。