The project deals with identifying and recognizing gravitational wave signals through noisy space signals using deep learning. The CNN is trained to classify patterns that occur in spectrograms related to different kinds of gravitational wave signals.
Gravitational waves are distortions in space-time that arise due to catastrophic celestial events like black hole collisions. These are difficult to detect due to the presence of significant amounts of noise.
- Build a deep learning model to classify gravitational wave signals
- Automatically distinguish between real signals and noise
- Analyze model performance using multiple evaluation metrics
- Input data consists of spectrogram images
- Images are resized to a uniform shape (128x128)
- Pixel values are normalized for better training
- Convolutional Neural Network (CNN) used for feature extraction
- Multiple Conv2D and MaxPooling layers
- Dropout layer added to prevent overfitting
- Softmax activation for multi-class classification
- Model trained on labeled dataset
- Validation data used to monitor performance
- Early stopping and checkpoints used (if implemented)
- Accuracy
- Loss curves
- Confusion Matrix
- ROC / Precision-Recall curves
- Top-K Accuracy
The CNN model was trained for 10 epochs on a dataset containing 31,868 spectrogram images across 22 classes.
| Metric | Performance |
|---|---|
| Training Accuracy | 96.98% |
| Best Validation Accuracy | 94.85% |
| Test Accuracy | 94.75% |
The model achieved a test accuracy of 94.75%, demonstrating strong performance in classifying gravitational-wave signal patterns across multiple classes.
The following are the visualizations generated to evaluate the model:
- Training Accuracy vs Validation Accuracy
- Training Loss vs Validation Loss
- Confusion Matrix (Normalized)
- ROC Curve (Multi-class)
- Precision-Recall Curve
- Sample Predictions (Correct vs Incorrect)
- Python
- TensorFlow / Keras
- NumPy
- Matplotlib
- Scikit-learn
Open the notebook directly: https://colab.research.google.com/github/Anushka-Pokhriyal/Gravitational-Wave-Signal-Classification/blob/main/Gravitational_Wave_Signal_Classification.ipynb
- Clone the repository:
git clone https://github.com/Anushka-Pokhriyal/Gravitational-Wave-Signal-Classification.git- Install dependencies:
pip install tensorflow numpy matplotlib scikit-learn- Open the notebook:
- Run in Jupyter Notebook or Google Colab
- Understanding of CNNs for image classification
- Handling noisy real-world data
- Model evaluation using multiple metrics
- Visualization of model performance
- Detection of black hole collisions
- Space research and astrophysics
- Signal classification in noisy environments
**Anushka **
Dataset inspired by gravitational wave detection research (Gravity Spy / Kaggle) (https://www.kaggle.com/datasets/tentotheminus9/gravity-spy-gravitational-waves)
The project uses the Gravity Spy gravitational-wave spectrogram dataset. The dataset contains labeled spectrogram images representing different types of gravitational-wave signal morphologies and noise patterns.
| Dataset Split | Number of Images | Number of Classes |
|---|---|---|
| Training | 22,348 | 22 |
| Validation | 4,800 | 22 |
| Testing | 4,720 | 22 |
| Total | 31,868 | 22 |
The dataset is divided into training, validation, and testing sets to train the CNN model, monitor its performance during training, and evaluate its final generalization performance.
Due to the size of the dataset, the raw dataset is not included in this repository.