Самореализованная нейронная сеть странная конвергенция - PullRequest
0 голосов
/ 17 января 2012

В настоящее время у меня есть проблема, которую я не смог выяснить в течение пары дней с помощью самореализованной нейронной сети на Java. Моя сеть имеет два входных нейрона, соответствующих координатам x и y пикселя в данном изображении в градациях серого и один выход, представляющий тон пикселя. Я использую алгоритм обучения RPROP. Проблема, с которой я сталкиваюсь, состоит в том, что после многочисленных итераций подачи в сеть всего набора обучающих данных она сходится к точке, очень далекой от ожидаемой, и после анализа структуры веса конвергентной сети я мог видеть, что все нейроны в скрытом слое был точно такой же набор входных весов. Это происходит независимо от количества нейронов в скрытом слое. Это связано с тем, что я инициализирую все веса в сети с одинаковым значением? Я попытался рандомизировать веса, но это не улучшило ситуацию. Я использую сигмоидальные (tanh) функции активации во всех слоях, кроме выходного. Я не знаю, допустил ли я ошибку в реализации или неправильно понял некоторую часть математического описания процесса обучения нейронной сети. Кто-нибудь знает, что может вызвать такое странное поведение?

Ответы [ 2 ]

0 голосов
/ 24 апреля 2013

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

Это может привести к проблеме.

Также - вы пробовали играть с темпом обучения / импульсом?

0 голосов
/ 18 января 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...