Particle identification has always been a crucial machine learning task in any of the CERN's (European Council for Nuclear Research) experiments (ATLAS, CMS, ALICE, LHCb, LHCf, TOTEM, MoEDAL and DUNE). Before the rise of deep learning algorithms, this task was done using the boosted machine learning algorithms, like boosted Decision trees.
In this project, I have trained two deep learning models, MLP and 1D-CNN, to successfully classify 6 different types of particles from the Monte Carlo's simulated dataset of LHCb.
The metric used for evaluating the perfoemance of the models is ROC-AUC or Receiver operating characteristic- area under curve. These models achieved great results from this dataset, but still new contributions are welcome!
- The
networksdirectory contains the network architecture of the two models mentioned earlier. modelsdirectory compile those networks to get ready for training.- The preprocessing of the data required for the training is present in the
preprocessingdirectory. - Finally the
trainingfolder contains scripts to train both the models. - To make everythin simple, I have added a
scriptsfolder that run shell scripts commands for training and other tasks. - The
testsdirectory contains the scripts to test the individual predictors present in the root directory. - The
notebooksdirectory contains the notebooks used to write the experiments of the software.
The scripts makes it easy for users to run the training and testing commands directly from the command line.
For successful installation and training the models, clone the repository, move into the root dirctory of the project, and run the following commands in your terminal or command prompt:
1. $ scripts/setup.sh
2. $ scripts/train_mlp.sh
3. $ scripts/test_mlp.sh
4. $ scripts/train_cnn.sh
5. $ scripts/test_cnn.sh