哪个神经网络更好?

机器算法验证 自习 神经网络
2022-03-26 17:20:08

这是一个家庭作业问题,我无法得出任何结论。我明天有考试。请帮帮我。

我们有一组来自去过医院的患者的数据。还为每位患者提取了一组特征(例如,温度、身高……)。我们的目标是确定新来访的患者是否患有某些n

这个问题要用神经网络来解决。我们有两种选择:要么为每种疾病训练一个单独的神经网络,要么为每种疾病训练一个具有一个输出神经元的单个神经网络,但具有一个共享的隐藏层。你更喜欢哪种方法?证明你的回答。

我的观点:两种方法几乎相同,因为我们必须在两种情况下训练相同数量的权重。但是在一种情况下,我们可以一次全部训练它们,而在另一种情况下,我们将单独训练它们,因此训练需要更多时间。

3个回答

提示:对所有疾病使用一个网络的主要区别在于,在这种情况下,隐藏层可能会学习一些可以在疾病预测输出之间共享的特征。

为什么你认为训练单个模型需要更多时间?

如果疾病是互斥的(即同时患有不止一种疾病的概率可以忽略不计),例如对于鉴别诊断,那么在输出层中使用具有softmax激活函数的单个网络将是一个好主意。这将使共享隐藏单元更有效,如果隐藏单元的某些组合表明疾病 A 很可能,这将迫使其他疾病的输出接近于零。

就我个人而言,我尽量不担心训练时间(只要它仍然可行),因为最好慢慢地得到一个好的答案而不是快速地得到一个坏的答案。在错误可能产生严重后果的医疗环境中尤其如此。

取决于您的数据的分布方式以及您的结果是否相关(或不相关)。

为什么不尝试这两种方法并说服自己哪一种更好以及为什么。没有免费的午餐,有时结果可能与您的直觉/假设完全不同。

以下是一些一般性提示:

确保您的实验方法正确,并将您的数据拆分为训练+验证/测试或交叉验证/测试。记录所有内容:所有实验的所有(超)参数和损失演化(收敛)。反复试验。因果。所以一次只改变一件事。

您可能还想研究诸如dropout之类的事情,并观察和测试它在网络上的影响(研究ensemble)。独立网络不需要完全独立。

最后:

以下是您在所有努力之后可能想问自己的一些问题:各种结果(疾病)之间是否存在任何关系?如果没有,与其他 NN 模型共享参数是否有任何意义?那么最佳架构是什么?如果这是一个真实世界的设置,我怎么能确保我可以轻松地将新疾病添加到系统中?也许可能有一些相关性很好的疾病组?如何使用单个网络找到这些组?与这些组相关的特征是什么?

这可能比你的家庭作业需要的多,我想说的是你需要有一些假设,测试它,然后重复。没有人可以肯定地告诉你任何事情。在你测试它之前,这都是猜测。

祝你好运,享受这个过程。我希望我的回答能激励您自己尝试并找出更多信息。