在 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 编写的,我们需要能够在浏览器中进行训练(以便任何用户都可以这样做)。因此,有必要在客户端上启动相同的操作。
我将蛇按原样带到我的页面并尝试启动它。事实并非如此!
蛇百般反抗,
先打包,
然后争论。(顺便说一句,我还在修复 https://github.com/tensorflow/tfjs-examples/pull/353 旁边提出了一个拉取请求),
然后 %% 未处理的拒绝(类型错误):无法将类作为函数调用 %%。这里修复了 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
好了,就是这样,下一阶段将是:
- 适合图表
- 可视化
- 用已知数据训练机器人以显示最大结果
视频下方是机器人在客户端的工作培训演示。总有一天他们也会交易 Sberbank 期货而不是我。