Каковы именно потери в Matterport Mask-R-CNN? - PullRequest
1 голос
/ 26 марта 2019

Я использую Mask-R-CNN для обучения своих данных с ним. Когда я использую TensorBoard, чтобы увидеть результат, у меня появляется потеря , mrcnn_bbox_loss , mrcnn_class_loss , mrcnn_mask_loss , rlon_bbox *, rpn_class_loss и все те же 6 потерь для проверки: val_loss, val_mrcnn_bbox_loss и т. Д.

Я хочу знать, что такое каждая потеря.

Также я хочу знать, являются ли первые 6 потерь потерей поезда или каковы они? Если это не потеря поезда, как я могу увидеть потерю поезда?

Мое предположение:

убыток : это все 5 потерь в итоге (но я не знаю, как TensorBoard суммирует их).

mrcnn_bbox_loss : правильный ли размер ограничивающего прямоугольника или нет?

mrcnn_class_loss : правильный ли класс? правильно ли назначен пиксель классу?

mrcnn_mask_loss : правильна ли форма экземпляра или нет? правильно ли назначен пиксель экземпляру?

rpn_bbox_loss : правильный ли размер bbox?

rpn_class_loss : правильный ли класс bbox?

Но я почти уверен, что это неправильно ...

А некоторые потерянные не имеют значения, если у меня только 1 класс? Например только фон и 1 другой класс?

Мои данные имеют только фон и еще один класс, и это мой результат на TensorBoard:

Result 1:Result 2:Result 3:Result :4

Мой прогноз в порядке, но я не знаю, почему некоторые потери от моей проверки растут и уменьшаются в конце ... Я думал, что это должно быть сначала только вниз, а после переоснащения только вверх. Предсказание, которое я использовал, - зеленая линия на TensorBoard с большинством эпох. Я не уверен, что моя сеть перегружена, поэтому мне интересно, почему некоторые потери в проверке выглядят так, как они выглядят ...

Вот мой прогноз: Example of my Trainset: This is the Ground Truth of my Testset example: This is the prediction from the Testset example:

1 Ответ

3 голосов
/ 11 апреля 2019

В соответствии с комментариями кода и документацией в индексе пакетов Python эти потери определены как:

  • rpn_class_loss = потеря якоря классификатора RPN
  • rpn_bbox_loss = график потерь ограничивающей рамки RPN
  • mrcnn_class_loss = потеря для головы классификатора маски R-CNN
  • mrcnn_bbox_loss = потери для уточнения ограничительной рамки R-CNN
  • mrcnn_mask_loss = двоичная перекрестная энтропийная потеря маски для головы масок

Каждая из этих метрик потерь представляет собой сумму всех значений потерь, рассчитанных индивидуально для каждой интересующей области.Общая метрика убытка , приведенная в журнале, является суммой остальных пяти потерь (вы можете проверить это, суммируя их), как определено авторами Маски R-CNN.

С точки зрения того, как эти потери рассчитываются согласно оригинальной статье , их можно описать следующим образом (обратите внимание, что определения являются довольно грубыми для более интуитивного объяснения):

  • Значения классификационных потерь в основном зависят от доверительной оценки истинного класса, поэтому классификационные потери отражают , насколько модель уверена при прогнозировании меток классов или в другихслова, насколько близка модель к предсказанию правильного класса .В случае mrcnn_class_loss охватываются все классы объектов, тогда как в случае rpn_class_loss единственная классификация, которая выполняется, - это маркировка якорных блоков как переднего или заднего плана (что является причиной того, что эта потеря имеет тенденцию иметь более низкие значения, как концептуальноесть только «два класса», которые можно предсказать).
  • Значения ограничивающего прямоугольника отражают расстояние между истинными параметрами бокса , то есть (x, y) координатырасположение ящика, его ширина и высота - и прогнозируемые .Это по своей природе потеря регрессии, и она наказывает большие абсолютные различия (приблизительно экспоненциальным способом для более низких различий и линейно для больших различий - см. Функцию Плавная потеря L1 для большей проницательности).Следовательно, он в конечном итоге показывает , насколько хорошо модель находит объекты в изображении, в случае rpn_bbox_loss;и насколько хороша модель для точного прогнозирования области (s) на изображении , соответствующей различным присутствующим объектам , в случае mrcnn_bbox_loss.
  • потеря маски , так же как и потеря классификации, наказывает за неправильную двоичную классификацию на пиксель (передний план / фон по отношению к метке истинного класса).Он рассчитывается по-разному для каждой интересующей области: маска R-CNN кодирует двоичную маску для каждого класса для каждого из RoI, а потеря маски для конкретного RoI рассчитывается только на основе маски, соответствующей ее истинному классу, котораяПредотвращает влияние маскирующих потерь на предсказания классов.

Как вы уже сказали, эти метрики потерь действительно являются тренировочными потерями, а метрики с префиксом val_ являются потерями валидации.,Колебания в потере проверки могут происходить по нескольким различным причинам, и на первый взгляд трудно предположить, основываясь только на ваших графиках.Они могут быть вызваны слишком высокой скоростью обучения (превышение стохастического градиентного спуска при попытке найти минимум) или слишком малым набором проверки (который дает ненадежные значения потерь, поскольку небольшие изменения в выходных данных могут привести кбольшие потери значения изменения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...