主题:【原创】抛砖!模式识别和机器学习、数据挖掘的区别与联系 -- 永远的幻想
唔,原來您知道“北洋大學”的光榮稱呼哦,歡迎多來~ 呵呵~
多谢回复这么长的帖子。。
先简短回一个,写多了资本家不乐意。:)
这么说吧,比如我给你一图片(X), 让您的视觉系统=M,你对我说,
"我predict这是一桌子(Y)." 这像话吗?
对人这个M来说,桌子就是桌子,是个识别问题,说成prediction
大概现在PR在识别方面还是不成熟,做不到~100%识别。所以要说用M-pr来预测,图X,大概有85%是桌子,12%是椅子,3% 其它。
你说的X, Y 都是输入,这个从trainning的操作上可以说没错,但是从PR概念上这样很容易混淆。尤其如果是对不太了解的人写的介绍性文字,尽量概念清楚些,你的读者看着也明白些,right?
首先,“输出数据”是不是“模式表达”?比如典型的分类问题:用N个样本(N个样本*p维Predictor 一个矩阵X,加N*1的-1/+1类标记y_target)训练了一个SVM、CART,Adaboost或者RandomForest模型或者模型族,称为M。这些模型M如你所说,是“模式表达”。对于数据挖掘问题,确实可以说这个是“输出数据”。
这些M们还真是第一次见。。我说的模式表达就是Y.
“别”倒底是不是“非预测”呢?这个我觉得我已经说清楚了啊,看来还得再说说
别=difference. 了别可以说是classification..
确实怪我说得不清楚。其实文中不想以Super/Unsuper来区分算法,除了这个原因,还有一个原因。
因为实际使用这些算法时,经常把这两种混起来用。比如可以先用PCA,对N*p维的X降维成N*q (q<p),作为预处理,然后把N*q作为X和y_target输入到SVM之类的算法去;也可以用y_target(比如K个类)把X分成K组,然后每组训练一个GMM。
这样在应用者的角度看,其实是不去管算法是Super还是Unsuper的,或者在这上面走脑子意思不大,知道每种算法擅长干什么才是正经。
S or U-S,有个外界knoeledge 介入的问题。从理论研究上来说,比如同样两个人脸识别的系统,一个是S, 一个是 U-S。都能达到比较高的识别率。那么U-S的价值要高。为什么?因为这个U-S很可能是个普适的系统。
从这个角度来说,所有S,U-S混合的系统,都不能称为是 un-supervised 系统,而变成S了。
工科思维确实很偏重实用,不过我想概念清楚还是重要。所以和你探讨一下
指纹和虹膜从算法到产品做得很成熟了,没啥研究的了。(识别率都是99后面好几个9的那种。)
这两刚好都是人类视觉做得不怎么样,或日常根本没机会做的。机器视觉就猴子称王了
人脸这玩意还有得研究呢F
对头。和俺印象一致。谢花
自控上用模式识别的很多,聚乙烯切片的一个问题是black spec,就要用摄像机加模式识别。在油砂处理过程中,砂、油、水的界面无法用常规仪表测量,也用玻璃侧管加摄像机和模式识别。这些都是很简单的模式识别,但是管用。
这次先贴两本离题稍远点的,作为开阔知识来用的参考书。
《Artificial Intelligence:A Modern Approach》
中文版:
英文原版:
中文 和2种影印都是原书第2版,02年出的,两种影印我比较过内容没区别,但是清华的纸质稍好,但价格贵好多。
中文和人邮的影印图书馆好找,但是市面上好像木有了。
现在原版是09年底刚出的第3版了。但看书评,好像变化不是特别大,有些有第2版的人觉得亏了。
优点:
1.涉及面特别广。从走棋的算法,到语义逻辑分析,到智能系统……并不局限于概率统计类的方法,无所不包。
2.很多AI方面的历史人物和典故。从莱布尼茨时代的机械计算机器,到图灵,到50 60年代某人第一次写了个啥算法。怎么说呢,当故事书看也行了。
3. 叙述比较清楚。
问题:
1. 有点散。各个章节之间有时联系不是那么大,其实为了做到包罗万象,散是难免的。
2. Introduction 而非 Reference。所以指望看这个书完了去照着写算法,就别想了。
3.第2版里没涉及支持向量机(Support Vetor Machine SVM)。这个即使作为02年出的书也不应该了。不过现在SVM基本是大路货了,到处都是(SVM有点走当年神经网络最后烂大街,无人问津的趋势)。
4.太厚,快速翻阅即可。中文700多页,英文1100多页。因为毕竟大家有各自专业背景,所以挑前几章+自己相关领域的章节,浏览即可,其他当故事书看,就当做专业英语的阅读资料吧。
总之,适合没接触过的这方面的人入门用。但是个人感觉一个是有点散,一个是概念太多,没有突出概率统计。感觉很容易迷路似的,所以第一本没推荐这个。但N多学校都用这个做教材,不是没道理的。
《Nonlinear Time Series: Nonparametric and Parametric Methods》
中文版:
影印版:
英文原版:
这本虽然专讲时间序列,但是觉得自动化之类工科出身的人往机器学习数据挖掘方面转的话,这样一本由数学家写的数学味浓一些的书还是很有必要的。特别是中国人写的,所以在大牛在国内的时候,还有机会当面请教。
优点:
1.背景知识适合自动化、通信这些专业的。一般电子类的都会学点现代数字信号处理比如Wiener最佳滤波,Kalman滤波之类,已经了解ARMA模型了,这样看这个书可以了解这些方法的发展和引申。虽然不见得以后真的去做金融之类,但是用自己熟悉的背景知识去入门,总比两眼一抹黑钻进去强。其实“在工言工”,看成是在讲高级滤波算法的话,能不能用在控制系统里呢?反正俺那本已经被搞控制的同学借去鸟。
2.图表例子多,程序提供下载。虽然是S-plus/R写的,可能工科的没接触过R,但是很容易上手。
3.数学味,不解释。
问题:
1.领域比较专门。主要适合经济数据,金融数据这些。当然书里也举了生态学上的例子。
2.比较难懂。一个是数学味,一个是很少分析算法细节,公式推导都比较简略,要配合参考文献和程序。
但是之所以推荐这本,倒不是说里面讲到的那些方法。而是想:
1.介绍两位中国牛人,有机会见到可以请教。
2.通过这书里的例子,了解点R语言。开源的数学软件,是数学家用的,上面有很多最新的ML算法。假如你早已熟悉了工程味的MATLAB,现在可以体味一下R简化的都是哪些地方?在思路和实践上,都要习惯不断切换工科和理科两种方式。试试理科的工具,也就能多找找感觉。
3.要适应数学家的表达。毕竟这个领域的算法都是人家提出来的,看论文基本就是在膜拜统计学家了。通过这个也体会一下同样是ARMA模型,理科是怎么思考的。不要再满足于当初学信号处理的时候,好像学了个Levinson-Durbin,Kalman递推公式就万事大吉。
人脸探测被Viola Jones一统江湖了,日本人凭着优良的工业直觉很快就做到数字相机上去了。但是现在在自然条件下的探测率也只有60%左右。
人脸识别的主要思路是把人脸探测出来,对齐,然后提取特征比较。用手工提取人脸(有现成的数据库)然后识别的文章一大把。但是其中的一个关键问题是人脸是否对齐对不同方法的影响不一样:把人脸作为整体提取特征的方法对对齐的要求非常高,而基于patch的方法要robost得多。另一个关键问题是光照的问题。
几年前机器人脸识别的准确度号称比人类识别的准确度要高。但是第一,一对一单挑,机器比人仍然差得远。第二,在自然环境下的人脸识别,仍然没法用。
现在的人脸识别思路一定有很大的问题。我觉得第一是分辨率低了,第二是视频信息的使用还没有被好好开发。我的根据是人在仔细识别一张活人的脸的时候,其实是在处理高分辨率的视频图像。而现在的大多数系统是处理的中低分辨率的单幅图像。我觉得这个会是人脸识别的下一步发展方向。
生物特征识别工业的趋势是把指纹,虹膜和人脸结合起来。
另外这个生物特征识别跟课本里的模式识别不是太一样:严格来说,这个不是识别,而是比较(match)。
Viola Jones是Harr特征+Adaboost。“一统江湖”应该是说现在相机里实用的算法中吧?因为不管是特征层还是ML算法方面,这几年都有很大发展,只能说classic吧。
人脸检测这个领域如你所说,其实也可以说是两个大方向:一个是高分辨率静态图像;一个是视频序列,但是姿态、遮挡、光照条件要恶劣点。视频序列中,patch的方法用得更多。
多生物特征融合,也是个很有意思的领域,碰巧做过一点。再发点谬论:个人认为指纹和虹膜融合意思不大了。
第一,这俩单独用性能已经很好了,融合了在性能上获得的提高空间也有限了。
第二为什么要融合?现在的一个趋势是,实际使用中希望使用易于采集的特征。用户不用费劲摆姿势,也不用刷半天指纹刷不上。这样可以在特征采集环节节省大量时间。虹膜没做过,但是指纹要用户能刷出合格图像,其实还是有点折腾的。
match还是识别看怎么说了,人脸都是1人1个类别的,而多类问题的分类算法难免是输出对每个类别的相似度的,比如MAP这类的,把似然归一化得到[0 1]的相似度。这些“计算似然、排序、最终决定类别”的方法也可以叫匹配了。而这类方法加上原型匹配类的,在机器学习里很多啊。都算分类问题就好了,就不用抠这么细致了吧。其实还是怎么叫都行的,呵呵。
——老兄做什么的?蛮内行的啊。
回帖越来越精彩,俺抛砖的目的就达到啦!
特征(feature)要 recognizable。到底人是怎么识别人脸的呢?
我看他们早期做中文识别的都是把输入的中文字和库存的文字去一一对照,然后看 match 的统计结果来决定。
生物特征比如指纹和人脸往往没有训练集:给你一张图像,拿到数据库里去match就好了。所以有论文专门强调一张图像的ML方法。
永远兄功底深厚,而且谦虚谨慎,娓娓道来,兄弟受益匪浅。
我做过视觉方向,现在在做其他方向。Viola Jones的经典方法和特征当然已经被改过很多了。但是我看到的觉得比较有效的方法好像都是循着他的思路来的。他的方法可以说是开了一个先河。最近一年忙没有去仔细了解这个方向,不知道有没有像他那样新开一个思路的文章?
虹膜和指纹的性能好还是不好,看你如何定义了。在大数据库上(比如FBI那样的数据库),哪个方法的精度都不够。不仅各个生物特征要被融合,甚至不同Vendor的产品都要被集成商融合,否则达不到精度要求。
匹配的问题其实是IR里的Ranking问题。比如指纹,如果按照多类问题的思路,在工业数据库上是百万类的级别。我做这个方向的时候,深感学术界没有能够很好的处理这个问题。一个主要问题是ML学术界很少有工业级的数据库。但是这个问题这两年已经开始引起注意,因为学术界开始面对的数据量和类别也开始向海量发展:匹配现在被归纳为一个Ranking问题,我觉得是合适的。我记得有过关于Ranking的workshop。其实就是一个如何优化ROC的问题。在大数据库上提高还是比较困难的。
静候永远兄好文。
训练集,好像只要是ML类的算法都得有个吧。
就拿你说的这种一人一张图像的“数据库”来说吧。提取什么样的特征,也就是说在什么空间里定义一种什么度量来表示每一张脸?提取的特征是否有效,肯定是要通过train set、validation set上试验、定参数(图像处理里,各种方法都难免有些参数,说不出该怎么取参数,只有试),最后test set上给出结果。
表面上看输入的一张图像和数据库里存的是一张张图像依次比较,其实那个比较的方法,是在train data上面训练好的。
弱分类器集成的思想一直很流行,现在有很多类adaboost的算法。
抛开这类思路的方法不提,其他的检测方法,一时还真举不出文章来,毕竟不是做人脸的。但是好像依稀见过有先检测器官(比如眼睛、嘴),然后根据肤色什么的圈个脸的范围的(随机游动找边界,或者直接估计个椭圆,方块的)
嗯,你说的这种场合当然是99后面再挂多少个9都不嫌多。但是FBI和条子是有强制力保证采集对象配合进行数据采集的(老实给我按手印),也不在乎采集时间。
是啊,数据集啊数据集,你怎么就这么难做大呢。常见的人脸库,比如我知道的FERET,ORL,Yale,还有中科院那个,都离百万太远了。因为作为研究算法用的数据集,就不是一人一张就万事大吉了。对每个人采集不同时间、姿态、光照、遮挡的图像,这个工作量……
百万级的数据库估计现在只有企业或者FBI有了吧,作为花费巨大获得的重要资源,我想也不会公开免费给你用吧。
嗯,理科和工科的区别就来了,理科的数学家根据简单的数据,就能提出复杂的算法来。而工科要把简单的算法用到不太复杂的数据上,就要费很大力气了。
上百万的数据,我觉得瓶颈主要在计算开销上,还有存储、并行算法设计,可能算法简单,但是每次大矩阵的运算都是并行的,这个就不是ML方面的论文特别感兴趣了。
即使是区区几千样本的训练集,做ML的也经常要花N多机时来跑一个算法。
你说的是通过训练集来找到最佳的特征和分类器。我说的训练是指的给每一个类建立一个数据模型。这个数据模型是从一个类的若干样本中学习来的。如果把每一个指纹或者脸算一个类的话,生物特征的训练集算非常小了。相对而言,特征提取然后直接比较更加合适。所以生物特征识别都说“match",而不是"classify"。