В чем разница между многоклассовой категориальной кроссэнтропией, mlogloss и multi:softprob?

Вопрос или проблема

Насколько я понимаю, целевая функция — это то, что я пытаюсь оптимизировать, а оценочная статистика — это то, что я использую для поиска переобучения. Я наткнулся на 4 функции потерь, которые, кажется, одинаковы, но я не совсем уверен.

  1. В XGBoost одной из целевых функций для многоклассовой классификации является multi:softprob (https://xgboost.readthedocs.io/en/latest/parameter.html#learning-task-parameters). Я не смог найти никаких формул в документации, но, похоже, эта цель возвращает “предположительную вероятность того, что каждая точка данных принадлежит каждому классу”, т.е. “ndata * nclass матрица”.
  2. Одной из eval_metric в XGBoost является mlogloss. Документация (то же самое, что и выше) ссылается на sklearn.metrics.log_loss, которая представляет собой “логистическую потерю, или потерю перекрестной энтропии”. sklearn‘s Руководство пользователя по логистической потере предоставляет следующую формулу:
    $$
    L(Y, P) = -\frac1N \sum_i^N \sum_k^K y_{i,k} \log p_{i,k}
    $$

    Так что, похоже, mlogloss и (многоклассовая категориальная) потеря перекрестной энтропии — это одно и то же.
  3. В Otto Group Product Classification Challenge говорится о “многоклассовой логарифмической потере” и представлена та же формула, что и выше, поэтому, похоже, mlogloss, потеря перекрестной энтропии и многоклассовая логарифмическая потеря — это всё одно и то же.

Теперь я не совсем уверен, что такое multi:softprob. multi:softmax — это softmax — функция активации, используемая, например, в нейронных сетях. Однако это не измерение ошибки, как потеря перекрестной энтропии, верно? Почему это одна из целей в XGBoost, тогда? К сожалению, похоже, что полезной информации о multi:softprob нет, кроме того, что это не то же самое, что softmax, потому что softprob выводит вектор вероятностей, а softmax — “выход класса” (поэтому, я предполагаю, это ID класса?).


Правильно ли я понимаю, что mlogloss, потеря перекрестной энтропии и многоклассовая логарифмическая потеря — это одно и то же? Как они отличаются от multi:softprob? Что, собственно, такое multi:softprob?

Из документации XGBoost видно, что multi:softmax и multi:softprob являются одной и той же целью. Единственное различие состоит в том, что multi:softprob также возвращает выходной вектор размера ndata * nclass вероятностей классов.

multi:softmax: настраивает XGBoost для многоклассовой классификации, используя цель softmax, также нужно установить num_class (количество классов).

multi:softprob: то же самое, что и softmax, но выводит вектор размера ndata * nclass, который можно дополнительно преобразовать в матрицу ndata * nclass. Результат содержит прогнозируемую вероятность того, что каждая точка данных принадлежит каждому классу.

Ответ или решение

В вашем вопросе действительно рассматриваются важные аспекты метода XGBoost и обработки многоклассовых задач, однако давайте разберем их более подробно, чтобы прояснить различия между multi:softprob, mlogloss и перекрестной энтропией.

  1. multi:softprob:

    • Это одна из функций цели, которая используется в XGBoost для многоклассовой классификации. Когда вы устанавливаете multi:softprob, модель будет производить прогноз вероятностей для каждой из классов для каждого примера в наборе данных. Это означает, что выходом модели будет матрица размера ndata * nclass, где ndata – количество примеров, а nclass – количество классов. Каждый элемент этой матрицы представляет собой вероятность принадлежности конкретного примера к конкретному классу.
    • Важно отметить, что multi:softprob не является мерой ошибки или оценки, а представляет собой способ информирования модели о том, что нужно возвращать прогнозы вероятностей.
  2. mlogloss (логарифмическая потеря):

    • Эта метрика, ссылающаяся на функцию потерь, используется для оценки качества многоклассовой классификации. mlogloss вычисляется как отрицательное среднее из логарифмов предсказанных вероятностей, соответствующих истинной (одинокой) метке класса для каждого примера. Формула выглядит так:
      [
      L(Y, P) = -\frac{1}{N} \sum{i=1}^{N} \sum{k=1}^{K} y{i,k} \log p{i,k}
      ]
      где (Y) – истинные метки классов, а (P) – предсказанные вероятности.
    • mlogloss полезен для мониторинга переобучения модели и оценки ее эффективности на валидационных данных.
  3. Кросс-энтропийная потеря:

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

Подводя итог, можно считать, что mlogloss и кросс-энтропия действительно обозначают одно и то же — функцию потерь, используемую для оценки качества многоклассовой классификации. В то время как multi:softprob является функцией, которая предсказывает вероятности для каждого класса, а не мерой ошибки. Это позволяет использовать вероятностные прогнозы, что может быть полезно в сценариях, где важна интерпретация и оценка вероятности каждой категории.

Если у вас есть дополнительные вопросы или необходимы более глубокие разъяснения, не стесняйтесь спрашивать!

Оцените материал
Добавить комментарий

Капча загружается...