CoolFace
Modelpublic

Laddaphone/topoconf-mammography-edl

sourceHugging Facemitupdated 21d agoView on Hugging Face
0likes
Model Card

TopoConf: Evidential Deep Learning for Graph-Based Mammography

Overview

Model checkpoints and analysis results for the paper: "Evidence Phenotypes Determine Optimal Uncertainty Channels for Safety-Critical Mammography Triage"

Submitted to CMBBE: Imaging & Visualization.

Key Findings

  1. 1.Evidence-poor FNs on CBIS-DDSM (S-ratio=0.584): EDL's vacuity signal catches 97.5% of false negatives at 42% review burden on digitized-film mammography.
  1. 1.Evidence-normal FNs on digital FFDM (INbreast S-ratio=0.983, CMMD S-ratio=1.109): Vacuity-based triage fails; predictive entropy is the better FN detection signal.
  1. 1.The S-ratio diagnostic: Compute SFN / Scorrect on your calibration set to determine which triage channel to deploy.

Contents

Checkpoints (checkpoints/)

DatasetModelsSeedsArchitecture
CBIS-DDSMNoTopo, TopoConf, Softmax, MCDrop, GCN, ResNet42-51ResNet-18→L3 + GAT
INbreastNoTopo, TopoConf, Softmax, MCDrop, GCN, ResNet42-51ResNet-18→L3 + GAT
CMMDNoTopo (EDL)42-51ResNet-18→L3 + GAT
Cross-domainCBIS→INB (TC, NT)42-46ResNet-18→L3 + GAT

All EDL models return Dirichlet alphas directly (softplus + 1 inside forward()). Non-EDL models return raw logits.

Architecture

  • —Backbone: ResNet-18 truncated at layer3 (256→128 dim)
  • —Graph: 3× GAT layers (4 heads, 128 dim) with residual connections + LayerNorm
  • —EDL head: Linear(128, 2) + Softplus + 1.0
  • —Parameters: ~2.9M (graph models), ~11.2M (ResNet baseline)

Results (results/)

Pre-computed analysis tables:

  • —error_prediction.csv — corrected AUROC (E[H], MI, vacuity, H_pred)
  • —triage_75pct.csv — 75th-percentile triage with old/corrected signals
  • —triage_matched_workload.csv — FN catch at 7 burden levels
  • —three_dataset_comprehensive.csv — S-ratio, all metrics, 3 datasets
  • —directional_prediction.csv — R_S → triage advantage analysis
  • —cbis_subgroup_analysis.csv — clinical subgroup FN phenotypes

Ablation (results/ablation/)

  • —class_weight_ablation.csv — [1,1], [1,3], [1,5], [1,10] × 10 seeds
  • —kl_coef_ablation.csv — 0.0, 0.001, 0.01, 0.1 × 10 seeds
  • —deep_ensemble.csv — 5 members × 10 seeds (softmax CE loss)

Usage

python
import torch
from model import TopoConfGNN  # See training code

model = TopoConfGNN(topo=False)  # NoTopo variant
state = torch.load("checkpoints/cbis/NoTopo/CBIS_NoTopo_s42.pt",
                    map_location="cpu")
if "model_state_dict" in state:
    state = state["model_state_dict"]
model.load_state_dict(state, strict=True)
model.eval()

# Returns Dirichlet alphas directly
alphas = model(graph_data)  # shape: (batch, 2)
S = alphas.sum(dim=1)
vacuity = 2.0 / S  # Evidence-based uncertainty

Training Details

  • —Loss: Type II maximum likelihood (digamma) + 0.01 × KL regularization
  • —Optimizer: Adam, lr=1e-4, cosine annealing
  • —Class weights: [1.0, 5.0] (benign, malignant)
  • —Epochs: 80, early stopping patience=15
  • —Splits: Patient-disjoint (50% train, 15% val, 15% cal, 20% test)
  • —Seeds: 42-51 (10 random partitions)

Citation

bibtex
@article{douangnouanexay2025evidence,
  title={Evidence Phenotypes Determine Optimal Uncertainty Channels
         for Safety-Critical Mammography Triage},
  author={Douangnouanexay, Laddaphone},
  journal={CMBBE: Imaging \& Visualization},
  year={2026}
}

License

MIT