Применение нейросети в задачах прогнозирования

Нейросети и инвестиционная деятельность

 

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

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

Известно, что 99% всех сделок - спекулятивные, т.е. направлены не на обслуживание реального товарооборота, а заключены с целью извлечения прибыли. Все они основаны на предсказаниях изменения курса участниками сделки. Причем предсказания участников каждой сделки противоположны друг другу. Так что объем спекулятивных операций характеризует степень различий в предсказаниях участников рынка, т.е. степень непредсказуемости финансовых временных рядов.

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

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

 

Применение нейронных сетей в задачах прогнозирования

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

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

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

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

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

Входные данные

 

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

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

Большой проблемой при определении состава входов является определение глубины «погружения» - размера временного окна, данные из которого подаются на вход нейросети. Возникает вопрос, сколько баров истории подавать на вход, чтобы качественно обучить нейросеть? Эта величина определяется только из собственного опыта и должна быть адекватной прогнозируемому периоду. Например, при дневных прогнозах разумная глубина погружения находится в пределах 5-20 дней.

Необходимо отметить, что многие популярные нейропакеты имеют функцию определения чувствительности по входам, которая рекомендуется разработчиками пакетов как универсальный способ отсеивания «лишних» входов. Хотя эта функция и является полезной при определении состава входов, ее автоматическое использование может принести больше вреда, чем пользы. Это обусловлено тем, что проблема определения чувствительности по входам для многослойных нейронных сетей пока математически не решена, и решается различными эмпирическими способами и алгоритмами. Поэтому рекомендуется пользоваться этой функцией с осторожностью и результаты проверять другими косвенными методами, например, статистическими. [1]


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: