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

 
Для тебя, Quark, проверить этот подход , я думаю, несложно. Ты должен лепить сети с закрытыми глазами. :))
Если проверишь - сообщи резалты. Хотелось бы знать, определил ли ты базовый класс Нейрон(и на его основе конкретные типы нейронов), базовый класс Слой (который представляет Коллекцию любого типа конкретного нейрона), класс Сеть (которая может иметь произвольное количество слоев и реализовать различные модели обучения) и т.д. Или взял какую-нибудь готовую библиотеку для этого. В общем, хотелось бы глянуть на что-нибудь.
 
Winner Takes All (WTA) я использовать не могу. Готовой у меня нет, чужие б-ки я не люблю, а писать на С++, во-первых, неохота - FFBP все мои задачи решают (и описанную Rosh'ем тоже решат), а во-вторых, основная работа... мешает.

Конечно, удобнее всего, если на С++, делать класс нейрон, класс слой и класс сеть. Это насчет сделать такую сеть самому :)

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


На самом деле, такой подход должен работать, причем можно и без WTA (не поймите превратно, я ничего против WTA не имею, кроме того, что у меня под рукой таких сетей нет, и опыта тоже :) Просто, по:

Та сеть, ответ которой наиболее близок к 1 (единице) , побеждает и вырабатывает окончательный сигнал/приговор.

- как раз WTA и получается, только победитель - не нейрон, а целая сеть.

"Умные" мысли :)
1. Нужно как-то определять, где какой тренд, чтобы знать, какую сеть на чем учить. То есть, наверное, вход с трендового индикатора. Сразу вопросы - куда подавать вход, в ту же сеть, или в отдельную (4-ю), или просто - в систему, которая решает, какая сеть будет победителем, но без помощи НС.
Когда мы учим сеть, она должна, по идее, сама решить, когда какими зависимостями пользоваться, то есть, одна НС может выучить три класса паттернов (вверх, вниз и в сторону) САМА, и сама их потом различать. Три сети - это может помочь, а может и помешать.
2. аптренд, даунтренд, да и флэт - они могут случиться на разных ценах. Один и тот же по форме аптренд на $1 и $1.5 - это, с точки зрения сети, все-таки немного разные вещи. Поэтому можно (опять же, могу ошибаться) использовать индикаторы, меняющиеся в заданном диапазоне. Впрочем, я об этом уже писал, кажется. То есть, вместо цены - ее нормированный заменитель.


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


А где он выложен? Я не нашел ни здесь, ни на http://forexsystems.ru/phpBB/viewtopic.php?p=5166#5166


Для тебя, Quark, проверить этот подход , я думаю, несложно. Ты должен лепить сети с закрытыми глазами. :))
Если проверишь - сообщи резалты


Слепил одну :(
В данный момент моя собственная нейросеть занимает 95-99 процентов моего процессора. Хотел все сделать за несколько дней (улучшить стохастик за счет использования предсказанных значений стохастика). Далее было все по анекдоту "Василий Иваныч и кибернетический унитаз". То винда зависнет, то бага в скрипте найду, то свет в доме вырубят... Почти месяц уже. В эти выходные ДОЛЖНО досчитаться. Но поскольку меня дома не будет, комп, скорее всего опять упадет... Я уже знаю, из-за чего (результат должен показаться в IE, а там будет (кто мог ожидать) около 10000 картинок. IE не хватит памяти, к бабке ходить не надо). WTA, говорите? Эх... :(

Если что получится, выложу, конечно.
 
Для тебя, Quark, проверить этот подход , я думаю, несложно. Ты должен лепить сети с закрытыми глазами. :))
Если проверишь - сообщи резалты. Хотелось бы знать, определил ли ты базовый класс Нейрон(и на его основе конкретные типы нейронов), базовый класс Слой (который представляет Коллекцию любого типа конкретного нейрона), класс Сеть (которая может иметь произвольное количество слоев и реализовать различные модели обучения) и т.д. Или взял какую-нибудь готовую библиотеку для этого. В общем, хотелось бы глянуть на что-нибудь.


Rosh,Quark стукнитесь в IСQ 6679225 плиз, в целях обмена мыслями по поводу использования нс.
Я уже месяца 2 пытаюсь сети научить чему нибудь полезному :) Но как то все не вдруг получается :(
Правда сети большие и считаются долго, т.к. ипользуют ГА для обучения.
 
Rosh,Quark стукнитесь в IСQ 6679225 плиз, в целях обмена мыслями по поводу использования нс.
Я уже месяца 2 пытаюсь сети научить чему нибудь полезному :) Но как то все не вдруг получается :(
Правда сети большие и считаются долго, т.к. ипользуют ГА для обучения.


У меня нет Аськи.
Что касается мыслей - если сеть у меня заработает (в смысле заработка), я просто расскажу, как я ее сделал. А если нет - то лучше моих советов не слушать. Я не эксперт никакой.
Что касается 2 месяцев - у меня эта байда уже пол-года считается.
 

Что касается мыслей - если сеть у меня заработает (в смысле заработка), я просто расскажу, как я ее сделал. А если нет - то лучше моих советов не слушать. Я не эксперт никакой.
Что касается 2 месяцев - у меня эта байда уже пол-года считается.

Дык интересны именно мысли, а не советы :)
 
Мыслей у меня в данынй моменд две :) но проверять их я начну не скоро.
1. На форумах мелькало небольшое исследование http://forex.kbpauk.ru/showflat.php?Cat=&Number=24681&page=0&view=collapsed&sb=6&o=&fpart=1
По его потивам появилась мысль номер один. Вместо того, чтобы вводить, скажем, часовые данные по очереди (например, сдвигаем данные на 1, 2, 3 и т.д. часов, и вводим во входы 1, 2, 3...), выделить каждому входу свое время суток. То есть, вход 1 получает только данные по часу ночи и т.д. Сеть, таким образом, получает разом данные за предшествующие сутки - каждое данное на свой вход, и предсказывает, ну, скажем, следующий час.
Это позволит сети лучше "видеть" внутридневные закономерности. Правда, при таком подходе на 24 часа потребуется 24 сети.
2. По мотивам ветки, адрес не помню, называлось что-то вроде "работа с файлами", индикатор был Candlestick. Идея в том, что может быть, подобный подход (предсказывать тип свечи, то есть, куда пойдет цена, и неважно, на сколько пунктов) будет работать лучше.

Если получится, расскажите.
Удачи,
Кварк