Skip to content
Snippets Groups Projects
Commit 46616c15 authored by Philip Maas's avatar Philip Maas
Browse files

Added readme and requirements

parent fb475df6
No related branches found
No related tags found
1 merge request!2Evo neuro
Pipeline #693 failed
# Bipedal Walker Evo
Trying to solve the bipedal walker with an evolution algorithm
\ No newline at end of file
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
1. Generate a randomly weighted neural net
2. Create a population of neural nets with mutated weights
3. Let every net finish an episode and reward it accordingly
4. 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/
\ No newline at end of file
......@@ -8,12 +8,12 @@ HIDDEN_LAYER = 12
POP_SIZE = 50
MUTATION_FACTOR = 0.1 # 0 <= x <= 1
LEARNING_RATE = 0.03 # 0 <= x <= 1
GENS = 1000
MAX_STEPS = 300 # after 1600 steps the Environment gives us a done anyway.
GENS = 3000
MAX_STEPS = 1200 # after 1600 steps the Environment gives us a done anyway.
VERSION = 1
TEST_WALKER = True
TEST_WALKER = False
LOAD_BRAIN = False
RENDER_BEST = False
if TEST_WALKER:
......
import numpy as np
import random
import logging
import copy
from walker import Walker
import gym
......
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
import gym
import numpy as np
import pickle
import copy
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment