A cura di: Leonardo Schiavo
Tecnologie usate:
Lβobiettivo del presente lavoro Γ¨ progettare e valutare un sistema gene- rativo basato su VQC per la produzione di dati sintetici tabulari fair, analizzandone e ottimizzandone il trade-off tridimensionale tra espressivitΓ dellβansatz (utility), mitigazione del bias (fairness) e interpretabilitΓ del circuito (explainability).
La peculiaritΓ dell'approccio VQC risiede invece in due proprietΓ strutturali assenti nei modelli generativi linguistici classici:
- Fairness come Vincolo Variazionale Esplicito: A differenza dei modelli basati su prompt (black-box ed euristici), i VQC permettono di incorporare vincoli matematici formali di equitΓ direttamente nella funzione di funzione di costo globale:
I gradienti analitici
- Trasparenza e IspezionabilitΓ Causale: I VQC consentono di analizzare esplicitamente il contributo dei singoli gate e parametri del circuito tramite metodi analitici quantistici (Quantum Shapley Values, entanglement globale Meyer-Wallach, purezza con qsalto), permettendo di quantificare il trade-off tra espressivitΓ architetturale, complessitΓ circuitale e stabilitΓ delle spiegazioni.
| File Sorgente | Modulo / Ruolo | ResponsabilitΓ Operativa |
|---|---|---|
LS_0512110456_data_pipeline.py |
Data Ingestion & Preprocessing | Download deterministico da UCI ML Repo, selezione |
LS_0512110456_quantum_vqc.py |
Quantum Generator Engine | Template circuitale parametrizzato (Ry-Rz rotazioni + CNOT entangling), codifica Parameter-Shift Rule esatta, ottimizzatore variazionale con loss di fairness vincolata ( |
LS_0512110456_dataset_export.py |
Dataset Exporter | Esportazione dei dataset reali di riferimento e dei dataset sintetici generati dai VQC con ricostruzione delle scale originali. |
LS_0512110456_evaluation.py |
Downstream Evaluator | Protocollo TSTR (Train on Synthetic, Test on Real) su 3 classificatori (RandomForest, XGBoost_stub, MLP); calcolo utility ( |
LS_0512110456_bell_sampling.py |
Quantum Native Diagnostics | Bell State Measurement a due copie; calcolo della Trace Distance sugli stati di input, Quantum Statistical Parity (qsp_diff_output) e identificazione delle Bias Pairs. |
LS_0512110456_entanglement_analysis.py |
Entanglement Engine | Calcolo dell'entanglement multipartito (indice di Meyer-Wallach) e stima del coefficiente Shor-Laflamme qsalto. |
LS_0512110456_svqx.py |
Quantum Explainability (XAI) | Calcolo esatto dei Quantum Shapley Values (SVQX) a livello di singoli gate groups (rotazioni per qubit e blocchi CNOT). |
LS_0512110456_pipeline_orchestrator.py |
End-to-End Orchestrator | Gestione della griglia .json, meccanismo self-healing per resume idempotente senza duplicazioni, esportazione raw unificata con iniezione di 6 covariate strutturali. |
LS_0512110456_dataset_analysis.py |
Descriptive Analytics | Estrazione parametri statistici (Min, Max, Quartili, Std, IQR) su feature continue e frequenze marginali per classi target e sensibili. |
LS_0512110456_statistical_engine.py |
Inferential Statistics Engine | Shapiro-Wilk diagnostico bloccante, test omnibus di Friedman con correzione Holm / FDR-BH, matrici post-hoc Nemenyi, stabilitΓ inter-seed SVQX e 12 correlazioni di complessitΓ architetturale. |
LS_0512110456_visualization_suite.py |
Visual Analytics Suite | Generazione di 75 figure PNG ad alta risoluzione ( |
LS_0512110456_validation_suite.py |
Quality Gate & Compliance | Validazione formale cumulativa: verifica shape, unicitΓ chiavi primarie, range matematici delle matrici, merge relazionali |
3 Dataset UCI Γ 6 Configurazioni VQC Γ 3 Seed Locali = 54 Run Totali
βββββββββββββββββββββββββββββββββββββββββββββββββ
β PIPELINE DI RICERCA β
βββββββββββββββββββββββββ¬ββββββββββββββββββββββββ
β
ββββββββββββββββββββββΌβββββββββββββββββββββ
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β German Credit β β Heart Disease β β Student Perf. β
β (9 Qubit) β β (10 Qubit) β β (10 Qubit) β
ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ
β β β
ββββββββββββββββββββββΌβββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββ
β 6 Configurazioni VQC: L1/L2 Γ Linear/All-to-All β
β Single Encoding & Data Re-Uploading (3 Seed Ciascuna)β
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββΌβββββββββββββββββββββ
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β RQ1: Utility β β RQ2: Fairness β β RQ3: Quantum β
β F1, Accuracy β β SPD, EOD, AOD β β SVQX, qsalto, β
β TSTR Protocol β β Multi-Attributo β β ComplessitΓ β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
| ID Configurazione | ProfonditΓ ( |
Topologia Entanglement | Strategia Encoding | Parametri ( |
Porte CNOT ( |
|---|---|---|---|---|---|
L1_linear |
1 | Lineare (nearest neighbor) | Single Encoding | 20 | 9 |
L1_all_to_all |
1 | Completa (All-to-All) | Single Encoding | 20 | 45 |
L2_linear |
2 | Lineare (nearest neighbor) | Single Encoding | 40 | 18 |
L2_all_to_all |
2 | Completa (All-to-All) | Single Encoding | 40 | 90 |
L2_re_upload |
2 | Lineare (nearest neighbor) | Data Re-Uploading | 40 | 18 |
L2_all_to_all_re_upload |
2 | Completa (All-to-All) | Data Re-Uploading | 40 | 90 |
Il simulatore esegue calcoli su vettori di stato esatti (
-
German Credit (UCI 144):
$7\text{ feature} + 1\text{ target} + 1\text{ sensibile} = \mathbf{9\text{ qubit}}$ ($512\text{ ampiezze}$ ). Gate groups analizzati: 10 (9 rotazioni qubit + 1 blocco CNOT). -
Heart Disease (UCI 45):
$8\text{ feature} + 1\text{ target} + 1\text{ sensibile} = \mathbf{10\text{ qubit}}$ ($1024\text{ ampiezze}$ ). Gate groups analizzati: 11 (10 rotazioni qubit + 1 blocco CNOT). -
Student Performance (UCI 320):
$8\text{ feature} + 1\text{ target} + 1\text{ sensibile} = \mathbf{10\text{ qubit}}$ ($1024\text{ ampiezze}$ ). Gate groups analizzati: 11 (10 rotazioni qubit + 1 blocco CNOT).
-
Binarizzazione a Soglia Fissa (
$A_{\text{age}}$ ): German Credit ($\text{Age} \ge 25$ ), Heart Disease ($\text{Age} \ge 55$ ), Student Performance ($\text{Age} \ge 18$ ). -
Attributo Demografico (
$A_{\text{sex}}$ ): Genere codificato dal dominio d'origine. -
Attributo Intersezionale (
$A_{\text{overall}}$ ): Calcolato come$A_{\text{overall}} = (A_{\text{sex}} == 1) \land (A_{\text{age}} == 1)$ . -
PerchΓ©
$A_{\text{overall}}$ Γ¨ l'unico attributo ottimizzato ed esportato: Ottimizzare il circuito sull'intersezione previene il fairness gerrymandering (un modello puΓ² risultare equo su genere ed etΓ presi singolarmente pur discriminando sistematicamente il sottogruppo congiunto). -
Fairness Through Unawareness: L'attributo
sexnon entra mai nella matrice predittiva$X$ per prevenire il disparate treatment diretto da parte dei classificatori classici.ageè presente sia come feature continua predittiva in$X$ sia come base di discretizzazione per$A_{\text{age}}$ .
-
Ottimizzazione VQC:
EPOCHS = 15,LEARNING_RATE = 0.4,LAMBDA_FAIR = 5.0,BATCH_FRAC = 0.25. -
ReplicabilitΓ : Seed globali e locali
SEEDS = [7, 17, 27]. -
Split Dati:
$70%$ Training (ricostruzione sintetica) e$30%$ Test set reale stratificato su$A_{\text{overall}}$ .
βββββββββββββββββββββββββββββββββββββββββββ
β QUADRO DELLE RESEARCH QUESTIONS β
ββββββββββββββββββββββ¬βββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββ
βΌ βΌ βΌ
ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ
β RQ1 β β RQ2 β β RQ3 β
β Downstream β β Downstream β β Quantum Audit, β
β Utility (TSTR) β β Fairness β β XAI & Complexity β
ββββββββββββββββββββ€ ββββββββββββββββββββ€ ββββββββββββββββββββ€
β β’ F1-Score β β β’ SPD (Demogr.) β β β’ SVQX Gate XAI β
β β’ Accuracy β β β’ EOD (Eq. Odds) β β β’ Ranking Stab. β
β β’ Random Forest β β β’ AOD (Avg Odds) β β β’ Meyer-Wallach β
β β’ XGBoost stub β β β’ Age, Sex, Over.β β β’ qsalto Purity β
β β’ MLP Classifier β β β’ Trace Distance β β β’ 12 Correlazioniβ
ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ
-
Obiettivo: Verificare se i dati generati dal VQC l'utilitΓ predittiva del dominio addestrando classificatori standard sui soli dati sintetici e testandoli sul test set reale (Train on Synthetic, Test on Real)..
-
Metriche: F1-Score (macro/weighted), Accuracy.
-
Classificatori Downstream:
RandomForest,XGBoost_stub(GradientBoosting),MLP(Multi-Layer Perceptron). -
File Raw Generato:
Analysis/RQ1_data/rq1_models_results.csv($162\text{ righe} = 54\text{ run} \times 3\text{ modelli}$ ). -
Output Statistici:
rq1_mean_std.csv,shapiro.csv,friedman.csv($9\text{ blocchi}$ seed Γ model),f1_NemenyiTestResults.csv,accuracy_NemenyiTestResults.csv. -
Output Grafici:
f1_NemenyiTestResults_heatmap.png,accuracy_NemenyiTestResults_heatmap.png.
-
Obiettivo: Rispondere alla valutazione indiretta della fairness, misurando la mitigazione del bias sui singoli attributi protetti (
age,sex) e sulla loro congiunzione intersezionale (overall), correlando l'equitΓ con la geometria dello spazio di Hilbert -
Metriche di Fairness Classica:
- Statistical Parity Difference:
$\text{SPD} = P(\hat{Y}=1 \mid A=0) - P(\hat{Y}=1 \mid A=1)$ - Equal Opportunity Difference:
$\text{EOD} = P(\hat{Y}=1 \mid A=0, Y=1) - P(\hat{Y}=1 \mid A=1, Y=1)$ - Average Odds Difference: $\text{AOD} = \frac{1}{2} \left( \vert{}\text{FPR}{A=0} - \text{FPR}{A=1}\vert{} + \vert{}\text{TPR}{A=0} - \text{TPR}{A=1}\vert{} \right)$
- Statistical Parity Difference:
-
Metriche Quantum-Native:
-
trace_distance_input: Distanza di traccia tra le matrici densitΓ degli stati di input protetti e non protetti. -
qsp_diff_output: Differenza di paritΓ statistica quantistica misurata direttamente all'uscita del circuito. -
is_bias_pair_candidate: Flag booleano di identificazione delle coppie di bias (coppie con elevata divergenza geometrica).
-
-
File Raw Generato:
Analysis/RQ2_data/rq2_all_fairness_results_multiattribute.csv($486\text{ righe} = 54\text{ run} \times 3\text{ modelli} \times 3\text{ attributi}$ ). -
Output Statistici:
rq2_mean_std.csv,shapiro.csv,friedman.csv(per dataset e per singolo attributo a$9\text{ blocchi}$ ), matrici Nemenyi per ciascuna combinazione metrica-attributo. -
Output Grafici: Heatmap Nemenyi disaggregate per
age,sexeoverallsu SPD, EOD, AOD.
-
Obiettivo: Ispezionare i meccanismi interni del VQC, misurare il contributo causale dei singoli gate, quantificare la stabilitΓ delle spiegazioni e correlare la complessitΓ circuitale con fairness ed entanglement. Indagare l'effetto di profonditΓ (
$L$ ), topologia di entanglement ed encoding sulle proprietΓ quantistiche pure (Meyer-Wallach, qsalto) e verificare il trade-off tra espressivitΓ architetturale, stabilitΓ delle spiegazioni (SVQX) e mitigazione del bias. -
Metriche di SpiegabilitΓ e Circuito:
- Quantum Shapley Values (SVQX): Attribuzione di importanza a ciascun gate group $g (contributo causale esatto di ogni gate group).
- Indice di Concentrazione Gini SVQX: Misura di concentrazione/dispersione dell'attribuzione causale nel circuito.
- StabilitΓ Inter-Seed SVQX: Concordanza media di rango pairwise di Spearman (
$\bar{\rho}$ ) tra i ranking dei gate group nelle repliche con seed 7, 17 e 27. - Meyer-Wallach Entanglement Score: Misura dell'entanglement globale medio a molti corpi generato dal circuito.
- Stime di Purezza con qsalto (
$A_1$ estimate): Stima di purezza tramite Bell Sampling a 2 copie con$2048\text{ shot}$ .
-
Analisi di ComplessitΓ e Trade (12 Coppie per Dataset):
- Predittori di ComplessitΓ (
$X$ ):cnot_count,n_params,n_layers. - Outcome (
$Y$ ):aod_mean,spd_mean,eod_mean,entanglement_score. - Metodo: Correlazione di Pearson (se normalitΓ Shapiro verificata) o Spearman (se non normale).
- Predittori di ComplessitΓ (
-
File Raw Generato:
Analysis/RQ3_data/rq3_all_results.csv($576\text{ righe} = 18\text{ run}\times 10\text{ gate} + 36\text{ run}\times 11\text{ gate}$ ). -
Output Statistici:
rq3_gate_mean_std.csv,rq3_gate_shapiro.csv,gate/friedman.csv($30/33\text{ blocchi}$ ),svqx_value_NemenyiTestResults.csv,svqx_stability_spearman.csv,rq3_run_mean_std.csv,rq3_run_shapiro.csv,run/friedman.csv,complexity_correlations.csv. -
Output Grafici:
svqx_NemenyiTestResults_heatmap.png,svqx_stability_bars.png(barplot in$[-1, 1]$ ),$36\text{ scatter plot}$ complexity_scatter_<metric_x>_<metric_y>.pngcon retta di regressione e banda di confidenza$95%$ .
Quantum_Dataset_Generation_Online_Appendix/
Datasets/
βββ german_credit/ (19 CSV: 1 reale + 18 sintetici)
βββ heart_disease/ (19 CSV: 1 reale + 18 sintetici)
βββ student_performance/ (19 CSV: 1 reale + 18 sintetici)
DatasetsAnalysis/
βββ german_credit/{age,overall,target}_statistics.csv
βββ heart_disease/{age,overall,target}_statistics.csv
βββ student_performance/{age,overall,target}_statistics.csv
Analysis/
βββ RQ1_data/rq1_models_results.csv
βββ RQ2_data/rq2_all_fairness_results_multiattribute.csv
βββ RQ3_data/rq3_all_results.csv
StatisticalResults/
βββ RQ1/<German|Heart|Student>/
β βββ rq1_mean_std.csv, shapiro.csv, friedman.csv
β βββ {f1,accuracy}_NemenyiTestResults.csv
βββ RQ2/<German|Heart|Student>/
β βββ rq2_mean_std.csv, shapiro.csv, friedman.csv
β βββ {age,sex,overall}/
β βββ friedman.csv
β βββ {spd,eod,aod,
β trace_distance_input,
β qsp_diff_output}_NemenyiTestResults.csv
βββ RQ3/<German|Heart|Student>/
βββ gate/
β βββ rq3_gate_mean_std.csv, rq3_gate_shapiro.csv, friedman.csv
β βββ svqx_value_NemenyiTestResults.csv
β βββ svqx_stability_spearman.csv
βββ run/
βββ rq3_run_mean_std.csv, rq3_run_shapiro.csv, friedman.csv
βββ {svqx_concentration,
β entanglement_score,
β qsalto_a1_estimate}_NemenyiTestResults.csv
βββ complexity_correlations.csv
VisualizationResults/
βββ RQ1/<German|Heart|Student>/
β βββ {f1,accuracy}_NemenyiTestResults_heatmap.png
βββ RQ2/<German|Heart|Student>/<age|sex|overall>/
β βββ {spd,eod,aod}_NemenyiTestResults_heatmap.png
βββ RQ3/<German|Heart|Student>/
βββ svqx_NemenyiTestResults_heatmap.png
βββ svqx_stability_bars.png
βββ complexity_scatter_{cnot_count,
n_params,
n_layers}_{aod_mean,
spd_mean,
eod_mean,
entanglement_score}.png
ValidationResults/
βββ validation_report.txt (formale di validazione: [PASS])
βββ validation_errors.txt (Tracciamento errori: vuoto a pipeline completata)
Per garantire la piena riproducibilitΓ scientifica ed evitare disallineamenti tra versioni di librerie, si raccomanda di utilizzare le seguenti versioni dei pacchetti:
qiskit==2.5.2
qiskit-aer==0.17.2
ucimlrepo==0.0.7
qsalto==0.2.2
scikit-learn==1.6.1
pandas==2.2.3
numpy==2.1.3
scipy==1.16.3
statsmodels==0.14.6
matplotlib==3.10.0
seaborn==0.13.2
rustworkx==0.18.1
stevedore==5.9.1
Comando di installazione a prova di invecchiamento:
pip install qiskit==2.5.2 qiskit-aer==0.17.2 ucimlrepo==0.0.7 qsalto==0.2.2 scikit-learn==1.6.1 pandas==2.2.3 numpy==2.1.3 scipy==1.16.3 statsmodels==0.14.6 matplotlib==3.10.0 seaborn==0.13.2Per utilizzare la pipeline, lanciare i seguenti comandi:
# 1. Esecuzione della computazione quantistica end-to-end (54 run)
python -u LS_0512110456_pipeline_orchestrator.py
# 2. Estrazione delle statistiche descrittive sui dataset esportati
python -u LS_0512110456_dataset_analysis.py
# 3. Elaborazione del motore statistico inferenziale (Friedman, Nemenyi, Correlazioni)
python -u LS_0512110456_statistical_engine.py
# 4. Generazione delle 75 visualizzazioni grafiche ad alta risoluzione
python -u LS_0512110456_visualization_suite.py
# 5. Audit finale e certificazione di conformitΓ
python -u LS_0512110456_validation_suite.py