CS395T/CAM383M Computational Statistics  

Go Back   CS395T/CAM383M Computational Statistics > Previous year: Spring, 2010 > Student Term Projects

Reply
 
Thread Tools Display Modes
  #1  
Old 04-12-2010, 08:48 PM
Saurabh Saurabh is offline
Member
 
Join Date: Jan 2010
Posts: 25
Default Saurabh's Term Project

Topic: SVM Implementation for Handwritten Digit Recognition
Attached Images
File Type: pdf mid.pdf (75.9 KB, 900 views)
Reply With Quote
  #2  
Old 04-13-2010, 12:55 PM
wpress wpress is offline
Professor
 
Join Date: Jan 2009
Posts: 222
Default

I think you'll learn a lot in writing your own SVM code. Be sure you do this in a way that allows you to compare your performance and results with somebody else's standard code, for example SVMlight here .
Reply With Quote
  #3  
Old 04-13-2010, 02:15 PM
johnwoods johnwoods is offline
Member
 
Join Date: Jan 2010
Posts: 30
Default

Have you seen this method before?

http://www.cs.toronto.edu/~hinton/adi/index.htm
Reply With Quote
  #4  
Old 04-13-2010, 04:51 PM
Saurabh Saurabh is offline
Member
 
Join Date: Jan 2010
Posts: 25
Default

John, that link apparently uses neural network methods which were the very widely used for pattern recognition before SVMs started to gain popularity in recent times.
Reply With Quote
  #5  
Old 04-17-2010, 09:14 PM
Aayush Sharma Aayush Sharma is offline
Member
 
Join Date: Jan 2010
Posts: 15
Default

LibSVM and LibLinear are other commonly used SVM packages. LibLinear further provides regularized SVMs that helps to prevent overfitting.
Reply With Quote
  #6  
Old 05-07-2010, 02:23 PM
wpress wpress is offline
Professor
 
Join Date: Jan 2009
Posts: 222
Default

Good exercise of writing your own code for a well-studied algorithm like SVM. I was left wishing for more detailed analysis of where your code was better or worse than LIBSVM in terms of both performance and timing, and why?
Reply With Quote
  #7  
Old 05-07-2010, 05:30 PM
Saurabh Saurabh is offline
Member
 
Join Date: Jan 2010
Posts: 25
Default

I did mention a bit about the performance with respect to accuracy. While the recognition rate for binary classification problem was very high, multi-class implementation gave poor results (compared with LIBSVM). I suspect the reason for that is the one-versus-all strategy in which there are a lot of ambiguous regions. The one-versus-one strategy is apparently better, but only slightly. LIBSVM itself uses an improved version of one-versus-one strategy.

I should have mentioned a bit about timing performance. While LIBSVM gives the results in a matter of 10 seconds, this code takes about couple of minutes. However, most of the time is wasted in writing and reading the file for Kernel Matrix (I think I'm doing it horribly wrong). With proper evaluation of , I can bypass the I/O and reduce the overall timing vastly.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -6. The time now is 03:25 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.