Одна из убедительных причин использования кросс-энтропии по коэффициенту кубика или подобной метрике 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 лучше справляется с классом несбалансированных задач по конструкции:
Тем не менее, дисбаланс классов, как правило, решается простым назначением множителей потерь для каждого класса, так что сеть сильно игнорируется, чтобы просто игнорировать класс, который появляется нечасто, поэтому неясно, действительно ли в этих случаях коэффициент Кости действительно необходим.
Я бы начал с кросс-энтропийной потери, которая, кажется, является стандартной потерей для обучающих сетей сегментации, если только не было веской причины использовать коэффициент Кости.