Convex/ non-convex optimisation refers to the shape of the error function
we're trying to optimise. In convex optimisation we can assume it's, well,
convex:
. . ε
\ /
\ /
\ /
\ /
'._ _.'
^
Global optimum
In non-convex optimisation we can't make any assumption about the shape of the
error function:
,--. .--. ε
/ \ / \ ,--.
/ \ / \ / \ /
.' \ / \ / \ /
\ / \ / \ /
`--' \ / `--'
^ \ / ^
| `--' |
| ^ |
| | |
| | |
`--------- Local optima ----------'
"Optimisation" means that we're trying to find an optimum of a function - a
maximum or a minimum. We're usually interested in the minimum of a function,
particularly a function that represents the error of an approximator on a set
of training data. Generally we prefer to find a _global_ minimum of the error
function because then we can expect the resulting approximator to generalise better
to data that was not available during training.
If the error function has a convex shape we're basically guaranteed to find
its global minimum. In non-convex optimisation, we're guaranteed to get stuck
to local minima.
(Ok, the above is a bit tongue in cheek, there's no _guarantee_ of getting
stuck to local minima, but it's very likely).