physbo.search.range_multi package

Module contents

class physbo.search.range_multi.History(num_objectives, dim)[ソース]

ベースクラス: object

export_pareto_front()[ソース]
load(filename)[ソース]
save(filename)[ソース]
show_search_results_mo(N, disp_pareto_set=False)[ソース]
property time_get_action
property time_run_simulator
property time_total
property time_update_predictor
write(t, action_X, time_total=None, time_update_predictor=None, time_get_action=None, time_run_simulator=None)[ソース]

Overwrite fx and action_X by t and action_X.

パラメータ:
  • t (numpy.ndarray) -- N dimensional array. The negative energy of each search candidate (value of the objective function to be optimized).

  • action_X (numpy.ndarray) -- N x d dimensional array. The input of each search candidate.

  • time_total (numpy.ndarray) -- N dimenstional array. The total elapsed time in each step. If None (default), filled by 0.0.

  • time_update_predictor (numpy.ndarray) -- N dimenstional array. The elapsed time for updating predictor (e.g., learning hyperparemters) in each step. If None (default), filled by 0.0.

  • time_get_action (numpy.ndarray) -- N dimenstional array. The elapsed time for getting next action in each step. If None (default), filled by 0.0.

  • time_run_simulator (numpy.ndarray) -- N dimenstional array. The elapsed time for running the simulator in each step. If None (default), filled by 0.0.

class physbo.search.range_multi.Policy(num_objectives, *, min_X=None, max_X=None, comm=None, config=None, initial_data=None)[ソース]

ベースクラス: Policy

Multi objective Bayesian optimization with continuous search space

パラメータ:
  • min_X (numpy.ndarray) -- The minimum value of each dimension of the search space.

  • max_X (numpy.ndarray) -- The maximum value of each dimension of the search space.

  • config (SetConfig object (physbo.misc.SetConfig))

  • initial_data (tuple[np.ndarray, np.ndarray]) -- The initial training datasets. The first elements is the array of inputs and the second is the array of values of objective functions

  • comm (MPI.Comm, optional) -- MPI Communicator

Performing Bayesian optimization.

パラメータ:
  • training (physbo.Variable) -- Training dataset.

  • max_num_probes (int) -- Maximum number of searching process by Bayesian optimization.

  • num_search_each_probe (int) -- Number of searching by Bayesian optimization at each process.

  • predictor (predictor object) -- Base class is defined in physbo.predictor. If None, blm_predictor is defined.

  • is_disp (bool) -- If true, process messages are outputted.

  • simulator (callable) -- Callable (function or object with __call__) Here, action is an integer which represents the index of the candidate.

  • score (str) -- The type of aquision funciton. TS (Thompson Sampling), EI (Expected Improvement) and PI (Probability of Improvement) are available.

  • interval (int) -- The interval number of learning the hyper parameter. If you set the negative value to interval, the hyper parameter learning is not performed. If you set zero to interval, the hyper parameter learning is performed only at the first step.

  • num_rand_basis (int) -- The number of basis function. If you choose 0, ordinary Gaussian process run.

  • optimizer (Optimizer object) -- Optimizer object for optimizing the acquisition function. If None, the default optimizer is used.

戻り値:

history

戻り値の型:

history object (physbo.search.discrete.results.history)

get_permutation_importance(n_perm: int, split_features_parallel=False)[ソース]

Calculate permutation importance of models

パラメータ:
  • n_perm (int) -- The number of permutations

  • split_features_parallel (bool) -- If true, split features in parallel.

戻り値:

  • importance_mean (numpy.ndarray) -- importance_mean (num_parameters, num_objectives)

  • importance_std (numpy.ndarray) -- importance_std (num_parameters, num_objectives)

get_post_fcov(xs, diag=True)[ソース]

Calculate covariance of predictors (post distribution)

パラメータ:
  • xs (physbo.Variable or np.ndarray) -- input parameters to calculate covariance shape is (num_points, num_parameters)

  • diag (bool) -- If true, only variances (diagonal elements) are returned.

戻り値:

fcov -- Covariance matrix of the post distribution. Returned shape is (num_points, num_objectives) if diag=true, (num_points, num_points, num_objectives) if diag=false.

戻り値の型:

numpy.ndarray

get_post_fmean(xs)[ソース]

Calculate mean value of predictors (post distribution)

パラメータ:
  • xs (physbo.Variable or np.ndarray) -- input parameters to calculate covariance shape is (num_points, num_parameters)

  • diag (bool) -- If true, only variances (diagonal elements) are returned.

戻り値:

fcov -- Covariance matrix of the post distribution. Returned shape is (num_points, num_objectives).

戻り値の型:

numpy.ndarray

get_score(mode, *, xs=None, predictor_list=None, training_list=None, pareto=None, parallel=True, alpha=1)[ソース]

Calcualte score (acquisition function)

パラメータ:
  • mode (str) -- The type of aquisition funciton. TS, EI and PI are available. These functions are defined in score.py.

  • xs (physbo.Variable or np.ndarray) -- input parameters to calculate score

  • predictor (predictor object) -- predictor used to calculate score. If not given, self.predictor will be used.

  • training (physbo.Variable) -- Training dataset. If not given, self.training will be used.

  • parallel (bool) -- Calculate scores in parallel by MPI (default: True)

  • alpha (float) -- Tuning parameter which is used if mode = TS. In TS, multi variation is tuned as np.random.multivariate_normal(mean, cov*alpha**2, size).

戻り値:

f -- Score defined in each mode.

戻り値の型:

float or list of float

例外:

RuntimeError -- If both actions and xs are given

メモ

When neither actions nor xs are given, scores for actions not yet searched will be calculated.

When parallel is True, it is assumed that the function receives the same input (actions or xs) for all the ranks. If you want to split the input array itself, set parallel be False and merge results by yourself.

load(file_history, file_training_list=None, file_predictor_list=None)[ソース]

Loading files about history, training and predictor.

パラメータ:
  • file_history (str) -- The name of the file that stores the information of the history.

  • file_training (str) -- The name of the file that stores the training dataset.

  • file_predictor (str) -- The name of the file that stores the predictor dataset.

load_predictor_list(file_name)[ソース]
load_training_list(file_name)[ソース]
new_data_list: List[Variable | None]

Performing random search.

パラメータ:
  • max_num_probes (int) -- Maximum number of random search process.

  • num_search_each_probe (int) -- Number of search at each random search process.

  • simulator (callable) -- Callable (function or object with __call__) from action to t Here, action is an integer which represents the index of the candidate.

  • is_disp (bool) -- If true, process messages are outputted.

戻り値:

history

戻り値の型:

history object (physbo.search.discrete.results.history)

save(file_history, file_training_list=None, file_predictor_list=None)[ソース]

Saving history, training and predictor into the corresponding files.

パラメータ:
  • file_history (str) -- The name of the file that stores the information of the history.

  • file_training (str) -- The name of the file that stores the training dataset.

  • file_predictor (str) -- The name of the file that stores the predictor dataset.

save_predictor_list(file_name)[ソース]
save_training_list(file_name)[ソース]
write(X, t, time_total=None, time_update_predictor=None, time_get_action=None, time_run_simulator=None)[ソース]

Writing history (update history, not output to a file).

パラメータ:
  • X (numpy.ndarray) -- N x d dimensional matrix. Each row of X denotes the d-dimensional feature vector of each search candidate.

  • t (numpy.ndarray) -- N dimensional array. The negative energy of each search candidate (value of the objective function to be optimized).

  • time_total (numpy.ndarray) -- N dimenstional array. The total elapsed time in each step. If None (default), filled by 0.0.

  • time_update_predictor (numpy.ndarray) -- N dimenstional array. The elapsed time for updating predictor (e.g., learning hyperparemters) in each step. If None (default), filled by 0.0.

  • time_get_action (numpy.ndarray) -- N dimenstional array. The elapsed time for getting next action in each step. If None (default), filled by 0.0.

  • time_run_simulator (numpy.ndarray) -- N dimenstional array. The elapsed time for running the simulator in each step. If None (default), filled by 0.0.