Errata in SMO paper

There are some unclear ideas and errors in the “Fast Training” paper that I would like to clarify on this web page:

- Equations (12.9) and (12.10) in the paper are for when the decision function (1.7) subtracts b, not adds it.
- Equation (12.18) has a sign error: the plus should be a minus.
- The sentence after (12.24) should read “is negative” not “is positive”
- In the pseudo-code, after the “if (eta < 0)” statement, right before the “if (|a2-alph2| < …)” statement, a2 should be checked to see if it is within 1e-8 of 0 or C. If so, then a2 should be set to the nearest bound. This prevents round-off error from mistakenly forcing a point to be a support vector. Richard Lippmann points out that this value of 1e-8 is appropriate when inputs have approximately unit variance. Therefore, it is a good idea to scale your inputs (or kernel outputs) so that they are on the order of unity.

--- John Platt