Имеет ли смысл перекрестная энтропия смысл в контексте регрессии?

13

Имеет ли смысл перекрестная энтропия в контексте регрессии (в отличие от классификации)? Если да, не могли бы вы привести пример с игрушкой через TensorFlow? Если нет, то почему нет?

Я читал о кросс-энтропии в Neural Networks и Deep Learning Майкла Нильсена, и кажется, что это то, что естественно можно использовать для регрессии, а также для классификации, но я не понимаю, как вы применили бы это эффективно в TensorFlow, так как Функции потерь берут логиты (которые я не очень понимаю), и они перечислены здесь под классификацией

JacKeown
источник
2
Я нашел здесь на кворе, в которой говорится, что отличается от того, что принято в качестве ответа на этот вопрос
Сиддхарт Шакья
Если вы прочитаете весь ответ, вы увидите, что он дает «непрерывную версию» кросс-энтропии, что довольно круто, но оказывается, что это просто средняя квадратическая ошибка (MSE).
JacKeown

Ответы:

11

Нет, не имеет смысла использовать функции TensorFlow как tf.nn.sigmoid_cross_entropy_with_logitsдля задачи регрессии. В TensorFlow «кросс-энтропия» - это сокращение (или жаргон) для «категорической кросс-энтропии». Категориальная кросс-энтропия - это операция над вероятностями. Проблема регрессии пытается предсказать непрерывные результаты, а не классификации.

Жаргон "кросс-энтропия" немного вводит в заблуждение, потому что существует любое количество функций кросс-энтропийной потери; однако в машинном обучении принято называть эту конкретную потерю потерей "кросс-энтропии".

Если мы посмотрим за пределы функций TensorFlow, на которые вы ссылаетесь, то, конечно, существует любое количество возможных кросс-энтропийных функций. Это связано с тем, что общая концепция кросс-энтропии заключается в сравнении двух распределений вероятностей. В зависимости от того, какие два распределения вероятностей вы хотите сравнить, вы можете получить потерю, отличную от типичной категориальной кросс-энтропийной потери. Например, кросс-энтропия гауссовой цели с некоторым изменяющимся средним, но с фиксированной диагональной ковариацией сводится к среднеквадратичной ошибке. Общая концепция кросс-энтропии более подробно изложена в следующих вопросах:

Sycorax говорит восстановить Монику
источник
5
Хотя следует отметить, что использование бинарной кроссцентропии в качестве функции потерь в задаче регрессии, где выходные значения являются реальными значениями в диапазоне [0,1], является довольно разумным и обоснованным решением.
сегодня
@ Сегодня я думаю, что это практика, которую некоторые люди применяют по практическим причинам (например, нейронная сеть сходится быстрее), но я не уверен, что эта модель имеет какое-либо отношение к сравнению двух распределений вероятностей. Возможно, вы могли бы показать, что существует связь между непрерывно оцениваемой целью в и бинарной кросс-энтропией? [0,1]
Sycorax сообщает восстановить Monica
5

Ответ @Sycorax правильный. Тем не менее, стоит упомянуть, что использование (двоичной) кросс-энтропии в задаче регрессии, где выходные значения находятся в диапазоне [0,1], является допустимым и разумным решением. На самом деле, он используется в автоэнкодерах изображений (например, здесь и в этой статье ). Вам может быть интересно увидеть простое математическое доказательство того, почему это работает в этом случае в этом ответе .

Cегодня
источник
Функции потери можно рассматривать как вероятности / постеры или их монотонное преобразование. Таким образом, хотя верно и то, что в некоторых регрессионных моделях потеря, подобная кросс-энтропии, может иметь смысл, это может быть неоправданным подходом для решения какой-либо регрессии, когда выходные данные находятся в диапазоне . [0,1]
InfProbSciX
@InfProbSciX «может быть не разумным подходом иметь дело с какой-либо регрессией, где выходы находятся в диапазоне [0,1]». Так "разумно" в каком смысле? Или как вы определяете обоснованность функции потерь для конкретной задачи? Я подозреваю, что это утверждение может быть правдой для любой функции потерь. Существует ли какая-либо функция потерь, которую было бы целесообразно использовать для всех видов регрессионных задач, разумеется после определения «разумной»?
сегодня
Я бы определил разумно, построив модельный закон. Например, в среде регрессии, такой как где - ошибки iid - скажем, нормально распределенные, отрицательное логарифмическое правдоподобие - это точно квадратичная потеря. В ситуации, когда модельный закон выглядит как , отрицательное логарифмическое правдоподобие - это именно двоичная кросс-энтропия. Если закон представляет собой линейную регрессию с нормальным априорным коэффициентом, потери соответствуют штрафу L2 и так далее. Там, где это возможно, я строю закон, а затем получаю убытки. epsi ; Y ~ B е р п о у л л я ( р θ )Y=fθ(X)+ϵϵYBernoulli(pθ)
InfProbSciX
@InfProbSciX Спасибо за ваш ответ. Итак, как вы упомянули, в зависимости от задачи регрессии (и предположений о распределении данных, ошибок и т. Д.) Функция потерь может быть нецелесообразной для использования. И, как я уже говорил, это верно для всех функций потерь, включая кроссентропию. Конечно, я понимаю вашу точку зрения, что только потому, что выходные значения находятся в диапазоне [0,1], не гарантирует, что кроссцентропия является оптимальной функцией потерь при выборе, и я не пытался передать иное в своем ответе.
сегодня
5

Платформы глубокого обучения часто смешивают модели и потери и ссылаются на кросс-энтропию полиномиальной модели с нелинейностью softmax cross_entropy, которая вводит в заблуждение. В общем, вы можете определить кросс-энтропию для произвольных моделей .

fθ(x)ylogfθ(x),
y

Лукас
источник
2

К сожалению, на данный момент принятый @Sycorax ответ, хотя и подробный, неверен.

На самом деле, это яркий пример регрессии через категорический кросс-энтропию - WaveNet - был реализован в TensorFlow .

Принцип заключается в том, что вы дискретизируете свое выходное пространство, и тогда ваша модель только предсказывает соответствующий бин; см. раздел 2.2 статьи для примера в области моделирования звука. Таким образом, хотя технически модель выполняет классификацию, конечной решаемой задачей является регрессия.

Очевидным недостатком является то, что вы теряете выходное разрешение. Тем не менее, это может не быть проблемой (по крайней мере, я думаю, что искусственный помощник Google говорил очень человечно ), или вы можете поиграть с некоторой постобработкой, например, интерполяцией между наиболее вероятным мусорным ведром и его двумя соседями.

С другой стороны, этот подход делает модель намного более мощной по сравнению с обычным выходом из одной линейной единицы, то есть позволяет выражать мультимодальные прогнозы или оценивать ее достоверность. Обратите внимание, что последнее может быть естественным образом достигнуто с помощью других средств, например, с помощью явного (логического) вывода дисперсии, как в вариационных автоэнкодерах.

В любом случае, этот подход плохо масштабируется до многомерного вывода, потому что тогда размер выходного слоя растет экспоненциально, что делает его как вычислительным, так и модельным.

dedObed
источник
1
Я понимаю, что вы говорите, но я бы лично не рассматривал дискретизацию вашего выходного пространства как выполнение "регрессии" настолько, насколько это приближается к проблеме регрессии с использованием классификации ... но я думаю, что это просто вопрос терминологии / соглашения.
JacKeown
1
Согласовано. 32-битное плавающее пространство в любом случае дискретно :-)
dedObed
-1

Я вернулся к этому вопросу, поскольку теперь я не согласен с ранее принятым ответом. Перекрестная потеря энтропии МОЖЕТ использоваться в регрессии (хотя это не распространено.)

Это сводится к тому, что кросс-энтропия является концепцией, которая имеет смысл только при сравнении двух распределений вероятностей. Вы могли бы рассмотреть нейронную сеть, которая выводит среднее и стандартное отклонение для нормального распределения в качестве прогноза. Затем он будет наказан более сурово за то, что был уверен в плохих предсказаниях. Так что да, это имеет смысл, но только если вы в некотором смысле выводите дистрибутив. Ссылка от @SiddharthShakya в комментарии к моему первоначальному вопросу показывает это.

JacKeown
источник
1
Этот ответ, кажется, отвечает на вопрос иначе, чем он задавался. Функции, с которыми вы связались в этом вопросе, касаются определенного вида потери перекрестной энтропии, и ваш вопрос, кажется, задает вопрос, можно ли использовать эти функции в регрессии, и мой ответ написан так, как будто вы спрашиваете, как использовать эти функции Вы ссылаетесь на. Ответ здесь, кажется, отвечает на вопрос "Может ли перекрестная энтропия быть обобщена вне классификации?" Редактирование Q даст понять, что основное внимание уделяется определению математических понятий, а не тому, как использовать функции Tensorflow.
Sycorax сообщает восстановить Monica
Я понимаю ваше возражение, но я планирую оставить вопрос как есть, потому что он представляет мой первоначальный запрос, который, как мне кажется, может помочь людям с тем же вопросом, что и у меня. В любом случае, весь пост должен содержать достаточно информации в целом.
JacKeown