почему softmax получает небольшой градиент, когда значение в бумаге большое «Внимание - это все, что вам нужно» - PullRequest
0 голосов
/ 27 февраля 2019

Это экран оригинальной бумаги: экран бумаги .Я понимаю, что смысл статьи в том, что когда значение точечного произведения велико, градиент softmax будет очень малым.Однако я попытался вычислить градиент softmax с потерей перекрестной энтропии и обнаружил, что градиент softmax не имеет прямого отношения к значению, переданному в softmax.Даже если одно значение велико, оно может получить большой градиент, когда другие значения велики.(извините за то, что я не знаю, как изложить здесь процесс расчета)

1 Ответ

0 голосов
/ 27 февраля 2019

На самом деле градиент кросс-энтропии с softmax для одного горячего вектора кодирования равен просто grad -log (softmax (x)) = (1 - softmax (x)) по индексу вектора соответствующего класса.(https://eli.thegreenplace.net/2016/the-softmax-function-and-its-derivative/). Если значение, переданное в softmax, велико, softmax выдаст 1 и, следовательно, создаст градиент 0.

...