我正在使用以下示例训练数据处理回归问题 .
如图所示,我只有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_4 x)相同),这是一个线性回归 .
鉴于检查没有隐藏层的NN是否收敛到与线性回归相同的参数 . 如果不是这种情况,那么您的实现可能是错误的 . 如果是这种情况,那么较大的NN可能会收敛到问题的某种解决方案,其中测试精度更差 . 然后尝试不同的随机种子 .