"Новый нейронный" - проект Open Source движка нейронной сети для платформы MetaTrader 5. - страница 15

 
TheXpert:

Не верю (с) :)

А ты сам подумай поскольку нейроны используют общую память то присвоив значение ячейке оно(значение) сразу становиться доступно во всех связанных нейронах, отсюда вытекает что всё различие в обучении заключается в прописывании формулы обратной активатору, остальное аналогично у всех, ну ещё разница прямой ход или обратный. Довольно скудный список различий :о)

ЗЫ формула активации и производная от неё, прописываются при создании нейрона (вернее при выборе типа из доступных), направление хода обучения выбирается так же при создании сети.

 
Avals:

да, можно так, только это через одно место)))

Гм, а как не через одно место?

________________

Николай, самый простой, наглядный и шустрый способ представления -- связывание векторов и матриц.

 
TheXpert:

Гм, а как не через одно место?

________________

Николай, самый простой, наглядный и шустрый способ представления -- связывание векторов и матриц.

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

Вот как ты матрицей будешь задавать эхо-басейн 1000х1000 нейронов 95% которых не существуют? вопрос риторический, и ежу понятно что при создании такого басейна матричным способом у каждого нейрона должна быть возможность связи с любым а это 1000000 потенциальных связей на нейрон, да умнож на 1000000 нейронов и мы имеем матрицу 10^6 x 10^6 mql этого не вытянет.

 
TheXpert:

Гм, а как не через одно место?

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

Ну чтобы не придумывать алгоритм обучения под конкретный вариант ТС с НС.

Так не получится :) надо как минимум знать что брать, чему учить и как оценивать. И вот эти вещи надо организовывать ручками.

  Вобщем, хотелось чтобы это было частью формализации и скрыто от юзера. Как это формализовать не знаю :)

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

Интересно, он поконсультировать не пожелает?

 
TheXpert:

Так не получится :) надо как минимум знать что брать, чему учить и как оценивать. И вот эти вещи надо организовывать ручками.

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

ну хотя бы стандартные варианты тогда предусмотреть (к примеру тот который рассматривали на предыдущей странице). Ты же предложил формальное решение. Почему думаешь что для остальных его нет?

Возможно, что все сводятся к нескольким однотиптым 

 
Avals:
Почему думаешь что для остальных его нет?

Да есть :), но вся соль во входах и выходах :) сеть второстепенна. Распознавать буквы можно по-всякому, хоть MLP, хоть PNN, хоть SOM, хоть эхосеткой, а принцип будет почти идентичен.

Avals:

Возможно, что все сводятся к нескольким однотиптым

Да вот тебе наглядный пример -- организовать фильтр сделок -- раз плюнуть.

А скормить несложную ТС -- уже задачка не для средних умов. Причем первое почти на 100% подгонка.

 
TheXpert:

Да есть :), но вся соль во входах и выходах :) сеть второстепенна. Распознавать буквы можно по-всякому, хоть MLP, хоть PNN, хоть SOM, хоть эхосеткой, а принцип будет почти идентичен.

Так да, предобработка и постобработка данных НС занимают основное время и самый тонкий момент. Если это систематизировать и частично автоматизировать под типичные варианты ТС, то это преимущество по сравнению со сторонними пакетами. А иначе, проще все это делать в них (т.к. они всё равно более специализированы для работы с НС), а уже готовые модели переносить на MT5
 

Несколько мылсе по организации класса используемого в экспертах: 

Свойства:        

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

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

Внешние методы:

1. Отправить образец на обучение. При использовании в эксперте, можно по сигналам индикаторов отдавать в сеть новый образ.

2. Спросить сеть, готова или нет. Обучена ли она достаточному количеству образов.

3. Основной метод. Подать на вход образ и получить результат. 


При отдаче в сеть нового образа на обучение, проводить его предобработку: 

1. Масшатабировать.

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


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

Какие образы отдаются в сеть, это уже выбор пользователя, цену ли, индикатор или true/false. Параметры сети (количество слоем, входов, выходов) устанавливается при инициализации сети.

 

 

 

Графический конструктор сети можно сделать и на mql5.

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

Один нейрон в одном слое? А смысл? Если это только не обходной дополнительный слой.