struct DqnConfig {
unsigned long hidden;
unsigned long hiddenLayers;
float gamma;
float lr;
unsigned long batchSize;
unsigned long bufferSize;
unsigned long learningStarts;
unsigned long trainEvery;
unsigned long targetEvery;
float tau;
float epsStart;
float epsEnd;
unsigned long epsDecaySteps;
int doubleDqn;
float huberDelta;
float clipNorm;
unsigned long seed;
}Fields
transitions before the first update
environment steps per gradient step
hard target copy every N gradient steps; 0: soft updates
soft target update rate (targetEvery 0)
linear decay over this many steps
van Hasselt et al. 2016: online net picks a', target net scores it
gradient norm clip, 0 = off
Methods
2 hidden layers of 64 (ReLU), gamma 0.99, Adam lr 5e-4, batch 64, buffer 50000, learning after 1000 steps, train every step, soft target updates (tau 0.005), epsilon 1 -> 0.05 over 10000 steps, Double DQN, Huber 1, clip 10.