For this project, I haven't used any visualization to demonstrate the states and actions. Rather it is a text-based game, as I alluded to earlier. Then you can run the GridWorld.java class (containing the main method) using following invocation:
DeepQNetwork RLNet = new DeepQNetwork(conf, 100000, .99f, 1d, 1024, 500, 1024, InputLength, 4);
In this invocation, here's the parameter description outlined:
- conf: This is the MultiLayerConfiguration used to create the DQN
- 100000: This is the replay memory capacity
- .99f: The discount
- 1d: This is the epsilon
- 1024: The batch size
- 500: This is the update frequency; second 1,024 is the replay start size
- InputLength: This is the input length of size x size x 2 + 1= 33 (considering size=4)
- 4: This is the number of possible actions that can be performed by the agent.
We initialize epsilon (ϵ-greedy...