Skip to main content

A tree-based parallel surrogate optimization algorithm for optimizing noisy expensive functions

Project description

ProSRS algorithm

Progressive Stochastic Response Surface (ProSRS) is a parallel surrogate-based optimization algorithm for optimizing noisy expensive functions. This algorithm utilizes a radial basis function (RBF) as the surrogate, and adopts stochastic response surface (SRS) framework to balance exploitation and exploration. Compared to the original parallel SRS work, the novelties of this algorithm include

  • Introducing a new tree-based technique, known as the "zoom strategy", for efficiency improvement.
  • Extending the original work to the noisy setting (i.e., an objective function corrupted with random noise) through the development of a radial basis regression procedure.
  • Introducing weighting to the regression for exploitation enhancement.
  • Implementing a new SRS that combines the two types of candidate points that were originally proposed in the SRS work.

ProSRS algorithm is configured in a master-worker structure, where in each optimization iteration, the algorithm (master) constructs a RBF surrogate using the available evaluations, then proposes new points based on the constructed RBF, and finally distributes the tasks of evaluating these points to parallel processes (workers).

Compared to the popular Bayesian optimization algorithms, ProSRS is able to achieve faster convergence on some difficult benchmark problems, and is orders of magnitude cheaper to run. Moreover, ProSRS enjoys asymptotic convergence gaurantees. The common applications of this algorithm include efficient hyperparamter tuning of machine learning models and characterizing expensive simulation models.

version license language platform

Installation

Python dependencies:

To install prosrs package, type and run the following:

pip install prosrs

Note: The above pip method should work for most users. If a user encounters any installation problems including import errors or warnings, please refer to the Wiki page for possible solutions.

Getting started

After having successfully installed the prosrs package, users are ready to use ProSRS algorithm for solving optimization problems. The easiest way of getting started is to read the tutorials in the examples directory, where different usages, from the basic level to the advanced level, are demonstrated through code examples. Of course, users are also encouraged to check out the source codes of the algorithm in the prosrs directory.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prosrs-1.1.0.tar.gz (33.4 kB view details)

Uploaded Source

Built Distribution

prosrs-1.1.0-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file prosrs-1.1.0.tar.gz.

File metadata

  • Download URL: prosrs-1.1.0.tar.gz
  • Upload date:
  • Size: 33.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for prosrs-1.1.0.tar.gz
Algorithm Hash digest
SHA256 136ef599af8ef109e82b39f521959fe7df1dc23684f1d79afd654f5e6d59d9b6
MD5 64717684cb42d5ddc83e6877c3cfe32d
BLAKE2b-256 a8b5d3d1962a556bbc85aabac0e24c69db0ecc66640747f44671464293cff1de

See more details on using hashes here.

File details

Details for the file prosrs-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: prosrs-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 37.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for prosrs-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0abdfc58b62378baae3fb06974d5f87561ea6c1457fa355feff9b6a077b5537c
MD5 33c546c7cb44b39aa29ab8f2eb0a1730
BLAKE2b-256 4ffad705495b1d7c9da6fb087fe48dbae7b91ca6c7b87b413c651660c77cb5a2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page