如何使用神经网络对 3 个函数进行回归

数据挖掘 机器学习 神经网络 深度学习 喀拉斯 回归
2022-03-14 04:40:27

我目前正在使用 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”?

有什么建议么?对不起,我是深度学习的新手...

2个回答

我的输出层应该有 1 个还是 3 个神经元?

最简单的做法是创建 3 个独立的网络,一个用于您要近似的每个函数。

虽然如果您通过多任务框架将所有 3 个输出组合到同一个模型中肯定会有所帮助,但我建议从更直观的单独网络开始。然后,如果您想看看将它们组合在一个网络下是否可以提高您的性能,您可以查看如何在 keras中创建具有多个输出的模型。

另外,我应该对输出层使用 relu 还是线性激活函数?

线性的,绝对的。

对于我的指标,我应该使用“准确度”还是“r2”?

准确性是分类的指标,而不是回归的指标。可以使用,但对于某些问题,它不是很可靠。您可以尝试以及MSEMAE、 MSLE (预测/实际值的 s 的 MSE)等。r2r2log

为每个函数创建不同的网络,每个函数都有一个输出。

确保每个网络中至少有一个隐藏层。在这一层使用 ReLU。在输出端使用线性层,没有任何激活函数。

由于您正在执行回归,因此请使用均方误差来评估您的网络https://en.wikipedia.org/wiki/Mean_squared_error