snake-dqn как путь к ML

Программирование

Нашёл в tensorflow-js то что нужно для первых шагов в ML и трейдинге.

Это dqn обучение, когда агенту выдаются награды и штрафы за действия.

https://github.com/tensorflow/tfjs-examples/tree/master/snake-dqn

https://storage.googleapis.com/tfjs-examples/snake-dqn/index.html

Получается у нас есть змейка, которая обучается на собственном опыте двигаться. У неё есть определённое количество ход (повернуть или продолжить) и её задача добраться до фруктов. Изначально змейка ничего не умеет но по ходу обучения она обретает возможности находить фрукты и уворачиваться. Очень похоже на трейдинг, не правда ли?

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

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

Затаoщил змейку как есть к себе на страницу с графиком и попытался запустить. Не тут-то было!

Змейка всячески сопротивлялась,

сначала пакеты,

потом аргументы. (кстати ещё и пуллреквест рядом сделал с фиксом https://github.com/tensorflow/tfjs-examples/pull/353),

потом %%Unhandled Rejection (TypeError): Cannot call a class as a function%%. Который чинится здесь https://github.com/tensorflow/tfjs/pull/3906/files, но т.к. релиза ещё нет то пришлось руками подставить. Вот здесь кстати проблема у многих возникает https://github.com/tensorflow/tfjs/issues/3384.

Дальше уже пошли миноры вроде подмены работы с fs на indexeddb. Работу с которой подсмотрел здесь, кстати. Ну и вообще cart-pole изначально вдохновил сделать всё на клиенте.

https://github.com/tensorflow/tfjs-examples/tree/master/cart-pole

https://storage.googleapis.com/tfjs-examples/cart-pole/dist/index.html

в итоге вот что получилось:

https://github.com/pskucherov/opexflow/pull/16/files

Ну и всё собственно, следующим этапом будут:

  1. Приладить к графикам
  2. Визуализация
  3. Обучить робота на известных данных показать максимальный результат

Ниже на видео демка работы-обучения роботов на клиенте. Когда-нибудь они так же будут торговать фьючерсами сбербанка вместо меня.

Rate article
Add a comment