/Anomaly-ReactionRL

Using RL for anomaly detection in NSL-KDD

Primary LanguageJupyter NotebookMIT LicenseMIT

AnomalyDetectionRL

Overview

Using Reinforcement Learning in order to detect anomalies and maybe a future response The dataset used is NSL-KDD with data of multiple anomalies

Using deep Q-Learning with keras/tensorflow to generate the network

Simple anomaly detection

  • Detects normal or anomaly
  • Train set in: AD.py
  • Test set in: test.py

Multiple anomaly detection (37+1 labels)

Type anomaly detection (4+1 labels)

  • Detects only the attack type between normal, DoS, Probe, R2L, U2R

  • Train set in: typeAD.py

  • Test set in: type_test.py

  • Train Dueling DDQN (tensorflow) in typeAD_tf.py

Adversarial/Multi Agent RL(AE-RL)

A3C

  • Train-Test in: A3CtypeAD.py
  • Summary in tensorboard: tensorboard --logdir=tmp

Notebooks