Support vector machine represents the state-of-the-art technique for
classification. But training SVM on a large training set has become a
bottleneck. At the beginning of this year I proposed a fast SVM training
algorithm to successfully sovle this problem. For example, the total time
for training ten binary Svms on MNIST handwritten digit database (60,000
training samples) just needs 0.75hours
Recently I designed a high-performance SVM package called HeroSvm which is
designed using object-oriented method in order to facilitate the
maintainness and portability. Also, I also add error handling to make
software more robust. HeroSVM has no restriction of the size of training
set and dimension of feature vector. It is especially suitable for
training SVM on a very large training set. For example, I trained SVM on
non-public character database (1,380,000 training samples, 120 dimensional
feature vectors) on P4 1.7G just took about 6 hours.
HeroSVM can be used for research and is free of charge. Anybody who uses
it for a commercial purpose must get the permission from the author. If
you like to use this software, you need to send (or fax) me a letter with
an official title including affiliation information to request it. Then I
can send HeroSVM package to you by email.
If you like to know more information about this package, please visit the
I expect that people can use this package to solve real-world problems in
various engineering fields.
> Date: Fri, 16 Aug 2002 13:46:44 +0200
> From: Goekhan Bakir <[log in to unmask]>
> Reply-To: The Support Vector Machine discussion list
> <[log in to unmask]>
> To: [log in to unmask]
> Subject: Re: calculating dot products with mmx oder isse routines
> If I got you right, you are interested in faster evaluation of the
> decision function.
> Hence training is offline, the kernel computation is mostly cached and not
> the main computing factor in training svm.
> In evaluation the decision function, the mean cost factor is always
> the number of support vectors.
> If you reduced this via your desired method, ( v-svm / reduces set method)
> there are several things which are possible to speed up classification
> If you have large input vectors, you can try to implement faster
> products. ( unrolling the loop , etc. see for example "ODE" under
> sourceforge.net ) Then indeed ( for large input vectors) mmx could bring
> some tiny benefit. ( Thats an issue of the optimizer normally)
> Another issue is that if you only want to classify, you could
> instead evaluating sign(\sum_i^n ... ), order the sum into two parts
> (positive and negative) and check which one has larger value.
> There exist a way to answer this decision without calculating dot product
> with every support vector. But I dont know if the approach is working for
> any case or only approximately.
> ciao goekhan.
> On Fri, 16 Aug 2002, Martin Schulze wrote:
> > Hello together,
> > i wanted to know, if someone knows, wheater small assembler routines to the
> > multimedia extensions of mmx or isse can be
> > applied to compute dot products in the svm kernel.
> > i mean in a efficient way?
> > (only a vew word can be computed at once,
> > so there might be a overload for loading the registers over and over,
> > especially for large feature vectors..)
> > for instance in the linear kernel, dot products are computed only.
> > hence, i do not know exactly, how much time is spend in the dot product
> > computation, in comparison to the whole problem solving.
> > but i should be quite a lot...
> > i have got libsvm, and it takes me about a day to compute a trainingset of
> > the size of 7 Megabytes.
> > it is the linear and polynomial case.
> > the rbf-kernel works fast, but produces a large amount of support vectors.
> > but i want a fast prediction, since my classification should be realtime.
> > so i wanted to speed the training up, to use the linear and polynomial kernel.
> > is there a svm-implementation out, which is does this fast?
> > or does someone know functions to use in c++ (assembler or library) which
> > compute sparse feature vectors,
> > so i could put it into libsvm?
> > thanks
> > Martin
Centre for Pattern Recognition and Machine Intelligence
GM606, Concordia University
1455 de Maisonneuve Blvd. West
Montreal Quebec H3G 1M8, Canada
Tel: (Office) (514)848-7953
E-mail: [log in to unmask]