rbfComputeBasis

PURPOSE ^

Get locations and sizes of radial basis functions for use in rbf network.

SYNOPSIS ^

function rbfBasis = rbfComputeBasis( X, k, cluster, scale, show )

DESCRIPTION ^

 Get locations and sizes of radial basis functions for use in rbf network.

 Radial basis function are a simple, fast method for universal function
 approximation / regression. The idea is to find a mapping X->y where X
 and y are continuous real variables. The mapping is linear over features
 of X: y=rbfWeight*features(X). The features are of the form:
  f_j(x) = exp(-||x-mu_j||_2^2 / 2 sig_j^2 ).
 The number of basis functions controls the complexity of the network. Too
 many basis functions can lead to overfitting, too few to bad
 interpolation. Rbf networks are trained in two phases.  First, the radial
 basis functions are found in an unsupervised manner (using only Xtrain),
 for example by clustering Xtrain.  Next, given the basis functions,
 Xtrain and ytrain, the basis weights are found by solving the system:
  rbfWeight * features(Xtrain) = ytrain
 At this point, to interpolate any new points, Xtest, use:
  ytest = rbfWeight * features(Xtest)
 The code below achieves all three steps:
  rbfBasis  = rbfComputeBasis( Xtrain, k, cluster, scale, show );
  rbfWeight = rbfComputeFtrs(Xtrain,rbfBasis) \ ytrain;
  ytest     = rbfComputeFtrs(Xtest,rbfBasis) * rbfWeight;
 Note, in the returned rbfBasis struct there are a number of flags that
 control how the rbf features are computed. These can be altered to
 achieve the desired effect.

 For an in depth discussion of rbf networks see:
  Christopher M. Bishop. "Neural Networks for Pattern Recognition"

 USAGE
  rbfBasis = rbfComputeBasis( X, k, [cluster], [scale], [show] )

 INPUTS
  X           - [N x d] N points of d dimensions each
  k           - number of basis functions to use
  cluster     - [1]: Computes cluster centers for use as rbf functions.
              - 0: Evenly centered basis functions (ok for small d)
  scale       - [5] Alter computed value of sigma by given factor
                set larger for smoother results, too small -> bad interp
  show        - [0] will display results in figure(show)
                if show<0, assumes X is array Nxs^2 of N sxs patches

 OUTPUTS
  rfbBasis
   .d          - feature vector size
   .k          - number of basis functions actually used
   .mu         - [d x k] rbf centers
   .vars       - [1 x k] rbf widths
   .var        - rbf average width
   .globalVar  - [1] if true use single average var for rbfs
   .constant   - [0] if true include extra basis with constant activation
   .normalize  - [0] if true normalize overall rbf response to sum to 1

 EXAMPLE

 See also RBFDEMO, RBFCOMPUTEFTRS

 Piotr's Computer Vision Matlab Toolbox      Version 2.50
 Copyright 2014 Piotr Dollar.  [pdollar-at-gmail.com]
 Licensed under the Simplified BSD License [see external/bsd.txt]

Generated by m2html © 2003