具有数据不平衡问题的二元分类损失函数
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 来克服它。
我尝试使用带有 keras 的深度卷积神经网络来分割 MR 图像中的多发性硬化病灶。在此任务中,必须对每个体素进行分类,作为病变体素或健康体素。
这项任务的挑战是数据不平衡,即病变体素的数量少于健康体素的数量,数据极度不平衡。
我的训练数据很少,无法使用抽样技术。我尝试 select 适当的损失函数来对这些图像中的体素进行分类。
我测试了 focal
损失,但我无法调整此损失函数中的 gamma
参数。
也许有人可以帮助我如何select为这个任务适当的损失函数?
Focal loss 确实是一个不错的选择,但很难调整它来工作。
我建议使用 forward
通过后,您会计算每个体素的损失。 在计算梯度之前,根据损失(从高到低)对“健康”体素进行排序,并将除较差 k
之外的所有健康体素的损失设置为零(其中 k
大约是批次中“病变”体素数量的 3 倍)。
这样,梯度只会被估计为一个大致平衡的集合。
This 视频详细解释了 class 不平衡如何对训练产生负面影响,以及如何使用在线 hard negative mining 来克服它。