# Reinforcement Learning Project1 Report ## Project 1: Navigation ### DQN The main idea of training this navigating agent is DQN. ### Model The Q network we implement here is simple, only consists of three fully connected layers. ```python = import torch import torch.nn as nn import torch.nn.functional as F class QNetwork(nn.Module): """Actor (Policy) Model.""" def __init__(self, state_size, action_size, seed, fc1_units = 64, fc2_units = 64): """Initialize parameters and build model. Params ====== state_size (int): Dimension of each state action_size (int): Dimension of each action seed (int): Random seed """ super(QNetwork, self).__init__() self.seed = torch.manual_seed(seed) "*** YOUR CODE HERE ***" self.seed = torch.manual_seed(seed) self.fc1 = nn.Linear(state_size, fc1_units) self.fc2 = nn.Linear(fc1_units, fc2_units) self.fc3 = nn.Linear(fc2_units, action_size) def forward(self, state): """Build a network that maps state -> action values.""" x = F.relu(self.fc1(state)) x = F.relu(self.fc2(x)) return self.fc3(x) ``` ### Results The learning curve within 500 episodes show scores increasing. ![](https://i.imgur.com/iotGqqT.png) ### Future work #### 1. Try double DQN #### 2. Try learning on Pixels