Функции согласованных потерь по Байесу: потеря ноль-единица (серый), дикая потеря (зеленый), логистическая потеря (оранжевый), экспоненциальная потеря (фиолетовый), касательная потеря (коричневый), квадратная потеря (синий)
В машинное обучение и математическая оптимизация, функции потерь для классификации вычислительно возможны функции потерь представляет собой цену, заплаченную за неточность прогнозов в проблемы классификации (проблемы определения, к какой категории принадлежит конкретное наблюдение).[1] Данный
как пространство всех возможных входов (обычно
), и
как набор меток (возможных выходов), типичная цель алгоритмов классификации - найти функцию
который лучше всего предсказывает этикетку
для данного входа
.[2] Однако из-за неполной информации, шума в измерениях или вероятностных компонентов в базовом процессе возможно то же
генерировать разные
.[3] В результате цель задачи обучения - минимизировать ожидаемые потери (также известные как риск), определяемые как
![{ displaystyle I [f] = displaystyle int _ {{ mathcal {X}} times { mathcal {Y}}} V (f ({ vec {x}}), y) p ({ vec {x}}, y) , d { vec {x}} , dy}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a681d2ec2b4e729a58045cd58dd718b1cc91b3d6)
куда
- заданная функция потерь, а
это функция плотности вероятности процесса, который сгенерировал данные, которые эквивалентно можно записать как

В рамках классификации несколько часто используемых функции потерь написаны исключительно с точки зрения продукта настоящей этикетки
и предсказанная метка
. Следовательно, их можно определить как функции только одной переменной.
, так что
с подходящим образом выбранной функцией
. Они называются функции потерь на основе маржи. Выбор функции потерь на основе маржи сводится к выбору
. Выбор функции потерь в рамках этой структуры влияет на оптимальный
что минимизирует ожидаемый риск.
В случае бинарной классификации можно упростить расчет ожидаемого риска на основе указанного выше интеграла. Конкретно,
![{ displaystyle { begin {align} I [f] & = int _ {{ mathcal {X}} times { mathcal {Y}}} V (f ({ vec {x}}), y ) p ({ vec {x}}, y) , d { vec {x}} , dy [6pt] & = int _ { mathcal {X}} int _ { mathcal { Y}} phi (yf ({ vec {x}})) p (y mid { vec {x}}) p ({ vec {x}}) , dy , d { vec { x}} [6pt] & = int _ { mathcal {X}} [ phi (f ({ vec {x}})) p (1 mid { vec {x}}) + phi (-f ({ vec {x}})) p (-1 mid { vec {x}})] p ({ vec {x}}) , d { vec {x}} [6pt] & = int _ { mathcal {X}} [ phi (f ({ vec {x}})) p (1 mid { vec {x}}) + phi (-f ({ vec {x}})) (1-p (1 mid { vec {x}}))] p ({ vec {x}}) , d { vec {x}} end {выровнено}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b790a75d49d31c4d0b845445046bae07114894ee)
Второе равенство следует из описанных выше свойств. Третье равенство следует из того факта, что 1 и −1 - единственные возможные значения для
, а четвертый, потому что
. Термин в скобках
известен как условный риск.
Можно решить для минимизатора
взяв функциональную производную от последнего равенства по
и установив производную равной 0. Это приведет к следующему уравнению

что также эквивалентно установке производной условного риска равной нулю.
Учитывая бинарный характер классификации, естественный отбор функции потерь (при условии равной стоимости для ложные срабатывания и ложные отрицания ) будет 0-1 функция потерь (0–1 индикаторная функция ), который принимает значение 0, если прогнозируемая классификация равна истинному классу, или 1, если прогнозируемая классификация не соответствует истинному классу. Этот выбор смоделирован

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

взяты из данных пространство образца, каждый стремится минимизировать эмпирический риск
![{ displaystyle I_ {S} [f] = { frac {1} {n}} sum _ {i = 1} ^ {n} V (f ({ vec {x}} _ {i}), y_ {i})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f11407df44b1dc610c3fe193ce436cc33520ffe5)
как показатель ожидаемого риска.[3] (Видеть теория статистического обучения для более подробного описания.)
Последовательность Байеса
Использование Теорема Байеса, можно показать, что оптимальная
, то есть тот, который минимизирует ожидаемый риск, связанный с потерей нуля или единицы, реализует правило оптимального решения Байеса для задачи двоичной классификации и имеет форму
.
Функция потерь называется калиброванная по классификации или согласованная по Байесу если это оптимально
таково, что
и поэтому является оптимальным согласно правилу принятия решения Байеса. Байесовская согласованная функция потерь позволяет нам найти байесовскую функцию оптимального решения.
путем прямой минимизации ожидаемого риска и без явного моделирования функций плотности вероятности.
Для выпуклой потери маржи
, можно показать, что
согласован по Байесу тогда и только тогда, когда он дифференцируем в 0 и
.[6][1] Тем не менее, этот результат не исключает существования невыпуклых байесовских согласованных функций потерь. Более общий результат утверждает, что байесовские согласованные функции потерь могут быть получены с использованием следующей формулировки [7]
,
куда
- любая обратимая функция такая, что
и
- любая дифференцируемая строго вогнутая функция такая, что
. Таблица-I показывает сгенерированные байесовские согласованные функции потерь для некоторых примеров выбора
и
. Обратите внимание, что потери Savage и Tangent не являются выпуклыми. Было показано, что такие невыпуклые функции потерь полезны при работе с выбросами при классификации.[7][8] Для всех функций потерь, полученных из (2), апостериорная вероятность
можно найти с помощью обратимого функция ссылки в качестве
. Такие функции потерь, в которых апостериорная вероятность может быть восстановлена с помощью обратимой связи, называются правильные функции потерь.
Таблица-IИмя потери |  |  |  |  |
---|
Экспоненциальный |  |  |  |  |
Логистика |  | ![{ displaystyle { frac {1} { log (2)}} [- eta log ( eta) - (1- eta) log (1- eta)]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7e609e1c16646f7a8a99eb51b64fb94416a6a425) |  |  |
Квадрат |  |  |  |  |
дикий |  |  |  |  |
Касательная |  |  |  |  |
Единственный минимизатор ожидаемого риска,
, связанные с приведенными выше сгенерированными функциями потерь, можно непосредственно найти из уравнения (1) и показать, что они равны соответствующему
. Это справедливо даже для невыпуклых функций потерь, что означает, что алгоритмы на основе градиентного спуска, такие как повышение градиента можно использовать для построения минимизатора.
Правильные функции потерь, маржа потерь и регуляризация
(Красный) стандартные логистические потери (

) и (синий) увеличенная маржа Логистические убытки (

).
Для правильных функций потерь маржа убытков можно определить как
и показано, что они напрямую связаны со свойствами регуляризации классификатора.[9] В частности, функция потерь с большим запасом увеличивает регуляризацию и дает лучшие оценки апостериорной вероятности. Например, маржа потерь может быть увеличена для логистических потерь путем введения
параметр и запись логистических потерь как
где меньше
увеличивает маржу убытка. Показано, что это прямо эквивалентно снижению скорости обучения в повышение градиента
где уменьшается
улучшает регуляризацию усиленного классификатора. Теория проясняет, что когда скорость обучения
используется правильная формула для получения апостериорной вероятности.
.
В заключение, выбрав функцию потерь с большим запасом (меньшим
) мы усиливаем регуляризацию и улучшаем наши оценки апостериорной вероятности, что, в свою очередь, улучшает ROC-кривую окончательного классификатора.
Квадратная потеря
Хотя функция квадратичных потерь чаще используется в регрессии, ее можно переписать как функцию
и используется для классификации. Его можно сгенерировать с помощью (2) и Таблицы-I следующим образом.
![{displaystyle phi (v)=C[f^{-1}(v)]+(1-f^{-1}(v))C'[f^{-1}(v)]=4({frac {1}{2}}(v+1))(1-{frac {1}{2}}(v+1))+(1-{frac {1}{2}}(v+1))(4-8({frac {1}{2}}(v+1)))=(1-v)^{2}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7cdde8f62987c985c1028a98d8c24682dfe0c2d7)
Квадратная функция потерь бывает выпуклой и гладкой. Однако функция квадратичных потерь имеет тенденцию чрезмерно наказывать выбросы, что приводит к более медленным скоростям сходимости (в отношении сложности выборки), чем для функций логистических потерь или потерь на шарнирах.[1] Кроме того, функции, которые дают высокие значения
для некоторых
будет плохо работать с функцией квадратичных потерь, поскольку высокие значения
будут строго наказаны, независимо от наличия признаков
и
матч.
Преимущество функции квадратичных потерь состоит в том, что ее структура позволяет легко перекрестную проверку параметров регуляризации. Специально для Тихоновская регуляризация, можно найти параметр регуляризации, используя перекрестная проверка в то же время, которое потребуется для решения одной проблемы.[10]
Минимизатор
для квадрата функции потерь можно непосредственно найти из уравнения (1) как

Логистическая потеря
Функцию логистических потерь можно сгенерировать с помощью (2) и Таблицы-I следующим образом.
![{displaystyle {egin{aligned}phi (v)&=C[f^{-1}(v)]+left(1-f^{-1}(v)
ight),C'left[f^{-1}(v)
ight]&={frac {1}{log(2)}}left[{frac {-e^{v}}{1+e^{v}}}log {frac {e^{v}}{1+e^{v}}}-left(1-{frac {e^{v}}{1+e^{v}}}
ight)log left(1-{frac {e^{v}}{1+e^{v}}}
ight)
ight]+left(1-{frac {e^{v}}{1+e^{v}}}
ight)left[{frac {-1}{log(2)}}log left({frac {frac {e^{v}}{1+e^{v}}}{1-{frac {e^{v}}{1+e^{v}}}}}
ight)
ight]&={frac {1}{log(2)}}log(1+e^{-v}).end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4fd7a4c1188c935bcf5f76e4063f97034fb54e39)
Логистические потери являются выпуклыми и линейно растут для отрицательных значений, что делает их менее чувствительными к выбросам. Логистическая потеря используется в Алгоритм LogitBoost.
Минимизатор
для функции логистических потерь можно непосредственно найти из уравнения (1) как

Эта функция не определена, когда
или же
(стремясь к ∞ и −∞ соответственно), но предсказывает плавную кривую, которая растет, когда
увеличивается и равен 0, когда
.[3]
Легко проверить, что логистические потери и двоичный перекрестная энтропия потери (Log loss) фактически одинаковы (с точностью до мультипликативной константы
Потеря кросс-энтропии тесно связана с Дивергенция Кульбака – Лейблера между эмпирическим распределением и предсказанным распределением. Потеря кросс-энтропии повсеместна в современных глубокие нейронные сети.
Экспоненциальный убыток
Экспоненциальная функция потерь может быть сгенерирована с использованием (2) и Таблицы-I следующим образом
![{displaystyle phi (v)=C[f^{-1}(v)]+(1-f^{-1}(v))C'[f^{-1}(v)]=2{sqrt {({frac {e^{2v}}{1+e^{2v}}})(1-{frac {e^{2v}}{1+e^{2v}}})}}+(1-{frac {e^{2v}}{1+e^{2v}}})({frac {1-{frac {2e^{2v}}{1+e^{2v}}}}{sqrt {{frac {e^{2v}}{1+e^{2v}}}(1-{frac {e^{2v}}{1+e^{2v}}})}}})=e^{-v}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/aaf52f9ceb280f470317e416a711b1e924cc1bd0)
Экспоненциальные потери выпуклые и экспоненциально возрастают для отрицательных значений, что делает их более чувствительными к выбросам. Экспоненциальная потеря используется в Алгоритм AdaBoost.
Минимизатор
для экспоненциальной функции потерь можно непосредственно найти из уравнения (1) как

Дикая потеря
Дикая потеря[7] может быть сгенерировано с использованием (2) и Таблицы-I следующим образом
![{displaystyle phi (v)=C[f^{-1}(v)]+(1-f^{-1}(v))C'[f^{-1}(v)]=({frac {e^{v}}{1+e^{v}}})(1-{frac {e^{v}}{1+e^{v}}})+(1-{frac {e^{v}}{1+e^{v}}})(1-{frac {2e^{v}}{1+e^{v}}})={frac {1}{(1+e^{v})^{2}}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3bc29f01f367ef3f4d6f92ce2f91827622a59b30)
Потери Сэвиджа квазивыпуклые и ограничены для больших отрицательных значений, что делает их менее чувствительными к выбросам. Убыток Savage был использован в повышение градиента и алгоритм SavageBoost.
Минимизатор
для функции потерь Сэвиджа можно непосредственно найти из уравнения (1) как

Касательная потеря
Касательная потеря[11] может быть сгенерировано с использованием (2) и Таблицы-I следующим образом
![{displaystyle {egin{aligned}phi (v)&=C[f^{-1}(v)]+(1-f^{-1}(v))C'[f^{-1}(v)]=4(arctan(v)+{frac {1}{2}})(1-(arctan(v)+{frac {1}{2}}))+(1-(arctan(v)+{frac {1}{2}}))(4-8(arctan(v)+{frac {1}{2}}))&=(2arctan(v)-1)^{2}.end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/48fc53108e779ecf1e26b0725b3873944fcd9644)
Потери касательной квазивыпуклые и ограничены для больших отрицательных значений, что делает их менее чувствительными к выбросам. Интересно, что потеря касательной также назначает ограниченный штраф точкам данных, которые были классифицированы «слишком правильно». Это может помочь предотвратить перетренированность набора данных. Касательная потеря была использована в повышение градиента, алгоритм TangentBoost и леса альтернативных решений.[12]
Минимизатор
для функции потерь по касательной можно непосредственно найти из уравнения (1) как

Потеря шарнира
Функция потерь шарнира определяется как
, куда
это положительная часть функция.
![{displaystyle V(f({vec {x}}),y)=max(0,1-yf({vec {x}}))=[1-yf({vec {x}})]_{+}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bec5bd9d55a0fa201d877181b995db28b17f9827)
Потеря на шарнире обеспечивает относительно жесткую, выпуклую верхнюю границу диапазона 0–1 индикаторная функция. В частности, шарнирные потери равны 0–1 индикаторная функция когда
и
. Кроме того, минимизация эмпирического риска этих потерь эквивалентна классической формулировке для опорные векторные машины (SVM). Правильно классифицированные точки, лежащие за границами границ опорных векторов, не штрафуются, тогда как точки в пределах границ границ или на неправильной стороне гиперплоскости штрафуются линейно по сравнению с их расстоянием от правильной границы.[4]
Хотя функция потерь шарнира является выпуклой и непрерывной, она не является гладкой (не дифференцируемой) при
. Следовательно, функцию потерь петли нельзя использовать с градиентный спуск методы или стохастический градиентный спуск методы, основанные на дифференцируемости по всей области. Однако потери в шарнирах имеют субградиент при
, что позволяет использовать методы субградиентного спуска.[4] SVM, использующие функцию потерь шарнира, также могут быть решены с использованием квадратичное программирование.
Минимизатор
для функции потерь шарнира

когда
, что соответствует функции индикатора 0–1. Этот вывод делает потерю петли весьма привлекательной, поскольку можно установить границы разницы между ожидаемым риском и знаком функции потерь петли.[1] Потери на шарнире не могут быть получены из (2), поскольку
не обратима.
Общая потеря плавности шарнира
Обобщенная функция потерь гладкого шарнира с параметром
определяется как
