From 61c2e6ab2a9cba8c29b563e9c8ce0a5de473b84c Mon Sep 17 00:00:00 2001 From: LoryPack Date: Mon, 6 Jan 2020 21:54:21 +0100 Subject: [PATCH 01/18] Add abcpy source code for new version --- abcpy/NN_utilities/__init__.py | 0 abcpy/NN_utilities/algorithms.py | 169 ++++++++ abcpy/NN_utilities/datasets.py | 164 ++++++++ abcpy/NN_utilities/losses.py | 39 ++ abcpy/NN_utilities/networks.py | 91 +++++ abcpy/NN_utilities/trainer.py | 72 ++++ abcpy/NN_utilities/utilities.py | 55 +++ abcpy/inferences.py | 29 +- abcpy/output.py | 380 +++++++++++++++++- abcpy/statistics.py | 351 +++++++++++++--- abcpy/statisticslearning.py | 660 +++++++++++++++++++++++++++++++ abcpy/summaryselections.py | 112 ------ 12 files changed, 1939 insertions(+), 183 deletions(-) create mode 100644 abcpy/NN_utilities/__init__.py create mode 100644 abcpy/NN_utilities/algorithms.py create mode 100644 abcpy/NN_utilities/datasets.py create mode 100644 abcpy/NN_utilities/losses.py create mode 100644 abcpy/NN_utilities/networks.py create mode 100644 abcpy/NN_utilities/trainer.py create mode 100644 abcpy/NN_utilities/utilities.py create mode 100644 abcpy/statisticslearning.py delete mode 100644 abcpy/summaryselections.py diff --git a/abcpy/NN_utilities/__init__.py b/abcpy/NN_utilities/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/abcpy/NN_utilities/algorithms.py b/abcpy/NN_utilities/algorithms.py new file mode 100644 index 00000000..87710cef --- /dev/null +++ b/abcpy/NN_utilities/algorithms.py @@ -0,0 +1,169 @@ +try: + import torch + import torch.nn as nn + import torch.optim as optim + from torch.optim import lr_scheduler + from torch.utils.data import Dataset + from abcpy.NN_utilities.datasets import Similarities, SiameseSimilarities, TripletSimilarities, \ + ParameterSimulationPairs + from abcpy.NN_utilities.losses import ContrastiveLoss, TripletLoss + from abcpy.NN_utilities.networks import SiameseNet, TripletNet + from abcpy.NN_utilities.trainer import fit +except ModuleNotFoundError: + has_torch = False +else: + has_torch = True + + +def contrastive_training(samples, similarity_set, embedding_net, cuda, batch_size=16, n_epochs=200, + positive_weight=None, load_all_data_GPU=False, margin=1., lr=None, optimizer=None, + scheduler=None, start_epoch=0, verbose=False, optimizer_kwargs={}, scheduler_kwargs={}, + loader_kwargs={}): + """ Implements the algorithm for the contrastive distance learning training of a neural network; need to be + provided with a set of samples and the corresponding similarity matrix""" + + # If the dataset is small enough, we can speed up training by loading all on the GPU at beginning, by using + # load_all_data_GPU=True. It may crash if the dataset is too large. Note that in some cases using only CPU may still + # be quicker. + + # Do all the setups + + # need to use the Similarities and SiameseSimilarities datasets + + similarities_dataset = Similarities(samples, similarity_set, "cuda" if cuda and load_all_data_GPU else "cpu") + pairs_dataset = SiameseSimilarities(similarities_dataset, positive_weight=positive_weight) + + if cuda: + if load_all_data_GPU: + loader_kwargs_2 = {'num_workers': 0, 'pin_memory': False} + else: + loader_kwargs_2 = {'num_workers': 1, 'pin_memory': True} + else: + loader_kwargs_2 = {} + + pairs_train_loader = torch.utils.data.DataLoader(pairs_dataset, batch_size=batch_size, shuffle=True, + **loader_kwargs, **loader_kwargs_2) + + model_contrastive = SiameseNet(embedding_net) + + if cuda: + model_contrastive.cuda() + loss_fn = ContrastiveLoss(margin) + + if lr is None: + lr = 1e-3 + + if optimizer is None: # default value + optimizer = optim.Adam(embedding_net.parameters(), lr=lr, **optimizer_kwargs) + else: + optimizer = optimizer(embedding_net.parameters(), lr=lr, **optimizer_kwargs) + + if scheduler is None: # default value, i.e. a dummy scheduler + scheduler = lr_scheduler.StepLR(optimizer, 8, gamma=1, last_epoch=-1) + else: + scheduler = scheduler(optimizer, **scheduler_kwargs) + + # now train: + fit(pairs_train_loader, model_contrastive, loss_fn, optimizer, scheduler, n_epochs, cuda, start_epoch=start_epoch) + + return embedding_net + + +def triplet_training(samples, similarity_set, embedding_net, cuda, batch_size=16, n_epochs=400, + load_all_data_GPU=False, margin=1., lr=None, optimizer=None, scheduler=None, start_epoch=0, + verbose=False, optimizer_kwargs={}, scheduler_kwargs={}, loader_kwargs={}): + """ Implements the algorithm for the triplet distance learning training of a neural network; need to be + provided with a set of samples and the corresponding similarity matrix""" + + # If the dataset is small enough, we can speed up training by loading all on the GPU at beginning, by using + # load_all_data_GPU=True. It may crash if the dataset is too large. Note that in some cases using only CPU may still + # be quicker. + # Do all the setups + + # need to use the Similarities and TripletSimilarities datasets + + similarities_dataset = Similarities(samples, similarity_set, "cuda" if cuda and load_all_data_GPU else "cpu") + triplets_dataset = TripletSimilarities(similarities_dataset) + + if cuda: + if load_all_data_GPU: + loader_kwargs_2 = {'num_workers': 0, 'pin_memory': False} + else: + loader_kwargs_2 = {'num_workers': 1, 'pin_memory': True} + else: + loader_kwargs_2 = {} + + triplets_train_loader = torch.utils.data.DataLoader(triplets_dataset, batch_size=batch_size, shuffle=True, + **loader_kwargs, **loader_kwargs_2) + + model_triplet = TripletNet(embedding_net) + + if cuda: + model_triplet.cuda() + loss_fn = TripletLoss(margin) + + if lr is None: + lr = 1e-3 + + if optimizer is None: # default value + optimizer = optim.Adam(embedding_net.parameters(), lr=lr, **optimizer_kwargs) + else: + optimizer = optimizer(embedding_net.parameters(), lr=lr, **optimizer_kwargs) + + if scheduler is None: # default value, i.e. a dummy scheduler + scheduler = lr_scheduler.StepLR(optimizer, 8, gamma=1, last_epoch=-1) + else: + scheduler = scheduler(optimizer, **scheduler_kwargs) + + # now train: + fit(triplets_train_loader, model_triplet, loss_fn, optimizer, scheduler, n_epochs, cuda, start_epoch=start_epoch) + + return embedding_net + + +def FP_nn_training(samples, target, embedding_net, cuda, batch_size=1, n_epochs=50, load_all_data_GPU=False, + lr=1e-3, optimizer=None, scheduler=None, start_epoch=0, verbose=False, optimizer_kwargs={}, + scheduler_kwargs={}, loader_kwargs={}): + """ Implements the algorithm for the training of a neural network based on regressing the values of the parameters + on the corresponding simulation outcomes; it is effectively a training with a mean squared error loss. Needs to be + provided with a set of samples and the corresponding parameters that generated the samples. Note that in this case + the network has to have same output size as the number of parameters, as the learned summary statistic will have the + same dimension as the parameter.""" + + # If the dataset is small enough, we can speed up training by loading all on the GPU at beginning, by using + # load_all_data_GPU=True. It may crash if the dataset is too large. Note that in some cases using only CPU may still + # be quicker. + + # Do all the setups + + dataset_FP_nn = ParameterSimulationPairs(samples, target, "cuda" if cuda and load_all_data_GPU else "cpu") + + if cuda: + if load_all_data_GPU: + loader_kwargs_2 = {'num_workers': 0, 'pin_memory': False} + else: + loader_kwargs_2 = {'num_workers': 1, 'pin_memory': True} + else: + loader_kwargs_2 = {} + + data_loader_FP_nn = torch.utils.data.DataLoader(dataset_FP_nn, batch_size=batch_size, shuffle=True, **loader_kwargs, + **loader_kwargs_2) + + if cuda: + embedding_net.cuda() + loss_fn = nn.MSELoss(reduction="mean") + + if optimizer is None: # default value + optimizer = optim.Adam(embedding_net.parameters(), lr=lr, **optimizer_kwargs) + else: + optimizer = optimizer(embedding_net.parameters(), lr=lr, **optimizer_kwargs) + + if scheduler is None: # default value, i.e. a dummy scheduler + scheduler = lr_scheduler.StepLR(optimizer, 8, gamma=1, last_epoch=-1) + else: + scheduler = scheduler(optimizer, **scheduler_kwargs) + + # now train: + fit(data_loader_FP_nn, embedding_net, loss_fn, optimizer, scheduler, n_epochs, cuda, start_epoch=start_epoch) + + return embedding_net diff --git a/abcpy/NN_utilities/datasets.py b/abcpy/NN_utilities/datasets.py new file mode 100644 index 00000000..d0a9bfd3 --- /dev/null +++ b/abcpy/NN_utilities/datasets.py @@ -0,0 +1,164 @@ +import warnings + +import numpy as np +import torch +from torch.utils.data import Dataset + + +# DATASETS DEFINITION FOR DISTANCE LEARNING: + +class Similarities(Dataset): + """A dataset class that considers a set of samples and pairwise similarities defined between them. + Note that, for our application of computing distances, we are not interested in train/test split. """ + + def __init__(self, samples, similarity_matrix, device): + """ + Parameters: + + samples: n_samples x n_features + similarity_matrix: n_samples x n_samples + """ + if isinstance(samples, np.ndarray): + self.samples = torch.from_numpy(samples.astype("float32")).to(device) + else: + self.samples = samples.to(device) + if isinstance(similarity_matrix, np.ndarray): + self.similarity_matrix = torch.from_numpy(similarity_matrix.astype("int")).to(device) + else: + self.similarity_matrix = similarity_matrix.to(device) + + def __getitem__(self, index): + """Return the required sample along with the similarities of the sample with all the others.""" + return self.samples[index], self.similarity_matrix[index] + + def __len__(self): + return self.samples.shape[0] + + +class SiameseSimilarities(Dataset): + """ + This class defines a dataset returning pairs of similar and dissimilar examples. It has to be instantiated with a + dataset of the class Similarities + """ + + def __init__(self, similarities_dataset, positive_weight=None): + + """If positive_weight=None, then for each sample we pick another random element to form a pair. + If positive_weight is a number (in [0,1]), we will pick positive samples with that probability + (if there are some).""" + self.dataset = similarities_dataset + self.positive_weight = positive_weight + self.samples = similarities_dataset.samples + self.similarity_matrix = similarities_dataset.similarity_matrix + + def __getitem__(self, index): + """If self.positive_weight is None, or if the sample denoted by index has no similar elements, choose another + random sample to build the pair. If instead self.positive_weight is a number, choose a similar element with + that probability. + """ + if self.positive_weight is None or (torch.sum(self.similarity_matrix[index]) < 2): + # sample a new index different from the present one + siamese_index = index + while siamese_index == index: + siamese_index = np.random.choice(range(self.samples.shape[0])) + + target = self.similarity_matrix[index, siamese_index] + + else: + # pick positive target with probability self.positive_weight + target = int(np.random.uniform() < self.positive_weight) + if target: + # sample a new index different from the present one + siamese_index = index + while siamese_index == index: + siamese_index = np.random.choice(np.where(self.similarity_matrix[index].cpu())[0]) + else: + # sample a new index different from the present one. This would not be necessary in theory, + # as a sample is always similar to itself. + # Leave this check anyway, to avoid problems in case the dataset is not perfectly defined. + siamese_index = index + while siamese_index == index: + siamese_index = np.random.choice(np.where(self.similarity_matrix[index].cpu() == False)[0]) + + return (self.samples[index], self.samples[siamese_index]), target + + def __len__(self): + return self.samples.shape[0] + + +class TripletSimilarities(Dataset): + """ + This class defines a dataset returning triplets of anchor, positive and negative examples. + It has to be instantiated with a dataset of the class Similarities. + """ + + def __init__(self, similarities_dataset, ): + self.dataset = similarities_dataset + self.samples = similarities_dataset.samples + self.similarity_matrix = similarities_dataset.similarity_matrix + + def __getitem__(self, index): + # sample a new index different from the present one + if torch.sum(self.similarity_matrix[index]) < 2: + # then we pick a new sample that has at least one similar example + warnings.warn("Sample {} in the dataset has no similar samples. \nIncrease the quantile defining the" + " similarity matrix to avoid such problems.\nExecution will continue taking another sample " + "instead of that as anchor.".format(index), RuntimeWarning) + new_anchor = index + while new_anchor == index: + new_anchor = np.random.randint(0, self.dataset.__len__()) + # if this other sample does not have a similar one as well -> sample another one. + if torch.sum(self.similarity_matrix[new_anchor]) < 2: + new_anchor = index + index = new_anchor + + positive_index = index + while positive_index == index: + # this loops indefinitely if some sample has no other similar samples! + positive_index = np.random.choice(np.where(self.similarity_matrix[index].cpu())[0]) + + # sample a new index different from the present one. This would not be necessary in theory, + # as a sample is always similar to itself. + # Leave this check anyway, to avoid problems in case the dataset is not perfectly defined. + negative_index = index + while negative_index == index: + negative_index = np.random.choice(np.where(self.similarity_matrix[index].cpu() == False)[0]) + + return (self.samples[index], self.samples[positive_index], self.samples[negative_index]), [] + + def __len__(self): + return self.samples.shape[0] + + +# DATASET DEFINITION FOR SUFFICIENT STATS LEARNING: + +class ParameterSimulationPairs(Dataset): + """A dataset class that consists of pairs of parameters-simulation pairs, in which the data contains the + simulations, with shape (n_samples, n_features), and targets contains the ground truth of the parameters, + with shape (n_samples, 2). Note that n_features could also have more than one dimension here. """ + + def __init__(self, simulations, parameters, device): + """ + Parameters: + + simulations: (n_samples, n_features) + parameters: (n_samples, 2) + """ + if simulations.shape[0] != parameters.shape[0]: + raise RuntimeError("The number of simulations must be the same as the number of parameters.") + + if isinstance(simulations, np.ndarray): + self.simulations = torch.from_numpy(simulations.astype("float32")).to(device) + else: + self.simulations = simulations.to(device) + if isinstance(parameters, np.ndarray): + self.parameters = torch.from_numpy(parameters.astype("float32")).to(device) + else: + self.parameters = parameters.to(device) + + def __getitem__(self, index): + """Return the required sample along with the ground truth parameter.""" + return self.simulations[index], self.parameters[index] + + def __len__(self): + return self.parameters.shape[0] diff --git a/abcpy/NN_utilities/losses.py b/abcpy/NN_utilities/losses.py new file mode 100644 index 00000000..4dc28cb2 --- /dev/null +++ b/abcpy/NN_utilities/losses.py @@ -0,0 +1,39 @@ +import torch.nn as nn +import torch.nn.functional as F + + +class ContrastiveLoss(nn.Module): + """ + Contrastive loss + Takes embeddings of two samples and a target label == 1 if samples are from the same class and label == 0 otherwise. + + Code from https://github.com/adambielski/siamese-triplet""" + + def __init__(self, margin): + super(ContrastiveLoss, self).__init__() + self.margin = margin + self.eps = 1e-9 + + def forward(self, output1, output2, target, size_average=True): + distances = (output2 - output1).pow(2).sum(1) # squared distances + losses = 0.5 * (target.float() * distances + + (1 + -1 * target).float() * F.relu(self.margin - (distances + self.eps).sqrt()).pow(2)) + return losses.mean() if size_average else losses.sum() + + +class TripletLoss(nn.Module): + """ + Triplet loss + Takes embeddings of an anchor sample, a positive sample and a negative sample. + + Code from https://github.com/adambielski/siamese-triplet""" + + def __init__(self, margin): + super(TripletLoss, self).__init__() + self.margin = margin + + def forward(self, anchor, positive, negative, size_average=True): + distance_positive = (anchor - positive).pow(2).sum(1) # .pow(.5) + distance_negative = (anchor - negative).pow(2).sum(1) # .pow(.5) + losses = F.relu(distance_positive - distance_negative + self.margin) + return losses.mean() if size_average else losses.sum() diff --git a/abcpy/NN_utilities/networks.py b/abcpy/NN_utilities/networks.py new file mode 100644 index 00000000..72e80168 --- /dev/null +++ b/abcpy/NN_utilities/networks.py @@ -0,0 +1,91 @@ +import torch.nn as nn +import torch.nn.functional as F + + +class SiameseNet(nn.Module): + """ This is used in the contrastive distance learning. It is a network wrapping a standard neural network and + feeding two samples through it at once. + + From https://github.com/adambielski/siamese-triplet""" + + def __init__(self, embedding_net): + super(SiameseNet, self).__init__() + self.embedding_net = embedding_net + + def forward(self, x1, x2): + output1 = self.embedding_net(x1) + output2 = self.embedding_net(x2) + return output1, output2 + + def get_embedding(self, x): + return self.embedding_net(x) + + +class TripletNet(nn.Module): + """ This is used in the triplet distance learning. It is a network wrapping a standard neural network and + feeding three samples through it at once. + + From https://github.com/adambielski/siamese-triplet""" + + def __init__(self, embedding_net): + super(TripletNet, self).__init__() + self.embedding_net = embedding_net + + def forward(self, x1, x2, x3): + output1 = self.embedding_net(x1) + output2 = self.embedding_net(x2) + output3 = self.embedding_net(x3) + return output1, output2, output3 + + def get_embedding(self, x): + return self.embedding_net(x) + + +def createDefaultNN(input_size, output_size, hidden_sizes=None): + """Function returning a fully connected neural network class with a given input and output size, and optionally + given hidden layer sizes (if these are not given, they are determined from the input and output size with some + expression. + + In order to instantiate the network, you need to write: createDefaultNN(input_size, output_size)() as the function + returns a class, and () is needed to instantiate an object.""" + class DefaultNN(nn.Module): + """Neural network class with sizes determined by the upper level variables.""" + def __init__(self): + super(DefaultNN, self).__init__() + # put some fully connected layers: + + if hidden_sizes is not None and len(hidden_sizes) == 0: + # it is effectively a linear network + self.fc_in = nn.Linear(input_size, output_size) + + else: + if hidden_sizes is None: + # then set some default values for the hidden layers sizes; is this parametrization reasonable? + hidden_sizes_list = [int(input_size * 1.5), int(input_size * 0.75 + output_size * 3), + int(output_size * 5)] + + else: + hidden_sizes_list = hidden_sizes + + self.fc_in = nn.Linear(input_size, hidden_sizes_list[0]) + + # define now the hidden layers + self.fc_hidden = [] + for i in range(len(hidden_sizes_list) - 1): + self.fc_hidden.append(nn.Linear(hidden_sizes_list[i], hidden_sizes_list[i + 1])) + self.fc_out = nn.Linear(hidden_sizes_list[-1], output_size) + + def forward(self, x): + if not hasattr(self, + "fc_hidden"): # it means that hidden sizes was provided and the length of the list was 0 + return self.fc_in(x) + + x = F.relu(self.fc_in(x)) + for i in range(len(self.fc_hidden)): + x = F.relu(self.fc_hidden[i](x)) + + x = self.fc_out(x) + + return x + + return DefaultNN diff --git a/abcpy/NN_utilities/trainer.py b/abcpy/NN_utilities/trainer.py new file mode 100644 index 00000000..dbcf9533 --- /dev/null +++ b/abcpy/NN_utilities/trainer.py @@ -0,0 +1,72 @@ +from tqdm import tqdm +import logging + + +def fit(train_loader, model, loss_fn, optimizer, scheduler, n_epochs, cuda, start_epoch=0): + """ + Basic function to train a neural network given a train_loader, a loss function and an optimizer. + + Loaders, model, loss function and metrics should work together for a given task, + i.e. The model should be able to process data output of loaders, + loss function should process target output of loaders and outputs from the model + + Examples: Classification: batch loader, classification model, NLL loss, accuracy metric + Siamese network: Siamese loader, siamese model, contrastive loss + + Adapted from https://github.com/adambielski/siamese-triplet + """ + + logger = logging.getLogger("NN Trainer") + + for epoch in range(0, start_epoch): + scheduler.step() + + for epoch in tqdm(range(start_epoch, n_epochs)): + scheduler.step() + + # Train stage + train_loss = train_epoch(train_loader, model, loss_fn, optimizer, cuda) + + logger.debug('Epoch: {}/{}. Train set: Average loss: {:.4f}'.format(epoch + 1, n_epochs, train_loss)) + + +def train_epoch(train_loader, model, loss_fn, optimizer, cuda): + """Function implementing the training in one epoch. + + Adapted from https://github.com/adambielski/siamese-triplet + """ + model.train() + losses = [] + total_loss = 0 + + for batch_idx, (data, target) in enumerate(train_loader): + target = target if len(target) > 0 else None + if not type(data) in (tuple, list): + data = (data,) + if cuda: + data = tuple(d.cuda() for d in data) + if target is not None: + target = target.cuda() + + optimizer.zero_grad() + outputs = model(*data) + + if type(outputs) not in (tuple, list): + outputs = (outputs,) + + loss_inputs = outputs + if target is not None: + target = (target,) + loss_inputs += target + + loss_outputs = loss_fn(*loss_inputs) + loss = loss_outputs[0] if type(loss_outputs) in (tuple, list) else loss_outputs + losses.append(loss.item()) + total_loss += loss.item() + loss.backward() + optimizer.step() + + losses = [] + + total_loss /= (batch_idx + 1) + return total_loss diff --git a/abcpy/NN_utilities/utilities.py b/abcpy/NN_utilities/utilities.py new file mode 100644 index 00000000..e70146ae --- /dev/null +++ b/abcpy/NN_utilities/utilities.py @@ -0,0 +1,55 @@ +try: + import torch +except ModuleNotFoundError: + has_torch = False +else: + has_torch = True + +import numpy as np +import logging + + +def dist2(x, y): + """Compute the square of the Euclidean distance between 2 arrays of same length""" + return np.dot(x - y, x - y) + + +def compute_similarity_matrix(target, quantile=0.1, return_pairwise_distances=False): + """Compute the similarity matrix between some values given a given quantile of the Euclidean distances. + + If return_pairwise_distances is True, it also returns a matrix with the pairwise distances with every distance.""" + + logger = logging.getLogger("Compute_similarity_matrix") + + n_samples = target.shape[0] + + pairwise_distances = np.zeros([n_samples] * 2) + + for i in range(n_samples): + for j in range(n_samples): + pairwise_distances[i, j] = dist2(target[i], target[j]) + + q = np.quantile(pairwise_distances[~np.eye(n_samples, dtype=bool)].reshape(-1), quantile) + + similarity_set = pairwise_distances < q + + logger.info("Fraction of similar pairs (epurated by self-similarity): {}".format( + (np.sum(similarity_set) - n_samples) / n_samples ** 2)) + + if (np.sum(similarity_set) - n_samples) / n_samples ** 2 == 0: + raise RuntimeError("The chosen quantile is too small, as there are no similar samples according to the " + "corresponding threshold.\nPlease increase the quantile.") + + return (similarity_set, pairwise_distances) if return_pairwise_distances else similarity_set + + +def save_net(path, net): + """Function to save the Pytorch state_dict of a network to a file.""" + torch.save(net.state_dict(), path) + + +def load_net(path, network_class): + """Function to load a network from a Pytorch state_dict, given the corresponding network_class.""" + net = network_class() + net.load_state_dict(torch.load(path)) + return net.eval() # call the network to eval model. Needed with batch normalization and dropout layers. diff --git a/abcpy/inferences.py b/abcpy/inferences.py index d3fc611a..535e84ce 100644 --- a/abcpy/inferences.py +++ b/abcpy/inferences.py @@ -1,7 +1,7 @@ import copy import logging import numpy as np - +import time import sys from abc import ABCMeta, abstractmethod, abstractproperty @@ -1161,12 +1161,15 @@ def sample(self, observations, steps, epsilon, n_samples = 10000, n_samples_per_ # 1: Calculate parameters self.logger.info("Initial accepted parameters") params_and_dists_pds = self.backend.map(self._accept_parameter, data_pds) + self.logger.debug("Map step of parallelism is finished") params_and_dists = self.backend.collect(params_and_dists_pds) + self.logger.debug("Collect step of parallelism is finished") new_parameters, new_distances, new_all_parameters, new_all_distances, index, acceptance, counter = [list(t) for t in zip( *params_and_dists)] # Keeping counter of number of simulations + self.logger.debug("Counting number of simulations") for count in counter: self.simulation_counter+=count @@ -1183,6 +1186,7 @@ def sample(self, observations, steps, epsilon, n_samples = 10000, n_samples_per_ all_distances = new_all_distances # Initialize/Update the accepted parameters and their corresponding distances + self.logger.info("Initialize/Update the accepted parameters and their corresponding distances") if accepted_parameters is None: accepted_parameters = new_parameters else: @@ -1192,10 +1196,12 @@ def sample(self, observations, steps, epsilon, n_samples = 10000, n_samples_per_ distances[index[acceptance == 1]] = new_distances[acceptance == 1] # 2: Smoothing of the distances + self.logger.info("Smoothing of the distance") smooth_distances[index[acceptance == 1]] = self._smoother_distance(distances[index[acceptance == 1]], all_distances) # 3: Initialize/Update U, epsilon and covariance of perturbation kernel + self.logger.info("Initialize/Update U, epsilon and covariance of perturbation kernel") if aStep == 0: U = self._average_redefined_distance(self._smoother_distance(all_distances, all_distances), epsilon) else: @@ -1214,10 +1220,10 @@ def sample(self, observations, steps, epsilon, n_samples = 10000, n_samples_per_ epsilon, U, acceptance_rate ) ) - self.logger.debug(msg) + self.logger.info(msg) if acceptance_rate < ar_cutoff: broken_preemptively = True - self.logger.debug("Stopping as acceptance rate is lower than cutoff") + self.logger.info("Stopping as acceptance rate is lower than cutoff") break # 5: Resampling if number of accepted particles greater than resample @@ -1235,20 +1241,23 @@ def sample(self, observations, steps, epsilon, n_samples = 10000, n_samples_per_ epsilon = self._schedule(U, v) ## Print effective sampling size - print('Resampling: Effective sampling size: ', 1 / sum(pow(weight / sum(weight), 2))) + self.logger.info('Resampling: Effective sampling size: '+str(1 / sum(pow(weight / sum(weight), 2)))) accept = 0 samples_until = 0 ## Compute and broadcast accepted parameters, accepted kernel parameters and accepted Covariance matrix # Broadcast Accepted parameters and add to journal + self.logger.info("Broadcast Accepted parameters and add to journal") self.accepted_parameters_manager.update_broadcast(self.backend, accepted_weights=accepted_weights, accepted_parameters=accepted_parameters) # Compute Accepetd Kernel parameters and broadcast them + self.logger.debug("Compute Accepetd Kernel parameters and broadcast them") kernel_parameters = [] for kernel in self.kernel.kernels: kernel_parameters.append( self.accepted_parameters_manager.get_accepted_parameters_bds_values(kernel.models)) self.accepted_parameters_manager.update_kernel_values(self.backend, kernel_parameters=kernel_parameters) # Compute Kernel Covariance Matrix and broadcast it + self.logger.debug("Compute Kernel Covariance Matrix and broadcast it") new_cov_mats = self.kernel.calculate_cov(self.accepted_parameters_manager) accepted_cov_mats = [] for new_cov_mat in new_cov_mats: @@ -1261,7 +1270,7 @@ def sample(self, observations, steps, epsilon, n_samples = 10000, n_samples_per_ if (full_output == 1 and aStep<= steps-1): ## Saving intermediate configuration to output journal. - print('Saving after resampling') + self.logger.info('Saving after resampling') journal.add_accepted_parameters(copy.deepcopy(accepted_parameters)) journal.add_weights(copy.deepcopy(accepted_weights)) journal.add_distances(copy.deepcopy(distances)) @@ -1419,7 +1428,9 @@ def _accept_parameter(self, data, npc=None): self.sample_from_prior(rng=rng) new_theta = self.get_parameters() all_parameters.append(new_theta) + t0 = time.time() y_sim = self.simulate(self.n_samples_per_param, rng=rng, npc=npc) + self.logger.debug("Simulation took " + str(time.time() - t0) + "sec") counter+=1 distance = self.distance.distance(self.accepted_parameters_manager.observations_bds.value(), y_sim) all_distances.append(distance) @@ -1436,13 +1447,15 @@ def _accept_parameter(self, data, npc=None): if perturbation_output[0] and self.pdf_of_prior(self.model, perturbation_output[1]) != 0: new_theta = perturbation_output[1] break - + t0 = time.time() y_sim = self.simulate(self.n_samples_per_param, rng=rng, npc=npc) + self.logger.debug("Simulation took "+ str(time.time()-t0)+"sec") counter+=1 distance = self.distance.distance(self.accepted_parameters_manager.observations_bds.value(), y_sim) smooth_distance = self._smoother_distance([distance], self.all_distances_bds.value()) ## Calculate acceptance probability: + self.logger.debug("Calulate acceptance probability") ratio_prior_prob = self.pdf_of_prior(self.model, perturbation_output[1]) / self.pdf_of_prior(self.model, self.accepted_parameters_manager.accepted_parameters_bds.value()[index]) ratio_likelihood_prob = np.exp((self.smooth_distances_bds.value()[index] - smooth_distance) / self.epsilon) @@ -2468,7 +2481,7 @@ def _accept_parameter(self, rng, npc=None): denominator = 0.0 for i in range(len(self.accepted_parameters_manager.accepted_weights_bds.value())): pdf_value = self.kernel.pdf(mapping_for_kernels, self.accepted_parameters_manager, - self.accepted_parameters_manager.accepted_parameters_bds.value()[index[0]], perturbation_output[1]) + self.accepted_parameters_manager.accepted_parameters_bds.value()[i], perturbation_output[1]) denominator += self.accepted_parameters_manager.accepted_weights_bds.value()[i, 0] * pdf_value weight = 1.0 * prior_prob / denominator @@ -2970,4 +2983,4 @@ def _accept_parameter_r_hit_kernel(self, rng_and_index, npc=None): self.set_parameters(self.accepted_parameters_manager.accepted_parameters_bds.value()[index]) y_sim = self.accepted_y_sim_bds.value()[index] distance = self.distance.distance(self.accepted_parameters_manager.observations_bds.value(), y_sim) - return (self.get_parameters(), y_sim, distance, counter) \ No newline at end of file + return (self.get_parameters(), y_sim, distance, counter) diff --git a/abcpy/output.py b/abcpy/output.py index 41bb9775..283852d7 100644 --- a/abcpy/output.py +++ b/abcpy/output.py @@ -1,6 +1,9 @@ -import numpy as np import pickle +import warnings +import matplotlib.pyplot as plt +import numpy as np +from scipy.stats import gaussian_kde class Journal: @@ -14,13 +17,13 @@ class Journal: a nxpxt matrix weights : numpy.array a nxt matrix - opt_value: numpy.array + opt_value : numpy.array nxp matrix containing for each parameter the evaluated objective function for every time step - configuration: Python dictionary + configuration : Python dictionary dictionary containing the schemes configuration parameters """ - + def __init__(self, type): """ Initializes a new output journal of given type. @@ -31,7 +34,7 @@ def __init__(self, type): type=0 only logs final parametersa and weight (production use); type=1 logs all generated information (reproducibily use). """ - + self.accepted_parameters = [] self.names_and_parameters = [] self.weights = [] @@ -39,14 +42,12 @@ def __init__(self, type): self.opt_values = [] self.configuration = {} - - if type not in [0, 1]: raise ValueError("Parameter type has not valid value.") else: self._type = type - self.number_of_simulations =[] + self.number_of_simulations = [] @classmethod def fromFile(cls, filename): @@ -72,7 +73,7 @@ def fromFile(cls, filename): >>> jnl = Journal.fromFile('example_output.jnl') """ - + with open(filename, 'rb') as input: journal = pickle.load(input) return journal @@ -86,7 +87,7 @@ def add_user_parameters(self, names_and_params): names_and_params: list Each entry is a tupel, where the first entry is the name of the probabilistic model, and the second entry is the parameters associated with this model. """ - if(self._type == 0): + if (self._type == 0): self.names_and_parameters = [dict(names_and_params)] else: self.names_and_parameters.append(dict(names_and_params)) @@ -280,7 +281,9 @@ def posterior_mean(self, iteration=None): return_value = [] for keyind in params.keys(): - return_value.append((keyind, np.average(np.array(params[keyind]).squeeze(), weights = weights.reshape(len(weights),), axis = 0))) + return_value.append((keyind, + np.average(np.array(params[keyind]).squeeze(), weights=weights.reshape(len(weights), ), + axis=0))) return dict(return_value) @@ -308,18 +311,18 @@ def posterior_cov(self, iteration=None): for keyind in params.keys(): joined_params.append(np.array(params[keyind]).squeeze(axis=1)) - return np.cov(np.transpose(np.hstack(joined_params)), aweights = weights.reshape(len(weights),)), params.keys() + return np.cov(np.transpose(np.hstack(joined_params)), aweights=weights.reshape(len(weights), )), params.keys() - def posterior_histogram(self, iteration=None, n_bins = 10): + def posterior_histogram(self, iteration=None, n_bins=10): """ Computes a weighted histogram of multivariate posterior samples - andreturns histogram H and A list of p arrays describing the bin + and returns histogram H and a list of p arrays describing the bin edges for each dimension. Returns ------- python list - containing two elements (H = np.ndarray, edges = list of p arraya) + containing two elements (H = np.ndarray, edges = list of p arrays) """ if iteration is None: endp = len(self.names_and_parameters) - 1 @@ -333,5 +336,348 @@ def posterior_histogram(self, iteration=None, n_bins = 10): for keyind in params.keys(): joined_params.append(np.array(params[keyind]).squeeze(axis=1)) - H, edges = np.histogramdd(np.hstack(joined_params), bins = n_bins, weights = weights.reshape(len(weights),)) - return [H, edges] \ No newline at end of file + H, edges = np.histogramdd(np.hstack(joined_params), bins=n_bins, weights=weights.reshape(len(weights), )) + return [H, edges] + + def plot_posterior_distr(self, parameters_to_show=None, ranges_parameters=None, iteration=None, show_samples=None, + single_marginals_only=False, double_marginals_only=False, write_posterior_mean=True, + true_parameter_values=None, contour_levels=14, show_density_values=True, bw_method=None, + path_to_save=None): + """ + Produces a visualization of the posterior distribution of the parameters of the model. + + A Gaussian kernel density estimate (KDE) is used to approximate the density starting from the sampled + parameters. Specifically, it produces a scatterplot matrix, where the diagonal contains single parameter + marginals, while the off diagonal elements contain the contourplot for the paired marginals for each possible + pair of parameters. + + Parameters + ---------- + parameters_to_show : list, optional + a list of the parameters for which you want to plot the posterior distribution. For each parameter, you need + to provide the name string as it was defined in the model. + If `None`, then all parameters will be displayed. + ranges_parameters : Python dictionary, optional + a dictionary in which you can optionally provide the plotting range for the parameters that you chose to + display. You can use this even if `parameters_to_show=None`. The dictionary key is the name of parameter, + and the range needs to be an array-like of the form [lower_limit, upper_limit]. For instance: + {"theta" : [0,2]} specifies that you want to plot the posterior distribution for the parameter "theta" in + the range [0,2]. + iteration : int, optional + specify the iteration for which to plot the posterior distribution, in the case of a sequential algorithm. + If `None`, then the last iteration will be used. + show_samples : boolean, optional + specifies if you want to show the posterior samples overimposed to the contourplots of the posterior + distribution. If `None`, the default behaviour is the following: if the posterior samples are associated + with importance weights, then the samples are not showed (in fact, the KDE for the posterior distribution + takes into account the weights, and showing the samples may be misleading). Otherwise, if the posterior # + samples are not associated with weights, they are displayed by defauly. + single_marginals_only : boolean, optional + if `True`, the method does not show the paired marginals but only the single parameter marginals; + otherwise, it shows the paired marginals as well. Default to `False`. + double_marginals_only : boolean, optional + if `True`, the method shows the contour plot for the marginal posterior for each possible pair of parameters + in the parameters that have to be shown (all parameters of the model if `parameters_to_show` is None). + Default to `False`. + write_posterior_mean : boolean, optional + Whether to write or not the posterior mean on the single marginal plots. Default to `True`. + true_parameter_values: array-like, optional + you can provide here the true values of the parameters, if known, and that will be displayed in the + posterior plot. It has to be an array-like of the same length of `parameters_to_show` (if that is provided), + otherwise of length equal to the number of parameters in the model, and with entries corresponding to the + true value of that parameter (in case `parameters_to_show` is not provided, the order of the parameters is + the same order the model `forward_simulate` step takes. + contour_levels: integer, optional + The number of levels to be used in the contour plots. Default to 14. + show_density_values: boolean, optional + If `True`, the method displays the value of the density at each contour level in the contour plot. Default + to `True`. + bw_method: str, scalar or callable, optional + The parameter of the `scipy.stats.gaussian_kde` defining the method used to calculate the bandwith in the + Gaussian kernel density estimator. Please refer to the documentation therein for details. Default to `None`. + path_to_save : string, optional + if provided, save the figure in png format in the specified path. + + Returns + ------- + list + a list containing the matplotlib "fig, axes" objects defining the plot. Can be useful for further + modifications. + """ + + # if you do not pass any name, then we plot all parameters. + # you can get the list of parameters from the journal file as: + if parameters_to_show is None: + parameters_to_show = list(self.names_and_parameters[0].keys()) + else: + for param_name in parameters_to_show: + if param_name not in self.names_and_parameters[0].keys(): + raise KeyError("Parameter '{}' is not a parameter of the model.".format(param_name)) + + if single_marginals_only and double_marginals_only: + raise RuntimeError("You cannot ask to produce only plots for single marginals and double marginals only at " + "the same time. Either or both of `single_marginal_only` or `double_marginal_only` have " + "to be False.") + + if len(parameters_to_show) == 1 and double_marginals_only: + raise RuntimeError("It is not possible to plot a bivariate marginal if only one parameter is in the " + "`parameters_to_show` list") + + if true_parameter_values is not None: + if len(true_parameter_values) != len(parameters_to_show): + raise RuntimeError("You need to provide values for all the parameters to be shown.") + + meanpost = np.array([self.posterior_mean()[x] for x in parameters_to_show]) + + post_samples_dict = {name: np.concatenate(self.get_parameters(iteration)[name]) for name in parameters_to_show} + + weights = np.concatenate(self.get_weights(iteration)) + all_weights_are_1 = all([weights[i] == 1 for i in range(len(weights))]) + + if show_samples is None: + # by default, we display samples if the weights are all 1. Otherwise, we choose not to display them by + # default as they may be misleading + if all_weights_are_1: + show_samples = True + else: + show_samples = False + + elif not all_weights_are_1 and show_samples is True: + # in this case, the user required to show the sample points but importance weights are present. Then warn + # the user about this + warnings.warn( + "You requested to show the sample points; however, note that the algorithm generated posterior samples " + "associated with weights, and the kernel density estimate used to produce the density plots consider " + "those. Therefore, the resulting plot may be misleading. ", RuntimeWarning) + + data = np.hstack(list(post_samples_dict.values())) + datat = data.transpose() + + # now set up the range of parameters. If the range for a given parameter is not given, use the min and max + # value of posterior samples. + + if ranges_parameters is None: + ranges_parameters = {} + + # check if the user provided range for some parameters that are not requested to be displayed: + if not all([key in post_samples_dict for key in ranges_parameters.keys()]): + warnings.warn("You provided range for a parameter that was not requested to be displayed (or it may be " + "that you misspelled something). This will be ignored.", RuntimeWarning) + + for name in parameters_to_show: + if name in ranges_parameters: + # then check the format is correct + if isinstance(ranges_parameters[name], list): + if not (len(ranges_parameters[name]) == 2 and isinstance(ranges_parameters[name][0], (int, float))): + raise TypeError( + "The range for the parameter {} should be an array-like with two numbers.".format(name)) + elif isinstance(ranges_parameters[name], np.ndarray): + if not (ranges_parameters[name].shape == 2 or ranges_parameters[name].shape == (2, 1)): + raise TypeError( + "The range for the parameter {} should be an array-like with two numbers.".format(name)) + else: + # add as new range the min and max values. We add also a 5% of the whole range on both sides to have + # better visualization + difference = np.max(post_samples_dict[name]) - np.min(post_samples_dict[name]) + ranges_parameters[name] = [np.min(post_samples_dict[name]) - 0.05 * difference, + np.max(post_samples_dict[name]) + 0.05 * difference] + + def write_post_mean_function(ax, post_mean, name): + ax.text(0.15, 0.06, r"Post. mean = {:.2f}".format(post_mean), size=14.5 * 2 / len(meanpost), + transform=ax.transAxes) + + def scatterplot_matrix(data, meanpost, names, single_marginals_only=False, **kwargs): + """ + Plots a scatterplot matrix of subplots. Each row of "data" is plotted + against other rows, resulting in a nrows by nrows grid of subplots with the + diagonal subplots labeled with "parameters_to_show". Additional keyword arguments are + passed on to matplotlib's "plot" command. Returns the matplotlib figure + object containg the subplot grid. + """ + numvars, numdata = data.shape + if single_marginals_only: + fig, axes = plt.subplots(nrows=1, ncols=numvars, figsize=(4 * len(names), 4)) + else: + fig, axes = plt.subplots(nrows=numvars, ncols=numvars, figsize=(8, 8)) + fig.subplots_adjust(hspace=0.08, wspace=0.08) + + # if we have to plot 1 single parameter value, envelop the ax in an array, so that it gives no troubles: + if len(names) == 1: + if not single_marginals_only: + axes = np.array([[axes]]) + else: + axes = np.array([axes]) + + if not single_marginals_only: + if len(names) > 1: + for ax in axes.flat: + # Hide all ticks and labels + ax.xaxis.set_visible(False) + ax.yaxis.set_visible(False) + + # Set up ticks only on one side for the "edge" subplots... + if ax.is_first_col(): + ax.yaxis.set_ticks_position('left') + if ax.is_last_col(): + ax.yaxis.set_ticks_position('right') + if ax.is_first_row(): + ax.xaxis.set_ticks_position('top') + if ax.is_last_row(): + ax.xaxis.set_ticks_position('bottom') + + # off diagonal plots: + for x in range(numvars): + for y in range(numvars): + if x is not y: + # this plots the posterior samples + if show_samples: + axes[x, y].plot(data[y], data[x], '.k', markersize='1') + + xmin, xmax = ranges_parameters[names[y]] + ymin, ymax = ranges_parameters[names[x]] + + # then you need to perform the KDE and plot the contour of posterior + X, Y = np.mgrid[xmin:xmax:100j, ymin:ymax:100j] + positions = np.vstack([X.ravel(), Y.ravel()]) + values = np.vstack([data[y].T, data[x].T]) + kernel = gaussian_kde(values, weights=weights, bw_method=bw_method) + Z = np.reshape(kernel(positions).T, X.shape) + # axes[x, y].plot(meanpost[y], meanpost[x], 'r+', markersize='10') + axes[x, y].plot([xmin, xmax], [meanpost[x], meanpost[x]], "red", markersize='20', + linestyle='solid') + axes[x, y].plot([meanpost[y], meanpost[y]], [ymin, ymax], "red", markersize='20', + linestyle='solid') + if true_parameter_values is not None: + axes[x, y].plot([xmin, xmax], [true_parameter_values[x], true_parameter_values[x]], "green", + markersize='20', linestyle='dashed') + axes[x, y].plot([true_parameter_values[y], true_parameter_values[y]], [ymin, ymax], "green", + markersize='20', linestyle='dashed') + + CS = axes[x, y].contour(X, Y, Z, contour_levels, linestyles='solid') + if show_density_values: + axes[x, y].clabel(CS, fontsize=9, inline=1) + axes[x, y].set_xlim([xmin, xmax]) + axes[x, y].set_ylim([ymin, ymax]) + + # diagonal plots + + if not single_marginals_only: + diagonal_axes = np.array([axes[i, i] for i in range(len(axes))]) + else: + diagonal_axes = axes + + for i, label in enumerate(names): + xmin, xmax = ranges_parameters[names[i]] + positions = np.linspace(xmin, xmax, 100) + gaussian_kernel = gaussian_kde(data[i], weights=weights, bw_method=bw_method) + diagonal_axes[i].plot(positions, gaussian_kernel(positions), color='k', linestyle='solid', lw="1", + alpha=1, label="Density") + values = gaussian_kernel(positions) + # axes[i, i].plot([positions[np.argmax(values)], positions[np.argmax(values)]], [0, np.max(values)]) + diagonal_axes[i].plot([meanpost[i], meanpost[i]], [0, 1.1 * np.max(values)], "red", alpha=1, + label="Posterior mean") + if true_parameter_values is not None: + diagonal_axes[i].plot([true_parameter_values[i], true_parameter_values[i]], [0, 1.1 * np.max(values)], "green", + alpha=1, label="True value") + if write_posterior_mean: + write_post_mean_function(diagonal_axes[i], meanpost[i], label) + diagonal_axes[i].set_xlim([xmin, xmax]) + diagonal_axes[i].set_ylim([0, 1.1 * np.max(values)]) + + # labels and ticks: + if not single_marginals_only: + for j, label in enumerate(names): + axes[0, j].set_title(label, size=17) + + if len(names) > 1: + axes[j, 0].set_ylabel(label) + axes[-1, j].set_xlabel(label) + else: + axes[j, 0].set_ylabel("Density") + + axes[j, 0].ticklabel_format(style='sci', axis='y', scilimits=(0, 0)) + axes[j, 0].yaxis.set_visible(True) + + axes[-1, j].ticklabel_format(style='sci', axis='x') # , scilimits=(0, 0)) + axes[-1, j].xaxis.set_visible(True) + axes[j, -1].ticklabel_format(style='sci', axis='y', scilimits=(0, 0)) + axes[j, -1].yaxis.set_visible(True) + + else: + for j, label in enumerate(names): + axes[j].set_title(label, size=17) + axes[0].set_ylabel("Density") + + return fig, axes + + def double_marginals_plot(data, meanpost, names, **kwargs): + """ + Plots contour plots of all possible pairs of samples. Additional keyword arguments are + passed on to matplotlib's "plot" command. Returns the matplotlib figure + object containg the subplot grid. + """ + numvars, numdata = data.shape + numplots = np.int(numvars * (numvars - 1) / 2) + fig, axes = plt.subplots(nrows=1, ncols=numplots, figsize=(4 * numplots, 4)) + + if numplots == 1: # in this case you will only have one plot. Envelop it to avoid problems. + axes = [axes] + + # if we have to plot 1 single parameter value, envelop the ax in an array, so that it gives no troubles: + + ax_counter = 0 + + for x in range(numvars): + for y in range(0, x): + # this plots the posterior samples + if show_samples: + axes[ax_counter].plot(data[y], data[x], '.k', markersize='1') + + xmin, xmax = ranges_parameters[names[y]] + ymin, ymax = ranges_parameters[names[x]] + + # then you need to perform the KDE and plot the contour of posterior + X, Y = np.mgrid[xmin:xmax:100j, ymin:ymax:100j] + positions = np.vstack([X.ravel(), Y.ravel()]) + values = np.vstack([data[y].T, data[x].T]) + kernel = gaussian_kde(values, weights=weights, bw_method=bw_method) + Z = np.reshape(kernel(positions).T, X.shape) + # axes[x, y].plot(meanpost[y], meanpost[x], 'r+', markersize='10') + axes[ax_counter].plot([xmin, xmax], [meanpost[x], meanpost[x]], "red", markersize='20', + linestyle='solid') + axes[ax_counter].plot([meanpost[y], meanpost[y]], [ymin, ymax], "red", markersize='20', + linestyle='solid') + if true_parameter_values is not None: + axes[ax_counter].plot([xmin, xmax], [true_parameter_values[x], true_parameter_values[x]], "green", + markersize='20', linestyle='dashed') + axes[ax_counter].plot([true_parameter_values[y], true_parameter_values[y]], [ymin, ymax], "green", + markersize='20', linestyle='dashed') + + CS = axes[ax_counter].contour(X, Y, Z, contour_levels, linestyles='solid') + if show_density_values: + axes[ax_counter].clabel(CS, fontsize=9, inline=1) + axes[ax_counter].set_xlim([xmin, xmax]) + axes[ax_counter].set_ylim([ymin, ymax]) + + axes[ax_counter].set_ylabel(names[x]) + axes[ax_counter].set_xlabel(names[y]) + + axes[ax_counter].ticklabel_format(style='sci', axis='y', scilimits=(0, 0)) + axes[ax_counter].yaxis.set_visible(True) + axes[ax_counter].ticklabel_format(style='sci', axis='x', scilimits=(0, 0)) + axes[ax_counter].xaxis.set_visible(True) + + ax_counter += 1 + + return fig, axes + + if not double_marginals_only: + fig, axes = scatterplot_matrix(datat, meanpost, parameters_to_show, + single_marginals_only=single_marginals_only) + else: + fig, axes = double_marginals_plot(datat, meanpost, parameters_to_show) + + if path_to_save is not None: + plt.savefig(path_to_save, bbox_inches="tight") + + return fig, axes diff --git a/abcpy/statistics.py b/abcpy/statistics.py index a49ec07b..fe70aca9 100644 --- a/abcpy/statistics.py +++ b/abcpy/statistics.py @@ -1,52 +1,67 @@ from abc import ABCMeta, abstractmethod import numpy as np -class Statistics(metaclass = ABCMeta): +try: + import torch +except ModuleNotFoundError: + has_torch = False +else: + has_torch = True + from abcpy.NN_utilities.utilities import load_net + from abcpy.NN_utilities.networks import createDefaultNN + + +class Statistics(metaclass=ABCMeta): """This abstract base class defines how to calculate statistics from dataset. The base class also implements a polynomial expansion with cross-product terms that can be used to get desired polynomial expansion of the calculated statistics. - - + + """ - + @abstractmethod - def __init__(self, degree = 2, cross = True): + def __init__(self, degree=1, cross=False, previous_statistics=None): """Constructor that must be overwritten by the sub-class. - The constructor of a sub-class must accept arguments for the polynomial - expansion after extraction of the summary statistics, one has to define + The constructor of a sub-class must accept arguments for the polynomial + expansion after extraction of the summary statistics, one has to define the degree of polynomial expansion and cross, indicating whether cross-prodcut - terms are included. + terms are included. Parameters ---------- degree: integer, optional Of polynomial expansion. The default value is 2 meaning second order polynomial expansion. cross: boolean, optional - Defines whether to include the cross-product terms. The default value is TRUE, meaning the cross product term is included. - """ + Defines whether to include the cross-product terms. The default value is True, meaning the cross product term + is included. + previous_statistics: Statistics class, optional + It allows pipelining of Statistics. Specifically, if the final statistic to be used is determined by the + composition of two Statistics, you can pass the first here; then, whenever the final statistic is needed, it + is sufficient to call the `statistics` method of the second one, and that will automatically apply both + transformations. + """ raise NotImplementedError - - + @abstractmethod def statistics(self, data: object) -> object: - """To be overwritten by any sub-class: should extract statistics from the - data set data. It is assumed that data is a list of n same type + """To be overwritten by any sub-class: should extract statistics from the + data set data. It is assumed that data is a list of n same type elements(eg., The data can be a list containing n timeseries, n graphs or n np.ndarray). - + Parameters ---------- data: python list - Contains n data sets. + Contains n data sets with length p. Returns ------- numpy.ndarray nxp matrix where for each of the n data points p statistics are calculated. - + """ - + raise NotImplementedError def _polynomial_expansion(self, summary_statistics): @@ -56,55 +71,299 @@ def _polynomial_expansion(self, summary_statistics): Parameters ---------- summary_statistics: numpy.ndarray - nxp matrix where n is number of data points in the datasets data set and p number os + nxp matrix where n is number of data points in the datasets data set and p number os summary statistics calculated. Returns ------- numpy.ndarray - nx(p+degree*p+cross*nchoosek(p,2)) matrix where for each of the n pointss with + nx(p+degree*p+cross*nchoosek(p,2)) matrix where for each of the n pointss with p statistics, degree*p polynomial expansion term and cross*nchoosek(p,2) many - cross-product terms are calculated. - + cross-product terms are calculated. + """ - + # Check summary_statistics is a np.ndarry - if not isinstance(summary_statistics, (np.ndarray)): - raise TypeError('Summary statisticss is not of allowed types') + if not isinstance(summary_statistics, np.ndarray): + raise TypeError('Summary statistics is not of allowed types') # Include the polynomial expansion result = summary_statistics - for ind in range(2,self.degree+1): - result = np.column_stack((result,np.power(summary_statistics,ind))) + for ind in range(2, self.degree + 1): + result = np.column_stack((result, np.power(summary_statistics, ind))) # Include the cross-product term - if self.cross == True and summary_statistics.shape[1]>1: + if self.cross == True and summary_statistics.shape[1] > 1: # Convert to a matrix - for ind1 in range(0,summary_statistics.shape[1]): - for ind2 in range(ind1+1,summary_statistics.shape[1]): - result = np.column_stack((result,summary_statistics[:,ind1]*summary_statistics[:,ind2])) + for ind1 in range(0, summary_statistics.shape[1]): + for ind2 in range(ind1 + 1, summary_statistics.shape[1]): + result = np.column_stack((result, summary_statistics[:, ind1] * summary_statistics[:, ind2])) return result + def _check_and_transform_input(self, data): + """ + """ + if isinstance(data, list): + if np.array(data).shape == (len(data),): + if len(data) == 1: + data = np.array(data).reshape(1, 1) + data = np.array(data).reshape(len(data), 1) + else: + data = np.concatenate(data).reshape(len(data), -1) + else: + raise TypeError('Input data should be of type list, but found type {}'.format(type(data))) + + return data class Identity(Statistics): """ - This class implements identity statistics returning a nxp matrix when the data set - contains n numpy.ndarray of length p. + This class implements identity statistics not applying any transformation to the data, before the optional + polynomial expansion step. If the data set contains n numpy.ndarray of length p, it returns therefore an + nx(p+degree*p+cross*nchoosek(p,2)) matrix, where for each of the n points with p statistics, degree*p polynomial + expansion term and cross*nchoosek(p,2) many cross-product terms are calculated. """ - def __init__(self, degree = 2, cross = True): + + def __init__(self, degree=1, cross=False, previous_statistics=None): + """ + + Parameters + ---------- + degree : integer, optional + Of polynomial expansion. The default value is 2 meaning second order polynomial expansion. + cross : boolean, optional + Defines whether to include the cross-product terms. The default value is True, meaning the cross product term + is included. + previous_statistics : Statistics class, optional + It allows pipelining of Statistics. Specifically, if the final statistic to be used is determined by the + composition of two Statistics, you can pass the first here; then, whenever the final statistic is needed, it + is sufficient to call the `statistics` method of the second one, and that will automatically apply both + transformations. + """ self.degree = degree self.cross = cross + self.previous_statistics = previous_statistics def statistics(self, data): - if isinstance(data, list): - if np.array(data).shape == (len(data),): - if len(data) == 1: - data = np.array(data).reshape(1,1) - data = np.array(data).reshape(len(data),1) - else: - data = np.concatenate(data).reshape(len(data),-1) + """ + Parameters + ---------- + data: python list + Contains n data sets with length p. + Returns + ------- + numpy.ndarray + nx(p+degree*p+cross*nchoosek(p,2)) matrix where for each of the n data points with length p, + (p+degree*p+cross*nchoosek(p,2)) statistics are calculated. + """ + + # pipeline: first call the previous statistics: + if self.previous_statistics is not None: + data = self.previous_statistics.statistics(data) + # the first of the statistics need to take list as input, in order to match the API. Then actually the + # transformations work on np.arrays. In fact the first statistic transforms the list to array. Therefore, the + # following code needs to be called only if the self statistic is the first, i.e. it does not have a + # previous_statistic element. else: - raise TypeError('Input data should be of type list, but found type {}'.format(type(data))) - # Expand the data with polynomial expansion - result = self._polynomial_expansion(data) - - return result + data = self._check_and_transform_input(data) + + # Expand the data with polynomial expansion + result = self._polynomial_expansion(data) + + return result + + +class LinearTransformation(Statistics): + """Applies a linear transformation to the data to get (usually) a lower dimensional statistics. Then you can apply + an additional polynomial expansion step. + """ + + def __init__(self, coefficients, degree=1, cross=False, previous_statistics=None): + """ + Parameters + ---------- + coefficients: coefficients is a matrix with size d x p, where d is the dimension of the summary statistic that + is obtained after applying the linear transformation (i.e. before a possible polynomial expansion is + applied), while d is the dimension of each data. + degree : integer, optional + Of polynomial expansion. The default value is 2 meaning second order polynomial expansion. + cross : boolean, optional + Defines whether to include the cross-product terms. The default value is True, meaning the cross product term + is included. + previous_statistics : Statistics class, optional + It allows pipelining of Statistics. Specifically, if the final statistic to be used is determined by the + composition of two Statistics, you can pass the first here; then, whenever the final statistic is needed, it + is sufficient to call the `statistics` method of the second one, and that will automatically apply both + transformations. + """ + self.coefficients = coefficients + self.degree = degree + self.cross = cross + self.previous_statistics = previous_statistics + + def statistics(self, data): + """ + Parameters + ---------- + data: python list + Contains n data sets with length p. + Returns + ------- + numpy.ndarray + nx(d+degree*d+cross*nchoosek(d,2)) matrix where for each of the n data points with length p you apply the + linear transformation to get to dimension d, from where (d+degree*d+cross*nchoosek(d,2)) statistics are + calculated. + """ + + # pipeline: first call the previous statistics: + if self.previous_statistics is not None: + data = self.previous_statistics.statistics(data) + # the first of the statistics need to take list as input, in order to match the API. Then actually the + # transformations work on np.arrays. In fact the first statistic transforms the list to array. Therefore, the + # following code needs to be called only if the self statistic is the first, i.e. it does not have a + # previous_statistic element. + else: + data = self._check_and_transform_input(data) + + # Apply now the linear transformation + if not data.shape[1] == self.coefficients.shape[0]: + raise ValueError('Mismatch in dimension of summary statistics and coefficients') + result = np.dot(data, self.coefficients) + + # Expand the data with polynomial expansion + result = self._polynomial_expansion(result) + + return result + + +class NeuralEmbedding(Statistics): + """Computes the statistics by applying a neural network transformation. + + It is essentially a wrapper for the application of a neural network transformation to the data. Note that the + neural network has had to be trained in some way (for instance check the statistics learning routines) and that + Pytorch is required for this part to work. + """ + + def __init__(self, net, previous_statistics=None): # are these default values OK? + """ + Parameters + ---------- + net : torch.nn object + the embedding neural network. The input size of the neural network must coincide with the size of each of + the datapoints. + previous_statistics : Statistics class, optional + It allows pipelining of Statistics. Specifically, if the final statistic to be used is determined by the + composition of two Statistics, you can pass the first here; then, whenever the final statistic is needed, it + is sufficient to call the `statistics` method of the second one, and that will automatically apply both + transformations. + """ + if not has_torch: + raise ModuleNotFoundError( + "Pytorch is required to instantiate an element of the {} class, in order to handle " + "neural networks. Please install it. ".format(self.__class__.__name__)) + + self.net = net + self.previous_statistics = previous_statistics + + @classmethod + def fromFile(cls, path_to_net_state_dict, network_class=None, input_size=None, output_size=None, hidden_sizes=None, + previous_statistics=None): + """If the neural network state_dict was saved to the disk, this method can be used to instantiate a + NeuralEmbedding object with that neural network. + + In order for the state_dict to be read correctly, the network class is needed. Therefore, we provide 2 options: + 1) the Pytorch neural network class can be passed (if the user defined it, for instance) + 2) if the neural network was defined by using the DefaultNN class in abcpy.NN_utilities.networks, you can + provide arguments `input_size`, `output_size` and `hidden_sizes` (the latter is optional) that define + the sizes of a fully connected network; then a DefaultNN is instantiated with those sizes. This can be used + if for instance the neural network was trained using the utilities in abcpy.statisticslearning and you did + not provide explicitly the neural network class there, but defined it through the sizes of the different layers. + + In both cases, note that the input size of the neural network must coincide with the size of each of the + datapoints generated from the model (unless some other statistics are computed beforehand). + + Parameters + ---------- + path_to_net_state_dict : basestring + the path where the state-dict is saved + network_class : torch.nn class, optional + if the neural network class is known explicitly (for instance if the used defined it), then it has to be + passed here. This must not be provided together with `input_size` or `output_size`. + input_size : integer, optional + if the neural network is an instance of abcpy.NN_utilities.networks.DefaultNN with some input and + output size, then you should provide here the input size of the network. It has to be provided together with + the corresponding output_size, and it must not be provided with `network_class`. + output_size : integer, optional + if the neural network is an instance of abcpy.NN_utilities.networks.DefaultNN with some input and + output size, then you should provide here the output size of the network. It has to be provided together + with the corresponding input_size, and it must not be provided with `network_class`. + hidden_sizes : array-like, optional + if the neural network is an instance of abcpy.NN_utilities.networks.DefaultNN with some input and + output size, then you can provide here an array-like with the size of the hidden layers (for instance + [5,7,5] denotes 3 hidden layers with correspondingly 5,7,5 neurons). In case this parameter is not provided, + the hidden sizes are determined from the input and output sizes as determined in + abcpy.NN_utilities.networks.DefaultNN. Note that this must not be provided together with `network_class`. + previous_statistics : Statistics class, optional + It allows pipelining of Statistics. Specifically, if the final statistic to be used is determined by the + composition of two Statistics, you can pass the first here; then, whenever the final statistic is needed, it + is sufficient to call the `statistics` method of the second one, and that will automatically apply both + transformations. In this case, this is the statistics that has to be computed before the neural network + transformation is applied. + Returns + ------- + abcpy.statistics.NeuralEmbedding + the `NeuralEmbedding` object with the neural network obtained from the specified file. + """ + if not has_torch: + raise ModuleNotFoundError( + "Pytorch is required to instantiate an element of the {} class, in order to handle " + "neural networks. Please install it. ".format(cls.__name__)) + + if network_class is None and (input_size is None or output_size is None): + raise RuntimeError("You need to pass either network class or both input_size and output_size.") + if network_class is not None and (input_size is not None or output_size is not None): + raise RuntimeError("You can't pass together network_class and one of input_size, output_size") + if network_class is not None and hidden_sizes is not None: + raise RuntimeError("You passed hidden_sizes as an argument, but that may be passed only if you are passing " + "input_size and input_size as well, and you are not passing network_class.") + + if network_class is not None: # user explicitly passed the NN class + net = load_net(path_to_net_state_dict, network_class) + statistic_object = cls(net, previous_statistics=previous_statistics) + else: # the user passed the input_size, output_size and (maybe) the hidden_sizes + net = load_net(path_to_net_state_dict, createDefaultNN(input_size=input_size, output_size=output_size, + hidden_sizes=hidden_sizes)) + statistic_object = cls(net, previous_statistics=previous_statistics) + + return statistic_object + + def statistics(self, data): + """ + Parameters + ---------- + data: python list + Contains n data sets with length p. + Returns + ------- + numpy.ndarray + the statistics computed by applying the neural network. + """ + + # pipeline: first call the previous statistics: + if self.previous_statistics is not None: + data = self.previous_statistics.statistics(data) + # the first of the statistics need to take list as input, in order to match the API. Then actually the + # transformations work on np.arrays. In fact the first statistic transforms the list to array. Therefore, the + # following code needs to be called only if the self statistic is the first, i.e. it does not have a + # previous_statistic element. + else: + data = self._check_and_transform_input(data) + + data = torch.from_numpy(data.astype("float32")) + + # move data to gpu if the net is on gpu + if next(self.net.parameters()).is_cuda: + data = data.cuda() + + # simply apply the network transformation. + result = self.net(data).cpu().detach().numpy() + + return np.array(result) diff --git a/abcpy/statisticslearning.py b/abcpy/statisticslearning.py new file mode 100644 index 00000000..fb50466c --- /dev/null +++ b/abcpy/statisticslearning.py @@ -0,0 +1,660 @@ +import logging +from abc import ABCMeta, abstractmethod + +from sklearn import linear_model + +from abcpy.acceptedparametersmanager import * +from abcpy.graphtools import GraphTools +# import dataset and networks definition: +from abcpy.statistics import LinearTransformation + +# Different torch components +try: + import torch +except ModuleNotFoundError: + has_torch = False +else: + has_torch = True + from abcpy.NN_utilities.networks import createDefaultNN + from abcpy.statistics import NeuralEmbedding + +from abcpy.NN_utilities.algorithms import FP_nn_training, triplet_training, contrastive_training +from abcpy.NN_utilities.utilities import compute_similarity_matrix + + +# TODO: there seems to be issue when n_samples_per_param >1. Check that. Should you modify the _sample_parameters-statistics function? + +class StatisticsLearning(metaclass=ABCMeta): + """This abstract base class defines a way to choose the summary statistics. + """ + + def __init__(self, model, statistics_calc, backend, n_samples=1000, n_samples_per_param=1, parameters=None, + simulations=None, seed=None): + + """The constructor of a sub-class must accept a non-optional model, statistics calculator and + backend which are stored to self.model, self.statistics_calc and self.backend. Further it + accepts two optional parameters n_samples and seed defining the number of simulated dataset + used for the pilot to decide the summary statistics and the integer to initialize the random + number generator. + + This __init__ takes care of sample-statistics generation, with the parallelization; however, you can choose + to provide simulations and corresponding parameters that have been previously generated, with the parameters + `parameters` and `simulations`. + + Parameters + ---------- + model: abcpy.models.Model + Model object that conforms to the Model class. + statistics_cal: abcpy.statistics.Statistics + Statistics object that conforms to the Statistics class. + backend: abcpy.backends.Backend + Backend object that conforms to the Backend class. + n_samples: int, optional + The number of (parameter, simulated data) tuple to be generated to learn the summary statistics in pilot + step. The default value is 1000. + This is ignored if `simulations` and `parameters` are provided. + n_samples_per_param: int, optional + Number of data points in each simulated data set. This is ignored if `simulations` and `parameters` are + provided. Default to 1. + parameters: array, optional + A numpy array with shape (n_samples, n_parameters) that is used, together with `simulations` to fit the + summary selection learning algorithm. It has to be provided together with `simulations`, in which case no + other simulations are performed. Default value is None. + simulations: array, optional + A numpy array with shape (n_samples, output_size) that is used, together with `parameters` to fit the + summary selection learning algorithm. It has to be provided together with `parameters`, in which case no + other simulations are performed. Default value is None. + seed: integer, optional + Optional initial seed for the random number generator. The default value is generated randomly. + """ + if (parameters is None) != (simulations is None): + raise RuntimeError("parameters and simulations need to be provided together.") + + self.model = model + self.statistics_calc = statistics_calc + self.backend = backend + self.rng = np.random.RandomState(seed) + self.n_samples_per_param = n_samples_per_param + self.logger = logging.getLogger(__name__) + + if parameters is None: # then also simulations is None + self.logger.info('Generation of data...') + + self.logger.debug("Definitions for parallelization.") + # An object managing the bds objects + self.accepted_parameters_manager = AcceptedParametersManager(self.model) + self.accepted_parameters_manager.broadcast(self.backend, []) + + self.logger.debug("Map phase.") + # main algorithm + seed_arr = self.rng.randint(1, n_samples * n_samples, size=n_samples, dtype=np.int32) + rng_arr = np.array([np.random.RandomState(seed) for seed in seed_arr]) + rng_pds = self.backend.parallelize(rng_arr) + + self.logger.debug("Collect phase.") + sample_parameters_statistics_pds = self.backend.map(self._sample_parameter_statistics, rng_pds) + + sample_parameters_and_statistics = self.backend.collect(sample_parameters_statistics_pds) + sample_parameters, sample_statistics = [list(t) for t in zip(*sample_parameters_and_statistics)] + sample_parameters = np.array(sample_parameters) + self.sample_statistics = np.concatenate(sample_statistics) + + self.logger.debug("Reshape data") + # reshape the sample parameters; so that we can also work with multidimensional parameters + self.sample_parameters = sample_parameters.reshape((n_samples, -1)) + + # now reshape the statistics in the case in which several n_samples_per_param > 1, and repeat the array with + # the parameters so that the regression algorithms can work on the pair of arrays. Maybe there are smarter + # ways of doing this. + + self.sample_statistics = self.sample_statistics.reshape(n_samples * self.n_samples_per_param, -1) + self.sample_parameters = np.repeat(self.sample_parameters, self.n_samples_per_param, axis=0) + self.logger.info('Data generation finished.') + + else: + # do all the checks on dimensions: + if not isinstance(parameters, np.ndarray) or not isinstance(simulations, np.ndarray): + raise TypeError("parameters and simulations need to be numpy arrays.") + if len(parameters.shape) != 2: + raise RuntimeError("parameters have to be a 2-dimensional array") + if len(simulations.shape) != 2: + raise RuntimeError("parameters have to be a 2-dimensional array") + if simulations.shape[0] != parameters.shape[0]: + raise RuntimeError("parameters and simulations need to have the same first dimension") + + # if all checks are passed: + self.sample_statistics = self.statistics_calc.statistics( + [simulations[i] for i in range(simulations.shape[0])]) + self.sample_parameters = parameters + + self.logger.info("The statistics will be learned using the provided data and parameters") + + def __getstate__(self): + state = self.__dict__.copy() + del state['backend'] + return state + + @abstractmethod + def get_statistics(self): + """ + This should return a statistics object that implements the learned transformation. + + Returns + ------- + abcpy.statistics.Statistics object + a statistics object that implements the learned transformation. + """ + raise NotImplementedError + + def _sample_parameter_statistics(self, rng=np.random.RandomState()): + """Function that generates (parameter, statistics). It is mapped to the different workers during data + generation. + """ + self.sample_from_prior(rng=rng) + parameter = self.get_parameters() + y_sim = self.simulate(self.n_samples_per_param, rng=rng) + if y_sim is not None: + statistics = self.statistics_calc.statistics(y_sim) + return parameter, statistics + + +class Semiautomatic(StatisticsLearning, GraphTools): + """This class implements the semi automatic summary statistics learning technique described in Fearnhead and + Prangle [1]. + + [1] Fearnhead P., Prangle D. 2012. Constructing summary statistics for approximate + Bayesian computation: semi-automatic approximate Bayesian computation. J. Roy. Stat. Soc. B 74:419–474. + """ + + def __init__(self, model, statistics_calc, backend, n_samples=1000, n_samples_per_param=1, parameters=None, + simulations=None, seed=None): + """ + Parameters + ---------- + model: abcpy.models.Model + Model object that conforms to the Model class. + statistics_cal: abcpy.statistics.Statistics + Statistics object that conforms to the Statistics class. + backend: abcpy.backends.Backend + Backend object that conforms to the Backend class. + n_samples: int, optional + The number of (parameter, simulated data) tuple to be generated to learn the summary statistics in pilot + step. The default value is 1000. + This is ignored if `simulations` and `parameters` are provided. + n_samples_per_param: int, optional + Number of data points in each simulated data set. This is ignored if `simulations` and `parameters` are + provided. + parameters: array, optional + A numpy array with shape (n_samples, n_parameters) that is used, together with `simulations` to fit the + summary selection learning algorithm. It has to be provided together with `simulations`, in which case no + other simulations are performed. Default value is None. + simulations: array, optional + A numpy array with shape (n_samples, output_size) that is used, together with `parameters` to fit the + summary selection learning algorithm. It has to be provided together with `parameters`, in which case no + other simulations are performed. Default value is None. + seed: integer, optional + Optional initial seed for the random number generator. The default value is generated randomly. + """ + # the sampling is performed by the init of the parent class + super(Semiautomatic, self).__init__(model, statistics_calc, backend, + n_samples, n_samples_per_param, parameters=parameters, + simulations=simulations, seed=seed) + + self.logger.info('Learning of the transformation...') + + self.coefficients_learnt = np.zeros(shape=(self.sample_parameters.shape[1], self.sample_statistics.shape[1])) + regr = linear_model.LinearRegression(fit_intercept=True) + for ind in range(self.sample_parameters.shape[1]): + regr.fit(self.sample_statistics, self.sample_parameters[:, ind]) + self.coefficients_learnt[ind, :] = regr.coef_ + + self.logger.info("Finished learning the transformation.") + + def get_statistics(self): + """ + Returns an abcpy.statistics.LinearTransformation Statistics implementing the learned transformation. + + Returns + ------- + abcpy.statistics.LinearTransformation object + a statistics object that implements the learned transformation. + """ + return LinearTransformation(np.transpose(self.coefficients_learnt), previous_statistics=self.statistics_calc) + + +class StatisticsLearningNN(StatisticsLearning, GraphTools): + """This is the base class for all the statistics learning techniques involving neural networks. In most cases, you + should not instantiate this directly. The actual classes instantiate this with the right arguments. + + In order to use this technique, Pytorch is required to handle the neural networks. + """ + + def __init__(self, model, statistics_calc, backend, training_routine, distance_learning, embedding_net=None, + n_samples=1000, n_samples_per_param=1, parameters=None, simulations=None, seed=None, cuda=None, + quantile=0.1, **training_routine_kwargs): + """ + Parameters + ---------- + model: abcpy.models.Model + Model object that conforms to the Model class. + statistics_cal: abcpy.statistics.Statistics + Statistics object that conforms to the Statistics class. + backend: abcpy.backends.Backend + Backend object that conforms to the Backend class. + training_routine: function + training routine to train the network. It has to take as first and second arguments the matrix of + simulations and the corresponding targets (or the similarity matrix if `distance_learning` is True). It also + needs to have as keyword parameters embedding_net and cuda. + distance_learning: boolean + this has to be True if the statistics learning technique is based on distance learning, in which case the + __init__ computes the similarity matrix. + embedding_net: torch.nn object or list + it can be a torch.nn object with input size corresponding to size of model output, alternatively, a list + with integer numbers denoting the width of the hidden layers, from which a fully connected network with + that structure is created, having the input and output size corresponding to size of model output and + number of parameters. In case this is None, the depth of the network and the width of the hidden layers is + determined from the input and output size as specified in abcpy.NN_utilities.networks.DefaultNN. + n_samples: int, optional + The number of (parameter, simulated data) tuple to be generated to learn the summary statistics in pilot + step. The default value is 1000. + This is ignored if `simulations` and `parameters` are provided. + n_samples_per_param: int, optional + Number of data points in each simulated data set. This is ignored if `simulations` and `parameters` are + provided. Default to 1. + parameters: array, optional + A numpy array with shape (n_samples, n_parameters) that is used, together with `simulations` to fit the + summary selection learning algorithm. It has to be provided together with `simulations`, in which case no + other simulations are performed. Default value is None. + simulations: array, optional + A numpy array with shape (n_samples, output_size) that is used, together with `parameters` to fit the + summary selection learning algorithm. It has to be provided together with `parameters`, in which case no + other simulations are performed. Default value is None. + seed: integer, optional + Optional initial seed for the random number generator. The default value is generated randomly. + cuda: boolean, optional + If cuda=None, it will select GPU if it is available. Or you can specify True to use GPU or False to use CPU + quantile: float, optional + quantile used to define the similarity set if distance_learning is True. Default to 0.1. + training_routine_kwargs: + additional kwargs to be passed to the underlying training routine. + """ + self.logger = logging.getLogger(__name__) + + # Define device + if not has_torch: + raise ModuleNotFoundError( + "Pytorch is required to instantiate an element of the {} class, in order to handle " + "neural networks. Please install it. ".format(self.__class__.__name__)) + + # set random seed for torch as well: + if seed is not None: + torch.manual_seed(seed) + + if cuda is None: + cuda = torch.cuda.is_available() + elif cuda and not torch.cuda.is_available: + # if the user requested to use GPU but no GPU is there + cuda = False + self.logger.warning( + "You requested to use GPU but no GPU is available! The computation will proceed on CPU.") + + self.device = "cuda" if cuda and torch.cuda.is_available else "cpu" + if self.device == "cuda": + self.logger.debug("We are using GPU to train the network.") + else: + self.logger.debug("We are using CPU to train the network.") + + # this handles generation of the data (or its formatting in case the data is provided to the Semiautomatic + # class) + super(StatisticsLearningNN, self).__init__(model, statistics_calc, backend, n_samples, n_samples_per_param, + parameters, simulations, seed) + + self.logger.info('Learning of the transformation...') + # Define Data + target, simulations_reshaped = self.sample_parameters, self.sample_statistics + + if distance_learning: + self.logger.debug("Computing similarity matrix...") + # define the similarity set + similarity_set = compute_similarity_matrix(target, quantile) + self.logger.debug("Done") + + # now setup the default neural network or not + + if isinstance(embedding_net, torch.nn.Module): + self.embedding_net = embedding_net + self.logger.debug('We use the provided neural network') + + elif isinstance(embedding_net, list) or embedding_net is None: + # therefore we need to generate the neural network given the list. The following function returns a class + # of NN with given input size, output size and hidden sizes; then, need () to instantiate the network + self.embedding_net = createDefaultNN(input_size=simulations_reshaped.shape[1], output_size=target.shape[1], + hidden_sizes=embedding_net)() + self.logger.debug('We generate a default neural network') + + if cuda: + self.embedding_net.cuda() + + self.logger.debug('We now run the training routine') + + if distance_learning: + self.embedding_net = training_routine(simulations_reshaped, similarity_set, + embedding_net=self.embedding_net, cuda=cuda, + **training_routine_kwargs) + else: + self.embedding_net = training_routine(simulations_reshaped, target, embedding_net=self.embedding_net, + cuda=cuda, **training_routine_kwargs) + + self.logger.info("Finished learning the transformation.") + + def get_statistics(self): + """ + Returns a NeuralEmbedding Statistics implementing the learned transformation. + + Returns + ------- + abcpy.statistics.NeuralEmbedding object + a statistics object that implements the learned transformation. + """ + return NeuralEmbedding(net=self.embedding_net, previous_statistics=self.statistics_calc) + + +# the following classes subclass the base class StatisticsLearningNN with different training routines + +class SemiautomaticNN(StatisticsLearningNN): + """This class implements the semi automatic summary statistics learning technique as described in + Jiang et al. 2017 [1]. + + In order to use this technique, Pytorch is required to handle the neural networks. + + [1] Jiang, B., Wu, T.Y., Zheng, C. and Wong, W.H., 2017. Learning summary statistic for approximate Bayesian + computation via deep neural network. Statistica Sinica, pp.1595-1618. + """ + + def __init__(self, model, statistics_calc, backend, embedding_net=None, n_samples=1000, n_samples_per_param=1, + parameters=None, simulations=None, seed=None, cuda=None, batch_size=16, n_epochs=200, + load_all_data_GPU=False, lr=1e-3, optimizer=None, scheduler=None, start_epoch=0, verbose=False, + optimizer_kwargs={}, scheduler_kwargs={}, loader_kwargs={}): + """ + Parameters + ---------- + model: abcpy.models.Model + Model object that conforms to the Model class. + statistics_cal: abcpy.statistics.Statistics + Statistics object that conforms to the Statistics class. + backend: abcpy.backends.Backend + Backend object that conforms to the Backend class. + embedding_net: torch.nn object or list + it can be a torch.nn object with input size corresponding to size of model output and output size + corresponding to the number of parameters or, alternatively, a list with integer numbers denoting the width + of the hidden layers, from which a fully connected network with that structure is created, having the input + and output size corresponding to size of model output and number of parameters. In case this is None, the + depth of the network and the width of the hidden layers is determined from the input and output size as + specified in abcpy.NN_utilities.networks.DefaultNN. + n_samples: int, optional + The number of (parameter, simulated data) tuple to be generated to learn the summary statistics in pilot + step. The default value is 1000. + This is ignored if `simulations` and `parameters` are provided. + n_samples_per_param: int, optional + Number of data points in each simulated data set. This is ignored if `simulations` and `parameters` are + provided. Default to 1. + parameters: array, optional + A numpy array with shape (n_samples, n_parameters) that is used, together with `simulations` to fit the + summary selection learning algorithm. It has to be provided together with `simulations`, in which case no + other simulations are performed. Default value is None. + simulations: array, optional + A numpy array with shape (n_samples, output_size) that is used, together with `parameters` to fit the + summary selection learning algorithm. It has to be provided together with `parameters`, in which case no + other simulations are performed. Default value is None. + seed: integer, optional + Optional initial seed for the random number generator. The default value is generated randomly. + cuda: boolean, optional + If cuda=None, it will select GPU if it is available. Or you can specify True to use GPU or False to use CPU + batch_size: integer, optional + the batch size used for training the neural network. Default is 16 + n_epochs: integer, optional + the number of epochs used for training the neural network. Default is 200 + load_all_data_GPU: boolean, optional + If True and if we a GPU is used, the whole dataset is loaded on the GPU before training begins; this may + speed up training as it avoid transfer between CPU and GPU, but it is not guaranteed to do. Note that if the + dataset is not small enough, setting this to True causes things to crash if the dataset is too large. + Default to False, you should not rely too much on this. + lr: float, optional + The learning rate to be used in the iterative training scheme of the neural network. Default to 1e-3. + optimizer: torch Optimizer class, optional + A torch Optimizer class, for instance `SGD` or `Adam`. Default to `Adam`. Additional parameters may be + passed through the `optimizer_kwargs` parameter. + scheduler: torch _LRScheduler class, optional + A torch _LRScheduler class, used to modify the learning rate across epochs. By default, no scheduler is + used. Additional parameters may be passed through the `scheduler_kwargs` parameter. + start_epoch: integer, optional + If a scheduler is provided, for the first `start_epoch` epochs the scheduler is applied to modify the + learning rate without training the network. From then on, the training proceeds normally, applying both the + scheduler and the optimizer at each epoch. Default to 0. + verbose: boolean, optional + if True, prints more information from the training routine. Default to False. + optimizer_kwargs: Python dictionary, optional + dictionary containing optional keyword arguments for the optimizer. + scheduler_kwargs: Python dictionary, optional + dictionary containing optional keyword arguments for the scheduler. + loader_kwargs: Python dictionary, optional + dictionary containing optional keyword arguments for the loader (that handles loading the samples from the + dataset during the training phase). + """ + super(SemiautomaticNN, self).__init__(model, statistics_calc, backend, FP_nn_training, distance_learning=False, + embedding_net=embedding_net, n_samples=n_samples, + n_samples_per_param=n_samples_per_param, parameters=parameters, + simulations=simulations, seed=seed, cuda=cuda, batch_size=batch_size, + n_epochs=n_epochs, load_all_data_GPU=load_all_data_GPU, lr=lr, + optimizer=optimizer, scheduler=scheduler, start_epoch=start_epoch, + verbose=verbose, optimizer_kwargs=optimizer_kwargs, + scheduler_kwargs=scheduler_kwargs, loader_kwargs=loader_kwargs) + + +class TripletDistanceLearning(StatisticsLearningNN): + """This class implements the statistics learning technique by using the triplet loss [1] for distance learning as + described in Pacchiardi et al. 2019 [2]. + + In order to use this technique, Pytorch is required to handle the neural networks. + + [1] Schroff, F., Kalenichenko, D. and Philbin, J., 2015. Facenet: A unified embedding for face recognition and + clustering. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 815-823). + + [2] Pacchiardi, L., Kunzli, P., Schoengens, M., Chopard, B. and Dutta, R., 2019. Distance-learning For Approximate + Bayesian Computation To Model a Volcanic Eruption. arXiv preprint arXiv:1909.13118. + """ + + def __init__(self, model, statistics_calc, backend, embedding_net=None, n_samples=1000, n_samples_per_param=1, + parameters=None, simulations=None, seed=None, cuda=None, quantile=0.1, batch_size=16, n_epochs=200, + load_all_data_GPU=False, margin=1., lr=None, optimizer=None, scheduler=None, start_epoch=0, + verbose=False, optimizer_kwargs={}, scheduler_kwargs={}, loader_kwargs={}): + """ + Parameters + ---------- + model: abcpy.models.Model + Model object that conforms to the Model class. + statistics_cal: abcpy.statistics.Statistics + Statistics object that conforms to the Statistics class. + backend: abcpy.backends.Backend + Backend object that conforms to the Backend class. + embedding_net: torch.nn object or list + it can be a torch.nn object with input size corresponding to size of model output (output size can be any); + alternatively, a list with integer numbers denoting the width of the hidden layers, from which a fully + connected network with that structure is created, having the input and output size corresponding to size of + model output and number of parameters. In case this is None, the depth of the network and the width of the + hidden layers is determined from the input and output size as specified in + abcpy.NN_utilities.networks.DefaultNN. + n_samples: int, optional + The number of (parameter, simulated data) tuple to be generated to learn the summary statistics in pilot + step. The default value is 1000. + This is ignored if `simulations` and `parameters` are provided. + n_samples_per_param: int, optional + Number of data points in each simulated data set. This is ignored if `simulations` and `parameters` are + provided. Default to 1. + parameters: array, optional + A numpy array with shape (n_samples, n_parameters) that is used, together with `simulations` to fit the + summary selection learning algorithm. It has to be provided together with `simulations`, in which case no + other simulations are performed. Default value is None. + simulations: array, optional + A numpy array with shape (n_samples, output_size) that is used, together with `parameters` to fit the + summary selection learning algorithm. It has to be provided together with `parameters`, in which case no + other simulations are performed. Default value is None. + seed: integer, optional + Optional initial seed for the random number generator. The default value is generated randomly. + cuda: boolean, optional + If cuda=None, it will select GPU if it is available. Or you can specify True to use GPU or False to use CPU + quantile: float, optional + quantile used to define the similarity set if distance_learning is True. Default to 0.1. + batch_size: integer, optional + the batch size used for training the neural network. Default is 16 + n_epochs: integer, optional + the number of epochs used for training the neural network. Default is 200 + load_all_data_GPU: boolean, optional + If True and if we a GPU is used, the whole dataset is loaded on the GPU before training begins; this may + speed up training as it avoid transfer between CPU and GPU, but it is not guaranteed to do. Note that if the + dataset is not small enough, setting this to True causes things to crash if the dataset is too large. + Default to False, you should not rely too much on this. + margin: float, optional + margin defining the triplet loss. The larger it is, the further away dissimilar samples are pushed with + respect to similar ones. Default to 1. + lr: float, optional + The learning rate to be used in the iterative training scheme of the neural network. Default to 1e-3. + optimizer: torch Optimizer class, optional + A torch Optimizer class, for instance `SGD` or `Adam`. Default to `Adam`. Additional parameters may be + passed through the `optimizer_kwargs` parameter. + scheduler: torch _LRScheduler class, optional + A torch _LRScheduler class, used to modify the learning rate across epochs. By default, no scheduler is + used. Additional parameters may be passed through the `scheduler_kwargs` parameter. + start_epoch: integer, optional + If a scheduler is provided, for the first `start_epoch` epochs the scheduler is applied to modify the + learning rate without training the network. From then on, the training proceeds normally, applying both the + scheduler and the optimizer at each epoch. Default to 0. + verbose: boolean, optional + if True, prints more information from the training routine. Default to False. + optimizer_kwargs: Python dictionary, optional + dictionary containing optional keyword arguments for the optimizer. + scheduler_kwargs: Python dictionary, optional + dictionary containing optional keyword arguments for the scheduler. + loader_kwargs: Python dictionary, optional + dictionary containing optional keyword arguments for the loader (that handles loading the samples from the + dataset during the training phase). + """ + + super(TripletDistanceLearning, self).__init__(model, statistics_calc, backend, triplet_training, + distance_learning=True, embedding_net=embedding_net, + n_samples=n_samples, n_samples_per_param=n_samples_per_param, + parameters=parameters, simulations=simulations, seed=seed, + cuda=cuda, quantile=quantile, batch_size=batch_size, + n_epochs=n_epochs, load_all_data_GPU=load_all_data_GPU, + margin=margin, lr=lr, optimizer=optimizer, scheduler=scheduler, + start_epoch=start_epoch, verbose=verbose, + optimizer_kwargs=optimizer_kwargs, + scheduler_kwargs=scheduler_kwargs, loader_kwargs=loader_kwargs) + + +class ContrastiveDistanceLearning(StatisticsLearningNN): + """This class implements the statistics learning technique by using the contrastive loss [1] for distance learning + as described in Pacchiardi et al. 2019 [2]. + + In order to use this technique, Pytorch is required to handle the neural networks. + + [1] Hadsell, R., Chopra, S. and LeCun, Y., 2006, June. Dimensionality reduction by learning an invariant mapping. + In 2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'06) (Vol. 2, + pp. 1735-1742). IEEE. + + [2] Pacchiardi, L., Kunzli, P., Schoengens, M., Chopard, B. and Dutta, R., 2019. Distance-learning For Approximate + Bayesian Computation To Model a Volcanic Eruption. arXiv preprint arXiv:1909.13118. + """ + + def __init__(self, model, statistics_calc, backend, embedding_net=None, n_samples=1000, n_samples_per_param=1, + parameters=None, simulations=None, seed=None, cuda=None, quantile=0.1, batch_size=16, n_epochs=200, + positive_weight=None, load_all_data_GPU=False, margin=1., lr=None, optimizer=None, scheduler=None, + start_epoch=0, verbose=False, optimizer_kwargs={}, scheduler_kwargs={}, loader_kwargs={}): + """ + Parameters + ---------- + model: abcpy.models.Model + Model object that conforms to the Model class. + statistics_cal: abcpy.statistics.Statistics + Statistics object that conforms to the Statistics class. + backend: abcpy.backends.Backend + Backend object that conforms to the Backend class. + embedding_net: torch.nn object or list + it can be a torch.nn object with input size corresponding to size of model output (output size can be any); + alternatively, a list with integer numbers denoting the width of the hidden layers, from which a fully + connected network with that structure is created, having the input and output size corresponding to size of + model output and number of parameters. In case this is None, the depth of the network and the width of the + hidden layers is determined from the input and output size as specified in + abcpy.NN_utilities.networks.DefaultNN. + n_samples: int, optional + The number of (parameter, simulated data) tuple to be generated to learn the summary statistics in pilot + step. The default value is 1000. + This is ignored if `simulations` and `parameters` are provided. + n_samples_per_param: int, optional + Number of data points in each simulated data set. This is ignored if `simulations` and `parameters` are + provided. Default to 1. + parameters: array, optional + A numpy array with shape (n_samples, n_parameters) that is used, together with `simulations` to fit the + summary selection learning algorithm. It has to be provided together with `simulations`, in which case no + other simulations are performed. Default value is None. + simulations: array, optional + A numpy array with shape (n_samples, output_size) that is used, together with `parameters` to fit the + summary selection learning algorithm. It has to be provided together with `parameters`, in which case no + other simulations are performed. Default value is None. + seed: integer, optional + Optional initial seed for the random number generator. The default value is generated randomly. + cuda: boolean, optional + If cuda=None, it will select GPU if it is available. Or you can specify True to use GPU or False to use CPU + quantile: float, optional + quantile used to define the similarity set if distance_learning is True. Default to 0.1. + batch_size: integer, optional + the batch size used for training the neural network. Default is 16 + n_epochs: integer, optional + the number of epochs used for training the neural network. Default is 200 + positive_weight: float, optional + The contrastive loss samples pairs of elements at random, and if the majority of samples are labelled as + dissimilar, the probability of considering similar pairs is small. Then, you can set this value to a number + between 0 and 1 in order to sample positive pairs with that probability during training. + load_all_data_GPU: boolean, optional + If True and if we a GPU is used, the whole dataset is loaded on the GPU before training begins; this may + speed up training as it avoid transfer between CPU and GPU, but it is not guaranteed to do. Note that if the + dataset is not small enough, setting this to True causes things to crash if the dataset is too large. + Default to False, you should not rely too much on this. + margin: float, optional + margin defining the contrastive loss. The larger it is, the further away dissimilar samples are pushed with + respect to similar ones. Default to 1. + lr: float, optional + The learning rate to be used in the iterative training scheme of the neural network. Default to 1e-3. + optimizer: torch Optimizer class, optional + A torch Optimizer class, for instance `SGD` or `Adam`. Default to `Adam`. Additional parameters may be + passed through the `optimizer_kwargs` parameter. + scheduler: torch _LRScheduler class, optional + A torch _LRScheduler class, used to modify the learning rate across epochs. By default, no scheduler is + used. Additional parameters may be passed through the `scheduler_kwargs` parameter. + start_epoch: integer, optional + If a scheduler is provided, for the first `start_epoch` epochs the scheduler is applied to modify the + learning rate without training the network. From then on, the training proceeds normally, applying both the + scheduler and the optimizer at each epoch. Default to 0. + verbose: boolean, optional + if True, prints more information from the training routine. Default to False. + optimizer_kwargs: Python dictionary, optional + dictionary containing optional keyword arguments for the optimizer. + scheduler_kwargs: Python dictionary, optional + dictionary containing optional keyword arguments for the scheduler. + loader_kwargs: Python dictionary, optional + dictionary containing optional keyword arguments for the loader (that handles loading the samples from the + dataset during the training phase). + """ + + super(ContrastiveDistanceLearning, self).__init__(model, statistics_calc, backend, contrastive_training, + distance_learning=True, embedding_net=embedding_net, + n_samples=n_samples, n_samples_per_param=n_samples_per_param, + parameters=parameters, simulations=simulations, seed=seed, + cuda=cuda, quantile=quantile, batch_size=batch_size, + n_epochs=n_epochs, positive_weight=positive_weight, + load_all_data_GPU=load_all_data_GPU, margin=margin, lr=lr, + optimizer=optimizer, scheduler=scheduler, + start_epoch=start_epoch, verbose=verbose, + optimizer_kwargs=optimizer_kwargs, + scheduler_kwargs=scheduler_kwargs, + loader_kwargs=loader_kwargs) diff --git a/abcpy/summaryselections.py b/abcpy/summaryselections.py deleted file mode 100644 index 10690bfb..00000000 --- a/abcpy/summaryselections.py +++ /dev/null @@ -1,112 +0,0 @@ -from abc import ABCMeta, abstractmethod - -from abcpy.graphtools import GraphTools -from abcpy.acceptedparametersmanager import * - -import numpy as np -from sklearn import linear_model - - -class Summaryselections(metaclass=ABCMeta): - """This abstract base class defines a way to choose the summary statistics. - """ - - @abstractmethod - def __init__(self, model, statistics_calc, backend, n_samples=1000, seed=None): - """The constructor of a sub-class must accept a non-optional model, statistics calculator and - backend which are stored to self.model, self.statistics_calc and self.backend. Further it - accepts two optional parameters n_samples and seed defining the number of simulated dataset - used for the pilot to decide the summary statistics and the integer to initialize the random - number generator. - - Parameters - ---------- - model: abcpy.models.Model - Model object that conforms to the Model class. - statistics_cal: abcpy.statistics.Statistics - Statistics object that conforms to the Statistics class. - backend: abcpy.backends.Backend - Backend object that conforms to the Backend class. - n_samples: int, optional - The number of (parameter, simulated data) tuple generated to learn the summary statistics in pilot step. - The default value is 1000. - n_samples_per_param: int, optional - Number of data points in each simulated data set. - seed: integer, optional - Optional initial seed for the random number generator. The default value is generated randomly. - """ - raise NotImplementedError - - def __getstate__(self): - state = self.__dict__.copy() - del state['backend'] - return state - - @abstractmethod - def transformation(self, statistics): - raise NotImplementedError - - -class Semiautomatic(Summaryselections, GraphTools): - """This class implements the semi automatic summary statistics choice described in Fearnhead and Prangle [1]. - - [1] Fearnhead P., Prangle D. 2012. Constructing summary statistics for approximate - Bayesian computation: semi-automatic approximate Bayesian computation. J. Roy. Stat. Soc. B 74:419–474. - """ - - def __init__(self, model, statistics_calc, backend, n_samples=1000, n_samples_per_param = 1, seed=None): - self.model = model - self.statistics_calc = statistics_calc - self.backend = backend - self.rng = np.random.RandomState(seed) - self.n_samples_per_param = n_samples_per_param - - # An object managing the bds objects - self.accepted_parameters_manager = AcceptedParametersManager(self.model) - self.accepted_parameters_manager.broadcast(self.backend, []) - - # main algorithm - seed_arr = self.rng.randint(1, n_samples * n_samples, size=n_samples, dtype=np.int32) - rng_arr = np.array([np.random.RandomState(seed) for seed in seed_arr]) - rng_pds = self.backend.parallelize(rng_arr) - - sample_parameters_statistics_pds = self.backend.map(self._sample_parameter_statistics, rng_pds) - - sample_parameters_and_statistics = self.backend.collect(sample_parameters_statistics_pds) - sample_parameters, sample_statistics = [list(t) for t in zip(*sample_parameters_and_statistics)] - sample_parameters = np.array(sample_parameters) - sample_statistics = np.concatenate(sample_statistics) - - self.coefficients_learnt = np.zeros(shape=(sample_parameters.shape[1], sample_statistics.shape[1])) - regr = linear_model.LinearRegression(fit_intercept=True) - for ind in range(sample_parameters.shape[1]): - regr.fit(sample_statistics, sample_parameters[:, ind]) - self.coefficients_learnt[ind, :] = regr.coef_ - - def transformation(self, statistics): - if not statistics.shape[1] == self.coefficients_learnt.shape[1]: - raise ValueError('Mismatch in dimension of summary statistics') - return np.dot(statistics, np.transpose(self.coefficients_learnt)) - - def _sample_parameter_statistics(self, rng=np.random.RandomState()): - """ - Samples a single model parameter and simulates from it until - distance between simulated outcome and the observation is - smaller than eplison. - - Parameters - ---------- - seed: int - value of a seed to be used for reseeding - Returns - ------- - np.array - accepted parameter - """ - - self.sample_from_prior(rng=rng) - parameter = self.get_parameters() - y_sim = self.simulate(self.n_samples_per_param, rng=rng) - if y_sim is not None: - statistics = self.statistics_calc.statistics(y_sim) - return (parameter, statistics) From bd46152e9856911343c92e4052b738007fde4db0 Mon Sep 17 00:00:00 2001 From: LoryPack Date: Mon, 6 Jan 2020 21:55:39 +0100 Subject: [PATCH 02/18] Add tests for new version --- tests/inferences_tests.py | 5 +- tests/statistics_tests.py | 101 +++++++++++++++---- tests/statisticslearning_tests.py | 161 ++++++++++++++++++++++++++++++ tests/summaryselections_tests.py | 42 -------- 4 files changed, 245 insertions(+), 64 deletions(-) create mode 100644 tests/statisticslearning_tests.py delete mode 100644 tests/summaryselections_tests.py diff --git a/tests/inferences_tests.py b/tests/inferences_tests.py index 56db701c..7e0450d4 100644 --- a/tests/inferences_tests.py +++ b/tests/inferences_tests.py @@ -1,6 +1,5 @@ import unittest import numpy as np -import warnings from abcpy.backends import BackendDummy from abcpy.continuousmodels import Normal @@ -453,8 +452,8 @@ def test_sample(self): self.assertEqual(mu_sample_shape, (10,1)) self.assertEqual(sigma_sample_shape, (10,1)) self.assertEqual(weights_sample_shape, (10,1)) - self.assertLess(mu_post_mean - (-2.785), 10e-2) - self.assertLess(sigma_post_mean - 6.2058, 10e-2) + self.assertLess(mu_post_mean - (-3.397848324005792), 10e-2) + self.assertLess(sigma_post_mean - 6.451434816944525, 10e-2) self.assertFalse(journal.number_of_simulations == 0) diff --git a/tests/statistics_tests.py b/tests/statistics_tests.py index 2c99063c..4d06dcd0 100644 --- a/tests/statistics_tests.py +++ b/tests/statistics_tests.py @@ -1,36 +1,99 @@ import unittest import numpy as np -from abcpy.statistics import Identity +from abcpy.statistics import Identity, LinearTransformation, NeuralEmbedding + +try: + import torch +except ModuleNotFoundError: + has_torch = False +else: + has_torch = True + from abcpy.NN_utilities.networks import createDefaultNN + class IdentityTests(unittest.TestCase): def setUp(self): - self.stat_calc = Identity(degree = 1, cross = 0) + self.stat_calc = Identity(degree=1, cross=0) def test_statistics(self): self.assertRaises(TypeError, self.stat_calc.statistics, 3.4) - vec1 = np.array([1,2]) + vec1 = np.array([1, 2]) vec2 = np.array([1]) self.assertTrue((self.stat_calc.statistics([vec1]) == np.array([vec1])).all()) - self.assertTrue((self.stat_calc.statistics([vec1,vec1]) == np.array([[vec1],[vec1]])).all()) - self.assertTrue((self.stat_calc.statistics([vec2,vec2]) == np.array([[vec2],[vec2]])).all()) - + self.assertTrue((self.stat_calc.statistics([vec1, vec1]) == np.array([[vec1], [vec1]])).all()) + self.assertTrue((self.stat_calc.statistics([vec2, vec2]) == np.array([[vec2], [vec2]])).all()) + + def test_polynomial_expansion(self): + # Checks whether wrong input type produces error message + self.assertRaises(TypeError, self.stat_calc._polynomial_expansion, 3.4) + + a = [np.array([0, 2]), np.array([2, 1])] + # test cross-product part + self.stat_calc = Identity(degree=2, cross=1) + self.assertTrue((self.stat_calc.statistics(a) == np.array([[0, 2, 0, 4, 0], [2, 1, 4, 1, 2]])).all()) + # When a tuple + a = [np.array([0, 2])] + self.stat_calc = Identity(degree=2, cross=1) + self.assertTrue((self.stat_calc.statistics(a) == np.array([[0, 2, 0, 4, 0]])).all()) + self.stat_calc = Identity(degree=2, cross=0) + self.assertTrue((self.stat_calc.statistics(a) == np.array([[0, 2, 0, 4]])).all()) + a = list(np.array([2])) + self.stat_calc = Identity(degree=2, cross=1) + self.assertTrue((self.stat_calc.statistics(a) == np.array([[2, 4]])).all()) + + +class LinearTransformationTests(unittest.TestCase): + def setUp(self): + self.coeff = np.array([[3, 4], [5, 6]]) + self.stat_calc = LinearTransformation(self.coeff, degree=1, cross=0) + + def test_statistics(self): + self.assertRaises(TypeError, self.stat_calc.statistics, 3.4) + vec1 = np.array([1, 2]) + vec2 = np.array([1]) + self.assertTrue((self.stat_calc.statistics([vec1]) == np.dot(vec1, self.coeff)).all()) + self.assertTrue((self.stat_calc.statistics([vec1, vec1]) == np.array( + [np.dot(np.array([1, 2]), self.coeff), np.dot(np.array([1, 2]), self.coeff)])).all()) + self.assertRaises(ValueError, self.stat_calc.statistics, [vec2]) + def test_polynomial_expansion(self): - #Checks whether wrong input type produces error message + # Checks whether wrong input type produces error message self.assertRaises(TypeError, self.stat_calc._polynomial_expansion, 3.4) - a = [np.array([0, 2]),np.array([2,1])] + a = [np.array([0, 2]), np.array([2, 1])] # test cross-product part - self.stat_calc = Identity(degree = 2, cross = 1) - self.assertTrue((self.stat_calc.statistics(a) == np.array([[0,2,0,4,0],[2,1,4,1,2]])).all()) + self.stat_calc = LinearTransformation(self.coeff, degree=2, cross=1) + self.assertTrue((self.stat_calc.statistics(a) == np.array([[10, 12, 100, 144, 120], + [11, 14, 121, 196, 154]])).all()) # When a tuple - a = [np.array([0, 2])] - self.stat_calc = Identity(degree = 2, cross = 1) - self.assertTrue((self.stat_calc.statistics(a) == np.array([[0,2,0,4,0]])).all()) - self.stat_calc = Identity(degree = 2, cross = 0) - self.assertTrue((self.stat_calc.statistics(a) == np.array([[0,2,0,4]])).all()) - a = list(np.array([2])) - self.stat_calc = Identity(degree = 2, cross = 1) - self.assertTrue((self.stat_calc.statistics(a) == np.array([[2,4]])).all()) - + a = [np.array([0, 2])] + self.stat_calc = LinearTransformation(self.coeff, degree=2, cross=1) + self.assertTrue((self.stat_calc.statistics(a) == np.array([[10, 12, 100, 144, 120]])).all()) + self.stat_calc = LinearTransformation(self.coeff, degree=2, cross=0) + self.assertTrue((self.stat_calc.statistics(a) == np.array([[10, 12, 100, 144]])).all()) + a = list(np.array([2])) + self.stat_calc = LinearTransformation(self.coeff, degree=2, cross=1) + self.assertRaises(ValueError, self.stat_calc.statistics, a) + + +class NeuralEmbeddingTests(unittest.TestCase): + def setUp(self): + if has_torch: + self.net = createDefaultNN(2, 3)() + + def test_statistics(self): + if not has_torch: + self.assertRaises(ModuleNotFoundError, NeuralEmbedding, None) + else: + self.stat_calc = NeuralEmbedding(self.net) + + self.assertRaises(TypeError, self.stat_calc.statistics, 3.4) + vec1 = np.array([1, 2]) + vec2 = np.array([1]) + self.assertTrue((self.stat_calc.statistics([vec1])).all()) + self.assertTrue((self.stat_calc.statistics([vec1, vec1])).all()) + self.assertRaises(RuntimeError, self.stat_calc.statistics, [vec2]) + + if __name__ == '__main__': unittest.main() diff --git a/tests/statisticslearning_tests.py b/tests/statisticslearning_tests.py new file mode 100644 index 00000000..4170dc27 --- /dev/null +++ b/tests/statisticslearning_tests.py @@ -0,0 +1,161 @@ +import unittest +import numpy as np +from abcpy.continuousmodels import Uniform +from abcpy.continuousmodels import Normal +from abcpy.statistics import Identity +from abcpy.backends import BackendDummy as Backend +from abcpy.statisticslearning import Semiautomatic, SemiautomaticNN, TripletDistanceLearning, \ + ContrastiveDistanceLearning + +try: + import torch +except ModuleNotFoundError: + has_torch = False +else: + has_torch = True + + +class SemiautomaticTests(unittest.TestCase): + def setUp(self): + # define prior and model + sigma = Uniform([[10], [20]]) + mu = Normal([0, 1]) + Y = Normal([mu, sigma]) + + # define backend + self.backend = Backend() + + # define statistics + self.statistics_cal = Identity(degree=3, cross=False) + + # Initialize statistics learning + self.statisticslearning = Semiautomatic([Y], self.statistics_cal, self.backend, n_samples=1000, + n_samples_per_param=1, seed=1) + + def test_transformation(self): + # Transform statistics extraction + self.new_statistics_calculator = self.statisticslearning.get_statistics() + # Simulate observed data + Obs = Normal([2, 4]) + y_obs = Obs.forward_simulate(Obs.get_input_values(), 1)[0].tolist() + + extracted_statistics = self.new_statistics_calculator.statistics(y_obs) + self.assertEqual(np.shape(extracted_statistics), (1, 2)) + + # NOTE we cannot test this, since the linear regression used uses a random number generator (which we cannot access and is in C). Therefore, our results differ and testing might fail + # self.assertLess(extracted_statistics[0,0] - 0.00215507052338, 10e-2) + # self.assertLess(extracted_statistics[0,1] - (-0.0058023274456), 10e-2) + + +class SemiautomaticNNTests(unittest.TestCase): + def setUp(self): + # define prior and model + sigma = Uniform([[10], [20]]) + mu = Normal([0, 1]) + self.Y = Normal([mu, sigma]) + + # define backend + self.backend = Backend() + + # define statistics + self.statistics_cal = Identity(degree=3, cross=False) + + if has_torch: + # Initialize statistics learning + self.statisticslearning = SemiautomaticNN([self.Y], self.statistics_cal, self.backend, n_samples=100, + n_samples_per_param=1, seed=1, n_epochs=10) + + def test_initialization(self): + if not has_torch: + self.assertRaises(ModuleNotFoundError, SemiautomaticNN, [self.Y], self.statistics_cal, self.backend) + + def test_transformation(self): + if has_torch: + # Transform statistics extraction + self.new_statistics_calculator = self.statisticslearning.get_statistics() + # Simulate observed data + Obs = Normal([2, 4]) + y_obs = Obs.forward_simulate(Obs.get_input_values(), 1)[0].tolist() + + extracted_statistics = self.new_statistics_calculator.statistics(y_obs) + self.assertEqual(np.shape(extracted_statistics), (1, 2)) + + self.assertRaises(RuntimeError, self.new_statistics_calculator.statistics, [np.array([1, 2])]) + + +class ContrastiveDistanceLearningTests(unittest.TestCase): + def setUp(self): + # define prior and model + sigma = Uniform([[10], [20]]) + mu = Normal([0, 1]) + self.Y = Normal([mu, sigma]) + + # define backend + self.backend = Backend() + + # define statistics + self.statistics_cal = Identity(degree=3, cross=False) + + if has_torch: + # Initialize statistics learning + self.statisticslearning = ContrastiveDistanceLearning([self.Y], self.statistics_cal, self.backend, + n_samples=100, n_samples_per_param=1, seed=1, + n_epochs=10) + + def test_initialization(self): + if not has_torch: + self.assertRaises(ModuleNotFoundError, ContrastiveDistanceLearning, [self.Y], self.statistics_cal, + self.backend) + + def test_transformation(self): + if has_torch: + # Transform statistics extraction + self.new_statistics_calculator = self.statisticslearning.get_statistics() + # Simulate observed data + Obs = Normal([2, 4]) + y_obs = Obs.forward_simulate(Obs.get_input_values(), 1)[0].tolist() + + extracted_statistics = self.new_statistics_calculator.statistics(y_obs) + self.assertEqual(np.shape(extracted_statistics), (1, 2)) + + self.assertRaises(RuntimeError, self.new_statistics_calculator.statistics, [np.array([1, 2])]) + + +class TripletDistanceLearningTests(unittest.TestCase): + def setUp(self): + # define prior and model + sigma = Uniform([[10], [20]]) + mu = Normal([0, 1]) + self.Y = Normal([mu, sigma]) + + # define backend + self.backend = Backend() + + # define statistics + self.statistics_cal = Identity(degree=3, cross=False) + + if has_torch: + # Initialize statistics learning + self.statisticslearning = TripletDistanceLearning([self.Y], self.statistics_cal, self.backend, + n_samples=100, n_samples_per_param=1, seed=1, n_epochs=10) + + def test_initialization(self): + if not has_torch: + self.assertRaises(ModuleNotFoundError, TripletDistanceLearning, [self.Y], self.statistics_cal, self.backend) + + def test_transformation(self): + if has_torch: + # Transform statistics extraction + self.new_statistics_calculator = self.statisticslearning.get_statistics() + # Simulate observed data + Obs = Normal([2, 4]) + y_obs = Obs.forward_simulate(Obs.get_input_values(), 1)[0].tolist() + + extracted_statistics = self.new_statistics_calculator.statistics(y_obs) + self.assertEqual(np.shape(extracted_statistics), (1, 2)) + + self.assertRaises(RuntimeError, self.new_statistics_calculator.statistics, [np.array([1, 2])]) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/summaryselections_tests.py b/tests/summaryselections_tests.py deleted file mode 100644 index 56e53492..00000000 --- a/tests/summaryselections_tests.py +++ /dev/null @@ -1,42 +0,0 @@ -import unittest -import numpy as np -from abcpy.continuousmodels import Uniform -from abcpy.continuousmodels import Normal -from abcpy.statistics import Identity -from abcpy.backends import BackendDummy as Backend -from abcpy.summaryselections import Semiautomatic - - -class SemiautomaticTests(unittest.TestCase): - def setUp(self): - - # define prior and model - sigma = Uniform([[10], [20]]) - mu = Normal([0, 1]) - Y = Normal([mu, sigma]) - - # define backend - self.backend = Backend() - - # define statistics - self.statistics_cal = Identity(degree = 3, cross = False) - - # Initialize summaryselection - self.summaryselection = Semiautomatic([Y], self.statistics_cal, self.backend, n_samples = 1000, n_samples_per_param = 1, seed = 1) - - def test_transformation(self): - # Transform statistics extraction - self.statistics_cal.statistics = lambda x, f2=self.summaryselection.transformation, f1=self.statistics_cal.statistics: f2(f1(x)) - # Simulate observed data - Obs = Normal([2, 4] ) - y_obs = Obs.forward_simulate(Obs.get_input_values(), 1)[0].tolist() - - extracted_statistics = self.statistics_cal.statistics(y_obs) - self.assertEqual(np.shape(extracted_statistics), (1,2)) - - # NOTE we cannot test this, since the linear regression used uses a random number generator (which we cannot access and is in C). Therefore, our results differ and testing might fail - #self.assertLess(extracted_statistics[0,0] - 0.00215507052338, 10e-2) - #self.assertLess(extracted_statistics[0,1] - (-0.0058023274456), 10e-2) - -if __name__ == '__main__': - unittest.main() From 89183697a422775553cda1dd54fa4f9099d50d9b Mon Sep 17 00:00:00 2001 From: LoryPack Date: Mon, 6 Jan 2020 21:56:29 +0100 Subject: [PATCH 03/18] Update doc for new version --- doc/source/abcpy.rst | 93 +++++++++++++++++++++++++-------- doc/source/class-diagram.png | Bin 0 -> 242300 bytes doc/source/conf.py | 2 +- doc/source/getting_started.rst | 58 ++++++++++++++------ doc/source/installation.rst | 2 +- doc/source/postanalysis.rst | 7 +++ 6 files changed, 124 insertions(+), 38 deletions(-) create mode 100644 doc/source/class-diagram.png diff --git a/doc/source/abcpy.rst b/doc/source/abcpy.rst index a063941f..4f332e70 100644 --- a/doc/source/abcpy.rst +++ b/doc/source/abcpy.rst @@ -1,7 +1,16 @@ abcpy package ============= -This reference given details about the API of modules, classes and functions included in ABCpy. +This reference gives details about the API of modules, classes and functions included in ABCpy. + +The following diagram shows selected classes with their most important +methods. Abstract classes, which cannot be instantiated, are highlighted in +dark gray and derived classes are highlighted in light gray. Inheritance is +shown by filled arrows. Arrows with no filling highlight associations, e.g., +:py:class:`Distance ` is associated with :py:class:`Statistics ` +because it calls a method of the instantiated class to translate the input data to summary statistics. + +.. image:: class-diagram.png .. currentmodule:: abcpy @@ -81,19 +90,71 @@ abcpy.graphtools module :undoc-members: :show-inheritance: -abcpy.output module -------------------- +abcpy.inferences module +----------------------- -.. automodule:: abcpy.output +.. automodule:: abcpy.inferences :members: - :special-members: __init__ + :special-members: __init__ :undoc-members: :show-inheritance: -abcpy.inferences module ------------------------ +abcpy.modelselections module +---------------------------- -.. automodule:: abcpy.inferences +.. automodule:: abcpy.modelselections + :members: + :special-members: __init__ + :undoc-members: + :show-inheritance: + +abcpy.NN_utilities module +------------------------- + +Functions and classes needed for the neural network based summary statistics learning. + +.. automodule:: abcpy.NN_utilities.algorithms + :members: + :special-members: __init__ + :undoc-members: + :show-inheritance: + +.. automodule:: abcpy.NN_utilities.datasets + :members: + :special-members: __init__ + :undoc-members: + :show-inheritance: + +.. automodule:: abcpy.NN_utilities.losses + :members: + :special-members: __init__ + :undoc-members: + :show-inheritance: + +.. automodule:: abcpy.NN_utilities.networks + :members: + :special-members: __init__ + :undoc-members: + :show-inheritance: + +.. automodule:: abcpy.NN_utilities.trainer + :members: + :special-members: __init__ + :undoc-members: + :show-inheritance: + +.. automodule:: abcpy.NN_utilities.utilities + :members: + :special-members: __init__ + :undoc-members: + :show-inheritance: + + + +abcpy.output module +------------------- + +.. automodule:: abcpy.output :members: :special-members: __init__ :undoc-members: @@ -118,16 +179,6 @@ abcpy.probabilisticmodels module :show-inheritance: -abcpy.modelselections module ----------------------------- - -.. automodule:: abcpy.modelselections - :members: - :special-members: __init__ - :undoc-members: - :show-inheritance: - - abcpy.statistics module ----------------------- @@ -137,10 +188,10 @@ abcpy.statistics module :undoc-members: :show-inheritance: -abcpy.summaryselections module ------------------------------- +abcpy.statisticslearning module +------------------------------- -.. automodule:: abcpy.summaryselections +.. automodule:: abcpy.statisticslearning :members: :special-members: __init__ :undoc-members: diff --git a/doc/source/class-diagram.png b/doc/source/class-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..383382fcb865a4861ac57f277a6b6837668ee8e2 GIT binary patch literal 242300 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�_jwWtR4LUTwBP@2Ce?Q8wphHg@gb%4>{KF= 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 z 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ɮy*iEYNM6?9%sN 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

onS}I3QD1JH1;e;8Z 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 ITUXNj3r%2o`~Uy| literal 0 HcmV?d00001 diff --git a/doc/source/conf.py b/doc/source/conf.py index 2b7bfb8e..fb895aa4 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -25,7 +25,7 @@ class Mock(MagicMock): def __getattr__(cls, name): return MagicMock() -MOCK_MODULES = ['numpy', 'pandas', 'glmnet', 'mpi4py', 'scipy', 'scipy.stats', 'scipy.special', 'scipy.optimize', 'sklearn', 'sklearn.covariance', 'findspark', 'coverage', 'numpy.random'] +MOCK_MODULES = ['numpy', 'pandas', 'glmnet', 'mpi4py', 'scipy', 'scipy.stats', 'scipy.special', 'scipy.optimize', 'sklearn', 'sklearn.covariance', 'findspark', 'coverage', 'numpy.random', 'matplotlib', 'matplotlib.pyplot', 'torch'] sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES) # If extensions (or modules to document with autodoc) are in another directory, diff --git a/doc/source/getting_started.rst b/doc/source/getting_started.rst index dd3df413..27d4882d 100644 --- a/doc/source/getting_started.rst +++ b/doc/source/getting_started.rst @@ -85,7 +85,7 @@ the datasets, and then compute the distance between the two statistics. Algorithms in ABCpy often require a perturbation kernel, a tool to explore the parameter space. Here, we use the default kernel provided, which explores the parameter space of random variables, by using e.g. a multivariate Gaussian distribution or by performing a random walk depending on whether the corresponding random variable is continuous or -discrete. For a more involved example, please consult `Complex Perturbation Kernels`_. +discrete. For a more involved example, please consult `Composite Perturbation Kernels`_. .. literalinclude:: ../../examples/extensions/models/gaussian_python/pmcabc_gaussian_model_simple.py :language: python @@ -248,10 +248,10 @@ customized combination strategies can be implemented by the user. The full source code can be found in `examples/hierarchicalmodels/pmcabc_inference_on_multiple_sets_of_obs.py`. -Complex Perturbation Kernels -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Composite Perturbation Kernels +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -As pointed out earlier, it is possible to define complex perturbation kernels, perturbing different random variables in +As pointed out earlier, it is possible to define composite perturbation kernels, perturbing different random variables in different ways. Let us take the same example as in the `Hierarchical Model`_ and assume that we want to perturb the schools budget, grade score and scholarship score without additional effect, using a multivariate normal kernel. However, the remaining parameters we would like to perturb using a multivariate Student's-T kernel. This can be implemented as follows: @@ -333,33 +333,61 @@ Further possibilities of combination will be made available in later versions of The source code can be found in `examples/approx_lhd/pmc_hierarchical_models.py`. -Summary Selection -~~~~~~~~~~~~~~~~~ +Statistics Learning +~~~~~~~~~~~~~~~~~~~ We have noticed in the `Parameters as Random Variables`_ Section, the discrepancy measure between two datasets is defined by a distance function between extracted summary statistics from the datasets. Hence, the ABC algorithms are subjective to the summary statistics choice. This subjectivity can be avoided by a data-driven summary statistics choice -from the available summary statistics of the dataset. In ABCpy we provide a semi-automatic summary selection procedure in -:py:class:`abcpy.summaryselections.Semiautomatic` - -Taking our initial example from `Parameters as Random Variables`_ where we model the height of humans, we can had summary -statistics defined as follows: +from the available summary statistics of the dataset. In ABCpy we provide several statistics learning procedures, +implemented in the subclasses of :py:class:`abcpy.statisticslearning.StatisticsLearning`, that generate a training +dataset of (parameter, sample) pairs and use it to learn a transformation of the data that will be used in the inference +step. The following techniques are available: + +* Semiautomatic :py:class:`abcpy.statisticslearning.Semiautomatic`, +* SemiautomaticNN :py:class:`abcpy.statisticslearning.SemiautomaticNN`, +* ContrastiveDistanceLearning :py:class:`abcpy.statisticslearning.ContrastiveDistanceLearning`, +* TripletDistanceLearning :py:class:`abcpy.statisticslearning.TripletDistanceLearning`. + +The first two build a transformation that approximates the parameter that generated the corresponding observation, the +first one by using a linear regression approach and the second one by using a neural network embedding. The other two +use instead neural networks to learn an embedding of the data so that the distance between the embeddings is close to +the distance between the parameter values that generated the data. + +We remark that the techniques using neural networks require `Pytorch `_ to be installed. As this is an optional feature, +however, Pytorch is not in the list of dependencies of ABCpy. Rather, when one of the neural network based routines is +called, ABCpy checks if Pytorch is present and, if not, asks the user to install it. Moreover, unless the user wants to +provide a specific form of neural network, the implementation of the neural network based ones do not require any +explicit neural network coding, handling all the necessary definitions and training internally. + +We note finally that the statistics learning techniques can be applied after compute a first set of statistics; therefore, +the learned transformation will be a transformation applied to the original set of statistics. +For instance, consider our initial example from `Parameters as Random Variables`_ where we model the height of humans. +The original summary statistics were defined as follows: .. literalinclude:: ../../examples/summaryselection/pmcabc_gaussian_summary_selection.py :language: python :lines: 21-23 :dedent: 4 -Then we can learn the optimized summary statistics from the given list of summary statistics using the semi-automatic +Then we can learn the optimized summary statistics from the above list of summary statistics using the semi-automatic summary selection procedure as follows: .. literalinclude:: ../../examples/summaryselection/pmcabc_gaussian_summary_selection.py :language: python - :lines: 25-32 + :lines: 25-31 :dedent: 4 -Then we can perform the inference as before, but the distances will be computed on the newly learned summary statistics -using the semi-automatic summary selection procedure. +We remark that the minimal amount of coding needed for using the neural network based regression does not change at all: + +.. literalinclude:: ../../examples/summaryselection/pmcabc_gaussian_summary_selection.py + :language: python + :lines: 34-40 + :dedent: 4 + +And similarly for the other two approaches. + +We can then perform the inference as before, but the distances will be computed on the newly learned summary statistics. Model Selection ~~~~~~~~~~~~~~~ diff --git a/doc/source/installation.rst b/doc/source/installation.rst index 24b05a43..97521a93 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -35,7 +35,7 @@ To create a package and install it, do make package - pip3 install build/dist/abcpy-0.5.5-py3-none-any.whl + pip3 install build/dist/abcpy-0.5.6-py3-none-any.whl Note that ABCpy requires Python3. diff --git a/doc/source/postanalysis.rst b/doc/source/postanalysis.rst index 7a82b82e..2462be32 100644 --- a/doc/source/postanalysis.rst +++ b/doc/source/postanalysis.rst @@ -56,6 +56,13 @@ algorithm that created it: :lines: 57 :dedent: 4 +Finally, you can plot the inferred posterior mean of the parameters in the following way: + +.. literalinclude:: ../../examples/backends/dummy/pmcabc_gaussian.py + :language: python + :lines: 65 + :dedent: 4 + And certainly, a journal can easily be saved to and loaded from disk: .. literalinclude:: ../../examples/backends/dummy/pmcabc_gaussian.py From 190df38a53f83be9d83dfdb75dd698415e9f4eab Mon Sep 17 00:00:00 2001 From: LoryPack Date: Mon, 6 Jan 2020 21:57:15 +0100 Subject: [PATCH 04/18] Update examples for new version --- examples/backends/dummy/pmcabc_gaussian.py | 1 + .../__init__.py | 0 .../pmcabc_gaussian_statistics_learning.py} | 37 ++++++++++++------- 3 files changed, 24 insertions(+), 14 deletions(-) rename examples/{summaryselection => statisticslearning}/__init__.py (100%) rename examples/{summaryselection/pmcabc_gaussian_summary_selection.py => statisticslearning/pmcabc_gaussian_statistics_learning.py} (80%) diff --git a/examples/backends/dummy/pmcabc_gaussian.py b/examples/backends/dummy/pmcabc_gaussian.py index 4682e873..9ede5916 100644 --- a/examples/backends/dummy/pmcabc_gaussian.py +++ b/examples/backends/dummy/pmcabc_gaussian.py @@ -62,6 +62,7 @@ def analyse_journal(journal): from abcpy.output import Journal new_journal = Journal.fromFile('experiments.jnl') + journal.plot_posterior_distr() # this code is for testing purposes only and not relevant to run the example import unittest diff --git a/examples/summaryselection/__init__.py b/examples/statisticslearning/__init__.py similarity index 100% rename from examples/summaryselection/__init__.py rename to examples/statisticslearning/__init__.py diff --git a/examples/summaryselection/pmcabc_gaussian_summary_selection.py b/examples/statisticslearning/pmcabc_gaussian_statistics_learning.py similarity index 80% rename from examples/summaryselection/pmcabc_gaussian_summary_selection.py rename to examples/statisticslearning/pmcabc_gaussian_statistics_learning.py index 35841589..78757acf 100644 --- a/examples/summaryselection/pmcabc_gaussian_summary_selection.py +++ b/examples/statisticslearning/pmcabc_gaussian_statistics_learning.py @@ -13,36 +13,45 @@ def infer_parameters(): from abcpy.continuousmodels import Uniform mu = Uniform([[150], [200]], ) sigma = Uniform([[5], [25]], ) - + # define the model from abcpy.continuousmodels import Normal height = Normal([mu, sigma], ) # define statistics from abcpy.statistics import Identity - statistics_calculator = Identity(degree = 3, cross = True) + statistics_calculator = Identity(degree=3, cross=True) # Learn the optimal summary statistics using Semiautomatic summary selection - from abcpy.summaryselections import Semiautomatic - summary_selection = Semiautomatic([height], statistics_calculator, backend, + from abcpy.statisticslearning import Semiautomatic + statistics_learning = Semiautomatic([height], statistics_calculator, backend, n_samples=1000,n_samples_per_param=1, seed=1) # Redefine the statistics function - statistics_calculator.statistics = lambda x, f2=summary_selection.transformation, \ - f1=statistics_calculator.statistics: f2(f1(x)) + new_statistics_calculator = statistics_learning.get_statistics() + + + # Learn the optimal summary statistics using SemiautomaticNN summary selection + from abcpy.statisticslearning import SemiautomaticNN + statistics_learning = SemiautomaticNN([height], statistics_calculator, backend, + n_samples=1000,n_samples_per_param=1, seed=1) + + # Redefine the statistics function + new_statistics_calculator = statistics_learning.get_statistics() + # define distance from abcpy.distances import Euclidean - distance_calculator = Euclidean(statistics_calculator) - + distance_calculator = Euclidean(new_statistics_calculator) + # define kernel from abcpy.perturbationkernel import DefaultKernel kernel = DefaultKernel([mu, sigma]) - + # define sampling scheme from abcpy.inferences import PMCABC sampler = PMCABC([height], [distance_calculator], backend, kernel, seed=1) - + # sample from scheme T, n_sample, n_samples_per_param = 3, 10, 10 eps_arr = np.array([500]) @@ -56,18 +65,18 @@ def analyse_journal(journal): # output parameters and weights print(journal.opt_values) print(journal.get_weights()) - + # do post analysis print(journal.posterior_mean()) print(journal.posterior_cov()) print(journal.posterior_histogram()) - + # print configuration print(journal.configuration) - + # save and load journal journal.save("experiments.jnl") - + from abcpy.output import Journal new_journal = Journal.fromFile('experiments.jnl') From cec3182281dc7a1a7f3966382133745ea683b9eb Mon Sep 17 00:00:00 2001 From: Lorenzo Pacchiardi Date: Mon, 6 Jan 2020 22:28:28 +0100 Subject: [PATCH 05/18] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 9fb82a89..2d41d6d5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,3 +7,4 @@ sphinx_rtd_theme coverage mpi4py cloudpickle +matplotlib From bf6124d8a8e5eb25a92ee85ace8ac4d4d269d59f Mon Sep 17 00:00:00 2001 From: LoryPack Date: Tue, 7 Jan 2020 12:30:17 +0100 Subject: [PATCH 06/18] Change ModuleNotFoundError to ImportError --- abcpy/NN_utilities/algorithms.py | 2 +- abcpy/NN_utilities/utilities.py | 2 +- abcpy/statistics.py | 6 +++--- abcpy/statisticslearning.py | 4 ++-- tests/statistics_tests.py | 4 ++-- tests/statisticslearning_tests.py | 8 ++++---- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/abcpy/NN_utilities/algorithms.py b/abcpy/NN_utilities/algorithms.py index 87710cef..5960ee95 100644 --- a/abcpy/NN_utilities/algorithms.py +++ b/abcpy/NN_utilities/algorithms.py @@ -9,7 +9,7 @@ from abcpy.NN_utilities.losses import ContrastiveLoss, TripletLoss from abcpy.NN_utilities.networks import SiameseNet, TripletNet from abcpy.NN_utilities.trainer import fit -except ModuleNotFoundError: +except ImportError: has_torch = False else: has_torch = True diff --git a/abcpy/NN_utilities/utilities.py b/abcpy/NN_utilities/utilities.py index e70146ae..92fb6171 100644 --- a/abcpy/NN_utilities/utilities.py +++ b/abcpy/NN_utilities/utilities.py @@ -1,6 +1,6 @@ try: import torch -except ModuleNotFoundError: +except ImportError: has_torch = False else: has_torch = True diff --git a/abcpy/statistics.py b/abcpy/statistics.py index fe70aca9..74ea8ce8 100644 --- a/abcpy/statistics.py +++ b/abcpy/statistics.py @@ -3,7 +3,7 @@ try: import torch -except ModuleNotFoundError: +except ImportError: has_torch = False else: has_torch = True @@ -256,7 +256,7 @@ def __init__(self, net, previous_statistics=None): # are these default values O transformations. """ if not has_torch: - raise ModuleNotFoundError( + raise ImportError( "Pytorch is required to instantiate an element of the {} class, in order to handle " "neural networks. Please install it. ".format(self.__class__.__name__)) @@ -313,7 +313,7 @@ def fromFile(cls, path_to_net_state_dict, network_class=None, input_size=None, o the `NeuralEmbedding` object with the neural network obtained from the specified file. """ if not has_torch: - raise ModuleNotFoundError( + raise ImportError( "Pytorch is required to instantiate an element of the {} class, in order to handle " "neural networks. Please install it. ".format(cls.__name__)) diff --git a/abcpy/statisticslearning.py b/abcpy/statisticslearning.py index fb50466c..53fbb889 100644 --- a/abcpy/statisticslearning.py +++ b/abcpy/statisticslearning.py @@ -11,7 +11,7 @@ # Different torch components try: import torch -except ModuleNotFoundError: +except ImportError: has_torch = False else: has_torch = True @@ -282,7 +282,7 @@ def __init__(self, model, statistics_calc, backend, training_routine, distance_l # Define device if not has_torch: - raise ModuleNotFoundError( + raise ImportError( "Pytorch is required to instantiate an element of the {} class, in order to handle " "neural networks. Please install it. ".format(self.__class__.__name__)) diff --git a/tests/statistics_tests.py b/tests/statistics_tests.py index 4d06dcd0..6cf9bd75 100644 --- a/tests/statistics_tests.py +++ b/tests/statistics_tests.py @@ -4,7 +4,7 @@ try: import torch -except ModuleNotFoundError: +except ImportError: has_torch = False else: has_torch = True @@ -83,7 +83,7 @@ def setUp(self): def test_statistics(self): if not has_torch: - self.assertRaises(ModuleNotFoundError, NeuralEmbedding, None) + self.assertRaises(ImportError, NeuralEmbedding, None) else: self.stat_calc = NeuralEmbedding(self.net) diff --git a/tests/statisticslearning_tests.py b/tests/statisticslearning_tests.py index 4170dc27..285147f2 100644 --- a/tests/statisticslearning_tests.py +++ b/tests/statisticslearning_tests.py @@ -9,7 +9,7 @@ try: import torch -except ModuleNotFoundError: +except ImportError: has_torch = False else: has_torch = True @@ -67,7 +67,7 @@ def setUp(self): def test_initialization(self): if not has_torch: - self.assertRaises(ModuleNotFoundError, SemiautomaticNN, [self.Y], self.statistics_cal, self.backend) + self.assertRaises(ImportError, SemiautomaticNN, [self.Y], self.statistics_cal, self.backend) def test_transformation(self): if has_torch: @@ -104,7 +104,7 @@ def setUp(self): def test_initialization(self): if not has_torch: - self.assertRaises(ModuleNotFoundError, ContrastiveDistanceLearning, [self.Y], self.statistics_cal, + self.assertRaises(ImportError, ContrastiveDistanceLearning, [self.Y], self.statistics_cal, self.backend) def test_transformation(self): @@ -141,7 +141,7 @@ def setUp(self): def test_initialization(self): if not has_torch: - self.assertRaises(ModuleNotFoundError, TripletDistanceLearning, [self.Y], self.statistics_cal, self.backend) + self.assertRaises(ImportError, TripletDistanceLearning, [self.Y], self.statistics_cal, self.backend) def test_transformation(self): if has_torch: From 948533c7737d3a5a304e0762bea10ddb0ee4037f Mon Sep 17 00:00:00 2001 From: LoryPack Date: Tue, 7 Jan 2020 13:35:30 +0100 Subject: [PATCH 07/18] Fix joint dictionaries for Python 3.4 --- abcpy/NN_utilities/algorithms.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/abcpy/NN_utilities/algorithms.py b/abcpy/NN_utilities/algorithms.py index 5960ee95..0df4305c 100644 --- a/abcpy/NN_utilities/algorithms.py +++ b/abcpy/NN_utilities/algorithms.py @@ -41,8 +41,10 @@ def contrastive_training(samples, similarity_set, embedding_net, cuda, batch_siz else: loader_kwargs_2 = {} + loader_kwargs.update(loader_kwargs_2) + pairs_train_loader = torch.utils.data.DataLoader(pairs_dataset, batch_size=batch_size, shuffle=True, - **loader_kwargs, **loader_kwargs_2) + **loader_kwargs) model_contrastive = SiameseNet(embedding_net) @@ -93,8 +95,10 @@ def triplet_training(samples, similarity_set, embedding_net, cuda, batch_size=16 else: loader_kwargs_2 = {} + loader_kwargs.update(loader_kwargs_2) + triplets_train_loader = torch.utils.data.DataLoader(triplets_dataset, batch_size=batch_size, shuffle=True, - **loader_kwargs, **loader_kwargs_2) + **loader_kwargs) model_triplet = TripletNet(embedding_net) @@ -146,8 +150,9 @@ def FP_nn_training(samples, target, embedding_net, cuda, batch_size=1, n_epochs= else: loader_kwargs_2 = {} - data_loader_FP_nn = torch.utils.data.DataLoader(dataset_FP_nn, batch_size=batch_size, shuffle=True, **loader_kwargs, - **loader_kwargs_2) + loader_kwargs.update(loader_kwargs_2) + + data_loader_FP_nn = torch.utils.data.DataLoader(dataset_FP_nn, batch_size=batch_size, shuffle=True, **loader_kwargs) if cuda: embedding_net.cuda() From bd4007f3ac4cc0f9ae93edae2a392622c218ea47 Mon Sep 17 00:00:00 2001 From: LoryPack Date: Tue, 7 Jan 2020 13:44:28 +0100 Subject: [PATCH 08/18] Update requirements --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 2d41d6d5..abc3ad13 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,3 +8,4 @@ coverage mpi4py cloudpickle matplotlib +tqdm \ No newline at end of file From afde42958d9d56acab2b8f3b38cee3dac3497ead Mon Sep 17 00:00:00 2001 From: LoryPack Date: Tue, 7 Jan 2020 18:20:31 +0100 Subject: [PATCH 09/18] Update Travis files for Python version 3.7 --- .travis.yml | 5 +++-- requirements/optional-requirements.txt | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 requirements/optional-requirements.txt diff --git a/.travis.yml b/.travis.yml index ef6e87f8..c32d6e0f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,13 @@ dist: trusty language: python python: -- '3.4' +- '3.7' addons: apt: packages: - gfortran - libboost-random-dev - - libpython3.4-dev + - libpython3.7-dev - python3-numpy - swig - libmpich-dev @@ -16,6 +16,7 @@ install: - pip install -r requirements.txt - pip install -r requirements/backend-mpi.txt - pip install -r requirements/backend-spark.txt +- pip install -r requirements/optional-requirements.txt script: - make test before_deploy: diff --git a/requirements/optional-requirements.txt b/requirements/optional-requirements.txt new file mode 100644 index 00000000..e29ebb46 --- /dev/null +++ b/requirements/optional-requirements.txt @@ -0,0 +1,2 @@ +torch + From 3f467b297f2dd97a2a3b980e406797275a6be391 Mon Sep 17 00:00:00 2001 From: LoryPack Date: Tue, 7 Jan 2020 18:28:10 +0100 Subject: [PATCH 10/18] Fix travis config --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c32d6e0f..95694269 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ -dist: trusty +dist: xenial language: python python: - '3.7' From b3d1bbe2f6ef3c28fa3424defae8e35ec427faf2 Mon Sep 17 00:00:00 2001 From: LoryPack Date: Tue, 7 Jan 2020 18:38:19 +0100 Subject: [PATCH 11/18] Fix travis config --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 95694269..384c35a9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,7 @@ addons: packages: - gfortran - libboost-random-dev - - libpython3.7-dev + - python3.7-dev - python3-numpy - swig - libmpich-dev From 07f89b7700fd9acfa90e4b230a6cefa3d2f6efe2 Mon Sep 17 00:00:00 2001 From: LoryPack Date: Tue, 7 Jan 2020 18:41:55 +0100 Subject: [PATCH 12/18] Fix travis config --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 384c35a9..de8cf030 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,8 @@ python: - '3.7' addons: apt: + sources: + - deadsnakes packages: - gfortran - libboost-random-dev From 5ea5f0922a36be85eb36f705db43a920843c437f Mon Sep 17 00:00:00 2001 From: LoryPack Date: Wed, 8 Jan 2020 17:34:09 +0100 Subject: [PATCH 13/18] Change SynLiklihood to SynLikelihood --- abcpy/approx_lhd.py | 4 ++-- doc/source/getting_started.rst | 4 ++-- examples/approx_lhd/pmc_hierarchical_models.py | 6 +++--- examples/backends/mpi/mpi_model_inferences.py | 4 ++-- tests/approx_lhd_tests.py | 6 +++--- tests/inferences_tests.py | 4 ++-- tests/jointapprox_lhd_tests.py | 6 +++--- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/abcpy/approx_lhd.py b/abcpy/approx_lhd.py index a14a54df..2b6b800b 100644 --- a/abcpy/approx_lhd.py +++ b/abcpy/approx_lhd.py @@ -48,7 +48,7 @@ def likelihood(y_obs, y_sim): raise NotImplemented -class SynLiklihood(Approx_likelihood): +class SynLikelihood(Approx_likelihood): """This class implements the approximate likelihood function which computes the approximate likelihood using the synthetic likelihood approach described in Wood [1]. For synthetic likelihood approximation, we compute the robust precision matrix using Ledoit and Wolf's [2] @@ -67,7 +67,7 @@ def __init__(self, statistics_calc): def likelihood(self, y_obs, y_sim): - # print("DEBUG: SynLiklihood.likelihood().") + # print("DEBUG: SynLikelihood.likelihood().") if not isinstance(y_obs, list): # print("type(y_obs) : ", type(y_obs), " , type(y_sim) : ", type(y_sim)) # print("y_obs : ", y_obs) diff --git a/doc/source/getting_started.rst b/doc/source/getting_started.rst index 27d4882d..c6e8e6b1 100644 --- a/doc/source/getting_started.rst +++ b/doc/source/getting_started.rst @@ -302,14 +302,14 @@ We also have implemented the population Monte Carlo :py:class:`abcpy.inferences. the likelihood or approximate likelihood function is available. For approximation of the likelihood function we provide two methods: -* Synthetic likelihood approximation :py:class:`abcpy.approx_lhd.SynLiklihood`, and another method using +* Synthetic likelihood approximation :py:class:`abcpy.approx_lhd.SynLikelihood`, and another method using * penalized logistic regression :py:class:`abcpy.approx_lhd.PenLogReg`. Next we explain how we can use PMC algorithm using approximation of the likelihood functions. As we are now considering two observed datasets corresponding to two root models, we need to define an approximation of likelihood function for each of them separately. Here, we use the -:py:class:`abcpy.approx_lhd.SynLiklihood` for each of the root models. It is +:py:class:`abcpy.approx_lhd.SynLikelihood` for each of the root models. It is also possible to use two different approximate likelihoods for two different root models. diff --git a/examples/approx_lhd/pmc_hierarchical_models.py b/examples/approx_lhd/pmc_hierarchical_models.py index 0a07e97e..03a14476 100644 --- a/examples/approx_lhd/pmc_hierarchical_models.py +++ b/examples/approx_lhd/pmc_hierarchical_models.py @@ -36,9 +36,9 @@ def infer_parameters(): statistics_calculator_final_scholarship = Identity(degree = 3, cross = False) # Define a distance measure for final grade and final scholarship - from abcpy.approx_lhd import SynLiklihood - approx_lhd_final_grade = SynLiklihood(statistics_calculator_final_grade) - approx_lhd_final_scholarship = SynLiklihood(statistics_calculator_final_scholarship) + from abcpy.approx_lhd import SynLikelihood + approx_lhd_final_grade = SynLikelihood(statistics_calculator_final_grade) + approx_lhd_final_scholarship = SynLikelihood(statistics_calculator_final_scholarship) # Define a backend from abcpy.backends import BackendDummy as Backend diff --git a/examples/backends/mpi/mpi_model_inferences.py b/examples/backends/mpi/mpi_model_inferences.py index 9134390c..72cdaacd 100644 --- a/examples/backends/mpi/mpi_model_inferences.py +++ b/examples/backends/mpi/mpi_model_inferences.py @@ -306,8 +306,8 @@ def infer_parameters_pmc(): from abcpy.statistics import Identity statistics_calculator = Identity(degree = 2, cross = False) - from abcpy.approx_lhd import SynLiklihood - approx_lhd = SynLiklihood(statistics_calculator) + from abcpy.approx_lhd import SynLikelihood + approx_lhd = SynLikelihood(statistics_calculator) # define sampling scheme from abcpy.inferences import PMC diff --git a/tests/approx_lhd_tests.py b/tests/approx_lhd_tests.py index 547c276c..b5642319 100644 --- a/tests/approx_lhd_tests.py +++ b/tests/approx_lhd_tests.py @@ -4,7 +4,7 @@ from abcpy.continuousmodels import Normal from abcpy.continuousmodels import Uniform from abcpy.statistics import Identity -from abcpy.approx_lhd import PenLogReg, SynLiklihood +from abcpy.approx_lhd import PenLogReg, SynLikelihood class PenLogRegTests(unittest.TestCase): def setUp(self): @@ -31,13 +31,13 @@ def test_likelihood(self): # This checks whether it computes a correct value and dimension is right self.assertLess(comp_likelihood - expected_likelihood, 10e-2) -class SynLiklihoodTests(unittest.TestCase): +class SynLikelihoodTests(unittest.TestCase): def setUp(self): self.mu = Uniform([[-5.0], [5.0]], name='mu') self.sigma = Uniform([[5.0], [10.0]], name='sigma') self.model = Normal([self.mu,self.sigma]) self.stat_calc = Identity(degree = 2, cross = 0) - self.likfun = SynLiklihood(self.stat_calc) + self.likfun = SynLikelihood(self.stat_calc) def test_likelihood(self): diff --git a/tests/inferences_tests.py b/tests/inferences_tests.py index 7e0450d4..257052b7 100644 --- a/tests/inferences_tests.py +++ b/tests/inferences_tests.py @@ -6,7 +6,7 @@ from abcpy.distances import Euclidean -from abcpy.approx_lhd import SynLiklihood +from abcpy.approx_lhd import SynLikelihood from abcpy.continuousmodels import Uniform @@ -77,7 +77,7 @@ def test_sample(self): y_obs = [np.array(9.8)] # Define the likelihood function - likfun = SynLiklihood(stat_calc) + likfun = SynLikelihood(stat_calc) T, n_sample, n_samples_per_param = 1, 10, 100 diff --git a/tests/jointapprox_lhd_tests.py b/tests/jointapprox_lhd_tests.py index a3922fc3..1b086fb8 100644 --- a/tests/jointapprox_lhd_tests.py +++ b/tests/jointapprox_lhd_tests.py @@ -1,7 +1,7 @@ import unittest import numpy as np -from abcpy.approx_lhd import SynLiklihood +from abcpy.approx_lhd import SynLikelihood from abcpy.statistics import Identity from abcpy.continuousmodels import Normal, Uniform from abcpy.jointapprox_lhd import ProductCombination @@ -10,8 +10,8 @@ class ProductCombinationTests(unittest.TestCase): def setUp(self): self.stat_calc1 = Identity(degree = 1, cross = 0) self.stat_calc2 = Identity(degree= 1, cross = 0) - self.likfun1 = SynLiklihood(self.stat_calc1) - self.likfun2 = SynLiklihood(self.stat_calc2) + self.likfun1 = SynLikelihood(self.stat_calc1) + self.likfun2 = SynLikelihood(self.stat_calc2) ## Define Models # define a uniform prior distribution self.mu = Uniform([[-5.0], [5.0]], name='mu') From a63193d0e6c5f0a084bc49a85cd087b26412eeb6 Mon Sep 17 00:00:00 2001 From: LoryPack Date: Thu, 9 Jan 2020 13:55:17 +0100 Subject: [PATCH 14/18] Add fixed class diagram in doc --- doc/source/class-diagram.png | Bin 242300 -> 242439 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/source/class-diagram.png b/doc/source/class-diagram.png index 383382fcb865a4861ac57f277a6b6837668ee8e2..d5bc304a62c032637b3f803b4a50c0037b1047d1 100644 GIT binary patch delta 203453 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�}FH#H= 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%0ALu29V0AKYmslu`GVMb!s1d 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 delta 203308 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 From 75177d8c43fe812042341f9f87a52ea4147d6169 Mon Sep 17 00:00:00 2001 From: LoryPack Date: Sun, 26 Jan 2020 17:29:12 +0000 Subject: [PATCH 15/18] Fix documentation --- doc/source/getting_started.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/source/getting_started.rst b/doc/source/getting_started.rst index c6e8e6b1..025fecd3 100644 --- a/doc/source/getting_started.rst +++ b/doc/source/getting_started.rst @@ -365,7 +365,7 @@ the learned transformation will be a transformation applied to the original set For instance, consider our initial example from `Parameters as Random Variables`_ where we model the height of humans. The original summary statistics were defined as follows: -.. literalinclude:: ../../examples/summaryselection/pmcabc_gaussian_summary_selection.py +.. literalinclude:: ../../examples/statisticslearning/pmcabc_gaussian_statistics_learning.py :language: python :lines: 21-23 :dedent: 4 @@ -373,14 +373,14 @@ The original summary statistics were defined as follows: Then we can learn the optimized summary statistics from the above list of summary statistics using the semi-automatic summary selection procedure as follows: -.. literalinclude:: ../../examples/summaryselection/pmcabc_gaussian_summary_selection.py +.. literalinclude:: ../../examples/statisticslearning/pmcabc_gaussian_statistics_learning.py :language: python :lines: 25-31 :dedent: 4 We remark that the minimal amount of coding needed for using the neural network based regression does not change at all: -.. literalinclude:: ../../examples/summaryselection/pmcabc_gaussian_summary_selection.py +.. literalinclude:: ../../examples/statisticslearning/pmcabc_gaussian_statistics_learning.py :language: python :lines: 34-40 :dedent: 4 From 8b7c980575f4450b26c79bf6dac9338241737970 Mon Sep 17 00:00:00 2001 From: Lorenzo Pacchiardi Date: Mon, 27 Jan 2020 17:39:01 +0000 Subject: [PATCH 16/18] Update docstring of jrnl.plot_posterior_distr --- abcpy/output.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/abcpy/output.py b/abcpy/output.py index 283852d7..9a77ee67 100644 --- a/abcpy/output.py +++ b/abcpy/output.py @@ -351,6 +351,9 @@ def plot_posterior_distr(self, parameters_to_show=None, ranges_parameters=None, marginals, while the off diagonal elements contain the contourplot for the paired marginals for each possible pair of parameters. + This visualization is not satisfactory for parameters that take on discrete values, specially in the case where + the number of values it can assume are small. + Parameters ---------- parameters_to_show : list, optional @@ -548,9 +551,11 @@ def scatterplot_matrix(data, meanpost, names, single_marginals_only=False, **kwa axes[x, y].plot([meanpost[y], meanpost[y]], [ymin, ymax], "red", markersize='20', linestyle='solid') if true_parameter_values is not None: - axes[x, y].plot([xmin, xmax], [true_parameter_values[x], true_parameter_values[x]], "green", + axes[x, y].plot([xmin, xmax], [true_parameter_values[x], true_parameter_values[x]], + "green", markersize='20', linestyle='dashed') - axes[x, y].plot([true_parameter_values[y], true_parameter_values[y]], [ymin, ymax], "green", + axes[x, y].plot([true_parameter_values[y], true_parameter_values[y]], [ymin, ymax], + "green", markersize='20', linestyle='dashed') CS = axes[x, y].contour(X, Y, Z, contour_levels, linestyles='solid') @@ -577,8 +582,9 @@ def scatterplot_matrix(data, meanpost, names, single_marginals_only=False, **kwa diagonal_axes[i].plot([meanpost[i], meanpost[i]], [0, 1.1 * np.max(values)], "red", alpha=1, label="Posterior mean") if true_parameter_values is not None: - diagonal_axes[i].plot([true_parameter_values[i], true_parameter_values[i]], [0, 1.1 * np.max(values)], "green", - alpha=1, label="True value") + diagonal_axes[i].plot([true_parameter_values[i], true_parameter_values[i]], + [0, 1.1 * np.max(values)], "green", + alpha=1, label="True value") if write_posterior_mean: write_post_mean_function(diagonal_axes[i], meanpost[i], label) diagonal_axes[i].set_xlim([xmin, xmax]) @@ -648,9 +654,11 @@ def double_marginals_plot(data, meanpost, names, **kwargs): axes[ax_counter].plot([meanpost[y], meanpost[y]], [ymin, ymax], "red", markersize='20', linestyle='solid') if true_parameter_values is not None: - axes[ax_counter].plot([xmin, xmax], [true_parameter_values[x], true_parameter_values[x]], "green", + axes[ax_counter].plot([xmin, xmax], [true_parameter_values[x], true_parameter_values[x]], + "green", markersize='20', linestyle='dashed') - axes[ax_counter].plot([true_parameter_values[y], true_parameter_values[y]], [ymin, ymax], "green", + axes[ax_counter].plot([true_parameter_values[y], true_parameter_values[y]], [ymin, ymax], + "green", markersize='20', linestyle='dashed') CS = axes[ax_counter].contour(X, Y, Z, contour_levels, linestyles='solid') From bf8ca4a9f52468619b27a23285c6f0b3377c2c4d Mon Sep 17 00:00:00 2001 From: LoryPack Date: Wed, 29 Jan 2020 19:35:33 +0000 Subject: [PATCH 17/18] Add volcanic inference paper to README.md --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 08a54ac3..c9c2e70c 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,9 @@ scientists by providing # Documentation For more information, check out the -* [Documentation](http://abcpy.readthedocs.io/en/v0.5.5) -* [Examples](https://github.com/eth-cscs/abcpy/tree/v0.5.5/examples) directory and -* [Reference](http://abcpy.readthedocs.io/en/v0.5.5/abcpy.html) +* [Documentation](http://abcpy.readthedocs.io/en/v0.5.6) +* [Examples](https://github.com/eth-cscs/abcpy/tree/v0.5.6/examples) directory and +* [Reference](http://abcpy.readthedocs.io/en/v0.5.6/abcpy.html) Further, we provide a @@ -55,7 +55,7 @@ finally CSCS (Swiss National Super Computing Center) for their generous support. There is a paper in the proceedings of the 2017 PASC conference. In case you use ABCpy for your publication, we would appreciate a citation. You can use -[this](https://github.com/eth-cscs/abcpy/blob/v0.5.5/doc/literature/DuttaS-ABCpy-PASC-2017.bib) +[this](https://github.com/eth-cscs/abcpy/blob/v0.5.6/doc/literature/DuttaS-ABCpy-PASC-2017.bib) BibTex reference. @@ -64,6 +64,10 @@ BibTex reference. Publications in which ABCpy was applied: +* L. Pacchiardi, P. Künzli, M. Schöngens, B. Chopard, R. Dutta, "Distance-Learning for Approximate Bayesian + Computation to Model a Volcanic Eruption", 2020, Sankhya B, ISSN 0976-8394, + [DOI: 10.1007/s13571-019-00208-8](https://doi.org/10.1007/s13571-019-00208-8). + * R. Dutta, J. P. Onnela, A. Mira, "Bayesian Inference of Spreading Processes on Networks", 2018, Proc. R. Soc. A, 474(2215), 20180129. From 520ba723cbbad8aafcbff4e8bbfaccf6de398521 Mon Sep 17 00:00:00 2001 From: statrita2004 Date: Thu, 30 Jan 2020 09:22:46 +0000 Subject: [PATCH 18/18] Finalizing the new release-0.5.7 branch --- README.md | 9 +++++---- VERSION | 2 +- doc/source/installation.rst | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index c9c2e70c..08d6d6b3 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,8 @@ algorithms and other likelihood-free inference schemes. It presently includes: * ABCsubsim (ABC using subset simulation) * PMC (Population Monte Carlo) using approximations of likelihood functions * Random Forest Model Selection Scheme -* Semi-automatic summary selection +* Semi-automatic summary selection (with Neural networks) +* summary selection using distance learning (with Neural networks) ABCpy addresses the needs of domain scientists and data scientists by providing @@ -26,9 +27,9 @@ scientists by providing # Documentation For more information, check out the -* [Documentation](http://abcpy.readthedocs.io/en/v0.5.6) -* [Examples](https://github.com/eth-cscs/abcpy/tree/v0.5.6/examples) directory and -* [Reference](http://abcpy.readthedocs.io/en/v0.5.6/abcpy.html) +* [Documentation](http://abcpy.readthedocs.io/en/v0.5.7) +* [Examples](https://github.com/eth-cscs/abcpy/tree/v0.5.7/examples) directory and +* [Reference](http://abcpy.readthedocs.io/en/v0.5.7/abcpy.html) Further, we provide a diff --git a/VERSION b/VERSION index d1d899fa..d3532a10 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.5.5 +0.5.7 diff --git a/doc/source/installation.rst b/doc/source/installation.rst index 97521a93..0b761349 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -35,7 +35,7 @@ To create a package and install it, do make package - pip3 install build/dist/abcpy-0.5.6-py3-none-any.whl + pip3 install build/dist/abcpy-0.5.7-py3-none-any.whl Note that ABCpy requires Python3.