Имеет ли смысл перекрестная энтропия в контексте регрессии (в отличие от классификации)? Если да, не могли бы вы привести пример с игрушкой через TensorFlow? Если нет, то почему нет?
Я читал о кросс-энтропии в Neural Networks и Deep Learning Майкла Нильсена, и кажется, что это то, что естественно можно использовать для регрессии, а также для классификации, но я не понимаю, как вы применили бы это эффективно в TensorFlow, так как Функции потерь берут логиты (которые я не очень понимаю), и они перечислены здесь под классификацией
regression
entropy
tensorflow
cross-entropy
JacKeown
источник
источник
Ответы:
Нет, не имеет смысла использовать функции TensorFlow как
tf.nn.sigmoid_cross_entropy_with_logits
для задачи регрессии. В TensorFlow «кросс-энтропия» - это сокращение (или жаргон) для «категорической кросс-энтропии». Категориальная кросс-энтропия - это операция над вероятностями. Проблема регрессии пытается предсказать непрерывные результаты, а не классификации.Жаргон "кросс-энтропия" немного вводит в заблуждение, потому что существует любое количество функций кросс-энтропийной потери; однако в машинном обучении принято называть эту конкретную потерю потерей "кросс-энтропии".
Если мы посмотрим за пределы функций TensorFlow, на которые вы ссылаетесь, то, конечно, существует любое количество возможных кросс-энтропийных функций. Это связано с тем, что общая концепция кросс-энтропии заключается в сравнении двух распределений вероятностей. В зависимости от того, какие два распределения вероятностей вы хотите сравнить, вы можете получить потерю, отличную от типичной категориальной кросс-энтропийной потери. Например, кросс-энтропия гауссовой цели с некоторым изменяющимся средним, но с фиксированной диагональной ковариацией сводится к среднеквадратичной ошибке. Общая концепция кросс-энтропии более подробно изложена в следующих вопросах:
Изучают ли нейронные сети функцию или функцию плотности вероятности?
Как построить кросс-энтропийную потерю для общих целей регрессии?
источник
Ответ @Sycorax правильный. Тем не менее, стоит упомянуть, что использование (двоичной) кросс-энтропии в задаче регрессии, где выходные значения находятся в диапазоне [0,1], является допустимым и разумным решением. На самом деле, он используется в автоэнкодерах изображений (например, здесь и в этой статье ). Вам может быть интересно увидеть простое математическое доказательство того, почему это работает в этом случае в этом ответе .
источник
Платформы глубокого обучения часто смешивают модели и потери и ссылаются на кросс-энтропию полиномиальной модели с нелинейностью softmax
cross_entropy
, которая вводит в заблуждение. В общем, вы можете определить кросс-энтропию для произвольных моделей .источник
К сожалению, на данный момент принятый @Sycorax ответ, хотя и подробный, неверен.
На самом деле, это яркий пример регрессии через категорический кросс-энтропию - WaveNet - был реализован в TensorFlow .
Принцип заключается в том, что вы дискретизируете свое выходное пространство, и тогда ваша модель только предсказывает соответствующий бин; см. раздел 2.2 статьи для примера в области моделирования звука. Таким образом, хотя технически модель выполняет классификацию, конечной решаемой задачей является регрессия.
Очевидным недостатком является то, что вы теряете выходное разрешение. Тем не менее, это может не быть проблемой (по крайней мере, я думаю, что искусственный помощник Google говорил очень человечно ), или вы можете поиграть с некоторой постобработкой, например, интерполяцией между наиболее вероятным мусорным ведром и его двумя соседями.
С другой стороны, этот подход делает модель намного более мощной по сравнению с обычным выходом из одной линейной единицы, то есть позволяет выражать мультимодальные прогнозы или оценивать ее достоверность. Обратите внимание, что последнее может быть естественным образом достигнуто с помощью других средств, например, с помощью явного (логического) вывода дисперсии, как в вариационных автоэнкодерах.
В любом случае, этот подход плохо масштабируется до многомерного вывода, потому что тогда размер выходного слоя растет экспоненциально, что делает его как вычислительным, так и модельным.
источник
Я вернулся к этому вопросу, поскольку теперь я не согласен с ранее принятым ответом. Перекрестная потеря энтропии МОЖЕТ использоваться в регрессии (хотя это не распространено.)
Это сводится к тому, что кросс-энтропия является концепцией, которая имеет смысл только при сравнении двух распределений вероятностей. Вы могли бы рассмотреть нейронную сеть, которая выводит среднее и стандартное отклонение для нормального распределения в качестве прогноза. Затем он будет наказан более сурово за то, что был уверен в плохих предсказаниях. Так что да, это имеет смысл, но только если вы в некотором смысле выводите дистрибутив. Ссылка от @SiddharthShakya в комментарии к моему первоначальному вопросу показывает это.
источник