我目前正在使用 Keras 构建一个神经网络来执行回归。
我有 4 个自变量W,X,Y,Z。它们用于预测 3 个不同的函数f1(W,X,Y,Z), f2(W,X,Y,Z), f3(W,X,Y,Z).
我的输出层应该有 1 个还是 3 个神经元?另外,我应该对输出层使用 relu 还是线性激活函数?我目前正在将 MSE 用于我的损失函数,将 adam 用于我的优化器。
对于我的指标,我应该使用“准确度”还是“r2”?
有什么建议么?对不起,我是深度学习的新手...
我目前正在使用 Keras 构建一个神经网络来执行回归。
我有 4 个自变量W,X,Y,Z。它们用于预测 3 个不同的函数f1(W,X,Y,Z), f2(W,X,Y,Z), f3(W,X,Y,Z).
我的输出层应该有 1 个还是 3 个神经元?另外,我应该对输出层使用 relu 还是线性激活函数?我目前正在将 MSE 用于我的损失函数,将 adam 用于我的优化器。
对于我的指标,我应该使用“准确度”还是“r2”?
有什么建议么?对不起,我是深度学习的新手...
我的输出层应该有 1 个还是 3 个神经元?
最简单的做法是创建 3 个独立的网络,一个用于您要近似的每个函数。
虽然如果您通过多任务框架将所有 3 个输出组合到同一个模型中肯定会有所帮助,但我建议从更直观的单独网络开始。然后,如果您想看看将它们组合在一个网络下是否可以提高您的性能,您可以查看如何在 keras中创建具有多个输出的模型。
另外,我应该对输出层使用 relu 还是线性激活函数?
线性的,绝对的。
对于我的指标,我应该使用“准确度”还是“r2”?
准确性是分类的指标,而不是回归的指标。可以使用,但对于某些问题,它不是很可靠。您可以尝试以及MSE、MAE、 MSLE (预测/实际值的 s 的 MSE)等。
为每个函数创建不同的网络,每个函数都有一个输出。
确保每个网络中至少有一个隐藏层。在这一层使用 ReLU。在输出端使用线性层,没有任何激活函数。
由于您正在执行回归,因此请使用均方误差来评估您的网络https://en.wikipedia.org/wiki/Mean_squared_error。