Pronašli ste u tensorflow-js ono što vam je potrebno za prve korake u ML-u i trgovanju.
Ovo je dqn trening gdje se agentu daju nagrade i kazne za akcije.
https://github.com/tensorflow/tfjs-examples/tree/master/snake-dqn
https://storage.googleapis.com/tfjs-examples/snake-dqn/index.html
Ispostavilo se da imamo zmiju koja iz sopstvenog iskustva uči da se kreće. Ona ima određeni broj poteza (okreni ili nastavi) i njen zadatak je doći do ploda. U početku zmija ne zna kako, ali tokom treninga stječe sposobnost pronalaženja plodova i izbjegavanja. Vrlo je slično trgovanju, zar ne?
Pa, barem za naš zadatak, kada imamo pokrenute podatke, a robot mora donijeti odluku o kupovini ili prodaji.
Minus zmije je što je napisan za node.js, i moramo biti u mogućnosti da treniramo u pretraživaču (tako da svaki korisnik to može). Dakle, isto je moralo da se uradi i na klijentu.
Odvukao sam zmiju kakva jeste na svoju stranicu s grafikonom i pokušao je pokrenuti. Nije ga bilo!
Zmija je uzvratila
prvo paketi,
zatim argumenti. (usput, napravio sam i pull request pored popravka https://github.com/tensorflow/tfjs-examples/pull/353),
zatim %%Unhandled Rejection (TypeError): Ne mogu pozvati klasu kao funkciju%%. Koji se ovde popravlja https://github.com/tensorflow/tfjs/pull/3906/files, ali od Još nema oslobađanja, pa sam ga morao zamijeniti rukama. Ovdje, inače, mnogi ljudi imaju problem https://github.com/tensorflow/tfjs/issues/3384.
Maloljetnici su već otišli dalje, poput zamjene rada iz fs-a sa indexeddb. Usput, rad sa kojim sam ovdje špijunirao. Pa, generalno, cart-pole me je u početku inspirisao da uradim sve na klijentu.
https://github.com/tensorflow/tfjs-examples/tree/master/cart-pole
https://storage.googleapis.com/tfjs-examples/cart-pole/dist/index.html
na kraju se desilo ovo:
https://github.com/pskucherov/opexflow/pull/16/files
Pa, zapravo, sljedeći korak će biti:
- Uklopi se u grafikone
- Vizualizacija
- Uvježbajte robota na poznatim podacima da pokaže maksimalni rezultat
Ispod je video demo treninga rada robota na klijentu. Jednog dana će i oni trgovati fjučersima Sberbanke umjesto mene.