• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

Теория вероятностей в машинном обучении. Часть 2: модель классификации

admin

#root
Администратор
Регистрация
20.01.2011
Сообщения
7,665
Розыгрыши
0
Реакции
135
В Для просмотра ссылки Войди или Зарегистрируйся мы рассматривали вероятностную постановку задачи машинного обучения, статистические модели, модель регрессии как частный случай и ее обучение методом максимизации правдоподобия.В данной части рассмотрим метод максимизации правдоподобия в классификации: в чем роль кроссэнтропии, функций сигмоиды и softmax, как кроссэнтропия связана с "расстоянием" между распределениями вероятностей и почему модель регрессии тоже обучается через минимизацию кроссэнтропии. Данная часть содержит много отсылок к формулам и понятиям, введенным в первой части, поэтому рекомендуется читать их последовательно.

В третьей части (статья планируется) перейдем от метода максимизации правдоподобия к байесовскому выводу и его различным приближениям.
Данная серия статей не является введением в машинное обучение и предполагает знакомство читателя с основными понятиями. Задача статей - рассмотреть машинное обучение с точки зрения теории вероятностей, что позволит по новому взглянуть на проблему, понять связь машинного обучения со статистикой и лучше понимать формулы из научных статей. Также на описанном материале строятся более сложные темы, такие как вариационные автокодировщики (Для просмотра ссылки Войди или Зарегистрируйся), нейробайесовские методы (Для просмотра ссылки Войди или Зарегистрируйся) и даже некоторые теории сознания (Для просмотра ссылки Войди или Зарегистрируйся).

Содержание текущей части
  • В первом разделе мы рассмотрим модель классификации, кроссэнтропию и ее связь с методом максимизации правдоподобия, а также ряд несколько фактов про функции softmax и sigmoid.
  • Во втором разделе поговорим о связи минимизации кроссэнтропии с минимизацией расхождения Кульбака-Лейблера, и как минимизация расхождения Кульбака-Лейблера может помочь в более сложных случаях, чем обычная классификация и регрессия.
Звездочкой* отмечены дополнительные разделы, которые не повлияют на понимание дальнейшего материала.
1. Вероятностная модель классификации
1.1. Модель классификации и функция потерь
1.2. Функция softmax в классификации
1.3. Температура softmax и операция hardmax*
1.4. Функция sigmoid в классификации
2. Кроссэнтропия в вероятностных моделях
2.1. Разметка с неуверенностью
2.2. Кроссэнтропия и расхождение Кульбака-Лейблера
2.3. Кроссэнтропия как максимизация правдоподобия*
2.4. Кроссэнтропия в задаче регрессии*
2.5. Кроссэнтропия с точки зрения оптимизации*

1. Вероятностная модель классификации

1.1. Модель классификации и функция потерь

Чтобы задать вероятностную модель, нам нужно определить, в какой форме она будет предсказывать распределение
98966b69ebf76246e9e923af64d4da72.svg
. Если задаче регрессии мы ограничивали распределения
d54033073df75c34710d43ee92bdb186.svg
только нормальными распределениями, то в задаче классификации это будет не оптимальным решением, так как классы по сути представляют собой неупорядоченное множество (хотя на них есть порядок, но лишь технически, и он может быть выбран произвольно). В задаче классификации мы можем предсказывать вероятность для каждого класса, и тогда модель будет выдавать столько чисел, сколько есть классов в
6b8715af56f4b6b02106082d536a21b7.svg
.

Пусть мы имеем датасет
38881c852a1ea342fc890a763344d31b.svg
и предполагаем, что все примеры независимы и взяты и одного и того же распределения (i.i.d., см. предыдущую часть, раздел 3.4). Для обучения модели снова применим метод максимизации правдоподобия, то есть будем искать такие параметры
68ced4dda3e6f89bf33df7d26d385a16.svg
, которые максимизируют
b9d0ff913d3e2c3cf0dbdf1a7368f000.svg
. В разделе 2.3 мы уже расписывали формулу, которая получается в результате, но ввиду ее важности повторим ее еще раз. Первое равенство ниже следует из i.i.d.-гипотезы, второе по правилам математики:
1e743e9f6902edf85f8d21816bc8a58f.svg


Таким образом, для максимизации вероятности выборки данных
b9d0ff913d3e2c3cf0dbdf1a7368f000.svg
нам нужно минимизировать сумму величин
78cf7b68c6fd8660a69ba4e3e1e778b7.svg

для всех обучающих примеров
6f5bf2eaadd58809b95ea2c17629d257.svg
.

В модели регрессии эта величина была сведена к квадрату разности предсказания и верного ответа (часть 1, формула 7). Но в задаче классификации на данном этапе считать больше ничего не нужно. Нашей задачей было задать вероятностную модель, определить с ее помощью функцию потерь и таким образом свести обучение к задаче Для просмотра ссылки Войди или Зарегистрируйся, то есть минимизации функции потерь, и мы это уже сделали. Функция потерь (2) называется кроссэнтропией (также перекрестной энтропией, или logloss). Она равна минус логарифму предсказанной вероятности для верного класса
a7b9a59700d7df78ca505d5fa883ef2a.svg
.

Категориальная кроссэнтропия

Возьмем произвольный пример и выданные моделью вероятности обозначим за
e63c9fdf964b5305282a8f0ea1c9311f.svg
, где
7280ead4463428e7653fb67d8765a631.svg
- количество классов. К метке класса (эталонному ответу) применим one-hot кодирование, получив вектор
17ef32435ab4071cdd673e3c77cf185f.svg
, в котором лишь один элемент равен единице, а остальные равны нулю. Тогда выражение (2) можно рассчитать таким образом:
6c973ca0cec545b37d32b35e6e71b8ac.svg

Лишь один элемент суммы будет не равен нулю - тот, который соответствует верному классу. Для него первый множитель будет равен единице, а второй будет логарифмом предсказанной вероятности для верного класса, что соответствует выражению (2).

Примечание. На самом деле формула (3) является определением кроссэнтропии, а формула (2) ее частным случаем, когда
520cc1a8ed3bb11ef9d3c860f182ff9e.svg
вырождено и назначает вероятность 1 классу с индексом
ddf9907caf510f8fbbfc399d768c3030.svg
. О случае, когда это не так, подробнее поговорим во втором разделе.
Бинарная кроссэнтропия

Если класса всего два, то как правило делают следующим образом: модель выдает лишь одно число
544880f45f9f288a5500de0621a6a783.svg
от 0 до 1, оно рассматривается как вероятность второго класса, а
4e3311bb9069a1c1d983e924244ae382.svg
рассматривается как вероятность первого класса. Пусть
b57728f000583f94470a6fd376087b4a.svg
равно единице, если первый класс верен, иначе равно нулю. Тогда выражение (3) технически можно вычислить следующим образом:
d48259f7f630bf74f8a7862a039d7429.svg

Снова лишь одно слагаемое будет ненулевым, и таким образом мы посчитаем логарифм предсказанной вероятности для верного класса. Формулы (18) и (19) называются категориальной кроссэнтропией (они эквивалентны если
909547222c9e5d5a4860a9fc0e374a08.svg
для одного из классов), формула (18) называется бинарной кроссэнтропией.

В этом разделе мы рассмотрели обучение модели классификации. Часто в классификации упоминают о функции softmax, но почему-то мы о ней ничего не говорили. Складывается ощущение, что мы что-то упустили. В следующем разделе мы поговорим о роли функции softmax в классификации.

1.2. Функция softmax в классификации

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

Рассмотрим для примера нейронную сеть. Пусть мы имеем
2dcd241b7ff5737944296674ece8d08e.svg
классов, и выходной слой нейронной сети выдает
14f05640d365444f5b2a1f819ae0e840.svg
чисел от
18f3a9ac973065fd72dfb7ef8a2ec254.svg
до
928cbfeb3b6f9fe905c41f90a4f61fcb.svg
. Чтобы вектор из
bdea3121ec7019d1099007ecf4c716ee.svg
чисел являлся распределением вероятностей, он должен удовлетворять двум ограничениям:
  1. Вероятность каждого класса не может быть ниже нуля
  2. Сумма вероятностей должна быть равна единице
Для удовлетворения первого ограничения лучше чтобы модель выдавала не вероятности, а их логарифмы: если логарифм некой величины меняется от
92881d58290d524d800ed37f079972a5.svg
до
ef3eed2df871012a7958a625a7b1b3cc.svg
, то сама величина меняется от
1eeadf3adeb121ac6823552ee1d1c688.svg
до
a533de0353eec2a8aa806dd4045d8920.svg
. Чтобы удовлетворялось второе ограничение, каждую предсказанную вероятность мы можем делить на сумму всех предсказанных вероятностей. Такая операция называется
af7c0c991f9ed586e95d98aaaa83e183.svg
-нормализацией вектора вероятностей.

Отсюда мы можем вывести формулу для операции softmax. Эта операция принимает на вход набор из
e8aeed0b3f4d955d3bbdca219b332e2a.svg
чисел от
4f9480054ed466c911bd3dd2c2e74f06.svg
до
451cce9845be8044ce608afcb79d2d4c.svg
(они называются логитами, англ. logits)
35fe85c142fc616b2b18a036d95b9b6f.svg
и возвращает распределение вероятностей из
5b32fd5b3b4419a0ddd63d4c097e569b.svg
чисел
51bfe8008e032e271a29a91737b5d282.svg
. Softmax является последовательностью двух операций: взятия экспоненты и
7fe3107787db9f5071628cf69beb2d8a.svg
-нормализации:
1e5dba55674f7365de6614f411c98cc7.svg

Таким образом, softmax - это векторная операция, принимающая вектор из произвольных чисел (логитов) и возвращающая вектор вероятностей, удовлетворяющий свойствам 1 и 2. Она применяется как завершающая операция во многих моделях классификации - таким образом мы можем быть уверены, что выданные моделью числа будут именно распределением вероятностей (т. е. удовлетворять свойствам 1 и 2). Существуют и различные альтернативы функции softmax, например sparsemax (Для просмотра ссылки Войди или Зарегистрируйся).

Модель, предсказывающая
089710a59604f066e305a400ed6349eb.svg
логитов, к которым применяется операция softmax, будет обладать только одним ограничением: она не может предсказывать строго нулевые или строго единичные вероятности. Зато такую модель можно обучать градиентным спуском, так как функция softmax дифференцируема.

Технически иногда функция softmax рассматривается как часть модели, иногда как часть функции потерь. Например, в библиотеке Keras мы можем добавить функцию активации 'softmax' в последний слой сети и использовать функцию потерь CategoricalCrossentropy(), а можем наоборот не добавлять функцию активации в последний слой и использовать функцию потерь CategoricalCrossentropy (from_logits=True), которая включает в себя расчет softmax (и ее производной при обратном проходе). С математической точки зрения разницы между этими двумя способами не будет, но погрешность расчета функции потерь и производной во втором случае будет меньше. В PyTorch мы можем применить LogSoftmax вместе с NLLLoss (negative log-likelihood), а можем вместо этого применить torch.nn.functional.cross_entropy, который включает в себя расчет LogSoftmax.

1.3. Температура softmax и операция hardmax*

У функции softmax (5) есть важное свойство: если ко всем логитам
19b4e7686239ec4a94331606c22faf41.svg
прибавить одну и ту же константу
a9144c54745f6c3379515223eeb835c7.svg
, то вероятности
f3f97cc672c9baaefefb32d62d3e4ee9.svg
никак не изменятся, так как после применения экспоненты константа из слагаемого превратится в множитель, и множители в числителе и знаменателе сократятся. Однако если все логиты
a0c2b5658af755e81551e45f204b8380.svg
умножить на некую константу
e5330b32123d718e257ee043f91626c8.svg
, то тогда вероятности
3b5e92f9ff5771e3545a1d12dcc0d653.svg
изменятся: если
22cf976d7401b160baed7c1641901e69.svg
, то вероятности
7ca4ece613480caa17be0a0cc386a7a7.svg
станут ближе друг к другу, что означает меньшую уверенность в предсказании, если же
6b27e0f90efa696cf514244223009d80.svg
, то наоборот мы получим большую уверенность в предсказании. Этот дополнительный множитель, если он используется, называется "Для просмотра ссылки Войди или Зарегистрируйся" softmax.

При
2b597b89dd7b63e7831d292c3c6cbe30.svg
тот класс, логит которого был наибольшим, получит вероятность 1, остальные классы - вероятность 0, такую операцию по аналогии часто называют hardmax. Иногда ее упоминают как argmax, потому что hardmax можно считать one-hot кодированием индекса, который возвращает операция argmax.

На этом примере видно то, как употребляются понятия soft и hard в машинном обучении: hard-операции (hardmax, argmax, hard attention, hard labeling, sign) связаны с выбором некоего элемента в множестве, а soft-операции (softmax, soft attention, soft labeling, soft sign) являются их дифференцируемыми аналогами. Например, в softmax можно рассчитать производную каждого выходного элемента по каждому входному. В hardmax или argmax это не имеет смысла: производные всегда будут равны нулю.

Это можно понять даже не прибегая к расчетам, поскольку у дифференцируемости есть очень простая наглядная интерпретация: операция
07a1a678939d2090aedf98c4bf65ffed.svg
дифференцируема если плавное изменение
1c23778dab28bce45b6a972297e3afa6.svg
приводит к плавному изменению
81237a0f876321cfa383bb9c0cfcc44b.svg
. Это верно для операции softmax, и благодаря этому мы можем применять градиентный спуск или градиентный бустинг. Но в операции hardmax плавное изменение логитов приводит к тому, что выходные вероятности либо остаются такими же, либо меняются скачкообразно, поэтому (без дополнительных ухищрений) градиентный спуск и градиентный бустинг оказываются неприменимы.

1.4. Функция sigmoid в классификации

Рассмотрим случай бинарной классификации. Представим, что у нас есть 2 класса, и модель выдает 2 логита
c486a7ad0988652fc3874c2dd068e04a.svg
, из которых с помощью softmax получаем вероятности
07e017a6a250b8b02b4fac68a81a759f.svg
, сумма которых равна единице. Но прибавление одной и той же константы к
ea95d273ab20eb2a5a87b5fd97e9a041.svg
не меняет вероятности, поэтому иметь две "степени свободы" излишне, и имеет смысл зафиксировать
cae5c2cfca55c462f7de12407d06505e.svg
в значении 0. Теперь меняя
9fc8039ccd1ed9f2f4ad57886fc1147d.svg
модель будет менять вероятности классов
5a1e0e97d28b28b33d43378947ab013b.svg
. Значения
da4b08f6808568174db273267da22426.svg
и
33e8d86efa56629ee1fbfc8be9e1879a.svg
, согласно (21), будут связаны следующим образом:
9406934e3e2a20c6f9f778bbdc1d14e6.svg
Такая функция носит название сигмоиды:
ae0bea05cc0d7867dabcf2ef0ca14140.svg
8f86fc5e7a7a092b2efc87cf2750516e.png

Примечание. В более широком смысле, Для просмотра ссылки Войди или Зарегистрируйся называют и другие функции одной переменной, график которых выглядит похожим образом. Для преобразования логита в вероятность вместо
41179888e5c2de5239f4f78eae393f28.svg
можно использовать любую и этих функций, разница между ними не принципиальна. Также сигмоида иногда используется в промежуточных слоях нейронных сетей.

К чему мы в итоге пришли? К тому, что если класса всего два, то иметь два логита в модели не обязательно, достаточно всего одного, к которому применяется сигмоида вместо softmax. Функция потерь при этом становится бинарной кроссэнтропией (4). На самом деле то же рассуждение можно применить и к мультиклассовой классификации: если классов
337db0a1de1ced499b4d37fa33d8cf18.svg
, то достаточно иметь
10876bda63b6c226a1e6b9e0a613cd2a.svg
логитов, но так обычно не делают.
Теперь запишем функцию, обратную сигмоиде. Эта функция преобразует вероятность обратно в логит и называется logit function:
e8f121af0db32261f6d1e2148b8a9c27.svg

Если
ca3f9bf7b3cfec6b114806e32c8e0b11.svg
- это вероятность второго класса, а
64a21d1fd4dbf14b203b9ea3a2fb7cd9.svg
- вероятность первого класса, то выражение
2facf472660042057ddc90f943f3c002.svg
означает то, во сколько раз второй класс вероятнее первого. Это выражение называется odds ratio. Логит является его логарифмом и называется log odds ratio.

Если мы используем в обучении сигмоиду, то модель непосредственно предсказывает логит
091dd094d4c7dca71ec8027f7757bf02.svg
, то есть логарифм того, во сколько раз второй класс вероятнее первого.

2. Кроссэнтропия в вероятностных моделях

2.1. Разметка с неуверенностью

В выражениях для функции потерь в классификации (2) и регрессии (часть 1, формула 7) мы предполагали наличие для каждого примера
465166fb686d8c197323d4a6063f2819.svg
эталонного ответа
06d42f7f9d49e8366dadaa242077439d.svg
, к которому модель должна стремиться. Но в более общем случае эталонный ответ
695979c26e59fe9ed205dd5509e69ee4.svg
может быть не конкретным значением, а распределением вероятностей на множестве
5a14343fbe1d476e968a671533be6b98.svg
, так же как и предсказание модели. То есть в разметке датасета значения
9aa8e8346d6e697e10e2a7cd2737208a.svg
указаны с определенной степенью неуверенности: если это классификация, то могут быть указаны вероятности для всех классов, если регрессия - то может быть указана погрешность.

Ситуация, когда разметка датасета содержит некую степень неуверенности, не такая уж редкая. Например, в пусть в задаче классификации эмоций по видеозаписи датасет размечен сразу несколькими людьми-аннотаторами, которые иногда дают разные ответы. Например, одно из видео в датасете может быть размечено как "happiness" 11 аннотаторами и как "sadness" 9 аннотаторами. Оставив только "happiness" мы потеряем часть информации. Вместо этого мы можем оставить обе эмоции, считать их распределением вероятностей:
b0c04c26932662ea18226b6fbcbd203a.svg
,
8a08484301d2cfa94b70d60563c0a5b1.svg
и обучать модель выдавать для данного примера такое же распределение вероятностей.

Благодаря разметке с неуверенностью сохраняется больше информации: есть явно выраженные эмоции, а есть сложно определяемые.
Но с другой стороны для каждого видео есть какая-то истинная эмоция: либо "happiness", либо "sadness" - человек не может испытывать обе эти эмоции одновременно. В теории модель могла бы обучиться определять эмоции точнее, чем человек, и разметка с неуверенностью может помешать модели выучиться точнее человека: если человек дает 50% вероятности обоим классам, и мы используем это как эталонный ответ, то модель будет стремиться к нему, даже если она способна определить эмоцию точнее.

2.2. Кроссэнтропия и расхождение Кульбака-Лейблера

Пусть мы имеем датасет из пар
dc630aa9cfd7fd285cff0ddafe2f4f36.svg
, в котором эталонный ответ
fda64dc4d3a538737279edc5a0e4f109.svg
является не конкретным значением признака
ce7c804dc295339b61bf5755d02160cc.svg
, а распределением вероятностей на множестве
ab6228a52d61db761c9c33ca4a361ad9.svg
. Нам каким-то образом нужно "подогнать" предсказанное распределение
fcd6498d1baef042e02e6fa61065d4c3.svg
под эталонное распределение
4837929afd8be75934c0bd50a7529155.svg
.

Пример 1. Если в задаче классификации в эталонном распределении вероятности классов равны 0.7 и 0.3, то мы хотели бы, чтобы в предсказании
dad282cc3ff0c6a6d6fed42f22361915.svg
они тоже были бы равны 0.7 и 0.3.

Пример 2. Если в задаче регрессии эталонное распределение имеет две моды в значениях 0.5 и 1.5, то нам хотелось бы, чтобы предсказанное распределение вероятностей
c7c571d992d1463c0a6848c324c9c8fb.svg
тоже имело моды в этих точках. Но если мы моделируем
79861734c9876a7fd82f5b3f3c295b63.svg
нормальным распределением (как в разделе 2.3 первой части), тогда в нем в любом случае будет только одна мода, и чтобы хоть как-то приблизить предсказание к эталонному ответу, можно расположить моду посередине между точками 0.5 и 1.5 - тогда мат. ожидание ошибки предсказания будет наименьшим.

Как видим, второй пример получился сложнее первого. Если множество
5b3a84672a8e447e48432cf7abababe8.svg
непрерывно, то задача приближения предсказанного распределения к эталонному означает задачу сближения функций плотности вероятности.

Такая постановка задачи неоднозначна: сблизить функции можно по-разному, так как "расстояние" между функциями можно определять по-разному. Чаще всего для этого используют расхождение Кульбака-Лейблера (относительную энтропию)
290a6cf1a733e737f343997dce42fe16.svg
- несимметричную метрику сходства между двумя распределениями вероятностей
6033efcd7d480064856ad6fd54454b96.svg
и
dca49cb08522922eda5411ce9dfd4fee.svg
. Расхождение Кульбака-Лейблера можно расписать как сумму в дискретном случае и как интеграл в непрерывном случае.

Дискретный случай (
9a3796f31116e7842b1887d1caca9202.svg
,
2b0b6477f6569c0ee739bf48c177143b.svg
- Для просмотра ссылки Войди или Зарегистрируйся):
9bf34fdd341ff1d33e4fba667cfd5fdd.svg


Непрерывный случай (
f3a930ee90e265026b02b4c7464eef9b.svg
,
6bbda9be909f95edda768099e9f184fa.svg
- Для просмотра ссылки Войди или Зарегистрируйся):
9132908e9f2daff2d139e7baa3035793.svg


Пользуясь тем, что
43e5dabc0f6bba4445c6937cd7077e59.svg
, мы можем расписать расхождение Кульбака-Лейблера как разность двух величин. Для дискретного случая:
255dae2dd94384cf51047a489c9ca2c7.svg


Первое слагаемое со знаком минус называется энтропией распределения
cb8c4905e3bb176fb94d656ea43e07d5.svg
(или дифференциальной энтропией в непрерывном случае) и обозначается как
955a500a5689ddd8ec30259de08cec67.svg
, а второе слагаемое (включая минус) называется Для просмотра ссылки Войди или Зарегистрируйся
4c87ae5abf0722bbe03cea8770bc4fe8.svg
между распределениями
9d2770c417fb63ca8e45cf3abf010c2f.svg
и
b6ebccfe17275903d988926a0c87f00b.svg
. Эти величины можно расписать через мат. ожидание:
b003e468582d47f37b10bc8c0bff918f.svg
d71366c0463723d98c97b074cf10cad3.svg
495d660a60befe36adb40f7de0532d81.svg


В машинном обучении первым аргументом в
7b901b3e4851ecf83cdf87b309517633.svg
обычно ставят эталонное распределение, вторым аргументом - предсказанное. Как видно из формулы (9), первое слагаемое не зависит от
fe85537c22ef2bbbf9aaf85c2c2c0fbc.svg
, поэтому минимизация
ba16e73f77b15501c5827919f390ad6f.svg
по
7633870ba6b95953f34c923ad63a4bbb.svg
равносильно минимизации кроссэнтропии между
e36c301b361f2cc86d848583a0bde7f5.svg
и
39583530071943f23a604c3932586c56.svg
.

Резюме. Если значения целевого признака в датасете даны как распределения вероятностей, то для обучения модели мы можем минимизировать кроссэнтропию между предсказанными и эталонными распределениями. Мы так уже делали в модели классификации, но там эталонное распределение было вырожденным назначало вероятность 1 одному из классов, поэтому в формуле (3) лишь одно слагаемое было ненулевым. В этом разделе мы рассмотрели более общий случай, когда эталонное распределение невырождено и в (3) может быть много ненулевых слагаемых.

2.3. Кроссэнтропия как максимизация правдоподобия*

Является ли "подгонка" предсказанного распределения
5c8061073f9a66b98630ebb7261e26c0.svg
под эталонное распределение
477b0678e621718bd273a41fa01a3ba5.svg
применением метода максимизации правдоподобия? Для ответа на этот вопрос нужно понять что такое "правдоподобие" в том случае, когда вместо эталонного ответа мы имеем распределение.

Мы можем сделать таким образом. Пусть для
b97ac3addec17053b3c9b3033391c67f.svg
-го примера мы имеем значение
de2d06c68afcbfcce2acedd95eaddace.svg
и распределение
ee912308c6df28fc4e78861a9526aa33.svg
. Мысленно сгенерируем из этого примера очень большое (стремящееся к бесконечности) количество примеров (обозначим его
ac9518b430e345f6ea2b1a7ecda90e7c.svg
), в которых исходные признаки равны
7302033bf89dec8cfe148257ba60b80f.svg
, а целевой признак взят из распределения
4ed7fc9ca18a5d1b153d06e95268d3e5.svg
:
b520864b4f60e11f450654caa9315e7a.svg
Объединение
715ca7389678d60c3504ced9e84aa774.svg
нельзя рассматривать как i.i.d.-выборку, потому что при бесконечном количестве примеров мы имеем лишь
0ffb26511dc449df33ddbe9d069288c3.svg
уникальных значений
1d20f63307cb41c827f843e8c973bf0d.svg
. Но поскольку мы не моделируем распределение
bc5a7beae6f9226453be7ebc5eb0cae4.svg
, это не является проблемой. Поскольку все
7104fad552b5486262c9804abcf1a7e1.svg
независимы:
3f9b46dda31eb7314ebfbeb98f68a5d8.svg
fafa78c3fbb8ada238b6e2f6988ea9fd.svg


В итоге при
7b635628970b127f6a73ec8c07ee73d0.svg
минус логарифм правдоподобия
5e76c0271b6e136a8d4575ec56de1eec.svg
оказался равен кроссэнтропии между эталонным распределением
80bd338d6a7e342c4d0c8d688364b27c.svg
и предсказанным моделью распределением
520b0a352f1b5acfee84980dbcf0d923.svg
. Отсюда получается, что минимизация кроссэнтропии (или, что эквивалентно, минимизация расхождения Кульбака-Лейблера) максимизирует правдоподобие.

2.4. Кроссэнтропия в задаче регрессии*

Вернемся к случаю регрессии. Если для обучающей пары
b2a889c9e993eb7fee9688f92d48dff1.svg
точно известен ответ
7655360a964be07d15afd27a07e9a76c.svg
, то его можно представить как распределение вероятностей на
f9b97530606cec320784a037d84c38ae.svg
, имеющее лишь одно возможное значение
56f9744c7d78f05e73b026e747691fb2.svg
с вероятностью 1 (такое распределение называют Для просмотра ссылки Войди или Зарегистрируйся, в данном случае его еще называют "эмпирическим").

Для таких случаев математики придумали специальную функцию, называемую Для просмотра ссылки Войди или Зарегистрируйся
83095919388649a154c42fabc41e8e04.svg
. Она равна нулю во всех точках кроме нуля, в нуле равна бесконечности, а ее интеграл равен единице. Например, если мы возьмем функцию плотности вероятности нормального распределения (часть 1, формула 4) с
34b4ebcee2761db3d9a475c136191f00.svg
и устремим
fd147395861efe4209f5aba04e7f0cda.svg
к нулю, то в пределе получим дельта-функцию.

В случае регрессии эмпирическое распределение можно записать как
6a139d2f6885985a47836241ff7f4854.svg
. Попробуем, по аналогии с классификацией, минимизировать кроссэнтропию между эталонным и предсказанным распределениями. Пусть модель выдает для
9ca2923e6712bdfc5ceafbe6859f7b58.svg
нормальное распределение
5e87388556bbe61a245f933b99bbc069.svg
. Распишем кроссэнтропию между эмпирическим и предсказанным распределением:
476046f1d784bc0b740809b5abd6e7a1.svg


Обратите внимание, что оба аргумента
9621560e208e2c7a84db2ef61b831d76.svg
являются не числами, а функциями от
0b724169dbad65d9edf6bbe376022709.svg
, и подынтегральное выражение не равно нулю только в одной точке
5a0a46b364fcc32643f35fe47762c03a.svg
. С помощью формулы (10) мы пришли к тому, что минимизация кроссэнтропии означает минимизацию
038dc5305578bd50f2d78ffe3add18ab.svg
, что эквивалентно максимизации
6d79377dc2d5e1b676412d9c1c5f3bc0.svg
. Именно это мы и делали в разделе 2. Получается, что модель регрессии тоже обучается с помощью кроссэнтропии, которая по формуле (10) превращается в минимизацию
ec36974ec970bd5a5449aebd32af6112.svg
и далее в минимизацию среднеквадратичного отклонения (часть1, формула 7), если
e03381a7206e013aaf3d45ebdd524a59.svg
моделируется нормальным распределением.

Как видим, мы получаем максимально унифицированный и при этом гибкий подход, который можно применять для задания функции потерь в сложных случаях.

Кроссэнтропия с точки зрения оптимизации*

В задаче регрессии мы рассматривали два подхода к выбору функции потерь: первый подход опирается на здравый смысл, наши представления о метрике сходства на множестве
f6c777907e375ce19a5a609bd6b34986.svg
и легкость оптимизации. Второй подход опирается на теорию вероятностей и наши представления об условном распределении
1e78e66244477b6eed1047592e2ce431.svg
, из которого следует формула для функции потерь (статья 1, формулы 5-7).

Теперь вернемся к задаче классификации. Есть ли здесь аналогичные два подхода? Вероятностный подход, который приводит к кроссэнтропии, мы уже рассматривали. Но хороша ли кроссэнтропия с точки зрения оптимизации, или есть более удобная функция потерь? Например, вместо кроссэнтропии мы могли бы минимизировать среднеквадратичную ошибку между предсказанным распределением вероятностей
1a73cfcc7fe04507b5903bfc37641dbd.svg
и эталонным распределением вероятностей
0123083ffccb94662905c18f94ffc342.svg
, в котором вероятность 1 назначается верному классу:
bcf6ab5064b964dd0a237a2053666109.svg


Смысл такого выражения с точки зрения теории вероятностей не совсем ясен, но видно, что чем ближе предсказание к истине, тем меньше будет функция потерь. А это и есть то свойство, которое требуется от функции потерь.

Что же лучше: кроссэнтропия или среднеквадратичная ошибка? Чтобы понять, какая из функций потерь лучше подходит для оптимизации градиентным спуском, давайте рассчитаем градиенты этих функций потерь по логитам (то есть тем значениям, которые выдаются до операции softmax или sigmoid). Пусть классификация является бинарной, верный ответом является второй класс, и модель выдала значение логита, равное
13c431956a4476cd577579c178982201.svg
. Отсюда вероятность второго класса равна
cb0a935824fe895498dca33a0d338828.svg
, где
171daea5b602f3b2795d97d5f497d3f6.svg
- операция сигмоиды (6). Рассчитаем производную функции потерь по логиту
3d6206c393edf0eba550ee216fa7e0dd.svg
.
В случае бинарной кроссэнтропии:
631d7263390e8e0398984a99d6c7899a.svg


В случае среднеквадратичной ошибки:
734c0e5bbe391b6e50d329c3e168918a.svg


При
997129aa1fa4b1ce8c210612bf8004fc.svg
(то есть когда модель выдает уверенный неправильный ответ) при бинарной кроссэнтропии производная стремится к 1, а при среднеквадратичной ошибке производная стремится к нулю. Это означает, что при сочетении сигмоиды и среднеквадратичной ошибки уверенные неправильные ответы практически не корректируются градиентным спуском (градиент близок к нулю), что может негативно сказаться на качестве обучения. Это аргумент в пользу того, чтобы при использовании сигмоиды выбирать бинарную кроссэнтропию, а не среднеквадратичную ошибку.

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

source: habr.com/ru/company/ods/blog/714670
 
Activity
So far there's no one here
Сверху Снизу