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

 
sergeev:

Настроения Андрея (TheExpert) про утопичность данной затеи нужно отложить до момента оглашения этого вердикта нанятым спецом, админом проекта и итоговым консилиумом участников. А пока что тема остается в силе.

И как следствие прийдется корректировать свои цели для достижения хотябы похожести.

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

Да, библиотека должна быть универсальной, наподобие конструктора лего - собрать можно всё, что душе угодно.

Так не вопрос! Но обучать каждую отдельно. Конструировать можно для функционирования, совместное обучение -- это будет или адъ или жутковатый неповоротливый монстр который будет час на XOR учиться

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

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

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

Так он и так универсальный! Массив даблов -- куда универсальней? А в комитете главное чтобы при стыковке размеры совпадали.

 
Urain:
Мы об одном и том же? целевая функция это та что вычисляет ошибку на выходе сети.
Целевая функция это то, к чему мы стремимся. В стандарте -- минимизация среднеквадратичной ошибки выхода по сравнению с эталоном.
 
TheXpert:
....

Так он и так универсальный! Массив даблов -- куда универсальней? А в комитете главное чтобы при стыковке размеры совпадали.

Во! Так я о чем? Для пущей универсальности ГА в самый раз:

алгоритм движка такой, упрощённый для наглядности:

хотим добавить MLP сетку, делаем запрос, сколько будет весов у неё, если на входе 20 значений, 10 нейронов в первом скрытом слое, 10 во втором и 1 на выходе?

Она нам сообщает, что 244.

хотим добавить ещё одну сетку (какую нить), опять делаем запрос ..... она нам отвечает - 542.

и того 244+542=786.

хотим ещё заодно оптимизить SL и TP, плюс ещё 2 параметра и того 786+2=788.

хотим макди заоодно оптимизить, у него два параметра, и того 788+2=790.

ок, ресайзим массив на размер 790.

и вуаля! оптимизим 790 параметров в ГА. остается добавить визуальный блочный конструктор под это дело, и всё будет работать.

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

как то так.

 
Urain:

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

Можно сделать еще проще.

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

1. Рисуем (на бумаге + словестный алгоритм матмодели) сети, которые можем реализовать (топологии и методы обучения к ним).
2. Находим в нарисованных моделях общие точки стыковки для создания абстрактных классов движка.

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

Это абстрагирование обязательно рассматриваем под углом понятий человеческого языка ("создаем", "учим", "исправляем ошибку"). Так как это во-первых сделает модель наглядной для простого пользователя. Во-вторых такие функции-понятия легко расширять на новые топологии и методы.

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

Можно сделать еще проще.

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

1. Рисуем (на бумаге + словестный алгоритм матмодели) сети, которые можем реализовать (топологии и методы обучения к ним).
2. Находим в нарисованных моделях общие точки стыковки для создания абстрактных классов движка.

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

Это абстрагирование обязательно рассматриваем под углом понятий человеческого языка ("создаем", "учим", "исправляем ошибку"). Так как это во-первых сделает модель наглядной для простого пользователя. Во-вторых такие функции-понятия легко расширять на новые топологии и методы.


Универсальный нейрон я нарисовал на 12 стр, правда там кой чего не хватает.

А именно ячеек приёма памяти в активаторе.

А вот с методами обучения я пас, пущай математики мозгуют :о)

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

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

А про спеца со стороны, это смотря где искать, как минимум это должен быть математик по образованию.

Не возле матИматики лежало, а именно математик.

 
Urain:

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

А про спеца со стороны, это смотря где искать, как минимум это должен быть математик по образованию.

Не возле матИматики лежало, а именно математик.

Вы сначала попробуйте сформулировать общее или почти общее мнение к требованиям к спецу
 

sergeev:

2. Находим в нарисованных моделях общие точки стыковки для создания абстрактных классов движка.

Нарисовал и примерный код выложил. Все простые модели на эти сущности ложатся.
 
TheXpert:
Кстати, Владимир, не хочешь свой взгляд и сетки озвучить поширше?

Сетки на мой взгляд разделяются на моделирующие и классифицирующие. Моделирующие пытаются предсказать следующую цену на основе каких-то входных данных, например прошлых цен. К рынку такие сети-модели применять нельзя, ИМХО. Классифицирующие сети пытаются классифицировать входные данные, то есть Buy/Sell/Hold или тренд/флэт, и или что-то другое. Вот это мне как раз интересно. Наиболее перспективной классифицирующей сетью по-моему является SVМ с правильным преобразованием входных данных. Я бы сказал что сама сеть не так важна как преобразование входных данных, то есть вместо SVМ можно использовать что-то другое, например RBN. В последние два года я работал над сетями построенными по принципу мозга (кстати, MLP и большинство других сетей ничего обшего с мозгом не имеют). Мозг имеет несколько слоев для преобразования входных данных (звук, изображение, и т.п.) с каким-то классифицирующим движком наподобие SVМ. Преобразование данных в мозгу происходит, как обычно, их фильтрацией и уменьшением размерности. Характеристики фильтров обучаются без учителя, используя Hebbian competitive learning или другие само-обучяющиеся методы. Классификация пробразованных данных происходит с учителем (обратной связью). Позже напишу по-подробнее.

 

MLP
Generalized MLP
Modular netwoks
Self-organising maps
Neural gas
Competitive learning - перспективно
Hebbian - перспективно
FFCPA
Radial basis networks
LSTM
Time lagged recurrent
Partially recurrent
Wavelet networks
Fully recurrent
Neuro-fuzzy
Support Vector Machines - перспективно
Custom architectures - перспективно
 

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