В чем причина того, что веса моей модели NN не сильно меняются? - PullRequest
0 голосов
/ 31 октября 2018

Я тренирую модель нейронной сети, и моя модель хорошо соответствует обучающим данным. Потеря тренировки уменьшается стабильно. Все отлично работает
Однако, когда я выводил веса моей модели, я обнаружил, что она не сильно изменилась со времени случайной инициализации (я не использовал предварительно обученные веса. Все веса инициализируются по умолчанию в PyTorch). Все размеры весов изменились только на 1%, в то время как точность тренировочных данных поднялась с 50% до 90%. Что может объяснить это явление? Размеры весов слишком велики, и мне нужно уменьшить размер моей модели? Или есть другие возможные объяснения?

Я понимаю, что это довольно широкий вопрос, но я думаю, что для меня нецелесообразно показывать свою модель и анализировать ее здесь математически. Поэтому я просто хочу знать, что может быть общей причиной этой проблемы.

1 Ответ

0 голосов
/ 01 ноября 2018

В задаче почти всегда много локальных оптимальных точек, поэтому одну вещь, которую вы не можете сказать, особенно в пространствах пространственных объектов, - это то, в какую оптимальную точку будут вписываться параметры вашей модели. Важным моментом здесь является то, что для каждого набора весов, который вы вычисляете для своей модели, чтобы найти оптимальную точку, из-за действительных значений весов существует бесконечный набор весов для этой оптимальной точки, пропорция веса друг для друга - это единственное, что имеет значение, потому что вы пытаетесь минимизировать стоимость, а не находите уникальный набор весов с потерей 0 для каждого образца. Каждый раз, когда вы тренируетесь, вы можете получать разные результаты в зависимости от начального веса. когда веса меняются очень близко с почти одинаковым отношением друг к другу, это означает, что ваши функции сильно коррелированы (то есть избыточны), и так как вы получаете очень высокую точность только с небольшим изменением весов, я могу думать только о том, что ваш классы набора данных находятся далеко друг от друга. попытайтесь удалять объекты по одному, обучайте и смотрите результаты, если точность была хорошей, продолжайте удалять другое, пока вы, надеюсь, не дойдете до 3 или 2-мерного пространства, где вы можете построить свои данные и визуализировать их, чтобы увидеть, как распределяются точки данных и в этом есть смысл.

РЕДАКТИРОВАТЬ: Лучший подход заключается в использовании PCA для уменьшения размерности вместо удаления по одному

...