Open-Source Internship opportunity by OpenGenus for programmers. Apply now.
In this article, we will provide some ideas on reinforcement learning applications. These projects will be explained with the techniques, datasets and codebase that can be applied.
Introduction
Reinforcement Learning (RL) is a method of machine learning where the system learns to act through trial and error. An intelligent agent takes action in an environment and the actions are encouraged through gaining rewards or discouraged through losing them.
For example, a cat acting in a certain way in a new environment. If we try to teach a cat to act, we can witness the application of reinforcement learning. Cats don't understand human language, so we can give the cat some reward every time it completes or gets close to complete the task we want. Through this positive experience the cat will learn what to do. Also the cat will learn what not to do through negative experience. In this case, it is not getting the reward.
Machine learning has two other methods; supervised learning and unsupervised learning. In supervised learning, there is a direct mapping between the input and output. Unsupervised learning finds a pattern in activities to map the output. Reinforcement learning does not have a direct mapping, rather it learns from the feedback it gets from the environment.
Applications of RL
The 30 RL projects for your portfolio are:
- Movie Recommender System Using TensorFlow
- Stock Prediction System
- Arcane Chess
- Flappy Bird
- Super Mario AI
- 2048 Game
- Snake Game in RL
- Table Tennis Game
- Best Model for Poker Game
- AI Ping-Pong Game
- Music Recommendation System
- AI Ludo
- CartPole
- Mountain Car
- Pendulum
- Lunar Lander
- Self-driving Car
- Lawn Mowing
- Traffic Signal Control
- Sentiment Analysis
- Quiztions
- Car Racing Game
- Hover Bike Race
- Maze Solve
- Grocery Shopping Solution
- Supply Chain Inventory Management
- Fishing Derby Game
- Ride Bicycle
- Cab Driver Agent
- RL-Chatbot
We will dive deeper into each application.
1. Movie Recommender System Using TensorFlow
Improving the performance of RL based movie recommender system through making new embedding files, updating train and evaluation part. The system suggests movies similar to the users' taste based on the user interactions.
This dataset contains 1 million ratings from 6000 users on 4000 movies.
Dataset- https://grouplens.org/datasets/movielens/1m/
Implementation:
Code - https://github.com/backgom2357/Recommender_system_via_deep_RL
Difficulty Level: 3
2. Stock Prediction System
Implementing Q-learning to short-term stock trading. The model determines if the best action to take is to sit, sell or buy. The model is not very good at making decisions over long-term trends, but is quite good at predicting peaks and troughs.
GSPC stock trading dataset collected from Yahoo! Finance
Dataset - https://github.com/edwardhdlu/q-trader/tree/master/data
Implementation
Code - https://github.com/edwardhdlu/q-trader
Difficulty Level: 4
Results
3. Arcane Chess
RL project for a chess game where you can train your own reinforced agent using deep Q-network. Arcane Chess is a modal based on a Deep Reinforcement Learning approach to master the chess game.
Explanation of the setup and how to run the project
Explanation - https://github.com/rayanramoul/Arcane-Chess/blob/master/README.md
Implementation
Code - https://github.com/rayanramoul/Arcane-Chess/tree/master/app
Difficulty Level: 2
Result:
4. Flappy Bird
Applying RL using Q-learning through a script written in Javascript. The bird tries to avoid obstacles and gain points.
Explanation of the project
Explanation - https://github.com/nileshsah/reinforcement-learning-flappybird
Implementation
Code - https://github.com/nileshsah/reinforcement-learning-flappybird/tree/master/js
Difficulty Level: 2
Result:
This is the high score
5. Super Mario AI
Using Q-learning, super mario AI is built. Follow the instructions in the Readme file from the link
Explaining the project
Explanation - https://github.com/aleju/mario-ai#about
Implementation
Code - https://github.com/aleju/mario-ai
Difficulty Level: 5
Result:
6. 2048 Game
Reinforcement learning applied to train the agent to play 2048 by itself.
Explanaining how the project works
Explanation - https://github.com/FlyingBird95/2048-in-python
Implementation
Code - https://github.com/FlyingBird95/2048-in-python/tree/master/rl_2048
Difficulty Level: 2
7. Snake Game in RL
Popular snake game developing using Q-learning.An AI-Bot learns to play the game from the scratch. The snake tries to avoid getting hit with any boundaries or itself.
How to run the project
Explanation - https://github.com/maurock/snake-ga-tf
Implementation
Code - https://github.com/maurock/snake-ga-tf/blob/master/snakeClass.py
Difficulty Level: 2
Result:
8. Table Tennis Game
Using Q-learning, we can develop a tennis game between two agents. The agents are supposed to hit the tennis ball and gain scores. Missing the ball means losing a point.
Explanation of how the project works
Explanation - https://github.com/trentondelahaye/deep-rl-tennis
Implementation
Code - https://github.com/trentondelahaye/deep-rl-tennis/blob/master/main.py
Difficulty Level: 2
Result:
9. Best Model for Poker Game
Applying different RL models to find the best one to play poker with. The algorithms used are, Q-learning, SARSA, Expected SARSA, and some based on neural networks.
Explanation of the porject
Explanation - https://github.com/claudia-maria-dudau/RL-Poker#rl-poker
Qtable for expected SARSA, SARSA and Q-learning
Dataset - https://github.com/claudia-maria-dudau/RL-Poker/tree/main/data
Implementation
Code - https://github.com/claudia-maria-dudau/RL-Poker
Difficulty Level: 3
Result:
10. AI Ping-Pong Game
A ping-pong game played by agents developed using reinforcement learning. The goal of the game is to score as much as possible by deflecting the ball away and into the opponent's goal. This project uses Double Dueling Deep Q Learning (DQN) with Prioritized Experience Replay.
How to run the project
Explanation - https://github.com/NickKaparinos/OpenAI-Gym-Projects#pong-v5
Implementation
Code - https://github.com/NickKaparinos/OpenAI-Gym-Projects/tree/master/Atari/Pong
Difficulty Level: 3
Result:
11. Music Recommendation System
Reinforcement learning captures the user-song interaction and maintains the recommendation accuracy and diversity. It formulates the problem of interactive recommendation as a contextual multi-armed bandit, learning user preferences recommending new songs and receiving their ratings. The system suggests musics similar to the users' taste.
Songs list
Dataset - https://github.com/shirishjain/Music-Recommender-Engine/tree/master/data
Explanation of the project
Explanation - https://github.com/shirishjain/Music-Recommender-Engine/blob/master/Project Report - Pro.pdf
Implementation
Code - https://github.com/shirishjain/Music-Recommender-Engine/tree/master/src
Difficulty Level: 4
12. AI Ludo
An application of reinforcement learning to the Ludo board game. Implementing Q-learning with a neural network to allow an agent to learn a game strategy.
Explanation of the project
Explanation - https://github.com/andresc889/AILudoPlayer#readme
Implementation
Code - https://github.com/andresc889/AILudoPlayer/tree/master/src
Difficulty Level: 4
Result:
13. CartPole
A pole is attached to a cart and the goal is to prevent the pole from falling over. Implementing reinforcement learning using Proximal Policy Optimization(PPO).
How the project works
Explanation - https://github.com/NickKaparinos/OpenAI-Gym-Projects#cartpole-v1
Implementation
Code - https://github.com/NickKaparinos/OpenAI-Gym-Projects/tree/master/Classic Control/CartPole
Difficulty Level: 2
Result:
14. Mountain Car
A car stuck between two mountains tries to climb the top of the mountain. Reinforcement learning is implemented using Double Dueling Deep Q Learning (DQN).
How the project works
Explanation - https://github.com/NickKaparinos/OpenAI-Gym-Projects#mountaincar-v0
Implementation
Code - https://github.com/NickKaparinos/OpenAI-Gym-Projects/tree/master/Classic Control/MountainCar
Difficulty Level: 2
Result:
15. Pendulum
A pendulum starts in a random position and the goal is to swing it up so that it stays upright. Deep Deterministic Policy Gradient (DDPG) is used for this problem.
How the project works
Explanation - https://github.com/NickKaparinos/OpenAI-Gym-Projects#pendulum-v0
Implementation
Code - https://github.com/NickKaparinos/OpenAI-Gym-Projects/tree/master/Classic Control/Pendulum
Difficulty Level: 3
Result:
16. Lunar Lander
Navigate a lander to its landing pad. Four discrete actions available: do nothing, fire left orientation engine, fire main engine, fire right orientation engine. This problem is solved using Double Dueling Deep Q Learning (DQN).
How the project works
Explanation - https://github.com/NickKaparinos/OpenAI-Gym-Projects#lunarlander-v2
Implementation
Code - https://github.com/NickKaparinos/OpenAI-Gym-Projects/tree/master/Box2D/LunarLander
Difficulty Level: 3
Result:
17. Self-driving Car
Reinforcement learning applied for self-driving cars in Carla. Carla is a open-source simulator for autonomous driving research. This is only Reinforcement Learning codebase for self-driving car in Carla
How to work with the project
Explanation - https://github.com/Sentdex/Carla-RL#carla-rl
Implementation
Code - https://github.com/Sentdex/Carla-RL
Difficulty Level: 5
18. Lawn Mowing
Given any lawn shape and size, discovering in the least time possible the most efficient mowing pattern using deep reinforcement learning.
How the project works
Explanation - https://github.com/JacobZuliani/Efficient-Lawn-Mowing-with-Deep-Reinforcement-Learning#efficient-lawn-mowing-with-deep-reinforcement-learning
Implementation
Code - https://github.com/JacobZuliani/Efficient-Lawn-Mowing-with-Deep-Reinforcement-Learning
Difficulty Level: 4
Result:
Here is an example environment state after the agent made some progress:
19. Traffic Signal Control
Deep Q-learning applied to control traffic signal to maximize traffic efficiency.
Explanation of the project
Explanation - https://github.com/AndreaVidali/Deep-QLearning-Agent-for-Traffic-Signal-Control#deep-q-learning-agent-for-traffic-signal-control
Implementation
Code - https://github.com/AndreaVidali/Deep-QLearning-Agent-for-Traffic-Signal-Control/tree/master/TLCS
Difficulty Level: 4
20. Sentiment Analysis
Applying generic Hierarchical deep reinforcement learning for sentiment analysis. Asynchronous Advantage Actor Critic(a3c), a policy gradient algorithm in reinforcement learning is used for this project.
The dataset contains train and test sets for sentiments
Dataset - https://github.com/Francesco-Sovrano/Generic-Hierarchical-Deep-Reinforcement-Learning-for-Sentiment-Analysis/tree/master/database
How the project works
Explanation - https://github.com/Francesco-Sovrano/Generic-Hierarchical-Deep-Reinforcement-Learning-for-Sentiment-Analysis#generic-hierarchical-deep-reinforcement-learning-for-sentiment-analysis
Implementation
Code - https://github.com/Francesco-Sovrano/Generic-Hierarchical-Deep-Reinforcement-Learning-for-Sentiment-Analysis
Difficulty Level: 4
21. Quiztions
An Educational Vuejs & firebase app that uses reinforcement learning by allowing instructors to add quizzes and courses that consist of questions.
How to run the project
Explanation - https://github.com/eslam-fakhry/quiztions#quiztions
Implementation
Code - https://github.com/eslam-fakhry/quiztions
Difficulty Level: 5
22. Car Racing Game
Applying major reinforcement learning algorithms to this project from GymAI environment. These algorithms are, Deep Q-learning(DQN), Proximal Policy Optimization(PPO), and Advantage Actor Critic(A2c).
Explaining the project
Explanation - https://github.com/AGiannoutsos/car_racer_gym#carracing-v0
Implementation
Code - https://github.com/AGiannoutsos/car_racer_gym/blob/main/car_racing.py
Difficulty Level: 2
Result:
23. Hover Bike Race
A reinforcement learning project created with Unity Machine Learning Agents. The programming language C# is used for this project.
Explanation of the project
Explanation - https://github.com/mbaske/ml-hover-bike-race#hover-bike-race---video
Implementation
Code - https://github.com/mbaske/ml-hover-bike-race
Difficulty Level: 4
Result:
24. Maze Solve
An agent finding the most efficient path in a maze using Q-learning.
How the project works
Explanation - https://github.com/MuaazBin/KE_AE#ke_ae
Implementation
Code - https://github.com/MuaazBin/KE_AE
Difficulty Level: 3
Result:
25. Grocery Shopping Solution
Developing the best strategy to minimise the cost and time needed for purchasing monthly grocery using RL.
Explanation of the problem and the solution
Explanation - https://github.com/manasimalik/RL-For-Grocery-Shopping-Solutions/blob/master/RL Grocery Shopping Solutions.pdf
Implementation
Code - https://github.com/manasimalik/RL-For-Grocery-Shopping-Solutions
Difficulty Level: 2
26. Supply Chain Inventory Management
A deep reinfrocement learning approach to supply chain inventory management. The project is a comparison between different reinforcement learning algorithms.
Explanation of the paper
Explanation - https://github.com/frenkowski/SCIMAI-Gym#scimai-gym
Implementation
Code - https://github.com/frenkowski/SCIMAI-Gym/blob/main/SCIMAI-Gym_V1.ipynb
Difficulty Level: 4
Result:
27. Fishing Derby Game
Developing Fishing Derby using minimax algorithm, hidden markov models and reinforcement learning.
Explanation of the project
Explanation - https://github.com/Joao-Tiago-Almeida/AI-topics-applied-to-the-Fishing-Derby-game#ai-topics-applied-to-the-fishing-derby-game
Implementation
Code - https://github.com/Joao-Tiago-Almeida/AI-topics-applied-to-the-Fishing-Derby-game/tree/main/Reinforcement Learning
Difficulty Level: 3
28. Ride Bicycle
Teaching an agent to ride bicycle using reinforcement learning.
Creating the environment and project
Code - https://github.com/chrisdembia/agent-bicycle/tree/master/randlov1998
Difficulty Level: 4
29. Cab Driver Agent
Train a Cab driver agent to interact with the environment and get ride requests, eventually decide to accept or reject certian rides using reinforcement learning.
Implementation
Code - https://github.com/deeplearn-optimizer/ReinforcementLearningCabDriverAgent
Difficulty Level: 4
30. RL-Chatbot
Implementing sequence to Sequence(seq2seq) learning and Policy Gradient from reinforcement learning to develop this chatbot.
The dataset consisting words the chatbot will use
Dataset - https://github.com/pochih/RL-Chatbot/tree/master/data
Explaining how the project works
Explanation - https://github.com/pochih/RL-Chatbot#intro
Implementation
Code - https://github.com/pochih/RL-Chatbot/tree/master/python
Difficulty Level: 4
Results:
Conclusion
Reinforcement learning is developing everyday. Using an intelligent agent to almost every aspect is becoming more and more helpful. These are only a few of the applications that are developed and there are possibilities for so much more.