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

 
TheXpert:
Спасибо :) окончательный тычок.

Я лучше одной реализацией займусь и постараюсь довести до совершенства.

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

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

Те при таком подходе больше шансов что проект не заглохнет.

Только не пропадай, выкладывай наработки, задавай вопросы, глядишь ещё кто пристегнётся.

 
Urain:

Только не пропадай, выкладывай наработки, задавай вопросы, глядишь ещё кто пристегнётся.

Да чего наработки. Выложу сразу готовое, как будет.

У меня есть С++ реализация. Все что надо -- переложить и проапгрейдить пару вещей.

 
ivandurak:

Блин хоть бы  плюнули , а так полное игнорирование даже обидно . Вас совета спросили ДА или НЕТ . 

if (ДА) пойду книжки вумные читать ;

     else  иди юзай другое и пинок в заданном направлении ; 

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

Доброго дня не совсем в тему .Нужна консультация .

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

Не знаю как на уровне колбасы, чем как говорится богаты.

Как раз кластеризация и классификация это задачи которые лучше всего решают сети.

Аппроксимация похуже но тоже нормально, а вот с экстраполяцией вообще туго. Хотя всё зависит от реализации.

Файлы:
 
Urain:

Не знаю как на уровне колбасы, чем как говорится богаты.

Как раз кластеризация и классификация это задачи которые лучше всего решают сети.

Аппроксимация похуже но тоже нормально, а вот с экстраполяцией вообще туго. Хотя всё зависит от реализации.

Премного благодарен пойду грызть гранит.
 
yu-sha:
...

Обучение - это внешний по отношению к самой сети процесс

...

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

И именно благодаря этому свойству процесса обучения его часто приписывают к внутренним процессам сети.

Те пришли к тому что сеть должна раскрыть свою внутреннюю информацию для процесса обучения при этом скрыв его от окружения вообще.

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

таким образом имеем внешний объект сеть который имеет методы :

  • инициализация
  • рабочий ход
  • обучение

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

 
Urain:

таким образом имеем внешний объект сеть который имеет методы :

  • инициализация
  • рабочий ход
  • обучение

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

В самом общем случае сеть должна иметь один метод run() - рабочий ход

Он выполняет вычисление выходных нейронов и подразумевает, что входы уже проинициализированы

"Учитель" - это отдельный объект, который инициализируется параметрами обучения и получает в управление обучаемый объект

По-хорошему, нужен еще и валидатор, который проверит можно ли этот объект обучить этим методом

Но все это трудноформализуемо в общем случае

Поэтому для конечного пользователя можно составлять стандартные жесткие конструкции вида Сеть+ФитнесФункция+Учитель и позволять настроить лишь некоторые параметры, например, кол-во нейронов в слое

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

Согласен. Для некоторых, но не всех, методов обучения нужен практически полный доступ к внутренностям сети

 

yu-sha:

...

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

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

Другими словами сам метод писался именно под определённую сеть. Ну и какой смысл реализовывать эти методы в рамках универсального движка.

Лучше пусть Андрей это всё кодит. Я для универсального движка вижу один универсальный метод обучения это ГА.

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

В плюсах лёгкость реализации новых типов нейронов, те стандартных но ещё не описанных либо нестандартных.

В минусах только один метод обучения.

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

 
Urain:

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

В плюсах лёгкость реализации новых типов нейронов, те стандартных но ещё не описанных либо нестандартных.

В минусах только один метод обучения.

Размышляя таким же образом я пришел примерно к такому же выводу ))

А поскольку ГА становится основным алгоритмом обучения, то возникает острая необходимость параллельных вычислений

Вот здесь и всплывают GPU 

Параллельные вычисления в MetaTrader 5 штатными средствами
Параллельные вычисления в MetaTrader 5 штатными средствами
  • 2010.11.24
  • Andrew
  • www.mql5.com
Время является неизменной ценностью на протяжении всей истории человечества, и мы стремимся не расходовать его понапрасну. Из этой статьи вы узнаете, как можно ускорить работу вашего эксперта, если у вашего компьютера многоядерный процессор. Причем, реализация описываемого метода не требует знания каких-либо еще языков кроме MQL5.
 
yu-sha:

Размышляя таким же образом я пришел примерно к такому же выводу ))

А поскольку ГА становится основным алгоритмом обучения, то возникает острая необходимость параллельных вычислений

Вот здесь и всплывают GPU 

Ну вообще то GPU в моей модели всплыл ещё на стадии обсчёта НС, если внимательно читал что я писал раньше, то заметил что в моей модели универсальной сети, сам процессинг разбит на слои, при этом нейроны объединяются в слои не формально (по принадлежности), а фактически (слой обладает памятью, а нейрон нет, нейрону остаётся быть лишь информационной сущностью поставляющей слою информацию откуда куда зачем). Так что параллельность определена самой структурой движка (сама информация внутри слоя обрабатывается параллельно). Я уже делал НС обучаемую ГА, и самый большой урон производительности был именно на расчёте НС (особенно на больших сетях). Ну и в качестве рекламы, могу сказать что для UGA предложенного joo обучение НС плёвое дело.

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