使用神经网络进行线性回归

时间:2018-10-23 14:57:29

标签: neural-network deep-learning linear-regression relu

我正在使用以下样本训练数据来处理回归问题。

enter image description here

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

我相信这是一个小问题,非常简单的神经网络模型可以在测试数据上达到100%的准确性,但结果恰恰相反。

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

我的问题是我如何才能使神经网络获得100%的线性回归测试数据? 假定使用带有线性激活的浅层网络与线性回归器等效,但结果不同,我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

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

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