В чем разница между CrossEntropy и NegativeLogLikelihood в MXNet?

1

Я пытался оценить свои модели классификации с метрикой логарифмических потерь, используя модуль mxnet.metric.

Я столкнулся с двумя классами: CrossEntropy и NegativeLogLikelihood которые имеют одно и то же определение и очень похожую реализацию. Оба имеют один и тот же базовый код для вычисления значения показателя:

self.sum_metric += (-numpy.log(prob + self.eps)).sum()

Если они по сути являются одними и теми же метриками, какова цель сохранения обеих функций в библиотеке? Какая метрика предпочтительнее для бинарной и многоклассовой классификации?

Теги:
classification
loss-function
mxnet
cross-entropy

1 ответ

1

На самом деле разница между этими вещами не очень велика не только в MXNet, но и в целом. Прочтите эту Quora для большей интуиции: https://www.quora.com/What-are-the-differences-between-maximum-likelihood-and-cross-entropy-as-a-loss-function

Что касается того, что используется для классификации нескольких классов в MXNet, то в большинстве примеров я видел, как люди используют SoftmaxCrossEntropyLoss. См. Пример здесь: https://gluon.mxnet.io/chapter02_supervised-learning/softmax-regression-gluon.html

  • 0
    Это странно, если они идентичны, исходный код должен явно указывать, что «один является синонимом другого» и имеет 1 общую реализацию, в противном случае он нарушает принцип DRY

Ещё вопросы

Сообщество Overcoder
Наверх
Меню