This repository contains our Quantum Buddies team solution for the Quantum Coalition Future Leaders in Quantum (QC-FLIQ) Virtual Hackathon organized by UN-ICC. Our project implements a Quantum-Classical Hybrid Neural Network for breast cancer classification using Variational Quantum Algorithms (VQAs).
- Hybrid Architecture: Combines classical neural networks with quantum circuits for enhanced classification
- GPU Acceleration: Supports CUDA for PyTorch and optional GPU acceleration for quantum simulations
- Real-world Application: Focuses on breast cancer diagnosis using the Wisconsin Diagnostic Dataset
- Explainable AI: Implements visualization tools for model interpretability
- Responsible AI: Addresses fairness, robustness, and security considerations
- Challenge Statement
- Technical Approach
- Installation
- Project Structure
- Usage
- Model Architecture
- Results
- Datasets
- Technologies Used
- Ethical Considerations
- Contributing
- License
- Acknowledgments
The hackathon challenges participants to enhance AI/ML classifiers or clusterers using Variational Quantum Algorithms (VQAs). Our solution specifically targets:
- Medical Diagnosis: Binary classification of breast cancer (malignant vs. benign)
- Quantum Enhancement: Leveraging quantum circuits to improve classical ML performance
- Responsible AI: Ensuring fairness, explainability, and robustness in healthcare applications
Our solution implements a sophisticated three-stage hybrid model leveraging both classical and quantum computing paradigms:
-
Classical Preprocessing Network
- Input: 30 original features from Wisconsin Breast Cancer dataset
- PCA Dimensionality Reduction: 30 โ 4 features (retaining >90% variance)
- Architecture: Linear(4 โ 16) โ ReLU โ Linear(16 โ 2) โ Tanh
- Purpose: Feature extraction and preparation for quantum layer
-
Quantum Variational Layer (VQA)
- Circuit Design: 2-qubit variational quantum circuit
- Data Re-uploading Strategy: 3 layers with progressive data encoding
- Gate Structure: RY(data) โ RZ(data) โ CX entanglement โ RY(ฮธ) โ RZ(ฮธ) โ CX
- Parameters: 12 trainable quantum parameters (2 qubits ร 2 gates ร 3 layers)
- Observables: Pauli-Z measurements on both qubits
- Gradient Computation: Parameter-shift rule for quantum gradients
-
Classical Postprocessing Network
- Input: 2 quantum expectation values
- Architecture: Linear(2 โ 8) โ ReLU โ Linear(8 โ 1)
- Output: Single logit for binary classification
- Custom PyTorch Autograd: Full integration with PyTorch's automatic differentiation
- GPU Acceleration: Optional qiskit-aer-gpu support with fallback to CPU
- Medical-Optimized Threshold: Decision threshold of 0.3 (vs standard 0.5) for higher sensitivity
- Class Imbalance Handling: BCEWithLogitsLoss with pos_weight=2.0 for malignant samples
- Reproducible Training: Fixed random seeds across all frameworks (PyTorch, NumPy, Qiskit)
- Python 3.8+
- CUDA 11.8+ (optional, for GPU acceleration)
- Linux/WSL2 or macOS
-
Clone the repository
git clone https://github.com/yourusername/FLIQ-Virtual-Hackathon-UNICC-Challenge-QuantumBreast-Cancer-Classification-Quantum-Buddies.git cd FLIQ-Virtual-Hackathon-UNICC-Challenge-QuantumBreast-Cancer-Classification-Quantum-Buddies -
Create virtual environment
python -m venv quantum_env source quantum_env/bin/activate # On Windows: quantum_env\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Optional: Install CUDA Quantum for GPU acceleration
# For CUDA 12.x ./install_cuda_quantum_cu12.x86_64 # Or install qiskit-aer-gpu pip install qiskit-aer-gpu
FLIQ-Virtual-Hackathon-UNICC-Challenge-QuantumBreast-Cancer-Classification-Quantum-Buddies/
โโโ README.md # This file
โโโ requirements.txt # Python dependencies
โโโ FLIQ-Virtual-Hackathon/ # Main hackathon directory
โ โโโ script.py # Main quantum-classical hybrid model script
โ โโโ FLIQ.ipynb # Main Jupyter notebook for detailed experiments, visualizations, and results
โ โโโ README.md # Original hackathon README (if present, for reference)
โ โโโ Datasets/ # Dataset directory
โ โ โโโ breast+cancer+wisconsin+diagnostic/
โ โ โโโ wine+quality/
โ โ โโโ adult/
โ โ โโโ drug+induced+autoimmunity+prediction/
โ โโโ Sample Code/ # Additional sample implementations
โโโ models/ # Saved model weights
โ โโโ model.pth # Trained model checkpoint
โโโ visualizations/ # Model architecture diagrams
โโโ model_architecture.svg
โโโ model_architecture.html
cd FLIQ-Virtual-Hackathon
python script.pyWhat this script does:
- Data Loading: Loads Wisconsin Breast Cancer dataset from
Sample Code/data/wdbc.data - Preprocessing: Z-score normalization and PCA dimensionality reduction (30โ4 features)
- Model Training: 50 epochs with epoch-wise loss and accuracy display
- Evaluation: Comprehensive test metrics including classification report and confusion matrix
- Visualizations: Four detailed plots for model interpretability
- Model Saving: Saves trained model weights to
model.pth
The training will show:
Epoch 1 | Loss: 0.8234 | Accuracy: 36.48%
Epoch 2 | Loss: 0.7891 | Accuracy: 36.48%
...
Epoch 50 | Loss: 0.6749 | Accuracy: 76.26%
Test Accuracy: 72.81%
Classification Report:
precision recall f1-score support
0.0 0.82 0.69 0.75 68
1.0 0.63 0.78 0.70 46
accuracy 0.73 114
macro avg 0.73 0.74 0.73 114
weighted avg 0.75 0.73 0.73 114
Confusion Matrix:
[[47 21]
[10 36]]
jupyter notebook FLIQ-Virtual-Hackathon/FLIQ.ipynbThe FLIQ.ipynb notebook contains the complete experimental workflow with detailed explanations, intermediate results, and comprehensive visualizations. It serves as the primary research document for the hackathon submission.
import torch
import numpy as np
from script import HybridModel
from sklearn.decomposition import PCA
# Load the trained model
model = HybridModel()
model.load_state_dict(torch.load('model.pth'))
model.eval()
# Prepare new data (same preprocessing as training)
def preprocess_data(X_raw):
# Normalize (using training set statistics)
X_norm = (X_raw - training_mean) / training_std
# Apply PCA (using fitted PCA from training)
X_pca = pca_transformer.transform(X_norm)
return torch.tensor(X_pca, dtype=torch.float32)
# Make predictions
with torch.no_grad():
predictions = model(preprocessed_data)
probabilities = torch.sigmoid(predictions)
binary_predictions = (probabilities > 0.3).float()Wisconsin Breast Cancer Dataset (569 samples, 30 features)
โ
Data Preprocessing (Z-score normalization)
โ
PCA Dimensionality Reduction (30 โ 4 features, >90% variance retained)
โ
Classical Preprocessing Network:
Linear(4 โ 16) โ ReLU โ Linear(16 โ 2) โ Tanh
โ
Quantum Variational Algorithm (VQA):
2-qubit circuit, 3 layers, data re-uploading
RY(dataรlayer) โ CX โ RY(ฮธ) โ RZ(ฮธ) โ CX (ร3 layers)
โ
Quantum Measurements: Pauli-Z on both qubits โ 2 expectation values
โ
Classical Postprocessing Network:
Linear(2 โ 8) โ ReLU โ Linear(8 โ 1)
โ
Sigmoid Activation โ Binary Classification (threshold=0.3)
|0โฉ โ RY(xโรlayer) โ โโ RY(ฮธโ) โ RZ(ฮธโ) โ โโ ... โ โจZโฉ
โ โ
|0โฉ โ RY(xโรlayer) โ โโ RY(ฮธโ) โ RZ(ฮธโ) โ โโ ... โ โจZโฉ
- Qubits: 2
- Layers: 3 (with progressive data encoding)
- Data Encoding: xโ, xโ scaled by layer number (1, 2, 3)
- Trainable Parameters: 12 total (2 qubits ร 2 gates ร 3 layers)
- Entanglement: CX gates between adjacent qubits
- Measurements: Pauli-Z expectation values
- Gradient Method: Parameter-shift rule (ฯ/2 shifts)
- Dataset Split: 80% training (455 samples), 20% testing (114 samples)
- Training Epochs: 50
- Optimizer: Adam (lr=0.001, weight_decay=1e-4)
- Loss Function: BCEWithLogitsLoss (pos_weight=2.0 for class imbalance)
- Decision Threshold: 0.3 (optimized for medical sensitivity)
- Test Accuracy: Typically 73%+ (varies with random seed due to quantum circuit initialization)
- Training Convergence: Model converges within 20-30 epochs
- Class Distribution: 357 benign (62.8%) vs 212 malignant (37.2%) samples
- Threshold Optimization: 0.3 threshold provides better sensitivity for malignant detection
The implementation includes comprehensive evaluation metrics:
- Classification Report: Precision, recall, and F1-score for both classes
- Confusion Matrix: True positive/negative vs false positive/negative analysis
- ROC Analysis: Implicit through threshold optimization
The model provides four key interpretability visualizations:
-
Probability Distribution by True Class:
- Shows prediction confidence distribution for benign vs malignant cases
- Includes decision threshold visualization at 0.3
-
2D Feature Space (ClassicalโQuantum Interface):
- Visualizes the 2 features output by classical network (input to VQA)
- Color-coded by true labels for pattern analysis
-
2D Feature Space (Prediction Analysis):
- Same feature space colored by predicted labels
- Allows comparison with true labels for error analysis
-
Confusion Matrix Heatmap:
- Visual representation of classification performance
- Detailed breakdown of prediction accuracy by class
We primarily use the Breast Cancer Wisconsin Diagnostic Dataset:
- Samples: 569 (357 benign, 212 malignant)
- Features: 30 numeric features computed from digitized images
- Task: Binary classification (Malignant vs. Benign)
- Source: UCI Machine Learning Repository
Additional datasets available for experimentation:
- Wine Quality Dataset
- Adult Income Dataset
- Drug Induced Autoimmunity Prediction Dataset
- Quantum Computing: Qiskit 2.x, CUDA Quantum
- Machine Learning: PyTorch, scikit-learn
- Visualization: Matplotlib, Seaborn
- Development: Python 3.8+, Jupyter Notebooks
- Hardware Acceleration: CUDA (optional)
- Regular evaluation of demographic fairness metrics
- Balanced dataset representation
- Threshold optimization for medical safety
- No patient identifiable information used
- Secure model deployment practices
- GDPR/HIPAA compliance considerations
- Visualization tools for understanding decisions
- Feature importance analysis
- Quantum circuit interpretability
- Medical professional validation recommended
- Conservative threshold for safety
- Clear uncertainty quantification
We welcome contributions! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the CC BY 4.0 License - see the LICENSE file for details.
This project was developed by the Quantum Buddies team for the FLIQ Virtual Hackathon, demonstrating collaborative quantum machine learning research and development.
Team Members:
- Alisa Petrusinskaia
- Gyanateet Dutta
- Fiyin Makinde
- Sid Eliyasu
Special Thanks to the Quantum Buddies Team:
- Alisa Petrusinskaia - Quantum algorithm development and implementation
- Gyanateet Dutta - Machine learning architecture and optimization
- Fiyin Makinde - Data analysis and visualization
- Sid Eliyasu - Model evaluation and testing
Organizations and Resources:
- UN-ICC and Quantum Coalition for organizing the hackathon
- IBM Quantum for Qiskit framework
- NVIDIA for CUDA Quantum support
- UCI Machine Learning Repository for datasets
- All hackathon mentors and organizers
Contact: For questions or collaboration, please reach out through GitHub issues or contact the hackathon organizers:
- Anusha Dandapani (dandapani@unicc.org)
- Gillian Makamara (gillian.makamara@itu.int)
- Devyani Rastogi (rastogi@unicc.org)
- Luke Sebold (lts45@case.edu)
This project demonstrates the potential of quantum-classical hybrid models in real-world medical applications, contributing to the advancement of quantum machine learning for social good.