Значение функции потери в керасе? - PullRequest
0 голосов
/ 04 мая 2020

Я создал нейронную сеть с кератами в python и не могу понять, что означает функция проигрыша.

Итак, сначала небольшая общая информация: я работал с набором данных покерных рук с классами 0-9, который я написал как векторы с OneHotEncoding. Я использовал активацию softmax в последнем слое, поэтому мой вывод сообщает мне для каждой из 10 записей в векторе вероятность того, принадлежит ли выборка определенному классу. Например: мой реальный ввод - это (0,1,0,0,0,0,0,0,0,0), что означает класс 1 (от 0 до 9 означает отсутствие карточки на королевский грипп sh), а класс 1 означает одну пару (если вы знаете покер). С нейронным net он получает на выходе и выходе, как (0,4, 0,2, 0,1, 0,1, 0,2, 0,0,0,0,0), что означает, что моя выборка принадлежит с 40 процентами к классу 0, с 20 процентов к 1 классу и так далее!

Хорошо! я также использовал двоичную перекрестную энтропию как потерю, метрики точности и RMSprop-оптимизатор. Когда я использую mode.evaluate () из keras, я получил примерно 0,16 за потерю, и я не знаю, как это интерпретировать. Значит ли это, что в среднем мои прогнозы отклоняются на 0,16 от истинных? поэтому, если мой прогноз для класса 0 равен 0,5, он также может быть 0,66 или 0,34? Или как мне это интерпретировать?

Пожалуйста, пришлите помощь!

1 Ответ

1 голос
/ 04 мая 2020

Во-первых, согласно определению вашей проблемы, у вас есть проблема с несколькими классами. Таким образом, вы должны использовать categoryorc_crossentropy. Двоичная перекрестная_энтропия предназначена для задач двух классов или для классификации по нескольким меткам.
Но, как правило, значение функции потерь имеет относительное значение воздействия. Прежде всего, вы должны понять, что означает cross_entropy. Формула имеет вид:
enter image description here
, где c - правильная классификация наблюдения o, а
y - двоичный индикатор (0 или 1), если метка класса c является правильной классификацией для наблюдения o, а p является прогнозируемой вероятностью того, что o имеет класс c.
. Для двоичной кросс-энтропии M равно 2. Для категориальной кросс-энтропии M> 2. Следовательно, перекрестная энтропия уменьшается, если прогнозируемая вероятность сходится к фактической метке:
enter image description here

Теперь давайте возьмем ваш пример, где у вас есть 10 классов, и ваш реальный вклад : (0,1,0,0,0,0,0,0,0,0). Если у вас потеря 0,16, это означает, что
enter image description here, что означает, что ваша модель присвоила 0,85 для правильной метки.
Таким образом, функция потерь дает вам журнал правильная классификация вероятностей. Поскольку в кератах потери рассчитываются для целых партий, это среднее от логарифма правильной вероятности классификации всех данных в заданной партии c. Если вы используете функцию evaluate, то это среднее от логарифма правильной вероятности классификации всех данных, которые вы оцениваете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...