Hi,
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
time.
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
>
|