0

我正在使用以下示例训练数据解决回归问题。

在此处输入图像描述

如图所示,我只有 4 个参数的输入,其中只有一个在变化,即 Z,因此其余参数没有实际值,而 124 个参数的输出表示从 O1 到 O124 注意 O1 以 20 [1000 然后1020 然后 1040 ...] 虽然 O2 以不同的速率变化,即 30 但仍然是恒定的,并且同样适用于所有 124 个输出,所有这些都以恒定的方式线性变化。

我相信这是一个微不足道的问题,一个非常简单的神经网络模型将在测试数据上达到 100% 的准确度,但结果却恰恰相反。

  • 我使用线性回归器达到了 100% 的测试准确度,使用 KNN 回归器达到了 99.99997% 的测试准确度
  • 我在使用 relu 激活的 10 层神经网络中达到了 41% 的测试数据准确率,而所有其余的激活函数都失败了,浅层 relu 也失败了
  • 使用具有线性激活函数且没有隐藏层的简单神经网络,我在测试数据上达到了 92%

我的问题是如何让神经网络获得 100% 的测试数据,如线性回归器?假设使用具有线性激活的浅层网络与线性回归器等效,但结果不同,我是否遗漏了什么?

4

1 回答 1

0

如果您使用线性激活,深层模型原则上与线性回归/具有 1 层的 NN 相同。例如,具有线性激活的深度神经网络,预测为 y = W_3(W_2(W_1 x))),可以重写为 y = (W_3 (W_2 W_1))x,与 y = (W_4 x ),这是一个线性回归。

鉴于检查没有隐藏层的 NN 是否收敛到与线性回归相同的参数。如果不是这种情况,那么您的实现可能是错误的。如果是这种情况,那么您较大的 NN 可能会收敛到某个问题的解决方案,其中测试准确度会更差。然后尝试不同的随机种子。

于 2018-10-24T08:23:12.930 回答