Допустим, у меня есть классификатор для классификации кошек, собак и свиней. Есть много возможных способов реализации этого. Но самый простой способ — отдельно обучить три функции оценки: fᶜᵃᵗ(⋅), fᵈᵒᵍ(⋅) и fᵖᶦᵍ(⋅). и классифицировать ввод в класс с наивысшим баллом. Например, при вводе x мы классифицируем x как кошку, если fᶜᵃᵗ(x)› fᵈᵒᵍ(x) и fᶜᵃᵗ(x)›fᵖᶦᵍ( х).

Этот тип классификатора принимает жесткое-решение для каждого входа. Вне зависимости от того, насколько кошачьи функции больше, чем остальные. У классификатора такая же «уверенность» в объявлении ввода, как у кота.

Софтмакс

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

Например, если классификатор выводит pᶜᵃᵗ(x)=0,8, pᵈᵒᵍ(x)=0,1 , и pᵖᶦᵍ(x)=0,1, это означает, что классификатор считает, что 80 % вероятности того, что входные данные — это кошка, и 10 % вероятности того, что это другой два класса. Точно так же, если другой классификатор выводит pᶜᵃᵗ(x)=0,4, pᵈᵒᵍ(x)=0,3, и pᵖᶦᵍ(x)=0,3, он с вероятностью 40 % считает, что на входе находится кошка, и с вероятностью 30 % для всех остальных. Несмотря на то, что второй классификатор по-прежнему считает, что входные данные с большей вероятностью вероятно будут кошкой. Но он менее надежен, чем первый классификатор.

Обратите внимание, что по соглашению все вероятности должны быть неотрицательными и в сумме давать 1 (pᶜᵃᵗ(x)+pᵈᵒᵍ(x)+pᵖᶦᵍ(x)=1). Softmax используется для перевода оценок (fᶜᵃᵗ(x), fᵈᵒᵍ( x), fᵖᶦᵍ(x)) для классификации убеждений/вероятностей (pᶜᵃᵗ( x), pᵈᵒᵍ(x),pᵖᶦᵍ(x)) . Конкретно у нас есть

Обратите внимание, что использование exp(⋅) гарантирует, что все результирующие значения p не равны нулю. Более того, знаменатель нормализует p, чтобы гарантировать, что сумма всех p равна 1. Кроме того, свойство монотонного возрастания exp(⋅) гарантирует, что pᶜᵃᵗ велико по сравнению с остальными тогда и только тогда, когда fᶜᵃᵗ велико по сравнению с отдых. Таким образом, функция softmax действительно похожа на функцию max, которая выбирает максимальную из входных оценок. Но это «мягкий», который не устанавливает опрометчиво самый высокий класс оценки с верой 1 и остальными 0 независимо от фактических значений оценок.

кросс-энтропия

Теперь, учитывая, что на входе действительно кошка, вспомним, что у нас был классификатор 1 с

pᶜᵃᵗ(x)=0.8, pᵈᵒᵍ(x)=0.1, pᵖᶦᵍ(x)=0.1

и классификатор 2 с

pᶜᵃᵗ(x)=0.4, pᵈᵒᵍ(x)=0.3, pᵖᶦᵍ(x)=0.3.

По-видимому, классификатор 1 работает лучше, чем классификатор 2, поскольку он более уверен, что на входе есть кошка. Но как мы можем количественно оценить эту разницу в производительности?

Общепринятым способом является потеря перекрестной энтропии. Он просто вычисляется как
-log pᶜᵃᵗ. В более общем смысле, если c – это фактический класс входных данных (обычно известный как исходная правда), то потеря перекрестной энтропии составляет pᶜ.

Обратите внимание, что кросс-энтропия — это «потеря», поэтому чем меньше значение, тем лучше. Например, в приведенном выше примере классификатор 1 имеет кросс-энтропийную потерю
-log 0,8 = 0,223 (здесь мы используем натуральный логарифм), а классификатор 2 имеет кросс-энтропийную потерю -log 0,4 = 0,916. Так что первый классификатор лучше.

KL-дивергенция

Определение кросс-энтропийной потери кажется разумным, но произвольным. Почему
-log pᶜ, почему бы не сказать 1-pᶜ? Есть ли у нас какое-то теоретическое обоснование определения?

Чтобы понять, почему потеря перекрестной энтропии определяется именно так, мы должны ввести понятие KL-дивергенции,которое иногда также называют относительной энтропией в дисциплине теории информации. Учитывая два распределения вероятностей p и q, использование KL-дивергенции заключается в измерении разницы между двумя распределениями. Например, если два приведенных выше распределения могут иметь три разных результата 1, 2 и 3, то KL-расхождение между p и q определяется выражением

В более общем смысле, если C — это набор всех возможных результатов, то

Несмотря на то, что принято рассматривать KL-дивергенцию как «расстояние» между двумя распределениями, в математическом смысле это недопустимая метрика расстояния, поскольку мера несимметрична. Это KL(p;q)≠KL(q;п).

Числовой пример

Давайте сделаем простой числовой пример, чтобы проверить наше понимание. В чем разница между результатом классификатора в нашем предыдущем примере?

Обратите внимание, что, напротив,

Таким образом, KL-дивергенция не является симметричной, как отмечалось выше.

Почему KL-дивергенция является хорошим показателем?

KL-дивергенция, вероятно, является наиболее распространенным способом измерения различий между распределениями. Одна веская причина заключается в том, что с этим очень легко иметь дело на практике (с точки зрения математики). Здесь я не буду вдаваться в подробности. Но я просто покажу, что оно удовлетворяет некоторой общей интуиции как «мера». То есть

  1. если измеряемые две вещи различны, значение меры должно быть ненулевым и положительным.
  2. если две вещи идентичны, значение меры должно быть равно нулю.

Сначала рассмотрим второй случай, если p = q, т. е. pᶜ = qᶜдля любого исхода c. Поэтому

Давайте теперь рассмотрим первый случай, для любых двух распределений p и q лучше иметь KL(p ;q)≥0. Чтобы показать это, воспользуемся простым неравенством x-1≥log(x). Это неравенство можно легко проверить, и вы можете убедиться сами на графике ниже.

Обратите внимание, что поскольку линия y=x-1 всегда находится выше кривой y=log(x). у нас должно быть x-1≥log(x). Более того, x-1=log(x) выполняется только тогда, когда x = 1. Наконец, поскольку
x-1≥log(x), мы должны иметь -log(x)≥1-x. Это будет фактическое неравенство, которое мы будем использовать.

Теперь, для доказательства,

где (a) потому, что log(x)=-log(1/x), (b) из приведенного выше неравенства и (c) из-за того, что все вероятности суммировать до единицы.

KL-дивергенция и кросс-энтропийная потеря

Так как же связаны KL-дивергенция и кросс-энтропийная потеря? Для применения классификации потеря кросс-энтропии — это не что иное, как измерение KL-расхождения между распределением убеждений, основанным на истинности, и распределением убеждений на выходе классификатора. Вернемся к нашему примеру с классификацией кошек. Поскольку мы знаем, что основная истина — это кошка, мы можем ввести распределение q для представления этого истинного убеждения. По сути, у нас должно быть qᶜᵃᵗ=1 и qᵈᵒᵍ=qᵖᶦᵍ=0. Затем, учитывая выходное распределение p из классификатора,

что в точности совпадает с потерей кросс-энтропии.

В более общем случае, когда q не является истинным распределением, мы имеем

где второй член представляет собой потерю перекрестной энтропии между q и p, а первый член фактически представляет собой отрицательную энтропию q. Обратите внимание, что поскольку энтропия измеряет неопределенность распределения, она равна нулю, когда результат полностью определен. Именно это мы и предполагаем при обучении классификатору. Мы определенно уверены, что тренировочный вход — это кошка, но не более того.

Вывод

Здесь я дал краткое объяснение softmax, кросс-энтропии и KL-дивергенции. Математика может быть немного абстрактной. Но все они имеют интуитивные причины, лежащие в основе определений. Надеюсь, этот пост будет полезен для некоторых.