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