Cтатья: Прогнозирование цен с помощью нейронных сетей - страница 15

 
Neutron:

Дописка.

Несло-несло и пронесло ;-)

Это "ТОЧНОЕ" аналитическое решение для весов однослойной нелинейной НС:

...

Меня улыбнуло.

Зато весь расчёт занимает 1 милисекунду.

Теоретически любая НС эквивалентна системе уравнений. И если она достаточно проста, дешевле записать эту систему в аналитическом виде и решить её относительно весов. Проблемы, а вместе с ними и необходимость хитрых методов обучения, начинают возникать по мере усложнения сети (то есть эквивалентной ей системы уравнений). Именно осознав этот факт я в своё время приостановил начатое из интереса знакомство с сетями. Просто решил, что сначала нужно таки придумать модель, а уж потом искать наиболее экономные способы её разрешения. Мне до сих пор кажется, что применение методов НС оправдано только для о-очень сложных моделей :) .

 
Jhonny:

Поясните мне как начинающему "нейроисследователю" такую вещь... я так понимаю что сеть о которой идет речь это многослойный перцептрон.

А из каких соображений выбран именно этот тип сети, почему не Хопфилд или Кохонен, или еще какая нибудь?

Это скорее филосовкий вопрос. Дело в том, что "сложных" архитектур НС бесконечно сного, а максимально простых - одна! Это однослойный перцептрон. Вданном случае реализован он с нелинейной функцией активации.


to Candid

Теоретически любая НС эквивалентна системе уравнений. И если она достаточно проста, дешевле записать эту систему в аналитическом виде и решить её относительно весов. Проблемы, а вместе с ними и необходимость хитрых методов обучения, начинают возникать по мере усложнения сети (то есть эквивалентной ей системы уравнений). Именно осознав этот факт я в своё время приостановил начатое из интереса знакомство с сетями. Просто решил, что сначала нужно таки придумать модель, а уж потом искать наиболее экономные способы её разрешения. Мне до сих пор кажется, что применение методов НС оправдано только для о-очень сложных моделей :) .

Всё верно. Можно ещё упомянуть о присущей рыночным ВР нестационарности, что ставит крест на традиционных методах статанализа и даёт ещё одно очко в пользу НС.


Кстати, я разобрался с аналитическим решением систем уравнений для весов НС. На рис. чёрным показан обычный метод тренировки НС обратным распространением ошибки (ОРО) число эпох 1000 а синим аналитическое решение. Обучение НС происходит на каждом шаге, прогноз на шаг вперёд.


Видно, что аналитический вариант на трендовом участке ВР подвирает по непонятным для меня причинам. Зато время счёта этой задачи по ОРО-методу составляет 10 сек, а для аналитики - 0.001 сек.

Выигрыш по быстродействию в 10000 раз!

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

 
Neutron:
Jhonny:

Поясните мне как начинающему "нейроисследователю" такую вещь... я так понимаю что сеть о которой идет речь это многослойный перцептрон.

А из каких соображений выбран именно этот тип сети, почему не Хопфилд или Кохонен, или еще какая нибудь?

Это скорее филосовкий вопрос. Дело в том, что "сложных" архитектур НС бесконечно сного, а максимально простых - одна! Это однослойный перцептрон. Вданном случае реализован он с нелинейной функцией активации.

...

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

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

P.S. Кстати, время работы вероятностной сети несравнимо меньше многослойного перцептрона, а обучаемость - не хуже.

P.P.S. Когда я смотрел на кривую баланса Better'a по ходу чемпионата, меня тоже завораживало. :-)

 
Neutron:

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

Зависит от того, что подается на вход. Если совать прямо бары (их приращения) с рынка - то будет очень оправдано.


На своих примерах ты этого не видишь, потому что у тебя графики гладкие - кусочно-монотонные. У тебя, вон, там даже НС с одним входом "рулит". Т.е. аналог примитивнейшей трендследящей торговой системы. Задача, которая и без НС решается прекрасно. Какие уж тут многослойные сети...

Neutron:

А, вобще, меня несёт! Дело в том, что если представить нелинейность НС в определённой форме, то можно получить ТОЧНОЕ аналитическое решение для весов. Это, в свою очередь, означает, что можно будет отказаться от метода Обратного Распространения Ошибки для тренировки сети и получать результат максимально точный в одно действие, без всяких там 1000 Эпох тренировок!!

Необходимо понимать, что обучение НС - это задача оптимизации функции. И ее аналитическое решение существенно сложнее, нежели решение систем уравнений. Посмотри методику аналитического вычисления функции линейной регрессии от одного переменного (аналог простейшего перцептрона)... Ну как тебе? А теперь представь, как будет выглядеть решение, если переменных много, а функция нелинейна в n-й степени (аналог многослойной НС)... :-)


НС для того и придумали, чтобы упростить себе жизнь. И не обязательно обучать сеть именно обратным распространением. Это самый простой - но и самый медленный - алгоритм. Кроме него есть алгоритмы, работающие на порядки быстрей.

 
ds2:
Neutron:

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

Зависит от того, что подается на вход. Если совать прямо бары (их приращения) с рынка - то будет очень оправдано.


На своих примерах ты этого не видишь, потому что у тебя графики гладкие - кусочно-монотонные. У тебя, вон, там даже НС с одним входом "рулит". Т.е. аналог примитивнейшей трендследящей торговой системы. Задача, которая и без НС решается прекрасно. Какие уж тут многослойные сети...

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

 
Neutron:
ds2:

Зависит от того, что подается на вход. Если совать прямо бары (их приращения) с рынка - то будет очень оправдано.

На своих примерах ты этого не видишь, потому что у тебя графики гладкие - кусочно-монотонные.

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

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


Если сравнивать возможности НС и известных типов МТС, то однослойка может имитировать работу MACD, а вот распознавание паттернов Пессавенто по зубам уже только многослойной сети.


Ты можешь провести эксперименты и всё увидеть сам. Все инструменты и данные для этого у тебя есть.

 

Кто-нибудь писал на MQL оценку входов по критерию Колмогорова-Смирнова, а также ранговую корреляцию Спирмена ?

 
До теста еще руки не дошли, а ранговую корреляцию сильно искать и не надо - 'Коэффициент ранговой корреляции Спирмена - Spearman's Rank Correlation'
 
Любопытно взглянуть, есть у кого нибудь ? Или эта инфа уже упоминалась, а я пропустил ее ? Ткните ссылкой плиз.

По этой ссылке даже при регистрации нет доступа. А может там описан путь к Граалю ;-).


http://www.maikonline.com/maik/showArticle.do?auid=VAF0AMGLSL〈=ru PDF 274kb

НЕЙРОСЕТЕВАЯ СТРУКТУРА ДЛЯ МОДЕЛИРОВАНИЯ СЛОЖНОЙ ФУНКЦИИ МНОГИХ ПЕРЕМЕННЫХ ПО ВЫБОРКАМ ДАННЫХ
Е. В. Гаврилова, О. А. Мишулина, М. В. Щербинина Известия РАН. Теория и системы управления № 1, Январь-Февраль 2007, С. 73-82

Рассматривается задача аппроксимации функции многих переменных, которая измеряется на фоне аддитивной помехи и характеризуется качественно разными динамическими свойствами в отдельных подобластях своего определения. Предлагается решение поставленной задачи с использованием специализированной модульной нейросетевой структуры ЛИНА, формулируются правила ее обучения и функционирования.
 

При обучении в Anfisedit постоянно выдаётся ошибка:

??? Error using ==> anfisedit
Invalid handle object.

??? Error while evaluating uicontrol Callback.

Подготовил данные, но не по абсолютному курсу, как в статье, а по типу свечи. Если цена закрытия дневной свечи больше цены открытия - то 1, если наоборот -1. Сначала было 10 входов, но ноут не вытянул. Уменьшил число входов как в статье до 4х, архитектура показывается, вроде бы всё нормально, но при нажатии train через пару эпох тренировка останавливается, над графиком пишется Train Error и в командной строке то что я писал в самом начале. В чём проблема? Может версия Matlab какая-то глючная? У меня Matlab 7.0.1.24704 (R14) Servise Pack 1.

С ANFIS не получилось, решил попробовать NNTool. Загнал отдельно входы (по 4 входа), отдельно выходы, указал параметры, создал сеть - но при просмотре архитектуры сети показывается что входов 2. Ну нажимаю всё равно train и выдаётся ошибка:

Error using ==> networktrain
Inputs are incorrectly sized for network.
Matrices must all have 2 rows.
Там разве где-то было место где задавать число входов?

Причина обращения: