Skip to content

Machine Learning-Based Distinguisher of Two-Peaked Curves

License

Notifications You must be signed in to change notification settings

v1k1nghawk/hydra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hydra

  • Purpose: recognition of a curve with a pair of bursts.

  • Usage: inferencer.py XLEFTMOST XRIGHTMOST

  • PARAMETERS:

    XLEFTMOST bottom boundary of the examined graph's slots.
    XRIGHTMOST top boundary of the examined graph's slots.


  • Description:

From different, somehow distributed normalized graphs (datapoints) Hydra can determine curves with a pair of spikes (two peaks/bursts) using a deep learning architecture of a multi-layer perceptron. The number of features (slots, bins, sectors, disjoint categories) must be greater than or equal to 100 for each datapoint. Those slots form the X axis of the graph. The value of each normalized feature lies in the range from 0 to 1. These values form the graph's Y axis. The graph's X and Y in combination represent some shape (curve) (in other words, a feature vector with (XRIGHTMOST - XLEFTMOST - 1) elements).

For its task Hydra randomly generates a dataset with datapoints (feature vectors and their corresponding True(1)/False(0) labels) based on sampling from a number of probability density functions, trains a model on this dataset, and labels a new given datapoint (makes prediction) based on the model's training. Saves/Loads the new datapoint (in the NPZ format) and/or the trained model (in the TensorFlow SavedModel format) for future use, displays the processed datapoint.

  • Software used during development: Python 3.8.7, Keras 2.4.3, Numpy 1.19.5, Matplotlib 3.3.4

  • Call example:

inferencer.py 1 102

  • Prediction examples:
Two Bursts Curves Other Curves