Вход
Регистрация

Нейронные сети - вопросы обучения

Здравствуйте!

Я занимаюсь прогнозированием финансовых временных рядов с помощью нейронных сетей. Использую внешнюю библиотеку FANN, http://leenissen.dk/fann/.

Сетка самый обычный perсepton. На вход подаю 16 последних значений ряда, после специальной предобработки и масштабирования. В скрытом слое 24 нейрона. На выходе прогноз следующего значения ряда. Обучаю простым методом Back Propagation.

У меня большой объем данных, около 1 500 000 использую как обучающееся множество и 350 000 как множество Cross Validation, CV.

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

Тестовое множество я к сожалению не использую.

Почему-то в процессе обучения у меня начинает расти ошибка на обучающем множестве. Я в других программах аля Statistica Neural Networks такого не встречал (но там я работал с намного меньшим количеством данных), при переобучении ошибка на CV множестве начинает расти, а вот на тестовом множестве продолжает снижаться. Здесь не так. Я буду еще подробнее разбираться во внутренностях.

У меня есть одна сетка, которую я обучил года 2 назад и к сожалению не помню уже на какой основе. Так вот, эта сетка показывает результаты корреляции прогноза и реала = 0.47. А все мои последние сетки, а я их уже _много_ обучил, показывают в лучшем случае 0.45. И я не могу понять причину. Есть подозрения что я вручную остановил обучение той сетки на каком-то шаге или же вообще не использовал CV множество. Сетка также хорошо работает вне выборки.

Помогите пожалуйста советом, как можно еще добиться хорошей генерализации?
Я читал FAQ по нейросетям.
http://www.faqs.org/faqs/ai-faq/neural-nets/part1/

там наметки про Байесовы (?) сети, которые дескать не подвержены проблемам переобучения. Но там написано, что эти алгоритмы обучения очень сложные.

Или мне поменять тип сетки, вместо перцептона попробовать probability network?

Может быть вы сталкивались с ростом ошибки на тестовом множестве? Дайте совет, куда можно копать?

Если вы занимаетесь прогнозированием временных рядов можно обсудить в личной переписке.
yefremov@excis.com

Заранее спасибо.
Ярослав