Skip to content

probability_weighted_ae

ProbabilityWeightedAutoencoder(module, loss_fn='mse', optimizer_fn='sgd', lr=0.001, device='cpu', seed=42, skip_threshold=0.9, window_size=250, **kwargs)

Bases: Autoencoder

Wrapper for PyTorch autoencoder models for anomaly detection that reduces the employed learning rate based on an outlier probability estimate of the input example as well as a threshold probability skip_threshold. If the outlier probability is above the threshold, the learning rate is reduced to less than 0. Given the probability estimate \(p_out\), the adjusted learning rate \(lr_adj\) is \(lr * 1 - ( rac{p_out}{skip_threshold})\).

PARAMETER DESCRIPTION
module

Torch Module that builds the autoencoder to be wrapped. The Module should accept parameter n_features so that the returned model's input shape can be determined based on the number of features in the initial training example.

TYPE: Type[Module]

loss_fn

Loss function to be used for training the wrapped model. Can be a loss function provided by torch.nn.functional or one of the following: 'mse', 'l1', 'cross_entropy', 'binary_crossentropy', 'smooth_l1', 'kl_div'.

TYPE: Union[str, Callable] DEFAULT: 'mse'

optimizer_fn

Optimizer to be used for training the wrapped model. Can be an optimizer class provided by torch.optim or one of the following: "adam", "adam_w", "sgd", "rmsprop", "lbfgs".

TYPE: Union[str, Callable] DEFAULT: 'sgd'

lr

Base learning rate of the optimizer.

TYPE: float DEFAULT: 0.001

skip_threshold

Threshold probability to use as a reference for the reduction of the base learning rate.

TYPE: float DEFAULT: 0.9

device

Device to run the wrapped model on. Can be "cpu" or "cuda".

TYPE: str DEFAULT: 'cpu'

seed

Random seed to be used for training the wrapped model.

TYPE: int DEFAULT: 42

**kwargs

Parameters to be passed to the module function aside from n_features.

Examples

DEFAULT: {}

ROCAUC

learn_one(x, y=None, **kwargs)

Performs one step of training with a single example, scaling the employed learning rate based on the outlier probability estimate of the input example.

PARAMETER DESCRIPTION
**kwargs

DEFAULT: {}

x

Input example.

TYPE: dict

RETURNS DESCRIPTION
ProbabilityWeightedAutoencoder

The autoencoder itself.