Тензорный поток: интерпретация веса в взвешенной кросс-энтропии

Функция Tensorflow tf.nn.weighted_cross_entropy_with_logits() принимает аргумент pos_weight, Документация определяет pos_weight как "Коэффициент для использования на положительных примерах". Я предполагаю, что это означает, что увеличение pos_weight увеличивает потери от ложных срабатываний и уменьшает потери от ложных срабатываний. Или у меня это задом наперед?

1 ответ

Решение

На самом деле, все наоборот. Цитирующая документация:

Аргумент pos_weight используется в качестве множителя для положительных целей.

Итак, если у вас есть 5 положительные примеры в вашем наборе данных и 7 отрицательно, если вы установите pos_weight=2тогда ваша потеря будет такой, как если бы вы 10 положительные примеры и 7 отрицательный.

Предположим, что вы правильно поняли все положительные примеры и все отрицательные. Первоначально вы бы имели 5 ложные негативы и 0 ложные срабатывания. Когда вы увеличиваете pos_weightколичество ложных негативов будет искусственно увеличиваться. Обратите внимание, что значение убытка от ложных срабатываний не изменяется.

Другие вопросы по тегам