"Каменный цветок" вышел :) - первая нейросеть создана?

 
Закончил я свое первое знакомство с нейросетями. Результат здесь - http://forexsystems.ru/phpBB/viewtopic.php?p=5166#5166
Что делать и как с этим бороться?
 
Как я понимаю, под обучением понимается подбор некоторых коэффициентов, или та же самая оптимизация некоторой стратегии?
 
Обучение - это подбор весов связей, соединяющих нейроны сети. Подбор производится так, чтобы выходной слой давал тот сигнал, который мы хотим. Например, на входе первого слоя нейронов вчерашний Close, на выходе последнего - сегодняшний.
 
А как влияют на обучение например 2 идентичные ситуации с общим началом, но 2 противоположенными исходами?
 
Кстати, о птичках.. Измерил количество ошибок сети из 50 нейронов за 500 эпох. На обучающей выборке из 100 баров - 44 ошибки, На дальнейших 200-х барах - 55 ошибок (~ 23%). Потом сделал 5000 эпох (минут 5 наверно считало - не засекал) - результаты примерно те же.
Вывод - либо обучающая выборка неудачно выбрана, либо модель неудачна .(Входной слой - инстары , насколько я понимаю, выходной - сигмоидальный).
Что скажешь, Quark?
 
Вывод - либо обучающая выборка неудачно выбрана, либо модель неудачна .(Входной слой - инстары , насколько я понимаю, выходной - сигмоидальный).

Скорее всего и то и другое.

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

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

И если при десятке (и меньше) параметров в стратегии уже говорят о голой подгонке, то что говорить о нейросетях, где этих параметров тысячи?

В общем тут нужно очень хорошо знать тему и быть крайне осторожным.

Если тема интересна,
можно сходить на www.MoneyBee.de
Там запущен проект распределенных вычислений нейросетей по разным рынкам.

Сейчас в проекте работает 18000 компов.
(у меня эта штука тоже в фоне болтается)

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


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

Пример: у собаки вырабатывают рефлекс: звонок - еда. Второй рефлекс: лампочка - удар током. Затем включают лампочку и звонок одновременно. Нейросеть выдает среднее значение :) и у собаки начинается истерика.
 
Кстати, о птичках.. Измерил количество ошибок сети из 50 нейронов за 500 эпох. На обучающей выборке из 100 баров - 44 ошибки, На дальнейших 200-х барах - 55 ошибок (~ 23%). Потом сделал 5000 эпох (минут 5 наверно считало - не засекал) - результаты примерно те же.
Вывод - либо обучающая выборка неудачно выбрана, либо модель неудачна .(Входной слой - инстары , насколько я понимаю, выходной - сигмоидальный).
Что скажешь, Quark?


Зависит от данных. Я могу подобрать сеть, которая 100000 эпох с места не сдвинется. Это если мы находимся в локальном минимуме, из которого трудно вылезти. Все, что применимо к градиентному спуску, здесь тоже покатит в качестве объяснения, или хотя бы иллюстрации.

Зависит от сети. 50 нейронов - это очень много. Зачем столько?

Зависит он модели. Я уже этот пример приводил. Возьмем акции Yahoo до 2000 года, когда они тупо шли вверх. Каждый паттерн уникален - чему тут можно научиться?

Ну и от багов тоже зависит...
 

И если при десятке (и меньше) параметров в стратегии уже говорят о голой подгонке, то что говорить о нейросетях, где этих параметров тысячи?


Не... Если взять обучающую выборку и тестовую, то обычно ясно видно следующее. Сначала ошибка по обоим выборкам идет вниз. Это сеть учится видеть общие закономерности. Затем по обучающей продолжает идти вниз, а по тестовой - вверх. Это сеть начинает заучивать паттерны, в ущерб общности модели. Так что - зависит от сети, выборки и т.п. Не всегда подгонка.
 
Пришел к выводу, что использовал неправильный подход в данном случае. Сеть не могла нормально обучиться, потому что ее бросало то в жар, то в холод. Соответственно - не та модель. Нужно для каждого сигнала - uptrend, downtrend и флэт - использовать отдельную сеть. То есть, сначала натаскиваем сеть №1 (N1) на восходящий тренд, барам с голубенькими точками ставим сигнал 1 (единица), остальным ставим 0 (ноль). Причем , используем обучение по методу WTA (победитель получает все). Количество входных линейных нейронов можно оставить то же самое - 9 . Выходной слой также из одного сигмоидального нейрона.
Далее, проводим ту же процедуру для нисходящего тренда (желтые точки) - N2 , и с флэтовыми (отсутствие желтых и голубых точек) - сеть №3 - N3.
Обученные три сети соединяем параллельно, на вход каждой подается сигнал, на выходе ответы сравниваются. Та сеть, ответ которой наиболее близок к 1 (единице) , побеждает и вырабатывает окончательный сигнал/приговор.
Выложенный индикатор содержит все необходимое, с незначительными переделками его можно использовать для проверки этой идеи.
 
Такой подход я еще не рассматривал - то есть, для разных кусков графика разные сети. До сих пор делал разные сети для разных индикаторов. Интересно.
Кстати, три параллельно соединенных сети для одних и тех же данных чем-то напоминают одну большую сеть :) Например, с дополнительным входом (входами), сообщающими, что у нас происходит - uptrend, downtrend или флэт.
Причина обращения: