We want you to make something cool with reinforcement learning!
Your project will be assessed based on the creativity of the solution / task that the model(s) performs. If you need to (or want to!) use something complex like state-of-the-art Deep RL neural nets, go for it! But we know simple AI solutions can solve facinating problems just as well!
Try these for an introduction to RL: GeeksforGeeks, towards data science
OpenAI gym provides a bunch of test environments for playing around with RL. This PyTorch Deep Q Learning tutorial may be a good starting point for model training.
You can even make your own environments using the OpenAI library! Here's an interesting snippet from the article:
import gym
from gym import spaces
class CustomEnv(gym.Env):
"""Custom Environment that follows gym interface"""
metadata = {'render.modes': ['human']}
def __init__(self, arg1, arg2, ...):
super(CustomEnv, self).__init__()
# Define action and observation space
# They must be gym.spaces objects
# Example when using discrete actions:
self.action_space = spaces.Discrete(N_DISCRETE_ACTIONS)
# Example for using image as input:
self.observation_space = spaces.Box(low=0, high=255, shape=
(HEIGHT, WIDTH, N_CHANNELS), dtype=np.uint8)
def step(self, action):
# Execute one time step within the environment
...
def reset(self):
# Reset the state of the environment to an initial state
...
def render(self, mode='human', close=False):
# Render the environment to the screen
...
Feel free to a look at other Reinforcement Learning libraries (it doesn't have to be Python), there are plenty out there.
- Want to pit your bot against itself or play against your bot? Try Simple. The creator has written a great article about it!
- Want to use real hardware agents? Check out this hack by Roger Cheng.
- Want to be REALLY ambitious try using human preference to evaluate your AI like this. (P.S: This would be really hard)
- Check out itch.io for some nice retro assets.