Я реализовал функцию Softmax и позже обнаружил, что она должна быть стабилизирована, чтобы быть численно устойчивой (дух). И теперь, это снова не стабильно, потому что даже после вычитания max (x) из моего вектора, заданные векторные значения все еще слишком велики, чтобы иметь возможность быть степенями e . Вот изображение кода, который я использовал для определения ошибки, вектор здесь - пример выходного вектора от прямого распространения:
Мы можем ясно видеть, что значения слишком велики, и вместо вероятности я получаю эти действительно маленькие числа, которые приводят к небольшой ошибке, которая приводит к исчезновению градиентов и, наконец, к невозможности обучения сети.