Skip to content

Repository files navigation

Targeted Adaptive Design (TAD)

Bayesian active learning for advanced manufacturing and materials design. The method and code are described at https://epubs.siam.org/doi/pdf/10.1137/22M149898X, and also on ArXiV at https://arxiv.org/abs/2205.14208 See Citation below.

Installation

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

The pinned gpytorch==1.6.1 fixes the compatible torch/numpy range used for the paper runs. A GPU is optional; the notebooks fall back to CPU.

Repository layout

.
├── kernels/          vector-valued GP kernels (vvkernels, sep_vvkernels, vvk_rbfkernel, …)
├── means/            vector-valued mean functions (vvmeans)
├── likelihood/       vector-valued likelihoods (vvlikelihood)
├── mlikelihoods/     marginal log-likelihoods
├── predstrategies/   GP prediction strategies (GPprediction)
├── optimizers/       optimizers (custom LBFGS)
├── utils/            objective functions, geometry helpers, stopping criteria, vfield
├── LBFGS.py          custom L-BFGS used by the GP training loop
├── pytorchtools.py   early-stopping helper
├── jupyter/          paper experiments (see mapping below)
│   ├── tadxald/      application: atomic-layer-deposition (ALD) design
│   └── out_*_stab/   committed 50-run stability results feeding Fig 15
└── paper/            arXiv:2205.14208 PDF

Notebooks import the library modules via sys.path.append(".."), so run them from inside jupyter/.

Reproducing the paper figures

Notebook Paper section Figures
jupyter/twin_peak_success.ipynb §4.1.1 Twin-peak, convergence/success Figs 2–6
jupyter/twin_peak_failure.ipynb §4.1.2 Twin-peak, convergence/failure Figs 7–11
jupyter/validation_pvalue_figures.ipynb §4.1 validation / residuals Figs 8–10 (P-value hist., variance)
jupyter/dtlz4_success.ipynb §4.2.1 DTLZ4, convergence/success Fig 13
jupyter/dtlz4_failure.ipynb §4.2.2 DTLZ4, convergence/failure Fig 14
jupyter/tolerance_study.ipynb §4.3 tolerance selection Fig 12
jupyter/fig15_tad.ipynb §4.3 comparison — TAD 50 runs Fig 15 (TAD data)
jupyter/fig15_l2.ipynb §4.3 comparison — sequential-L2 50 runs Fig 15 (L2 data)
jupyter/fig15_plot.ipynb §4.3 comparison — plot Fig 15
jupyter/kernel_validation.ipynb kernel-validation study

Application (beyond the paper's core benchmarks): jupyter/tadxald/ (atomic-layer deposition).

Notes

  • Fig 1 is a schematic from an external source and is not generated by any notebook.
  • Fig 12 (tolerance_study.ipynb) is run once per tolerance to produce its panels; the committed state corresponds to τ = 0.05. Re-run with τ ∈ {0.1, 0.08, 0.05} for all three.
  • Fig 15 reads pre-computed 50-run results committed under jupyter/out_stab/ and jupyter/out_L2_stab/, so fig15_plot.ipynb reproduces the figure directly. To regenerate those inputs from scratch, run fig15_tad.ipynb / fig15_l2.ipynb first. (Known caveat: fig15_tad.ipynb currently writes its TAD run to figures/vec_stab_tad.txt; align this with the out_stab/vec_stab_tad-*.npy name that fig15_plot.ipynb reads.)
  • Model checkpoints, figures, and bulky plot data are regenerated by running the notebooks and are .gitignored.

Citation

Carlo Graziani and Marieme Ngom, "Targeted Adaptive Design," SIAM/ASA Journal on Uncertainty Quantification, 12(4), 1273–1314, 2024. doi:10.1137/22M149898X · arXiv:2205.14208

@article{graziani2024targeted,
  title   = {Targeted Adaptive Design},
  author  = {Graziani, Carlo and Ngom, Marieme},
  journal = {SIAM/ASA Journal on Uncertainty Quantification},
  volume  = {12},
  number  = {4},
  pages   = {1273--1314},
  year    = {2024},
  doi     = {10.1137/22M149898X},
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages