如何:模式识别
我有兴趣了解更多关于模式识别的知识。 我知道这是一个广泛的领域,所以我会列出一些我想学习处理的特定types的问题:
- 在一个看似随机的字节集中寻找模式。
- 识别图像中的已知形状(例如圆形和正方形)。
- 注意到位置stream(Vector3)的运动模式
对我个人来说,这是一个新的实验领域,说实话,我根本不知道从哪里开始:-)显然,我并不是在寻找银盘上提供给我的答案,而是一些search条款和/或在线资源,我可以开始熟悉上述问题域的概念将是真棒。
谢谢!
ps:额外的功劳,如果所说的资源提供的代码示例/ C#中的讨论将是盛大的:-),但不是必须的
隐马尔可夫模型是一个很好的地方,以及人工neural network 。
编辑:你可以看看NeuronDotNet ,它是开源的,你可以在代码周围戳。
编辑2:你也可以看看ITK ,它也是开源的,实现了很多这类algorithm。
编辑3:这是一个很好的neural network介绍 。 它涵盖了很多的基础知识,包括源代码(尽pipe在C ++中)。 他实现了一个无监督学习algorithm,我想你可能正在寻找一个监督反向传播algorithm来训练你的networking。
编辑4:另一个很好的介绍 ,避免了真正的沉重的math,但提供了很多底部的细节的参考,如果你想挖掘它。 包括伪代码,良好的图表和反向传播的冗长描述。
这就好像在说:“我想了解更多关于电子产品的信息。有人告诉我从哪里开始?” 模式识别是一个完整的领域 – 有数百本,如果不是数千本书,那么任何一所大学都至less有几门(可能是10门以上)的课程。 也有很多专门为此发行的杂志,已经出版了几十年…会议..
你可以从维基百科开始。
这是一个古老的问题,但它是相关的,所以我想我会在这里发布:-)斯坦福大学开始提供在线机器学习课程 – http://www.ml-class.org
OpenCV有一些图像模式识别的function。
你可能想看看这个: http : //opencv.willowgarage.com/documentation/pattern_recognition.html 。 (断开的链接:新文档中最接近的东西是http://opencv.willowgarage.com/documentation/cpp/ml__machine_learning.html ,虽然它不再是我称为初学者的有用文档 – 请参阅其他答案)
不过,我也build议从Matlab开始,因为openCV并不直观。
计算机视觉相关模式识别的网页上的很多有用的链接。 现在有些链接似乎被破坏,但是您可能会发现它很有用。
我不是这方面的专家,但是阅读隐马尔可夫模型是一个很好的开始。
谨防虚假模式! 对于任何体积庞大的数据集,即使它是一个硬币翻转的数据集,您也会发现似乎具有模式的子集。 没有一个好的模式识别过程应该没有统计技术来评估检测到的模式是真实的信心。 如果可能的话,在随机数据上运行您的algorithm,以查看它们检测到的模式。 这些实验将为您提供一个可以在随机(又名“null”)数据中find的模式强度的基线。 这种技术可以帮助您评估您的发现的“错误发现率”。
学习模式识别在matlab中更容易
有几个例子,有function可以使用。
对理解概念和实验有好处
我会build议从一些MATLAB工具箱开始。 由于交互式控制台的原因,MATLAB是一个特别方便的地方。 PRTools( http://prtools.org )是我亲自使用并且非常喜欢的一个很好的工具箱; 他们实现了几乎所有的模式识别工具,还有一些其他的机器学习工具(neural network等)。 但是关于MATLAB的好处是还有很多其他的工具箱,你可以试试(甚至有一个来自Mathworks的专有工具箱 )
只要你对不同的工具感觉足够舒适(并且发现哪一个分类器最适合你的问题),就可以开始考虑在不同的应用程序中实现机器学习。