This is a Mini-Project for our RL course at the University, the objective is to get familiar with RL core concepts.
Ain't much. but it's honest work.
According to the specifications of the Mini-Project, the Environment should be defined from scratch, since gymnasium has an implementation of Environment class which can be suitable as a super class for the defined environment in this Mini-Project
In the context of this project the dataset NSL-KDD is considered to be the base Environment, each row from the dataset is considered as a state.
Dataset has a target class which classes each sample into Normal or Anomaly, Relying on this the Action Space is defined as follows:
Allow
which corresponds toNormal
Deny
which corresponds toAnomaly
Simply, if the agent allows/denies a normal/anomaly traffic respectively it get rewarded +1 otherwise it gets 0.
First clone this project either by:
- Git command:
git clone https://github.com/SlyPex/Reinforcment_Learning_Network_Agent.git
- Github CLI:
gh repo clone SlyPex/Reinforcment_Learning_Network_Agent
Next cd
into the project directory and install the required libraries using :
pip install -r requierments.txt
Then open up the Jupyter Notebook agent_training.ipynb file and run all the cells to train the agent.