代码之家  ›  专栏  ›  技术社区  ›  MysteryGuy

Keras如何使用class\u权重参数?

  •  2
  • MysteryGuy  · 技术社区  · 7 年前

    Keras使用 class_weight 参数来处理不平衡的数据集。

    以下是我们在 doc :

    这是否意味着 第1类重量 在训练误差函数中给每个类赋予不同的权重?它对其他地方有影响吗?与代表性最强的类中的“物理”drop实例相比,它真的能有效地防止泛化错误吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Pranav Vempati    7 年前

    这个 参数权重与每个训练示例相关联的损失与该类在训练集中的代表性不足成比例。这可以防止训练过程中的类不平衡,并使网络对泛化错误具有鲁棒性。

    但是,在物理删除与最具代表性的类对应的数据实例时,我会非常小心—如果您的网络很深,因此具有很大的代表性容量,那么剔除数据集可能会导致过度拟合,从而导致验证/测试集的泛化性较差。

    我建议使用Keras文档中指定的class\u weights参数。如果您真的想从最具代表性的类中删除数据实例,请确保调整网络拓扑以降低模型的代表性容量(即添加退出层和/或L2正则化层)。