我有一个模型,包含两个输出层,分别用于预测年龄和性别。我希望为每个输出层的损失分配不同的权重值。我使用以下代码行来实现这一点。
model.compile(loss=[losses.mean_squared_error,losses.categorical_crossentropy], optimizer='sgd',loss_weights=[1,10])
我的问题是损失权重对模型性能有何影响?我该如何配置损失权重,使模型在年龄预测上表现得更好?
回答:
正如François Chollet在《用Python进行深度学习》一书中所述:
用于年龄回归任务的均方误差(MSE)损失通常在3到5之间,而用于性别分类任务的交叉熵损失可能低至0.1。在这种情况下,为了平衡不同损失的贡献,你可以为交叉熵损失分配10的权重,而为MSE损失分配0.25的权重。