Формула кросс-энтропии принимает два распределения, р ( х ) , истинное распределение, и 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))
Во многих реализациях требуется, чтобы ваши базовые значения истинности были закодированы в «горячем» виде (с одним истинным классом), поскольку это допускает дополнительную оптимизацию. Тем не менее, в принципе, перекрестные энтропийные потери могут быть рассчитаны и оптимизированы, если это не так.