3

Когда люди пытаются решить задачу семантической сегментации с помощью CNN, они обычно используют потерю softmax-crossentropy во время обучения (см. Fully conv. - Long). Но когда дело доходит до сравнения эффективности различных подходов, сообщается о таких мерах, как перекрест-соединение.Почему вы не используете IOU для обучения?

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

Я вижу, что у IOU есть проблемы для обучения образцов, где класс отсутствует (объединение = 0 и пересечение = 0 => деление нуль на ноль). Но когда я могу гарантировать, что каждый образец моей основной истины содержит все классы, есть ли еще одна причина не использовать эту меру?

ответ

1

Это похоже на вопрос: «Почему для классификации мы тренируем лог-потерю, а не точность?». Причина очень проста - вы не можете напрямую тренироваться для большинства показателей, потому что они не дифференцируются по адресу. к вашим параметрам (или, по крайней мере, не создавать хорошую поверхность ошибки). Логарифмическая потеря (softmax crossentropy) является допустимым суррогатом для точности. Теперь вы совершенно правы, что неправильно тренироваться с чем-то, что не является действительным суррогатом метрики, который вас интересует, и связанная с ней бумага не делает хорошую работу, поскольку по крайней мере для нескольких показателей, которые они рассматривают, - мы могли бы легко показать хороший суррогат (например, для взвешенной точности все, что вам нужно сделать, это потеря веса в журнале).

2

Оформить заказ paper, где они придумали способ сделать концепцию IoU дифференцируемой. Я реализовал их решение с потрясающими результатами!

+1

может включить некоторые из математики здесь, чтобы сделать это не только ссылка ответа. Их алгоритм похож на [Y.Wang и др.] (Http://www.cs.umanitoba.ca/~ywang/papers/isvc16.pdf). Грубо, 'I ~ = sum (Y * Y ')' и 'U ~ = sum (Y + Y' - Y * Y ')'. В вашем документе используется отрицательный журнал 'I/U', а тот, который я связал, использует' 1-I/U'. Мне нравится отрицательная форма журнала, но я собираюсь попробовать оба в ближайшее время. Вы также суммируете после I/U вместо предыдущего. – Poik

+0

По моему личному мнению, более физически разумно вычислять 'I/U' для каждого образца в наборе обучения, а затем выполнять суммирование. Таким образом, вы оцениваете точность на основе каждой выборки, а отдельные ошибки складываются. Выполнение суммирования сначала может привести к аннулированию ошибок ('sum (I)/sum (U)' может дать хороший балл, а 'sum (I/U)' может не совпадать с теми же данными). Я отнюдь не эксперт, хотя ... – MPA

0

Вот еще один способ подумать об этом простым способом.

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

Оценка этого направления является то, что ранее сообщалось, что ошибки дифференцируемые. Я полагаю, что нет ничего о показателях IoU, которые сеть может использовать, чтобы сказать: «Эй, это не совсем здесь, но я должен, возможно, переместить свой ограничивающий блок немного влево!»

Просто струйка объяснения, но надеюсь, что это помогает ..