File size: 3,064 Bytes
d5fbb9a
 
 
 
 
 
 
 
 
48b498d
 
 
 
 
 
 
d5fbb9a
48b498d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cd12a23
48b498d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d5fbb9a
 
 
 
 
48b498d
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
---
license: mit
language:
- en
tags:
- uncertainty
- uncertainty-quantification
- code
---

# SPC-UQ: A Post-hoc, Efficient, and Unified Uncertainty Quantification Framework

This repository contains the official code for **SPC-UQ** (Split-Point Consistency for Uncertainty Quantification), a post-hoc framework that jointly quantifies aleatoric and epistemic uncertainty with a single forward pass.

It accompanies the paper:

[**"Post-Hoc Split-Point Self-Consistency Verification for Efficient, Unified Quantification of Aleatoric and Epistemic Uncertainty in Deep Learning."**](https://arxiv.org/abs/2509.13262)

## Key Features

- **Post-hoc** – augments pre-trained network without architectural changes and retraining.
- **Unified** – supports both regression and classification tasks in deep learning.  
- **Efficient** – produces aleatoric and epistemic uncertainty estimates in one forward pass.
- **Calibration** – provides mechanisms to calibrate aleatoric uncertainty and improve predictive reliability. 

## Repository Structure

```
Cubic_Regression/             # Toy cubic regression for fast demonstration.
MNIST_Classification/         # Digit classification for fast demonstration.
UCI_Benchmarks/               # Standard UCI regression datasets for scalar regression evaluation.
Monocular_Depth_Estimation/   # Monocular end-to-end image depth estimation for high-dimensional regression.
Image_Classification/         # CIFAR-10/100, ImageNet-1K for large-scale image classification.
Multimodal_Classification/    # LUMA multimodal benchmark (image/audio/text) for multimodal classification tasks.
```

Each directory provides scripts to reproduce the corresponding experiments.

## Installation

We recommend using [conda](https://docs.conda.io/en/latest/) to manage dependencies.  
All required packages and versions except Multimodal_Classification are specified in `environment.yml`.

### Step 1: Clone the repository
```bash
huggingface-cli download zzz0527/SPC-UQ --local-dir SPC-UQ
cd SPC-UQ
```
### Step 2: Create and activate the environment
```bash
conda env create -f environment.yml
conda activate spc_uq
```

## Usage

Each subdirectory corresponds to a specific benchmark.  
To run an experiment, navigate into the corresponding folder and follow the instructions provided in its `README.md`.  

### Quick Start
For a fast verification, we provide two lightweight benchmark tasks:

```bash
# Synthetic cubic regression
python Cubic_Regression/run_cubic_tests.py

# MNIST classification
python MNIST_Classification/run_cls_tests.py
```

See the documentation in each subdirectory for details on dataset preparation, configuration options, and advanced usage.

## Citation

If you use SPC-UQ in your research, please cite our paper:

```
@article{zhao2025post,
  title={Post-Hoc Split-Point Self-Consistency Verification for Efficient, Unified Quantification of Aleatoric and Epistemic Uncertainty in Deep Learning},
  author={Zhao, Zhizhong and Chen, Ke},
  journal={arXiv preprint arXiv:2509.13262},
  year={2025}
}
```