Формула кросс-энтропии принимает два распределения, р ( х ) , истинное распределение, и Q( х ) , предполагаемое распределение, определенное по дискретной переменной Икс и задается как
ЧАС( р , д) = - ∑∀ хp ( x ) log( д( х ) )
Для нейронной сети расчет не зависит от следующего:
Какой слой был использован.
Какой тип активации использовался - хотя многие активации не будут совместимы с расчетом, потому что их выходы не интерпретируются как вероятности (то есть, их выходы отрицательны, больше 1 или не суммируются с 1). Softmax часто используется для мультиклассовой классификации, потому что она гарантирует правильную функцию распределения вероятностей.
Для нейронной сети, вы обычно видите уравнение , записанное в форме , где Y есть вектор подспутниковых и Y^ другое значение , принимается непосредственно от выхода последнего слоя) является оценкой. Для одного примера это будет выглядеть так:
L = - y ⋅ log( у^)
где ⋅ - векторное произведение точек.
Ваш пример земли истина Y дают все вероятности первой величину, а остальные значения равны нуль, так что мы можем их игнорировать, и просто использовать термин соответствия из ваших оценок уY^
L = - ( 1 × л о г( 0,1 ) + 0 × log( 0.5 ) + . , , )
Л = - л о г( 0.1 ) ≈ 2.303
Важный момент из комментариев
Это означает, что потери будут одинаковыми, независимо от того, будут ли предсказания [0.1,0.5,0.1,0.1,0.2] или [0.1,0.6,0.1,0.1,0.1] ?
Да, это ключевая особенность мультиклассовых логов, она вознаграждает / наказывает вероятности только правильных классов. Значение не зависит от того, как оставшаяся вероятность распределяется между неверными классами.
Вы часто будете видеть это уравнение, усредненное по всем примерам, как функцию стоимости . Это не всегда строго соблюдается в описаниях, но обычно функция потерь имеет более низкий уровень и описывает, как отдельный экземпляр или компонент определяет значение ошибки, тогда как функция стоимости имеет более высокий уровень, и описывает, как вся система оценивается для оптимизации. Функция стоимости, основанная на потере журнала мультикласса для набора данных размера N может выглядеть так:
J=−1N(∑i=1Nyi⋅log(y^i))
Во многих реализациях требуется, чтобы ваши базовые значения истинности были закодированы в «горячем» виде (с одним истинным классом), поскольку это допускает дополнительную оптимизацию. Тем не менее, в принципе, перекрестные энтропийные потери могут быть рассчитаны и оптимизированы, если это не так.
Ответ Нила правильный. Однако я считаю важным отметить, что, хотя потеря не зависит от распределения между неправильными классами (только распределение между правильным классом и остальными), градиент этой функции потерь по-разному влияет на неправильные классы в зависимости от того, как они не правы. Поэтому, когда вы используете кросс-энт в машинном обучении, вы по-разному меняете вес для [0,1 0,5 0,1 0,1 0,2] и [0,1 0,6 0,1 0,1 0,1]. Это связано с тем, что оценка правильного класса нормализуется оценками всех других классов, чтобы превратить его в вероятность.
источник
Давайте посмотрим, как ведет себя градиент потерь ... Мы имеем кросс-энтропию как функцию потерь, которая определяется
Мне интересно, как программные пакеты справляются с прогнозируемым значением 0, тогда как истинное значение было больше нуля ... Так как в этом случае мы делим на ноль.
источник
Давайте начнем с понимания энтропии в теории информации: предположим, вы хотите передать строку алфавитов "aaaaaaaa". Вы можете легко сделать это как 8 * "а". Теперь возьмите другую строку "jteikfqa". Есть ли сжатый способ передачи этой строки? Там нет там. Можно сказать, что энтропия 2-й строки больше, так как для ее передачи нам нужно больше «битов» информации.
В «кросс» -энтропии, как следует из названия, мы фокусируемся на количестве битов, необходимых для объяснения различий в двух разных распределениях вероятностей. В лучшем случае оба распределения одинаковы, и в этом случае требуется наименьшее количество битов, т.е. простая энтропия. В математическом плане
Итог: с точки зрения непрофессионала, можно рассматривать кросс-энтропию как расстояние между двумя вероятностными распределениями с точки зрения количества информации (битов), необходимого для объяснения этого расстояния. Это аккуратный способ определения потерь, которые снижаются по мере приближения векторов вероятности друг к другу.
источник
Я не согласен с Лукасом. Указанные выше значения уже являются вероятностями. Обратите внимание, что в исходном сообщении указано, что значения имели активацию softmax.
Ошибка распространяется только назад на «горячий» класс, и вероятность Q (i) не изменяется, если вероятности внутри других классов смещаются между собой.
источник
Проблема в том, что вероятности исходят из «сложной» функции, которая включает другие выходы в заданное значение. Результаты взаимосвязаны, поэтому таким образом мы выводим не по фактическому результату, а по всем входам последней функции активации (softmax) для каждого результата.
Другое аккуратное описание на gombru.github.io/2018/05/23/cross_entropy_loss .
Я думаю, что использование простого сигмоида в качестве последнего слоя активации приведет к утвержденному ответу, но использование softmax указывает на другой ответ.
источник