Градиенты модели PyTorch сходятся к нулю

#deep-learning #neural-network #pytorch

#глубокое обучение #нейронная сеть #pytorch

Вопрос:

В настоящее время я работаю над личной реализацией архитектуры Transformer. Код, который я написал здесь.

Проблема, с которой я сталкиваюсь, заключается в том, что я считаю, что моя модель не обучается должным образом, и я не уверен, какие меры мне следует предпринять, чтобы исправить это. Я пришел к этому выводу после использования Weights amp; Biases для визуализации гистограмм градиента модели, и они выглядят примерно так:

введите описание изображения здесь

Градиенты, по-видимому, быстро сходятся к нулю. Существует часть кода, которая содержит нейронную сеть с прямой связью, которая использует активацию ReLU, и я изменил ее на Leaky ReLU, подозревая, что проблема может быть в умирающих ReLU. Однако использование дырявых ReLU не помогает и просто продлевает нулевую сходимость.

Любые отзывы о том, что еще я могу попробовать, приветствуются.

Комментарии:

1. Как выглядят потери? У вас есть доказательства от них, что модель не обучается должным образом?

2. Потеря выглядит примерно так: imgur.com/a/anrnZaz Отсюда потери на самом деле не уменьшаются, и эта картинка в сочетании с весами, которые на самом деле не двигаются, говорит мне, что модель не тренируется должным образом. Еще одним доказательством является то, что когда я оцениваю «обученную» модель, оценка BLEU равна 0, чего также не должно быть.