Giter Site home page Giter Site logo

glouppe / recnn Goto Github PK

View Code? Open in Web Editor NEW
44.0 9.0 17.0 7.09 MB

Repository for the code of "QCD-Aware Recursive Neural Networks for Jet Physics"

License: BSD 3-Clause "New" or "Revised" License

C++ 0.22% Jupyter Notebook 95.01% Python 4.77%
deep-learning jet-clustering particle-physics machine-learning

recnn's Introduction

QCD-Aware Recursive Neural Networks for Jet Physics

https://arxiv.org/abs/1702.00748

  • Gilles Louppe
  • Kyunghyun Cho
  • Cyril Becot
  • Kyle Cranmer

Recent progress in applying machine learning for jet physics has been built upon an analogy between calorimeters and images. In this work, we present a novel class of recursive neural networks built instead upon an analogy between QCD and natural languages. In the analogy, four-momenta are like words and the clustering history of sequential recombination jet algorithms is like the parsing of a sentence. Our approach works directly with the four-momenta of a variable-length set of particles, and the jet-based tree structure varies on an event-by-event basis. Our experiments highlight the flexibility of our method for building task-specific jet embeddings and show that recursive architectures are significantly more accurate and data efficient than previous image-based networks. We extend the analogy from individual jets (sentences) to full events (paragraphs), and show for the first time an event-level classifier operating on all the stable particles produced in an LHC event.


Please cite using the following BibTex entry:

@article{louppe2017qcdrecnn,
           author = {{Louppe}, G. and {Cho}, K. and {Becot}, C and {Cranmer}, K.},
            title = "{QCD-Aware Recursive Neural Networks for Jet Physics}",
          journal = {ArXiv e-prints},
    archivePrefix = "arXiv",
           eprint = {1702.00748},
     primaryClass = "hep-th",
             year = 2017,
            month = feb,
}

Instructions

Requirements

  • python 2.7
  • autograd
  • scikit-learn
  • click

Data

(mirror to be released)

Usage

Classification of W vs QCD jets:

# Training
python train.py data/w-vs-qcd/final/antikt-kt-train.pickle model.pickle

# Test
# see notebooks/04-jet-study.ipynb

Classification of full events:

# Training
python train_event.py data/events/antikt-kt-train.pickle model.pickle

# Test
python test_event.py data/events/antikt-kt-train.pickle data/events/antikt-kt-test.pickle model.pickle 100000 100000 predictions.pickle
# see also notebooks/04-event-study.ipynb

Rebuilding the data

Additional requirements:

Building W vs QCD jet data:

  1. Load data from h5 files. Execute cells 1-3 from notebooks/01-load-w-vs-qcd.ipynb. Adapt cell 3 as necessary.
  2. Split the data into train and test. Execute cells 1-3 from notebooks/02-split-train-test.ipynb. Adapt cell 3 as necessary.
  3. Preprocess the data. Execute cells 1-6 from notebooks/03-preprocessing.ipynb. Adapt cell 6 as necessary. Run one of the following cells depending on the desired topology.
  4. (Optional) Repack the train and test using the last cell of notebooks/03-preprocessing.ipynb. This is necessary for historical reasons to exactly reproduce the paper data.

Building full event data:

  1. Load data from pickle files. Execute cells 1-2, 4-7. Adapt cell 7 as necessary.
  2. Split the data into train and test. Execute cells 1-2 and the last of notebooks/02-split-train-test.ipynb.

recnn's People

Contributors

fdreyer avatar glouppe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

recnn's Issues

About data

Where can I get data?
I am a graduate student. I appreciate your research work and expect more exchanges in the future.

Data avaliability

Hi is the original data pickle files are available for repeatability?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.