DQN: Added a initialize method as we can set the optimizer for reducing loss only once create_network has been called. Also modified populate_replay_buffer and train to take into account cases where we don't want actions to be repeated randomly. Also, added a print_freq variable to avoid printing after every episode. However, logs are maintained for all episodes whether printed on console or not. Set an auto-break condition to stop training once epsilon is annealed and we exceed number of consecutive successful episodes by auto_stop_succ_episode.
DQN: Added a initialize method as we can set the optimizer for reducing loss only once create_network has been called. Also modified populate_replay_buffer and train to take into account cases where we don't want actions to be repeated randomly. Also, added a print_freq variable to avoid printing after every episode. However, logs are maintained for all episodes whether printed on console or not. Set an auto-break condition to stop training once epsilon is annealed and we exceed number of consecutive successful episodes by auto_stop_succ_episode.

BartKeulen/drl,BartKeulen/drl,BartKeulen/drl