Моя сеть обратной связи дает мне результат, усредняющий то, что я действительно хочу - PullRequest
0 голосов
/ 24 января 2019

Я строю сеть прямой связи с нуля, и у меня возникла следующая проблема: У меня 4 нейрона на входе и 4 на выходе, вход [x;x;x;x] с x, равным 0 или 1, выходной сигнал должен совпадать с входным.

После обучения более 1 миллиона записей и 1000 партий результат, который я получаю, всегда равен [0.5;0.5;0.5;0.5].

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

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

Редактировать: я решил проблему, отладив свои изменения веса,

1 Ответ

0 голосов
/ 29 января 2019

Есть много причин для такого поведения. Наиболее распространенным является то, что у вашего nn слишком маленькая возможность. NN-модели хотят минимизировать функцию стоимости, если нет возможности приспособиться к моделируемой форме функции. Nn будет усреднять функцию, которая является нормальной и наилучшей стратегией в этом виде оптимизации. Второе объяснение может заключаться в том, что ваши данные не имеют какого-либо паттерна внутри. Случайные входы заставляют NN возвращать среднее значение распределения.

Я предлагаю вам расширить возможности сети, добавив скрытый слой с дополнительными нейронами (то есть скрытый слой 50, 100, 200 нейронов) и понаблюдайте, что происходит. Будьте осторожны с добавлением более одного скрытого слоя, если вы не используете функции активации 'relu' из-за проблемы исчезновения градиента.

...