FinRL
Rubiks-Cube-Reinforcement-Learning
FinRL | Rubiks-Cube-Reinforcement-Learning | |
---|---|---|
200 | 1 | |
2,782 | 38 | |
- | - | |
9.8 | 0.0 | |
over 2 years ago | over 2 years ago | |
Jupyter Notebook | Jupyter Notebook | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
FinRL
Rubiks-Cube-Reinforcement-Learning
-
Solving a Rubik's Cube from Scratch;
https://i.redd.it/lfjz74cn6wc61.gif For my final year university project I trained an AI to solve a Rubik's Cube purely using reinforcement learning. This project follows the algorithm written by this paper. http://deepcube.igb.uci.edu/static/files/SolvingTheRubiksCubeWithDeepReinforcementLearningAndSearch_Final.pdf. This algorithm works by first training a neural network to output a guess on the number of moves away from the solved position given an initial scrambled position. This was done using simple value iteration. The training dataset was created on the fly by randomly scrambling cubes with depths of 1 to 40. Once training is completed this neural network can be used to solve cubes by using it as a heuristic in an A* search. The classic A* search algorithm was changed to include a depth weighting which trades optimality with speed. Training took around 7 days using one Tesla P100 GPU. Parallel Training definitely should have been used however this would have taken a bunch of work to implement so this was left out. This also meant hyperparameter tuning and network architecture experimenting was pretty limited. Compared to the results in the paper, my AI is slower and less optimal, solving on average taking 60 seconds with solution lengths around 40. However I was extremely happy with the results as I had neither the computational power or experience of the researchers and comparatively with most of the other projects on Github, being able to solve a 3x3 cube at all is an achievement. This algorithm can be transferred to many other puzzles. I have successfully trained the 2x2 Cube, 15-Puzzle and 24-Puzzle as well. My github page for the code is here https://github.com/PhadonP/Rubiks-Cube-Reinforcement-Learning. There are many more details shown in the pdf report found in the repo.
What are some alternatives?
tensortrade - An open source reinforcement learning framework for training, evaluating, and deploying robust trading agents.
Deep-Reinforcement-Learning-for-Automated-Stock-Trading-Ensemble-Strategy-ICAIF-2020 - Deep Reinforcement Learning for Automated Stock Trading: An Ensemble Strategy. ICAIF 2020. Please star. [Moved to: https://github.com/AI4Finance-Foundation/Deep-Reinforcement-Learning-for-Automated-Stock-Trading-Ensemble-Strategy-ICAIF-2020]
Deep-Hedging
FinRL - FinRL: Financial Reinforcement Learning. 🔥
FinRL-Library - Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance. NeurIPS 2020 & ICAIF 2021. 🔥 [Moved to: https://github.com/AI4Finance-Foundation/FinRL]
rl_lib - Series of deep reinforcement learning algorithms 🤖
FinRL-Trading - For trading. Please star.
FinanceOps - Research in investment finance with Python Notebooks
FinRL-Meta - FinRL-Meta: Dynamic datasets and market environments for FinRL.
hands-on-rl - Free course that takes you from zero to Reinforcement Learning PRO 🦸🏻🦸🏽