提问者:小点点

使用神经网络的线性回归


我正在处理以下示例训练数据的回归问题。

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

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

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

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


共1个答案

匿名用户

如果你使用线性激活,深度模型原则上与线性回归/1层的NN相同。例如,具有线性激活的深度NN,预测给出为y=W_3(W_2(W_1x))),它可以重写为y=(W_3(W_2W_1))x,这与y=(W_4x)相同,这是一个线性回归。

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