Борьба с дисбалансом классов с помощью правильной функции потерь: IoU, Dice или Dice 2-класса?

В настоящее время я работаю над диссертацией бакалавра и сталкиваюсь с некоторыми трудностями, пытаясь понять различия в функциях потерь в отношении дисбаланса класса и самого дисбаланса класса.

Я работаю над проблемой сегментации с изменением U-Net ( https://arxiv.org/pdf/1505.04597.pdf).

Мой набор данных содержит 11 классов, один из которых гораздо реже, чем большинство других. Входные данные для моей сети - это np-массив формы (700,512,512,3) для входных rgb-изображений и формы (700,512,512,11) для наземных меток истинности. Каждый из 11 каналов наземной истинности имеет двоичное кодирование (1 для определенного класса присутствует, 0 для его отсутствия). Таким образом, есть одна маска на класс на изображение. В большинстве масок количество единиц намного меньше, чем у нулей.

Сначала относительно дисбаланса класса:

Я не нашел четкого определения термина "дисбаланс классов". На мой взгляд, возможны три интерпретации:

  1. Из всех 700 входных изображений один класс встречается гораздо реже, чем большинство других.
  2. В пределах одной маски одного изображения число 0 намного больше, чем число 1
  3. На всех входных изображениях для одного класса (среднее) число 0 намного больше, чем число 1

Для каждой из этих интерпретаций я могу представить себе проблемы. Что обычно подразумевается, когда речь идет о дисбалансе класса? И как это приведет к проблемам?

Теперь потеря функций. Функции потери, которые я пытаюсь понять:

В своем исследовании я прочитал, что у IoU Loss есть проблемы при столкновении с несбалансированными наборами данных. Я также читал, что Dice Loss работает лучше в этом случае, но я не смог найти объяснения. Это было просто обесценено как "общеизвестное". Я предполагаю, что потеря Костей 2-го класса была бы еще лучше, поскольку она рассматривает бинарную проблему с обеих сторон, несколько компенсируя дисбаланс класса.

Мое предположение, основанное главным образом на примере, который я использовал (см. Ниже):

С IoU ошибочные положительные прогнозы имеют меньшую ошибку по сравнению с ложными отрицательными. Однако вероятность получения ложного положительного прогноза выше для категории с несколькими пикселями, так что сеть может согласиться на ложные отрицания. Потеря игральных костей наказывает ложные отрицательные и ложные положительные результаты меньше, чем потеря IoU, а разница между ошибкой ложного положительного результата и ошибкой отрицательного отрицательного значения меньше для потери игральных костей. Это должно привести к улучшению производительности, потому что дисбаланс в вероятностях компенсируется незначительно. При потере кубиков 2-го класса все ошибки наказываются с обеих сторон, что приводит к меньшей разнице между ложноотрицательными и ложноположительными терминами ошибок.

Это правда? Где я не прав? На данный момент, я действительно смущен и был бы признателен за любые указания. Некоторые источники относительно моих вопросов также очень помогли бы.

И последний вопрос: какая функция потерь была бы наиболее подходящей для моего случая в отношении дисбаланса классов?

Заранее спасибо!

Example with 9 pixels, two 1s, seven 0s:

         all correct | 1 false positive | 1 false negative

IoU     |     1      |        0.33      |      0.5

Dice    |     1      |        0.2       |      0.33

Dice2   |     1      |        0.14      |      0.2

0 ответов

Другие вопросы по тегам