SVM用于数字识别

时间:2012-05-22 22:30:49

标签: computer-science classification svm image-recognition

我需要实现SVM数字分类器的概念。它应该是我在画布中写入的分类输入的简单。但我需要从头开始实施。语言并不重要。

任何人都可以一步一步地指导我如何做到这一点。任何材料链接都会有所帮助。但我需要一些与实践相关的东西而不是理论。因为我已经阅读了一些关于它的理论文章。并且有基本的想法它应该如何工作,但仍然有一些麻烦如何将这些想法转换为现实生活中的例子。

非常感谢。

2 个答案:

答案 0 :(得分:5)

您不会找到编写SVM的分步说明。理解它们背后的理论和数学很重要,因为它们在算法中发挥着重要作用,如果没有这种背景,算法很难理解。

最好的起点是John Platt的Sequential Minimal Optimization (SMO)算法。我之前已经实现了这篇论文,但普拉特承担了大量的背景知识。一本很棒的入门书是Lutz Hamel的书Knowledge Discovery with Support Vector Machines。本书激发了所有内容,因此如果您想了解SVM,就不必了解或了解统计和优化理论。

如果你真的只想变得非常简单,那么从UNT的这个Simplified SMO algorithm开始,让你的脚湿透。这是没有任何优化的SMO算法。

Platt的SMO算法在这一点上不是最先进的,但它是许多当前使用的算法的基础。 LibSVMSVMLight都有在线提供的源代码。它们基于SMO概念的两种不同优化。

如果你可以使用更高级别,你可以使用像CVX这样的Convex优化包来实现SVM,它包含MatLab和其他语言的接口。在这种情况下,您只需在SVM的核心设置优化问题,让解算器为您找到解决方案。从头开始实施QP求解器不是我建议尝试的。

如果你想使用现有的库,当你说“从头开始”你指的是处理数据而不是SVM算法本身时,你可以查看现有的实现,如R中提供的实现。 "Support Vector Machines in R"说明了如何做到这一点。哈默尔的书也使用了R。

手写数字识别数据集已在众多SVM papers中使用,并用于classifier comparisons

答案 1 :(得分:0)

This是关于SVM的完美文章。它们提供了一些理论和分步指南 - 如何实现它。