Кросс энтропия

Материал из MachineLearning.

Версия от 15:15, 18 июля 2026; Bogdan Kormalov (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM DeepSeek-V3 и проверена участником Bogdan Kormalov 17:30, 18 июля 2026 (MSD)


Кросс-энтропия (англ. cross-entropy), или перекрёстная энтропия, — фундаментальное понятие в теории информации и машинном обучении, служащее мерой различия между двумя распределениями вероятностей для заданного случайного множества событий. В байесовском контексте она количественно определяет среднюю длину кодового слова (в битах или натах), необходимую для кодирования событий истинного распределения p с использованием оптимального кода, сконструированного для оценочного (модельного) распределения q.

В современном глубоком обучении и классической статистике кросс-энтропия повсеместно используется в качестве функции потерь для задач классификации, где она известна как log loss (логарифмическая потеря). Минимизация кросс-энтропии между эмпирическим распределением обучающих меток и прогнозами модели эквивалентна максимизации правдоподобия (Maximum Likelihood Estimation, MLE).

Содержание

Интуитивное определение и теоретико-информационный смысл

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

Однако если мы ошибаемся, и наш код построен на основе неверного распределения q, то средняя длина кода будет равна кросс-энтропии H(p, q). Эта величина всегда больше или равна истинной энтропии H(p):

H(p, q) \geq H(p)

Разница между этими двумя величинами называется расстоянием Кульбака — Лейблера D_{KL}(p | q):

H(p, q) = H(p) + D_{KL}(p | q)

Так как истинная энтропия H(p) от параметров модели q не зависит, минимизация кросс-энтропии в процессе обучения строго эквивалентна минимизации расхождения Кульбака—Лейблера между истинным и прогнозируемым распределениямиGoodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. (Глава 5.5)..

Формальное математическое определение

Для дискретных распределений вероятностей p и q, определенных на одном и том же пространстве событий \mathcal{X}, кросс-энтропия определяется как:

H(p, q) = -\sum_{x \in \mathcal{X}} p(x) \log q(x)

В случае непрерывных распределений сумма заменяется интегралом, и величина называется дифференциальной кросс-энтропией:

H(p, q) = -\int_{\mathcal{X}} p(x) \log q(x) ,dx

Основание логарифма определяет единицу измерения информации: биты (основание 2), наты (основание e) или баны (основание 10). В библиотеках машинного обучения (PyTorch, TensorFlow) по умолчанию используется натуральный логарифм.

Кросс-энтропия как функция потерь в машинном обучении

В машинном обучении истинное распределение p задается обучающей выборкой с «однократным» кодированием меток (one-hot encoding). Цель обучения — подобрать параметры модели так, чтобы выходное распределение q максимально соответствовало p.

Связь с принципом максимального правдоподобия

Минимизация кросс-энтропии математически эквивалентна максимизации логарифмической функции правдоподобия для категориального распределения. Пусть обучающая выборка состоит из пар { (\mathbf{x}_i, \mathbf{y}_i) }, где \mathbf{y}_i — one-hot вектор. Условная вероятность принадлежности к правильному классу k есть P(y=k \mid \mathbf{x}_i; \theta) = q_k(\mathbf{x}_i; \theta).

Отрицательное логарифмическое правдоподобие (Negative Log-Likelihood, NLL) для одного примера:

\text{NLL} = -\log q_{k}(\mathbf{x}_i; \theta)

Поскольку истинное распределение p содержит единицу для истинного класса и нули для остальных, кросс-энтропия вырождается в точно такое же выражение. Следовательно, минимизируя кросс-энтропию, мы выполняем оценку методом максимального правдоподобия, что гарантирует состоятельность и асимптотическую эффективность оценок при выполнении условий регулярностиHastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning. Springer. (Глава 4.4)..

Бинарная классификация и сигмоидная активация

Для задачи бинарной классификации, когда модель предсказывает единственное число — вероятность положительного класса \hat{y} \in [0, 1], — кросс-энтропийная потеря для одного объекта принимает вид:

L = -\big[ y \log \hat{y} + (1 - y) \log (1 - \hat{y}) \big]

где y \in {0, 1} — истинная метка.

Выход модели обычно пропускается через сигмоидную функцию активации \sigma(z) = 1 / (1 + e^{-z}). Важнейшее численное преимущество возникает при вычислении градиента. Градиент кросс-энтропии по логиту z (до применения сигмоиды) принимает элегантную линейную форму, свободную от насыщения:

\frac{\partial L}{\partial z} = \hat{y} - y

Это свойство, доказанное при анализе сигмоидной функции активации в комбинации с логарифмической потерей, обеспечивает стабильное и быстрое обучение логистической регрессии и нейронных сетей, так как градиент большой при больших ошибках и мал вблизи правильного ответаBishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer. (Глава 4.3.2)..

Многоклассовая классификация и Softmax-активация

В случае C классов модель выдает вектор логитов \mathbf{z} = (z_1, \dots, z_C). Для превращения их в вероятностное распределение применяется функция Softmax:

\hat{y}_k = \text{softmax}(\mathbf{z})k = \frac{e^{z_k}}{\sum{j=1}^{C} e^{z_j}}

Кросс-энтропийная потеря для одного объекта с истинным классом k вычисляется как:

L = - \log \hat{y}k = - z_k + \log \sum{j=1}^{C} e^{z_j}

Аналогично бинарному случаю, градиент этой функции потерь по логитам имеет простой и интуитивно понятный вид:

\frac{\partial L}{\partial z_i} = \hat{y}_i - y_i

где y_i — компонента one-hot вектора. Это означает, что обучение сводится к простому «подтягиванию» вероятности правильного ответа к единице, а вероятностей неверных ответов к нулю пропорционально величине ошибки. Именно это свойство делает комбинацию Softmax + Cross-Entropy де-факто стандартной головой (head) любой современной нейросети-классификатораGoodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. (Глава 6.2.2)..

Свойства и практические аспекты

При использовании кросс-энтропии на практике инженеру необходимо учитывать следующие особенности:

Штраф за уверенность. В отличие от интуитивно понятной ошибки доли неверных классификаций (accuracy), кросс-энтропия строго штрафует модель за излишнюю «самоуверенность» в неправильных гипотезах. Например, если истинная вероятность события мала (y \approx 0), а модель предсказала высокую вероятность (\hat{y} \approx 1), логарифмическая потеря стремится к бесконечности.

Численная стабильность. Прямое вычисление \log(\text{softmax}(z)) может привести к переполнению или потере значимости из-за экспоненты. Современные фреймворки предоставляют «слитые» реализации (например, CrossEntropyLoss в PyTorch или softmax_cross_entropy в TensorFlow), которые принимают на вход логиты (не активированные вероятности) и выполняют вычисления с использованием трюка log-sum-exp, вычитая максимум из логитов для стабильности.

Метки классов. Входные метки могут быть представлены как в виде целочисленных индексов классов (Sparse Categorical Cross-Entropy), так и в виде сглаженных one-hot векторов (например, при дистилляции знаний или использовании аугментации меток Label Smoothing).

Связь с другими метриками и потерями

Помимо связи с расстоянием Кульбака—Лейблера, кросс-энтропия является обобщением:

Логистической функции потерь (Log Loss), применяемой для оценки качества вероятностных прогнозов в соревнованиях (например, Kaggle).

Среднеквадратичной ошибки (MSE). В статистической теории оценки, использование MSE для классификации неэффективно, так как приводит к проблемам с затуханием градиентов при использовании сигмоидальных активаций (проблема плоского плато). Кросс-энтропия, будучи proper scoring rule, лишена этого недостатка и гарантирует, что минимум достигается при совпадении прогнозного и истинного распределенийMurphy, K. P. (2022). Probabilistic Machine Learning: An Introduction. MIT Press. (Глава 5).

Литература

  • Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer. (Главы 4.3.2, 4.3.4).
  • Cover, T. M., & Thomas, J. A. (2006). Elements of Information Theory. Wiley-Interscience. (Глава 2.3).
  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. (Глава 5.5, 6.2.2).
  • Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer. (Глава 4.4, 11.3).
  • Murphy, K. P. (2022). Probabilistic Machine Learning: An Introduction. MIT Press. (Глава 5, 10).
  • Shannon, C. E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal, 27(3), 379-423.
Личные инструменты