Playing the GridWorld game
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 = newDeepQNetwork(conf, 100000, .99f, 1d, 1024, 500, 1024, InputLength, 4);
In this invocation, here's the parameter description outlined:
conf
: This is theMultiLayerConfiguration
used to create the DQN100000
: This is the replay memory capacity.99f
: The discount1d
: This is the epsilon1024
: The batch size500
: This is the update frequency; second 1,024 is the replay start sizeInputLength
: 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 action selection) to 1, which will decrease by a small amount on every episode. This way, it will eventually reach 0.1 and saturate. Based on...