/navigation_dqn

Primary LanguageHTMLApache License 2.0Apache-2.0

DQN Training for Navigation

In this project, deep reinforcement learning is applied to the navigation of a simple robot collecting bananas in a large square world.

Project Details

A reward of +1 is provided for collecting a yellow banana, and a reward of -1 is provided for collecting a blue banana. Thus, the goal of your agent is to collect as many yellow bananas as possible while avoiding blue bananas.

The state space has 37 dimensions and contains the agent's velocity, along with ray-based perception of objects around the 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 in order to solve the environment, your agent must get an average score of +13 over 100 consecutive episodes.

Getting Started

Step 1: install Python requirements

This project assumes Python 3.6 and needs the following packages installed:

  • tensorflow==1.7.1
  • Pillow>=4.2.1
  • matplotlib
  • numpy>=1.11.0
  • jupyter
  • pytest>=3.2.2
  • docopt
  • pyyaml
  • protobuf==3.5.2
  • grpcio==1.11.0
  • torch==0.4.0
  • pandas
  • scipy
  • ipykernel

Step 2: Download the Unity Environment

For this project, you will need to install a prebuilt Unity environment that you can download it from one of the links below. You need only select the environment that matches your operating system:

Linux: click here

Mac OSX: click here

Windows (32-bit): click here

Windows (64-bit): click here

Place the file in the project folder and extract it there.

Instructions

To run the code, go to the project folder, type 'jupyter notebook', open Report.ipynb and follow along.