В Tensorflow у меня есть сеть классификаторов и несбалансированные учебные классы. По разным причинам я не могу использовать повторную выборку для компенсации несбалансированных данных. Поэтому я вынужден компенсировать дисбаланс другими способами, в частности умножая логиты на веса в зависимости от количества примеров в каждом классе. Я знаю, что это не лучший подход, но повторная выборка не подходит. Моя тренировочная потеря - tf.nn.softmax_cross_entropy_with_logits
(тоже могу попробовать tf.nn.sparse_softmax_cross_entropy_with_logits
). Документация Tensorflow включает в описание этих операций следующее:
ПРЕДУПРЕЖДЕНИЕ. Эта операция ожидает немасштабированных логитов, поскольку для повышения эффективности она выполняет softmax для логитов внутри. Не вызывайте эту операцию с выводом softmax, так как она даст неверные результаты.
Мой вопрос: относится ли приведенное выше предупреждение только к масштабированию, выполняемому softmax, или это означает, что любое масштабирование логита любого типа запрещено? Если последнее, то вызывает ли мой логит-масштабирование с перебалансировкой классов ошибочные результаты?
Спасибо,
Рон