matterhacker

  • rss
  • Home
  • About
  • SVMs
  • Embedded

SVMs

Notes SVM References

  • interior point method is a good method for a small dataset: <20000 because it’s memory consumption goes like O(N^2) where N is number of examples.  This is because it must store whole kernel matrix in memory which is NxN = N^2. So for double precision: 8 bytes/ point * (20kpoints)^2 = 3.2 gigabytes
  • A FAQ for nonlinear programming from a usenet newsgroup.
  • kernel-machines.org site w/lots of SVM software links.
  • Chapter 7 (Training/Optimization) references from orange SVM book by Cristianini
  • sites for various QPT solvers:
    • Ipopt: an open source package for large-scale non-linear optimization
    • OPT++: An Object-Oriented Nonlinear Optimization Library
    • Optimization software guide
    • SVM-QP Active set method specifically coded for SVM’s
    • QPC - Quadratic Programming in C
    • OOQP: Object Oriented Quadratic Programing (good & source is available w/documentation)
  • Apparently interior point methods are mainly good for QP problems where “the Hessian of an objective function (for SVMs it’s the matrix Q_ij = y_i*y_j*K(x_i,x_j)) and/or of the constraint matrix is sparse.” In SVMs Q is dense. [ref]
  • However, if Q for SVM problem is dense and low rank IPMs can be used. [ref]
  • A paper on an active set method algorithm to solve the QP problem found in SVMs by author of SVM-QP (Scheinberg from IBM).
    • memory consumption on # of data points, N, is key to optimization routines for SVMs
    • Have 3 types of optimization techniques:
      • Interior Point Methods: mem ~ O(N^2) —> good for small datasets
      • Active Set Methods: mem ~ O(N_f^2) w/N_f being only the active set (i.e. only the support vectors). Usually N_f << N so ASMs are good for medium size datasets.
      • Working Set Methods: mem ~ O(N^2) —> good for large data sets. Ex. SMO, chunking. WSMs aka decomposition methods.
      • confused about meaning of working set vs active set
    • A better copy of the paper on an active set method Scheinberg has posted on her site.
  • Good info on SMO method.
  • svm torch paper
  • better way of calculating b in SMO
  • SVMlight uses an active set method based on Osuna’s work
  • a paper on a generalization of SMO
  • Xianping Ge SMO writeup of an SMO implementation… thank you Xianping Ge! This write-up rocks!  Clear and to the point and explains it all with code!
  • Wikstrom SMO report
  • A free, HTML machine learning book

Notes on Platt’s + Keerthi’s + Ge’s SMO code: PKGSMO

Outer loop i.e. Main Function

  • Iterate once over all examples and execute examineExample() for each alpha_i in set of all examples (i.e. all alpha_i).
  • If executing examineExample() failed (returned 0) for all examples above, then quit. If it succeeded for at least one, then now only iterate over the examples in the subset 0<alpha_i<C and execute examineExample() on each of these. If examineExample() is successful at least once, then keep re-iterating over the subset 0 < alpha_i < C executing examineExample() on alpha_i in 0 < alpha_i < C.
  • Repeat this until examineExample() fails for all alpha_i in subset 0 < alpha_i < C. Then quit.
Spread the word
del.icio.us Digg Furl Reddit StumbleUpon Facebook
Comments rss
Comments rss
Trackback
Trackback

Leave a comment

You can use these tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Categories

  • bioinformatics (3)
  • biology (12)
  • business (5)
  • computer science (7)
  • electronics (3)
  • engineering (6)
  • environment (3)
  • funny stuff (2)
  • investment (1)
  • math (6)
  • matlab (4)
  • music (6)
  • nanotech (2)
  • neuroscience (6)
  • physics (4)
  • politics (2)
  • research related (2)
  • technology (6)
  • tv (3)
  • Uncategorized (1)
  • web design (1)

Archives

  • June 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
rss Comments rss