Почему я получаю разные прогнозы из одной и той же модели нейронной сети? - PullRequest
0 голосов
/ 29 ноября 2018

В названии, которое я написал, я застрял в проблеме, что моя нейронная сеть делает разные значения прогноза.

Вот шаги, которые я сделал, чтобы получить прогнозы, используя нейронную сеть.

Во-первых,нормализовал x и сделал модель нейронной сети, используя 'nnet'.

После этого я делал прогнозы с помощью команды предиката.Предсказание (модель nnet, тестовые данные)

Но проблема в том, что я получаю разные прогнозы всякий раз, когда запускаю нейронную сеть.

Например,

mymodel <-nnet (~~~~) </p>

прогноз (данные mymodel.test)

Я получил значение A изпредсказание.

После того, как я снова выполнил ту же команду 'mymodel <-nnet (~~~~) предикат (mymodel.test data)', тогда естественно, что я получил A для значения предсказания.Но в это время я получил B. </p>

Если я запустил его снова, я получил C.

Почему я получаю разные прогнозы из той же модели нейронной сети?

Чтоя должен сделать, чтобы решить эту проблему?

Ответы [ 2 ]

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

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

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

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

Чтобы избежать этого, либо используйте один и тот же экземпляр модели (выполняйте mymodel<-nnet(~~~~) только один раз в начале и продолжайте выполнять только predict() впоследствии), либоустановить начальное число для генерации случайных значений, чтобы вы всегда получали один и тот же набор случайных значений при инициализации

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