具有数据不平衡问题的二元分类损失函数

Loss function for binary classification with problem of data imbalance

我尝试使用带有 keras 的深度卷积神经网络来分割 MR 图像中的多发性硬化病灶。在此任务中,必须对每个体素进行分类,作为病变体素健康体素

这项任务的挑战是数据不平衡,即病变体素的数量少于健康体素的数量,数据极度不平衡。

我的训练数据很少,无法使用抽样技术。我尝试 select 适当的损失函数来对这些图像中的体素进行分类。

我测试了 focal 损失,但我无法调整此损失函数中的 gamma 参数。

也许有人可以帮助我如何select为这个任务适当的损失函数?

Focal loss 确实是一个不错的选择,但很难调整它来工作。

我建议使用 :在每次迭代中,在您的 forward 通过后,您会计算每个体素的损失。 在计算梯度之前,根据损失(从高到低)对“健康”体素进行排序,并将除较差 k 之外的所有健康体素的损失设置为零(其中 k 大约是批次中“病变”体素数量的 3 倍)。
这样,梯度只会被估计为一个大致平衡的集合。

This 视频详细解释了 class 不平衡如何对训练产生负面影响,以及如何使用在线 hard negative mining 来克服它。