При обучении нейронных сетей пиксельной сегментации, таких как полностью сверточные сети, как вы принимаете решение использовать функцию кросс-энтропийной потери в сравнении с функцией потери коэффициента Кости?
Я понимаю, что это короткий вопрос, но не совсем уверен, какую другую информацию предоставить. Я просмотрел кучу документации о двух функциях потери, но не смог понять, когда использовать одну над другой.
Ответы:
Одна из убедительных причин использования кросс-энтропии по коэффициенту кубика или подобной метрике IoU заключается в том, что градиенты лучше.
Градиенты кросс-энтропии по логитам - это что-то вроде , где p - выходы softmax, а t - цель. Между тем, если мы попытаемся записать коэффициент кости в дифференцируемой форме: 2 p tр - т п T или2pt2 р тп2+ т2 , то результирующие градиенты по сравнениюс pнамного уродливее:2t22 р тр + т п и2т(т2-р2)2 т2( р + т )2 . Легко представить себе случай, когдаpиtмалы, а градиент увеличивается до некоторого огромного значения. В целом, похоже, что обучение станет более нестабильным.2 т ( т2- р2)( р2+ т2)2 п T
Основная причина, по которой люди пытаются использовать коэффициент кости или IoU напрямую, заключается в том, что фактической целью является максимизация этих метрик, а кросс-энтропия - это просто прокси, который проще максимизировать с помощью обратного распространения. Кроме того, коэффициент Dice лучше справляется с классом несбалансированных задач по конструкции:
Тем не менее, дисбаланс классов, как правило, решается простым назначением множителей потерь для каждого класса, так что сеть сильно игнорируется, чтобы просто игнорировать класс, который появляется нечасто, поэтому неясно, действительно ли в этих случаях коэффициент Кости действительно необходим.
Я бы начал с кросс-энтропийной потери, которая, кажется, является стандартной потерей для обучающих сетей сегментации, если только не было веской причины использовать коэффициент Кости.
источник
Как подытожили @shimao и @cherub, нельзя сказать ariori, какой из них будет лучше работать с конкретным набором данных. Правильный способ - попробовать оба и сравнить результаты. Кроме того, обратите внимание, что когда дело доходит до сегментации, «сравнивать результаты» не так просто : основанные на IoU меры, такие как коэффициент кости, охватывают только некоторые аспекты качества сегментации; в некоторых приложениях необходимо использовать различные меры, такие как среднее расстояние до поверхности или расстояние по Хаусдорфу . Как видите, даже выбор правильной метрики качества не является тривиальным, не говоря уже о выборе наилучшей функции стоимости.
Лично у меня очень хороший опыт с коэффициентом игры в кости; он действительно творит чудеса, когда речь идет о дисбалансе классов (некоторые сегменты занимают меньше пикселей / вокселей, чем другие). С другой стороны, кривая ошибок обучения превращается в полный беспорядок: она не дала мне абсолютно никакой информации о сходимости, поэтому в этом отношении выигрывает кросс-энтропия. Конечно, это можно / нужно обойти путем проверки ошибки проверки в любом случае.
источник