Bipedal Walker Evo
This project tries to solve OpenAI's bipedal walker with an evolutionary strategy.
After 1000 episodes, which is about 1h of learning, it will reach ~250 reward.
Best score until now: 292/300
How it works
- Generate a randomly weighted neural net
- Create a population of neural nets with mutated weights
- Let every net finish an episode and reward it accordingly
- The better the reward, the higher the chance to pass weights to next gen
Hyperparameters
Parameter | Description | Interval |
---|---|---|
HIDDEN_LAYER |
Size of hidden layer. | [1;∞[ |
POP_SIZE |
Size of population. | [0;∞[ |
MUTATION_FACTOR |
Percentage of weights that will be mutated for each mutant. | [0;1] |
LEARNING_RATE |
This is the rate of learning. | [0;1] |
GENS |
Number of generations. | [0;1] |
MAX_STEPS |
Number of steps that are played in one episode. | [0; 1600] |
Installation
We use Windows, Anaconda and Python 3.7
conda create -n evo_neuro python=3.7
conda activate evo_neuro
conda install swig
pip install -r requirements.txt
Sources
Environment: https://github.com/openai/gym/wiki/BipedalWalker-v2
OpenAI Website: https://gym.openai.com/envs/BipedalWalker-v2/
More on evolution strategies: https://openai.com/blog/evolution-strategies/