Нейросетевое прогнозирование

Общие вопросы трейдинга, риск- и мани- менеджмент, психология, технический анализ и т.д.
Аватара
ForAxel
Энтузиаст
Сообщения: 228
Зарегистрирован: 28 июл 2006, 16:04

Непрочитанное сообщение ForAxel » 28 ноя 2006, 11:53

Avals писал(а):ForAxel, я думаю что сеть не раскусывает правила. Свойства этого ряда такие, что за близкими значениями x(k) следуют близкие значения x(k+1). Например, в сгенерированной мной последов-ти есть:
0,9664; 0,1296; ... 0,9603; 0,1523. НС запоминает с точностью, которая допустима ее топологией эти послед-ти, а затем их воспроизводит. И ошибка получится в среднем маленькой. При чем все это дело не зависит от нач. усл. Т.е. типа двумерной таблички: на входе X1+-Delta -> на выходе Y1
не уверен, т.к.
- для запоминания ряда у сети есть всего 7 коэффициентов (4 - умножения и 3 сдвига) этого не достаточно даже для того чтобы запомнить числа 0..1 с дискретностью 0.1 (а MSE у нас получается порядка 1e-4..1e-5)
- если предсказывать x(k) по x(k-2) то прогностическая способность резко падает (из-за "хаотичности")
- при любой Delta всегда найдется такое время обучения при котором MSE < Delta (без учета точности вычислений и если снять ограничение на ф-ий активации первого слоя там она tansig - приводит к бОльшим ошибкам на краях диапазона)

Аватара
Avals
Приверженец
Сообщения: 587
Зарегистрирован: 10 авг 2005, 08:52

Непрочитанное сообщение Avals » 28 ноя 2006, 11:57

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

Аватара
ForAxel
Энтузиаст
Сообщения: 228
Зарегистрирован: 28 июл 2006, 16:04

Непрочитанное сообщение ForAxel » 28 ноя 2006, 12:01

Согласен, с суперпозицией 5 рядов так и получается, при небольшом кол-ве нейронов - НС не способна обучится, при большом кол-ве она запоминает, что требует увеличивать обучающую выборку и время вычислений на несколько порядков.
Что будет инетересно при использовании GP? Ведь чем хорош этот пример, у нас нужный минимум - это MSE = 0, и ниже этого минимума нет "ложных" минимумов, т.е. успех зависит только от метода обучения а не от критерия или способа формирования обучающего сигнала.
Хотя на рынке ожидается несколько иная ситуация - наличие "ложных минимумов" при не совсем правильной постановке задачи, в кот. и будет попадать хороший оптимизатор, обеспечивая трейдера "переподгонкой".
Последний раз редактировалось ForAxel 28 ноя 2006, 12:07, всего редактировалось 1 раз.

Аватара
Avals
Приверженец
Сообщения: 587
Зарегистрирован: 10 авг 2005, 08:52

Непрочитанное сообщение Avals » 28 ноя 2006, 12:06

ForAxel писал(а):не уверен, т.к.
- для запоминания ряда у сети есть всего 7 коэффициентов (4 - умножения и 3 сдвига) этого не достаточно даже для того чтобы запомнить числа 0..1 с дискретностью 0.1 (а MSE у нас получается порядка 1e-4..1e-5)
Точно не помню как рассчитывается "объем памяти сети", но он гораздо больше и зависит от топологии. Даже такая сеть может запомнить сотни соответсвий вход-выход.
ForAxel писал(а): - если предсказывать x(k) по x(k-2) то прогностическая способность резко падает (из-за "хаотичности")
Так и должно быть.
ForAxel писал(а): - при любой Delta всегда найдется такое время обучения при котором MSE < Delta (без учета точности вычислений и если снять ограничение на ф-ий активации первого слоя там она tansig - приводит к бОльшим ошибкам на краях диапазона)
Эти детали не помню, а м.б. и не знаю.
Заработать деньги - это смелость, сохранить - мудрость, а правильно потратить - искусство.

Аватара
ForAxel
Энтузиаст
Сообщения: 228
Зарегистрирован: 28 июл 2006, 16:04

Непрочитанное сообщение ForAxel » 28 ноя 2006, 12:09

Avals писал(а):
ForAxel писал(а): - при любой Delta всегда найдется такое время обучения при котором MSE < Delta (без учета точности вычислений и если снять ограничение на ф-ий активации первого слоя там она tansig - приводит к бОльшим ошибкам на краях диапазона)
Эти детали не помню, а м.б. и не знаю.
Это был приведен просто частный случай для сети 2-1 и сигнала 4x(1-x), а не общий вывод.
Т.е. это не строгое доказательство, а просто из опыта (т.е. на самом деле может оказаться и не так, но я готов "поспорить"... :) проведением эксперимента, просто для эксперимента для любого заданного Delta у нас нет в наличии бесконечного времени или выч.ресурсов, ну а с практической т.з. думаю MSE=1e-4 достаточно)

Аватара
ForAxel
Энтузиаст
Сообщения: 228
Зарегистрирован: 28 июл 2006, 16:04

Непрочитанное сообщение ForAxel » 28 ноя 2006, 12:16

Avals писал(а):
ForAxel писал(а):не уверен, т.к.
- для запоминания ряда у сети есть всего 7 коэффициентов (4 - умножения и 3 сдвига) этого не достаточно даже для того чтобы запомнить числа 0..1 с дискретностью 0.1 (а MSE у нас получается порядка 1e-4..1e-5)
Точно не помню как рассчитывается "объем памяти сети", но он гораздо больше и зависит от топологии. Даже такая сеть может запомнить сотни соответсвий вход-выход.
Давайте эту способность назовем "извлечение правила" или "обобщение правила".
Можно ведь с помощью марковской цепи намешать различных "режимов" и эта сеть (с 3 нейронами) не запомнит практически ни чего и MSE будет больше 0,1.

Аватара
Avals
Приверженец
Сообщения: 587
Зарегистрирован: 10 авг 2005, 08:52

Непрочитанное сообщение Avals » 28 ноя 2006, 12:42

ForAxel писал(а):
Avals писал(а):
ForAxel писал(а):не уверен, т.к.
- для запоминания ряда у сети есть всего 7 коэффициентов (4 - умножения и 3 сдвига) этого не достаточно даже для того чтобы запомнить числа 0..1 с дискретностью 0.1 (а MSE у нас получается порядка 1e-4..1e-5)
Точно не помню как рассчитывается "объем памяти сети", но он гораздо больше и зависит от топологии. Даже такая сеть может запомнить сотни соответсвий вход-выход.
Давайте эту способность назовем "извлечение правила" или "обобщение правила".
Можно ведь с помощью марковской цепи намешать различных "режимов" и эта сеть (с 3 нейронами) не запомнит практически ни чего и MSE будет больше 0,1.
Топология 3-3-1 (т.е. всего 7 нейронов)
Можно легко определить память сети. Сгенерируем 100 сл. чисел (0;1). Обучаем сеть на ряде: на входе 0,01; 0,02; ... ; 0,99; 1 на выходе случайные числа. Затем на этом же ряде проверить как НС его запомнила.
Заработать деньги - это смелость, сохранить - мудрость, а правильно потратить - искусство.

Аватара
ForAxel
Энтузиаст
Сообщения: 228
Зарегистрирован: 28 июл 2006, 16:04

Непрочитанное сообщение ForAxel » 28 ноя 2006, 13:03

Avals писал(а):
ForAxel писал(а):
Avals писал(а): Точно не помню как рассчитывается "объем памяти сети", но он гораздо больше и зависит от топологии. Даже такая сеть может запомнить сотни соответсвий вход-выход.
Давайте эту способность назовем "извлечение правила" или "обобщение правила".
Можно ведь с помощью марковской цепи намешать различных "режимов" и эта сеть (с 3 нейронами) не запомнит практически ни чего и MSE будет больше 0,1.
Топология 3-3-1 (т.е. всего 7 нейронов)
Можно легко определить память сети. Сгенерируем 100 сл. чисел (0;1). Обучаем сеть на ряде: на входе 0,01; 0,02; ... ; 0,99; 1 на выходе случайные числа. Затем на этом же ряде проверить как НС его запомнила.
Вложения
trainNN2.gif
trainNN2.gif (16.62 КБ) 204 просмотра

Аватара
Rosh
Приверженец
Сообщения: 516
Зарегистрирован: 14 ноя 2004, 16:56

Непрочитанное сообщение Rosh » 28 ноя 2006, 13:06

ForAxel писал(а):2 Rosh:
давайте вместе рассмотрим "флаг",
помогите его формализовать (не на глаз), задать обучающую выборку, тогда будет какой-то предметный разговор в этой ветке,
думаю найдутся желающие попробовать (я в их числе).
Всерьез еще не пытался, но если в первом приближении : флаг - это сочетание импульса (одна или несколько однонапрвленных свечей с бОльшим, чем обычно размахом) и консолидации (несколько свечей, находящихся в верхней половине импульса). Необходимость флета перед появлением импульса - под вопросом.

Изображение

Аватара
Avals
Приверженец
Сообщения: 587
Зарегистрирован: 10 авг 2005, 08:52

Непрочитанное сообщение Avals » 28 ноя 2006, 16:12

аналогичные обсуждения
http://forex.kbpauk.ru/showflat.php/Cat ... Post141130
Заработать деньги - это смелость, сохранить - мудрость, а правильно потратить - искусство.

Аватара
VCucumber
Бывалый
Сообщения: 165
Зарегистрирован: 05 фев 2005, 11:28

Непрочитанное сообщение VCucumber » 28 ноя 2006, 17:39

Rosh писал(а):Всерьез еще не пытался, но если в первом приближении : флаг - это сочетание импульса (одна или несколько однонапрвленных свечей с бОльшим, чем обычно размахом) и консолидации (несколько свечей, находящихся в верхней половине импульса)
Если предсказывать, так треугольник может быть интереснее ?
Все-таки есть шанс поймать импульс, а не флет ;)

Аватара
ForAxel
Энтузиаст
Сообщения: 228
Зарегистрирован: 28 июл 2006, 16:04

Непрочитанное сообщение ForAxel » 28 ноя 2006, 17:51

А не пробовал ли кто разбить ряд цен на классы с помощью обучения без учителя (SOM, Fuzzy C-mean clustering etc)? Есть ли в этом смысл? Т.е. мы сейчас например выделяем классы: треугольник, флаг и т.д. А если поставить задачу разбиения рыночных ситуаций на N-классов? После чего эти же классы могут быть неким экспертным сигналом для метода обучения с учителем.
Ну например можно разбить на три класса - хорошо персистентный, хорошо антиперсистентный, неопределенное состояние. Т.е. мы сами задаем критерий.
Или предоставить SOM разбить на группировки рыночные ситуации... только вот как? Что использовать в качестве входа?
В одной книженции было упоминание об объединении ГА и классификатора, для того чтобы по некотору критерию менять кол-во классов разбиения.

Аватара
ForAxel
Энтузиаст
Сообщения: 228
Зарегистрирован: 28 июл 2006, 16:04

Непрочитанное сообщение ForAxel » 28 ноя 2006, 18:06

Как например классификатор заставить выделить в один класс 5% "наиболее сильных движений", а в другой класс - все оставльное (95%)? И что принять за "сильное движение"?

Аватара
VCucumber
Бывалый
Сообщения: 165
Зарегистрирован: 05 фев 2005, 11:28

Непрочитанное сообщение VCucumber » 29 ноя 2006, 05:31

ForAxel писал(а):Из моего небольшого опыта traingdx (с адаптивным learning rate) вполне удовлетворительный метод
Хотел было спросить, почему бы ГА с градиентным поиском не использовать, ан нет, оказывается уже используют и даже хвалят.
Кажется, ничего себе метод ?

И самоорганизацию НС оказывается тоже легко осуществить.
Как минимум, для слоев, имеющих полный набор синапсов.
Вообще, есть ли смысл в неполных наборах ?
(Маловероятно, что хоть кто-нибудь каждую связь руками будет задавать)

Да, и еще, нечеткая логика тоже вполне реализуема...Просто праздник какой-то (с)

Аватара
VCucumber
Бывалый
Сообщения: 165
Зарегистрирован: 05 фев 2005, 11:28

Непрочитанное сообщение VCucumber » 29 ноя 2006, 05:59

ForAxel писал(а):А не пробовал ли кто разбить ряд цен на классы с помощью обучения без учителя (SOM, Fuzzy C-mean clustering etc)? Есть ли в этом смысл? Т.е. мы сейчас например выделяем классы: треугольник, флаг и т.д. А если поставить задачу разбиения рыночных ситуаций на N-классов? После чего эти же классы могут быть неким экспертным сигналом для метода обучения с учителем.
Ну например можно разбить на три класса - хорошо персистентный, хорошо антиперсистентный, неопределенное состояние. Т.е. мы сами задаем критерий.
Или предоставить SOM разбить на группировки рыночные ситуации... только вот как?
По-моему, ключевое слово - "как".
Если трейдер не знает, то НС не сможет.
Мы сами должны задать эти классы.
Например, исходя из торговой тактики.
Например:
- как торгуется тренд ?
- как торгуется откат ?
- как торгуется флэт ?
- как торгуется канал ?
- как торгуется треугольник ?
Предположим, получили 5 выходов, и, в зависимости от их состояния, торгуем.
Результат на вход обучения - сетка сама разберет что это было.
ForAxel писал(а):Что использовать в качестве входа?
В одной книженции было упоминание об объединении ГА и классификатора, для того чтобы по некотору критерию менять кол-во классов разбиения.
Количество классов можно так же оптимизировать.
Вот что с ними делать, с произвольными ?
Их же нужно брокеру отдавать в виде приказов, а как, если неизвестно, что это за класс
С другой стороны, если тактику не выделять, то можно и классы не выделять.
Пусть НС сразу же формирует приказ - направление, точка входа, размер профита, размер лосса.
И вперед, с песней - пусть комп колбасит, классы там или неклассы.

Ответить