Mosaic
Mosaic

This is a tool to learn Piecewise Affine Models (piecewise linear function) from Input-Output Data. Given a set of input-output data points, it constructs a function that closely approximates all data points. It ensures that the error on each point is bounded by a given error bound δ. Technical details of the tool can be found in the following paper.
Consider the data set shown in the figure below. Here, each input point on the grid is labelled by the corresponding output value. For example (10, 10) maps to 25. A possible piecewise affine model for this data is as follows:



Mosaic automatically constructs similar models from input-output data. Like a mosaic, it first fits some linear pieces (affine functions) on the data points. Then it uses convex polygon pieces (conjuction of affine inequalities) to construct the input partition of each linear piece. As an illustration, the mosaic letter M shown on the top right corner of this webpage has been constructed using such convex shapes by our tool. Note that the letter M is not a convex shape and similarly, the input partition for each linear piece need not be convex.

Mosaic has been implemented in MATLAB. Code and benchmarks can be found here: [code]
For further queries or comments, please contact Nimit Singhania.