自动编码器并没有改善我的神经网络损失

问题描述 投票:0回答:1

所以我试图通过使用自动编码器进行预处理来改善我的神经网络结果。数据看起来或多或少是这样的:

A 栏 B 栏 C 栏 D 栏 目标
-70 -76 -76 -80 1
-93 -100 -94 -100 4
-88 -83 -89 -85 2
-100 -95 -91 -99 4
-100 -86 -82 -80 3

-100 实际上是 null 的默认值,因为设备无法获取数据。

我使用张量流作为神经网络模型,并使用参数调整来搜索最佳结果。在我使用自动编码器之前,损失约为 1 到 2。但是使用自动编码器后,损失变为 3。我的目标是减少损失,使其小于 1。我使用简单的自动编码器 input_size -> input_size/ 2 -> input_size/2 -> input_size 不使用 Target 列的层。

我所做的只是使用所有原始数据训练自动编码器,然后保存自动编码器模型。之后,我将原始数据预测到模型A,然后使用模型A处理过的数据来训练神经网络(参数调整)来预测目标。

这是原始数据图形:

raw data

这是数据经过自动编码器处理后的结果:

processed data

我的脚步有问题吗?或者还有其他方法可以改善我的模型损失吗?我只能使用神经网络,因为这是我的任务

我尝试过使用简单的自动编码器,数据处理后的图形看起来不错。但是,当我使用处理后的数据来训练神经网络来预测答案时,损失比使用自动编码器之前更严重。我正在寻求改善损失,使其变得小于 1。

python tensorflow neural-network data-cleaning
1个回答
0
投票

在您对实施的描述中,我认为您的培训流程中没有任何重大问题,但我认为有一些方面可以改进:

  1. 模型的架构:绝对应该在架构中添加更多层。您还可以实现卷积自动编码器,即引入一维卷积层的自动编码器。我坚信这些架构上的变化会带来改进。
  2. 训练超参数:您没有报告太多有关训练参数的信息,但我认为这些可以影响训练。降低学习率并引入耐心值等于 10/15 的早期停止条件。
© www.soinside.com 2019 - 2024. All rights reserved.