def default_config() -> ClientConfig: """ :return: Default configuration for the experiment """ dqn_config = DQNConfig(input_dim=242, defender_output_dim=242, hidden_dim=64, replay_memory_size=10000, num_hidden_layers=1, replay_start_size=1000, batch_size=32, target_network_update_freq=1000, gpu=True, tensorboard=True, tensorboard_dir=default_output_dir() + "/results/tensorboard", loss_fn="Huber", optimizer="Adam", lr_exp_decay=True, lr_decay_rate=0.9999) q_agent_config = QAgentConfig( gamma=0.999, alpha=0.00001, epsilon=1, render=False, eval_sleep=0.9, min_epsilon=0.01, eval_episodes=100, train_log_frequency=100, epsilon_decay=0.9999, video=True, eval_log_frequency=1, video_fps=5, video_dir=default_output_dir() + "/results/videos", num_episodes=20001, eval_render=False, gifs=True, gif_dir=default_output_dir() + "/results/gifs", eval_frequency=1000, attacker=False, defender=True, video_frequency=101, save_dir=default_output_dir() + "/results/data", dqn_config=dqn_config, checkpoint_freq=5000) env_name = "idsgame-random_attack-v4" client_config = ClientConfig(env_name=env_name, defender_type=AgentType.DQN_AGENT.value, mode=RunnerMode.TRAIN_DEFENDER.value, q_agent_config=q_agent_config, output_dir=default_output_dir(), title="RandomAttacker vs DQN", run_many=True, random_seeds=[0, 999, 299, 399, 499]) return client_config
def default_config() -> ClientConfig: """ :return: Default configuration for the experiment """ dqn_config = DQNConfig(input_dim=242, attacker_output_dim=220, hidden_dim=64, replay_memory_size=10000, num_hidden_layers=1, replay_start_size=1000, batch_size=32, target_network_update_freq=5000, gpu=True, tensorboard=True, tensorboard_dir=default_output_dir() + "/tensorboard", loss_fn="Huber", optimizer="Adam", lr_exp_decay=True, lr_decay_rate=0.99995) q_agent_config = QAgentConfig(gamma=1, alpha=0.00001, epsilon=0.75, render=False, eval_sleep=0.9, min_epsilon=0.05, eval_episodes=100, train_log_frequency=100, epsilon_decay=0.99995, video=True, eval_log_frequency=1, video_fps=5, video_dir=default_output_dir() + "/videos", num_episodes=500000, eval_render=False, gifs=True, gif_dir=default_output_dir() + "/gifs", eval_frequency=5000, attacker=True, defender=False, video_frequency=101, save_dir=default_output_dir() + "/data", dqn_config=dqn_config, checkpoint_freq=10000) env_name = "idsgame-minimal_defense-v6" client_config = ClientConfig( env_name=env_name, attacker_type=AgentType.DQN_AGENT.value, mode=RunnerMode.TRAIN_ATTACKER.value, q_agent_config=q_agent_config, output_dir=default_output_dir(), title="TrainingDQNAgent vs DefendMinimalDefender") return client_config
def test_train_random_attack_tabular_q_learning(version) -> ClientConfig: q_agent_config = QAgentConfig(num_episodes=10, eval_frequency=100, attacker=False, defender=True) env_name = "idsgame-random_attack-v" + str(version) client_config = ClientConfig(env_name=env_name, defender_type=AgentType.TABULAR_Q_AGENT.value, mode=RunnerMode.TRAIN_DEFENDER.value, q_agent_config=q_agent_config, output_dir=default_output_dir()) Runner.run(client_config)
def default_config() -> ClientConfig: """ :return: Default configuration for the experiment """ simulation_config = SimulationConfig(render=True, sleep=0.8, video=True, log_frequency=1, video_fps=5, video_dir=default_output_dir() + "/videos", num_episodes=1000, gifs=True, gif_dir=default_output_dir() + "/gifs", video_frequency = 1) q_agent_config = QAgentConfig(attacker_load_path=default_output_dir() + "/q_table/q_table.npy") env_name = "idsgame-v4" client_config = ClientConfig(env_name=env_name, attacker_type=AgentType.TABULAR_Q_AGENT.value, defender_type=AgentType.DEFEND_MINIMAL_VALUE.value, mode=RunnerMode.SIMULATE.value, simulation_config=simulation_config, output_dir=default_output_dir(), title="TabularQAgentAttacker vs DefendMinimalDefender", q_agent_config=q_agent_config, initial_state_path = default_output_dir() + "/initial_state/initial_state.pkl") return client_config
def default_config() -> ClientConfig: """ :return: Default configuration for the experiment """ q_agent_config = QAgentConfig(gamma=0.999, alpha=0.05, epsilon=1, render=False, eval_sleep=0.9, min_epsilon=0.01, eval_episodes=100, train_log_frequency=1, epsilon_decay=0.9999, video=True, eval_log_frequency=1, video_fps=5, video_dir=default_output_dir() + "/videos", num_episodes=40000, eval_render=False, gifs=True, gif_dir=default_output_dir() + "/gifs", eval_frequency=5000, attacker=True, defender=False, video_frequency=101, save_dir=default_output_dir() + "/data") env_name = "idsgame-minimal_defense-v4" client_config = ClientConfig(env_name=env_name, attacker_type=AgentType.TABULAR_Q_AGENT.value, mode=RunnerMode.TRAIN_ATTACKER.value, q_agent_config=q_agent_config, output_dir=default_output_dir(), title="TrainingQAgent vs DefendMinimalDefender") return client_config
def default_config() -> ClientConfig: """ :return: Default configuration for the experiment """ q_agent_config = QAgentConfig(gamma=0.999, alpha=0.0005, epsilon=1, render=False, eval_sleep=0.9, min_epsilon=0.01, eval_episodes=100, train_log_frequency=100, epsilon_decay=0.9999, video=True, eval_log_frequency=1, video_fps=5, video_dir=default_output_dir() + "/videos", num_episodes=20001, eval_render=False, gifs=True, gif_dir=default_output_dir() + "/gifs", eval_frequency=1000, attacker=False, defender=True, save_dir=default_output_dir() + "/data", video_frequency=101) env_name = "idsgame-maximal_attack-v7" client_config = ClientConfig(env_name=env_name, defender_type=AgentType.TABULAR_Q_AGENT.value, mode=RunnerMode.TRAIN_DEFENDER.value, q_agent_config=q_agent_config, output_dir=default_output_dir(), title="AttackMaximalAttacker vs TrainingQAgent", run_many=True, random_seeds=[0, 999, 299, 399, 499]) return client_config
def default_config() -> ClientConfig: """ :return: Default configuration for the experiment """ q_agent_config = QAgentConfig( gamma=0.999, alpha=0.0005, epsilon=1, render=False, eval_sleep=0.9, min_epsilon=0.01, eval_episodes=100, train_log_frequency=100, epsilon_decay=0.999, video=True, eval_log_frequency=1, video_fps=5, video_dir=default_output_dir() + "/results/videos", num_episodes=20001, eval_render=False, gifs=True, gif_dir=default_output_dir() + "/results/gifs", eval_frequency=2000, attacker=True, defender=False, video_frequency=101, save_dir=default_output_dir() + "/results/data", tab_full_state_space=True) env_name = "idsgame-minimal_defense-v13" client_config = ClientConfig( env_name=env_name, attacker_type=AgentType.TABULAR_Q_AGENT.value, mode=RunnerMode.TRAIN_ATTACKER.value, q_agent_config=q_agent_config, output_dir=default_output_dir(), title="TrainingQAgent vs DefendMinimalDefender", run_many=False, random_seeds=[0, 999, 299, 399, 499]) return client_config
optimizer="Adam", lr_exp_decay=True, lr_decay_rate=0.9999) q_agent_config = QAgentConfig( gamma=0.999, alpha=0.00001, epsilon=1, render=False, eval_sleep=0.9, min_epsilon=0.01, eval_episodes=100, train_log_frequency=100, epsilon_decay=0.9999, video=True, eval_log_frequency=1, video_fps=5, video_dir=default_output_dir() + "/results/videos/" + str(random_seed), num_episodes=20001, eval_render=False, gifs=True, gif_dir=default_output_dir() + "/results/gifs/" + str(random_seed), eval_frequency=1000, attacker=False, defender=True, video_frequency=101, save_dir=default_output_dir() + "/results/data/" + str(random_seed), dqn_config=dqn_config, checkpoint_freq=5000) env_name = "idsgame-maximal_attack-v3" env = gym.make(env_name, save_dir=default_output_dir() + "/results/data/" +