+--------------------------+
|    Multi-Kernel-Path     |
+--------------------------+


Version 1.1 - October 18th, 2006
----------------------------------



Description
-----------
Multi-Kernel-Path package is a Matlab program that computes the entire regularization
path for multiple-kernel learning problems. More precisely, it solves any learning
problem with a smooth loss function and where the kernel itself is optimized over
combinations of several basis kernels. It returns the solutions for ALL values of
the regularization parameter.

Although the program also works for a fixed kernel, it has been specially designed
for combinations of kernels. In the case of least-squares with a 1-norm penalty or
support vector machines with a fixed kernel, more specialized algorithms exist and
are probably faster.

You will find more information in the rest of this file, in the Matlab help provided
with this package, and in the following paper:

Francis R. Bach, Romain Thibaux, Michael I. Jordan. Computing regularization paths
for learning multiple kernels. In press, Advances in Neural Information Processing
Systems (NIPS) 17, 2004

The Multi-Kernel-Path package is Copyright (c) 2004, 2006 by Francis Bach and Romain
Thibaux. If you have any questions or comments regarding this package, or if you want
to report any bugs, please send an e-mail to fbach@cs.berkeley.edu. The current
version 1.1 has been released on October, 18th 2006. It has been tested on Matlab 7.
Check regularly the following for newer versions: http://www.cs.berkeley.edu/~fbach





Installation
------------

1. Unzip all the .m files in the same directory, and add the directory to the
matlab path.


2. (Optional) if you want a faster implementation which uses pieces of C
code: at the matlab prompt, in the directory where the package is
installed, type:

 >> mex devectorize.c
 >> mex symetric_vectorize.c
 >> mex vectorize_product.c
 >> mex vectorize_product_single.c
 >> mex symetric_vectorize_single.c
 >> mex devectorize_single.c

It should create compiled files whose extensions depends on the platform
you are using:
      Windows: devectorize.dll,  symmetric_vectorize.dll  and  vectorize_product.dll 
      ?Solaris: chol_gauss.mexsol  and  chol_hermite.dll
      ?Linux  : chol_gauss.mexglx  and  chol_hermite.dll

To check if the file was correcly compiled, type

 >> which devectorize
 >> which symmetric_vectorize
 >> which vectorize_product

and the name of the compiled versions should appear. If you have any
problems with the C file of if you are using a platform not mentioned,
please e-mail fbach@cs.berkeley.edu.


New on version 1.1
------------------
* unbalanced classification (different costs for false positives and false negatives)
* loading kernel matrices from file


How to use the Multi-Kernel-Path package
----------------------------------------

The main function that you should use to run the regularization path algorithm is
'follow_entire_path'. However it takes a large number of parameters, many of which
have good and broadly applicable values. The easiest and recommended way to use
'follow_entire_path' is therefore to modify the example scripts:
demo_script_1: a simple regression problem (figure 3, left, of the paper)
demo_script_2: a simple classification problem (figure 3, right)
demo_script_3: a set of real problems treated with cross-validation (figure 4)
demo_script_4: same as demo_script_2, unbalanced
demo_script_6: classification with loading of kernel matrices from files
demo_script_7: same as demo_script_6 with CV

These scripts show you how to create common kernels using 'create_path_kernel_matrices',
how to weigh them fairly using 'compute_ds', and give you default values for all the
more obscure parameters, which you don't need to change and are the same for all the
scripts. You can supply your own problems or simpy use 'generate_random_problem'.

You can get a description of these functions by typing 'help <function name>'.
All other functions are intended for internal use and are not documented.









