A Reinforcement Learning project developed in Python for the Artificial Intelligence (5DV243) course at Umeå University.
This project explores the principles of Reinforcement Learning (RL) by designing intelligent agents capable of learning optimal behaviours through interaction with an environment. Different reinforcement learning techniques are implemented, trained, and evaluated to analyze how agents improve their decision-making over time.
- 🤖 Reinforcement Learning agents
- 🎯 Environment interaction
- 📈 Reward-based learning
- 🔄 Exploration vs. exploitation strategies
- 🧠 Policy optimization
- 📊 Training performance evaluation
- 📉 Reward visualization
- 📝 Jupyter Notebook implementation
- ⚙️ Configurable training parameters
- Python
- Jupyter Notebook
- NumPy
- Matplotlib
- Reinforcement Learning
- Scikit-learn (if applicable)
This project demonstrates several fundamental RL concepts:
- Reinforcement Learning
- Markov Decision Processes (MDPs)
- Agents and Environments
- States and Actions
- Reward Functions
- Policies
- Exploration vs. Exploitation
- Value Functions
- Policy Evaluation
Unlike supervised learning, reinforcement learning agents are not provided with correct answers.
Instead, an agent learns by:
- Observing the environment
- Selecting actions
- Receiving rewards
- Updating its behaviour
- Maximizing long-term cumulative reward
Through repeated interactions, the agent gradually discovers increasingly effective strategies.
The training process follows the reinforcement learning cycle:
- Observe the current state
- Choose an action
- Execute the action
- Receive a reward
- Observe the next state
- Update the learning strategy
- Repeat until convergence
The implemented agents are evaluated using metrics such as:
- Cumulative Reward
- Average Episode Reward
- Learning Progress
- Convergence Rate
- Policy Quality
Training curves are used to visualize how performance improves throughout learning.
Reinforcement-Learning/
│
├── notebooks/
├── images/
├── data/
├── README.md
└── ...
Environment
│
▼
State Observation
│
▼
Agent Decision
│
▼
Action
│
▼
Reward
│
▼
Policy Update
│
▼
Repeat
- Python 3.x
- Jupyter Notebook
Install the required packages:
pip install numpy matplotlib scikit-learnClone the repository:
git clone https://github.com/serac01/reinforcement-learning.gitLaunch Jupyter Notebook:
jupyter notebookRun all notebook cells to reproduce the experiments.
This project was developed for the Artificial Intelligence (5DV243) course at Umeå University.
It is intended for educational purposes.