• Stars
    star
    108
  • Rank 321,259 (Top 7 %)
  • Language
    Jupyter Notebook
  • License
    MIT License
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Using RL for anomaly detection in NSL-KDD

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

Code associated with the paper: "Adversarial environment reinforcement learning algorithm for intrusion detection", G Caminero, M Lopez-Martin, B Carro, Computer Networks, 2019

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