/Navigation

Navigation project of the Deep Reinforcement Learning Nanodegree

Primary LanguageJupyter Notebook

Project 1: Navigation

Project Details

For this project, we will train an agent to navigate (and collect bananas!) in a large, square world.

Trained Agent

A reward of +1 is provided for collecting a yellow banana, and a reward of -1 is provided for collecting a blue banana.

The state space has 37 dimensions and contains the agent's velocity, along with ray-based perception of objects around agent's forward direction. Given this information, the agent has to learn how to best select actions. Four discrete actions are available, corresponding to:

  • 0 - move forward.
  • 1 - move backward.
  • 2 - turn left.
  • 3 - turn right.

The task is episodic, and we will consider the environment to be solved when our agent will be able to get an average score of +13 over 100 consecutive episodes.

Getting Started

  1. Clone the repo git clone https://github.com/dgharsallah/Navigation
  2. Create a conda environment and install the required packages
conda create --name navigation python=3.6
source activate navigation
pip install torch
pip install unityagents==0.4.0 
pip install mlagents 
  1. Download the environment from one of the links below. You need only select the environment that matches your operating system:

    (For Windows users) Check out this link if you need help with determining if your computer is running a 32-bit version or 64-bit version of the Windows operating system.

    (For AWS) If you'd like to train the agent on AWS (and have not enabled a virtual screen), then please use this link to obtain the environment.

  2. Place the file in the DRLND GitHub repository, in the Navigation/ folder, and unzip (or decompress) the file.

Description

  • dqn_agent.py: File containing the definition of our DQN agent
  • model.py: File defining the architecture of the neural net used by the DQN agent
  • Navigation.ipynb: Notebook containing the solution with instructions

Instructions

Follow the instructions in Navigation.ipynb to get started with training your own agent!