Skip to content

shiragg1/icr-cw-dnn

Repository files navigation

Implementing a Neural Network to Detect Simulated Gravitational Wave Data

Lexington Smith and Shira Goldhaber-Gordon, 2021 Institute for Computing in Research Project. Licensed under the GNU general Public License 3.0.

Description

This deep neural network reads and analyzes data sets with an end goal of identifying a sine wave amidst noise. This sine wave is a model of a continuous gravitational wave meaning that it is possible for our neural net to use real LIGO data as well as what we generated. We used TensorFlow Keras to build this neural net which has performed well with current testing.

Installation and Instructions

To clone the repository and access our code, run:

git clone git@github.com:shiragg1/icr-cw-dnn.git

To generate the data files, run:

chmod +x load-data.sh
./load-data.sh

Alternatively to running these two commands - which will generate all five data sets - you can just generate one of the data sets directly from the .py file. To make sure the data was generated correctly, run:

chmod +x data-check.py
./data-check.py

This will print out the arrays and their shapes. If you opted to generate only one of the data sets you will have to edit the data-check.py file to only check for that data set.

Now to run the neural network. Set the correct path in cw-dnn.py and set the four data files to the file you wish to run. Then run:

chmod +x cw-dnn.py
./cw-dnn.py

We found higher accuracy in the neural network that took the fourier transforms of the data. We recomend running this DNN rather than the previous one. Set the correct path in cw-fft-dnn.py and set the four data files to the file you wish to run. Then run:

chmod +x cw-fft-dnn.py
./cw-fft-dnn.py

To create graphs displaying waves and their fourier transforms, set the correct path then run:

chmod +x graphs.py
./graphs.py

To run the fft DNN on all the noise groups multiple times to record accuracies and graph the training process, run:

chmod +x test-cw-fft-dnn.py
./test-cw-fft-dnn.py

Unfortunately the test program requires a high RAM computer.

Notes

*The numbers in the data set names refer to the standard deviation of noise within that given dataset.

*LIGO has not been able to detect continuous gravitational waves before; however, machine learning advances in neural networks like this one look promising for future directions.

*At the moment, the DNN accuracy is not extremely high for high noise data. However, if you have high computing power and can run more data files than the default 2,000 the accuracy should improve substantially. To change this, edit the number of files being created in the number-data.py files.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published