Недавно я применил RESUNET для сегментации паразитов на изображениях образцов крови. Модель описана в этом документе, https://arxiv.org/pdf/1711.10684.pdf, а вот код https://github.com/DuFanXin/deep_residual_unet/blob/master/res_unet.py. Сегментарный вывод представляет собой двоичное изображение. Я тренировал модель с взвешенной бинарной кросс-энтропийной потерей, придавая больший вес классу паразитов, поскольку в моих изображениях существует дисбаланс классов. Последний выходной слой имеет сигмовидную активацию.
Я вычисляю значение точности, отзыва и коэффициента кости, чтобы проверить, насколько хороша сегментация при обучении. При обучении и проверке я получил хорошие числовые результаты:
Обучение dice_coeff: .6895, f2: 0,8611, точность: 0,6320, отзыв: 0,9563
Проверка val_dice_coeff: .6433, val_f2: 0,7752, val_precision: 0.6052, val_recall: 0.8499
Однако, когда я пытаюсь визуально увидеть сегментации набора проверки, мой алгоритм выводит весь черный. После анализа прогнозов, возвращаемых моделью, почти все значения близки к нулю, поэтому она не может правильно различать фон и передний план. Проблема в следующем: почему мои метрики показывают хорошие числовые значения, а выходной сегментации нет? Я имею в виду, метрики не дают мне хорошую информацию? Почему значение отзыва выше, даже если на выходе все черное? Я тренировался около 50 эпох, и мои тренировочные кривые показывают, что я постоянно учусь. Это потому, что проблема исчезающего градиента?