Soft Brownian Offset (SBO) defines an iterative approach to translate points by a most likely distance from a given dataset. It can be used for generating out-of-distribution samples.
This project is hosted on PyPI and can therefore be installed easily through pip
:
pip install sbo
Dependending on your setup you may need to add --user
after the install
.
For brevity's sake here's a short introduction to the library's usage:
from sklearn.datasets import make_moons
from sbo import soft_brownian_offset
X, _ = make_moons(n_samples=60, noise=.08)
X_ood = soft_brownian_offset(X, d_min=.35, d_off=.24, n_samples=120, softness=0)
For more details please see the documentation.
The technique allows for trivial OOD generation -- as shown above -- or more complex schemes that apply the transformation of learned representations. For an in-depth look at the latter please refer to the paper that is available as open access from the CVF. For citations please see cite.
See the following plot to gain intuition on the approach's results:
Please see the documentation for the source code to recreate the plot.
Please cite SBO in your paper if it helps your research:
@inproceedings{MBH21,
author = {Möller, Felix and Botache, Diego and Huseljic, Denis and Heidecker, Florian and Bieshaar, Maarten and Sick, Bernhard},
booktitle = {{Proc. of CVPR SAIAD Workshop}},
title = {{Out-of-distribution Detection and Generation using Soft Brownian Offset Sampling and Autoencoders}},
year = 2021
}