Добавляет ли производная для категориальной перекрестной энтропии значения только к весам?

#python-3.x #numpy #machine-learning

#python-3.x #numpy #машинное обучение

Вопрос:

Я понимаю вывод частных производных для двоичной перекрестной энтропии.

двоичная перекрестная энтропия

     Loss = y * log10(yHat)   (1 - y) * log10(1 - yHat)
    dLoss/dyHat = -y/yHat   (1 - y) / (1 - yHat)
  

категориальная перекрестная энтропия

 Loss = y * log10(yHat) 
dLoss/dyHat = -y / (yHat * exp(10))
  

Хотя я не вижу, чтобы последняя производная использовалась при обратном распространении. Проблема, с которой я сталкиваюсь, заключается в том, что обновляется только положительная категория.

Например; Если после первого прямого распространения,

 y = category 4, and category 3 = [[0, 0, 0, 1], [0, 0, 1, 0]]
yHat = [[0.1, 0.2, 0.1, 0.4], [0.1, 0.3, 0.1, 0.5]]
  

Тогда обратное распространение с использованием категориальной перекрестной энтропии будет =

 [[0., 0., 0., -0.1e-3], [0., 0., -0.4e-3, 0.]
  

Обновление весов этими значениями приводит только к увеличению чисел при каждом обновлении без каких-либо штрафных санкций за вероятность неправильных классификаций. В конечном итоге все значения yHat приближаются к 1.0.

Тот же шаг обратного распространения с использованием двоичной перекрестной энтропии дает значения =

 [[1.1, 1.3, 1.1, -2.5],[1.1, 1.4, -10.0, 2.0]]
  

Позволяет получать как вознаграждение за правильную категорию, так и штраф за неправильную.

Итак, практикуется ли при использовании категориальной перекрестной энтропии использовать двоичную производную перекрестной энтропии? Не похоже, что такая свобода должна быть принята, но не уверен, что делать?