хорошо в обучении и плохо в предсказании - PullRequest
1 голос
/ 24 ноября 2010

Я написал код для прогнозирования в нейронной сети ...

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

поэтому я разместил свой код на этом форуме и надеюсь получить ответ на него: текст ссылки

этот zip-файл содержит 2 файла:

1-файл Excel для данных: строки 1-4 для ввода обучения, строка 5 для вывода обучения (строка 6 выводится, но не используется в этом коде), строка 7-10 для проверки ввода, строка 11 для результаты тестирования.

2-код Matlab

после запуска программы появляется диаграмма 4: первая строка для обученных данных и вторая строка для проверенных данных.

если кто-то знает ответ, измените мой код и вставьте его снова.

Большое спасибо.

EDIT:

подробное описание:

У меня есть 2 вывода и два кода для каждой ... для строки 6 (второй вывод) этот код имеет приемлемые результаты, но для строки 5 нет хорошего результата ...

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

Ответы [ 3 ]

5 голосов
/ 30 ноября 2010

Как уже упоминали люди, вы, вероятно, соответствует ANN для данных обучения.В зависимости от набора данных вы можете получить произвольно хорошее соответствие данных обучения, если тренируетесь достаточно долго. Другая проблема может заключаться в том, что данные обучения неправильно представляют проблемное пространство.Т.е. есть входные данные в тестовых данных, которые очень отличаются от данных, которые вы использовали для обучения.Если это так, то ANN не может функционировать должным образом.

Чтобы преодолеть переоснащение, попробуйте это.Разделить данные на 3 набора;обучение, проверка и тестирование.Во время обучения ИНС также рассчитайте погрешность на проверочном наборе.Если набор проверки не улучшится, скажем, для 5 эпох (вы всегда можете настроить это), тогда прекратите обучение.

Также в качестве общего замечания.У меня не было возможности взглянуть на ваши данные и исходный код, но помните, что для получения хороших результатов вам потребуется значительное количество данных.Если у вас есть только несколько точек данных, тогда будет очень трудно / невозможно достичь хороших результатов.

Я рекомендую прочитать руководство здесь для хорошего обзора многих аспектов ANN.

Удачи!

3 голосов
/ 24 ноября 2010

Если вы считаете, что проблема может быть в перетренированности, попробуйте тренировать их до тех пор, пока они не будут иметь 5%, ошибку 10% вместо 1%. Чем ниже процент ваших ошибок, тем сложнее будет их обобщить - они просто будут точно знать, что именно вы им дали.

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

Если вы используете Matlab, попробуйте обучить вашу сеть с байесовской регуляризацией вместо алгоритма Левенберга-Марквардта по умолчанию (net.trainFcn = 'trainbr' вместо trainlm)

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