Я использую модель UNet для обучения алгоритма сегментации с примерно 1000 медицинских изображений в градациях серого и 1000 соответствующими масками, где интересующий участок в медицинском изображении имеет белый пиксель, а фон - черный.
Я использую потерю игральных костей и аналогичную оценку игральных костей в качестве показателя точности, чтобы учесть тот факт, что мои белые пиксели, как правило, меньше, чем пиксели черного фона. Но у меня все еще есть некоторые проблемы при обучении
1) Потери сходятся слишком быстро. Если у меня скорость обучения моего оптимизатора SGD, например, 0,01, примерно в 2 эпохи потери (обучение и проверка) упадут до 0,00009, и точность возрастет и оседает на 100% пропорционально. Тестирование на невидимом наборе дает пустые изображения.
Предположение - переоснащение:
Я предположил, что это произошло из-за переоснащения, поэтому я максимально расширил набор данных жесткими преобразованиями - переворачиванием и вращением, но все равно не помогло.
Кроме того, если я проверяю модель на основе тех же данных, которые использовались для ее обучения, она все равно предсказывает пустые изображения. Значит ли это, что это не случай переоснащения?
2) Модель не выглядит даже как тренировочная. Мне удалось проверить модель, прежде чем она превратила все данные теста в черноту, но даже тогда результаты выглядели как размытые версии оригинал без сегментирования функций, выделенных моей тренировочной маской
3) Графики потерь по сравнению с эпохами и точностью по сравнению с эпохами очень гладкие: Они не демонстрируют никакого колебательного поведения, которое я ожидаю увидеть при выполнении семантической сегментации. Согласно этому посту, связанному с , гладкий график обычно происходит, когда существует только один класс. Однако я предположил, что моя модель увидит тренировочные маски (белые пиксели против черных пикселей) и увидит это как проблему двух классов. Я ошибаюсь в этом предположении?
4) Согласно эта игральная кость хороша для несбалансированного тренировочного набора. Я также пытался получить точные / отзывные / F1 результаты, как они предполагают, но не смог этого сделать, и предположил, что это может быть связано с моей третьей проблемой, где модель рассматривает мою задачу сегментации как отдельную проблему класса.
TLDR: Как я могу исправить результаты черного вывода, которые я получаю? Не могли бы вы помочь мне уточнить, видит ли моя модель обучения мои белые и черные пиксели в каждой маске как два отдельных класса, и если нет, то что на самом деле делает?