Difference between revisions of "OoDACE:ooDACE toolbox"

From SUMOwiki
Jump to navigationJump to search
Line 11: Line 11:
 
== Quick start guide ==
 
== Quick start guide ==
  
'''IMPORTANT: Before the toolbox can be used you have to include the toolbox in Matlab's path. You can do this manually by running startup or if Matlab is started in the root toolbox directory then startup will be run automatically.'''
+
'''IMPORTANT: Before the toolbox can be used you have to include the toolbox in Matlab's search path. You can do this manually by running startup or if Matlab is started in the root toolbox directory then startup will be run automatically.'''
  
 
<source lang="matlab">
 
<source lang="matlab">
 
startup
 
startup
 
</source>
 
</source>
 
  
 
Now the toolbox is ready to be used. The blindDACE toolbox is designed in an object oriented (OO) fashion.
 
Now the toolbox is ready to be used. The blindDACE toolbox is designed in an object oriented (OO) fashion.
Line 26: Line 25:
 
<b>lb</b> and <b>ub</b> are 1Xd arrays defining the lower bounds and upper bounds, respectively, needed to optimize the hyperparameters. In addition, a start values has to be specified (e.g., <b>theta0</b> is also an 1Xd array)
 
<b>lb</b> and <b>ub</b> are 1Xd arrays defining the lower bounds and upper bounds, respectively, needed to optimize the hyperparameters. In addition, a start values has to be specified (e.g., <b>theta0</b> is also an 1Xd array)
  
The example code to fit the dataset follows:
+
The example code to fit the dataset is then:
 
<source lang="matlab">
 
<source lang="matlab">
 
...
 
...
Line 50: Line 49:
 
</source>
 
</source>
  
See the included demo.m script for more example code on how to use the blindDACE toolbox (including more advances features such as using blind kriging or how to use regression instead of interpolation). For more information on the classes and their methods please refer to the source files.
+
See the included demo.m script for more example code on how to use the blindDACE toolbox (including more advanced features such as using blind kriging or how to use regression instead of interpolation). For more information on the classes and their methods please refer to the source files.
  
 
== DACE toolbox interface ==
 
== DACE toolbox interface ==
Line 62: Line 61:
 
</source>
 
</source>
  
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging is not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of blindDACE and use that instead.
+
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of blindDACE and use that instead.
  
 
== Contribute ==
 
== Contribute ==
  
 
Suggestions on how to improve the blindDACE toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.
 
Suggestions on how to improve the blindDACE toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.

Revision as of 15:29, 24 February 2010

Introduction

The blindDACE toolbox is a versatile Matlab toolbox that implements the popular Gaussian Process based kriging surrogate models. Kriging is in particular popular for approximating (and optimizing) deterministic computer experiments. Given a dataset the toolbox automatically fits a kriging surrogate model to it. Afterwards the kriging surrogate can be fully exploited instead of the (probably more expensive) simulation code.

The toolbox is aimed for solving complex applications (expensive simulation codes, physical experiments, ...) and for researching new kriging extensions and techniques.

Download

See: download page

Quick start guide

IMPORTANT: Before the toolbox can be used you have to include the toolbox in Matlab's search path. You can do this manually by running startup or if Matlab is started in the root toolbox directory then startup will be run automatically.

startup

Now the toolbox is ready to be used. The blindDACE toolbox is designed in an object oriented (OO) fashion. It is strongly recommended to exploit the OO design directly, i.e., use the Kriging and Optimizer matlab classes. However, for convenience wrapper scripts (dacefit, predictor) are provided that simulate the DACE toolbox interface (see wrapper scripts for more information).

Assuming we want to fit a dataset of n samples in d dimensions. samples holds the input parameters nXd array (each row is one observation) and values is the corresponding nX1 array containing the output values. lb and ub are 1Xd arrays defining the lower bounds and upper bounds, respectively, needed to optimize the hyperparameters. In addition, a start values has to be specified (e.g., theta0 is also an 1Xd array)

The example code to fit the dataset is then:

...
% Generate kriging options structure
opts = getDefaultOptions();
opts.hpBounds = [lb ; ub]; % hyperparameter optimization bounds

% configure the optimization algorithm (only one optimizer is included)
% the Matlab Optimization toolbox is REQUIRED
optimopts.GradObj = 'on';
optimopts.DerivativeCheck = 'off';
optimopts.Diagnostics = 'off';
optimopts.Algorithm = 'active-set';
opts.hpOptimizer = MatlabOptimizer( dim, 1, optimopts );

% build and fit Kriging object
k = Kriging( opts, theta0, 'regpoly0', @corrgauss );
k = k.fit( samples, values );

% k represents the approximation and can now be used, e.g.,
[y mse] = k.predict( [1 2] )
...

See the included demo.m script for more example code on how to use the blindDACE toolbox (including more advanced features such as using blind kriging or how to use regression instead of interpolation). For more information on the classes and their methods please refer to the source files.

DACE toolbox interface

The blindDACE toolbox provides two scripts dacefit.m and predictor.m that simulate the behavior of the DACE toolbox ([1]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to blindDACE.

Example code:

krige = dacefit(samples, values, 'regpoly0', 'corrgauss', theta0, lb, ub )
y = predictor([1 2], krige)

Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of blindDACE and use that instead.

Contribute

Suggestions on how to improve the blindDACE toolbox are always welcome. For more information please see the feedback page.