我正在尝试基于表格数据输入来拟合密集神经网络,其中输出是两个独立的分类向量,每个分类向量都有一个交叉熵损失函数。
示例:给定一些输入特征,对于访问旅游网站并打算购买火车票的客户,该模型将预测旅行目的地和客户可能的旅行等级(一等或二等)买。
问题:似乎在内部,网络在隐藏层的某个点被一分为二,每个子网络都专门预测一个输出向量,而忽略另一个。这导致每个输出的总体可接受精度,但两个输出之间的一致性仍有待改进。
例如,对于给定的条目,网络将预测“伦敦”和“第一类”,因为独立地,每个输出根据输入特征是有意义的,但是没有一个训练点可以是伦敦和第一类一起发现,仅仅是因为去伦敦旅行时没有一等舱的选择。该网络似乎完全不关心两者之间的一致性。
例如,如果乘客是一名 35 岁的会计师并从布鲁塞尔出发,则训练集给出了一个明确的赢家destination: London
,分别为 和 ,class: 1st
因此这就是网络倾向于预测的结果,尽管这种组合完全不存在。
是否有任何方法可以修改网络和/或损失函数的组织,以便考虑两个输出之间的一致性,并且网络将避免在训练集中找不到的输出组合,并支持那些?
更一般地说,解决这个问题的一些好方法是什么?请注意,如果可能的话,我想避免使用手动规则。