西西河

主题:【原创】抛砖!模式识别和机器学习、数据挖掘的区别与联系 -- 永远的幻想

共:💬65 🌺337
分页树展主题 · 全看首页 上页
/ 5
下页 末页
          • 家园 对头

            指纹和虹膜从算法到产品做得很成熟了,没啥研究的了。(识别率都是99后面好几个9的那种。)

            这两刚好都是人类视觉做得不怎么样,或日常根本没机会做的。机器视觉就猴子称王了

            人脸这玩意还有得研究呢F

            对头。和俺印象一致。谢花

    • 家园 先花后读

      等转版到科技了再加精!

    • 家园 (二)模式识别的流程与机器学习

      一个标准的模式识别流程是:

      “客观对象”—1—>“数值表示”—2—>“计算机算法”—3—>“识别结果”

      但是这个流程只是计算机工作时的流程。而在能这样工作之前还要干很多事。比如人脸识别,一个计算机算法又不是天生就认识很多人,算法要经过训练和学习好了,才能照上面这个过程工作。

      那么到底在训练、学习些什么,又是在识别些呢?

      这个还是要回到定义。“模式识别”这个词不是太容易顾名思义的,我直到研究生入学以后很长时间还是不明白是什么意思,就知道是能分类。

      还是说人脸识别吧。对人来说,看见来自于1个人的人脸图像,即使是不同表情和姿势的,我们也能认出这些图像来自于同一个人。而你之所以能认出来,可能是观察了脸型+发型,也可能是五官形状的组合。可是到底是图像上的什么决定了你的判断呢?你有的能说出来,可是有的却又说不清道不明的。于是,就用一个抽象的词——“模式”来形容那些能够让你判断出哪些样本属于同一类别、能够和其他类别相区别的特征或者属性。

      我们下面设计计算机算法为每1个人的图像建立唯一的1个“模式”或者说模型,不同的N个人对应于N个模型。很可能每个人的身份编号i对应一个参数模型Mi。这个建立或者说训练(train)过程可能就是“统计”这些图像,确定每个模型的参数。

      而开发者为了评价算法性能,也要先预备一些已知类别的图像,分成train set 和test set,这样在训练集上训练好的算法,要测试集上测试一下。根据测试结果调整算法参数,或者实在太差的话要换一种算法了。不断的调整参数、不断改程序,不断的train,不断的test……所以这方面的论文通常要附上算法在各种数据集,各种情况下的结果。一个图,一张表的背后,要写好多程序,花好多时间在电脑上运行。

      这样训练好后,就可以按上面那个流程工作了。如果一张属于第i人的图片来了,算法用保存的N个人的模型去分别计算相似度,判断这张图片来自于模型Mj的可能性最大,也就等于电脑可以通过看图片识别出了这人的身份是j。如果j等于真实身份i,那就识别正确了,如果每次都识别对,那电脑就达到了人脑的能力了。

      注意算法在输出j的时候是不知道真实身份i的,那么这种工作,就可以看成是一种预测(Prediction)。如果需要输出是离散变量,比如这里是类别,就称为分类(Classification),而需要预测连续型变量的,比如股指,房价,就称为回归(Regression)。这里的回归没有针对“过去”的值的意思,就是说预测的目标输出的是连续性的值。

      好了,现在来说机器学习(Machine Learning ML)。回顾一下你的模型从哪里来的?虽然有些模型假设,但主要从输入的已知身份的数据中来的。而算法的“训练-考试”过程,又很像人的学习过程,于是把这一类计算机算法叫做Machine Learning。其实是Machine Learning from data了。看起来是Machine在不断自己 Learning,其实是人写的算法让它一直learning。如果算法是纯用统计学,也可以叫统计学习(Statistical Learning)。

      所以在我看来,ML可能是最类似AI的范畴了,都是计算机算法嘛。区别是AI是具备类人能力就行,不管算法怎么来的,一个拍脑袋定义的出来的公式也算。而ML要窄一些,是特指经过Learning from data 过程而获得的“智能”。用统计学的里的概念来说,ML是一种数据驱动的,非参数(Nonparametric)或者半参数(Semiparametric)算法。

      再来比较PR和ML。可以说,PR里面的算法部分基本上一定是属于ML。区别在于,PR里的ML算法主要就是在做预测。而整个ML就要广多了,如果你的算法输入是棋谱,那么训练好的算法就可以下棋打牌。但是UCI上面供机器学习算法之间进行能力比较的标准数据集基本都是分类和回归问题。这么看ML和PR实在是太相似了。

      说到了这里,PR里面的ML算法,主要都是在用统计学(少部分有图论),问题也就出来了。提出算法的主要是人家数学家、统计学家、或者计算机专业的干的,已经属于science了。可是怎么模式识别的事净是自动化、电子信息、通信这些专业的搞呢?虽然你们攒一起改叫Electronics Engineering了,可那也是Engineering啊,本科顶多学点高数,线代,复变,信号系统,古典概型和简单数理统计,再学编码啥的,到硕士嘛顶多学点矩阵论,随机过程顶天了。就这点数学底子,提不出啥牛X算法,凭啥模式识别专业还是你们这些工科生霸着啊?丢给数学系、统计系,或者计算机系得了,人家CS好歹也是S啊。

      嗯,我也疑惑了很久,明明都是在折腾数学,怎么还是赖在工科里呢?

    • 家园 (一)模式识别的诞生与人工智能

      追到源头,首先班门弄斧一段自控,老大轻拍-.-!

      自动控制起始是从工业革命之后,人们就希望设计出减少人工干预,能自己进行调节(regulate)的机器,工程领域开始想出了根轨迹等等土招儿。等到40年代,伴随二战的需要,计算机的产生,维纳(Wiener)——信息论和控制论(Cybernetics)的祖师爷正式开创了这“两论”。

      控制论这个词是维纳根据古希腊词根发明出来的。用老爷子自己的话说就是“Cybernetics :or control and communication in the animal and the machine”。animal先不提,那是人家天才小时候就对生物学有兴趣;在工程方面,控制论的control主要是围着machine转的。因为祖师开山的时候是二战中,初衷就是要让机器代替人进行防空武器的随动瞄准。

      维纳是数学家,写出来的理论和公式,让当时的工程师们看着实在头疼。但是维纳不仅仅是数学家和“搞理论”的,实际工程问题,人家二战中参与了,也想到了。最典型的就是对噪声的处理。

      典型的负反馈控制系统框图里,从“传感器”的到“给定输入”之间,画一根线就连过来了。可是实际中,传感器有误差,测量回路中有包含噪声,需要的测量值甚至根本就是淹没在一片嘈杂的信号里面(水声信号)。这时候管识别“真实值”的问题叫滤波,通过设计各种滤波器来解决。

      但是一学到现代信号处理这块就会发现和传统的信号处理不一样了,不再是时域、频域、Z域的滤波器变来变去了。从维纳最佳滤波的算法和ARMA模型的原理就可以看出来,既然是用随机过程和概率统计来看待和描述信号和噪声,那么已经可以把这个滤波问题用“估计(Estimation)”、“预测(Prediction)”来描述了。此外,对系统的状态方程确定参数的问题,好像是用的“辨识(Identification)”吧,都差不多。之所以罗嗦这些词,是因为这些词在模式识别的分支里出现的词。

      祖师爷提出、总结这些方法大概主要为了玩转控制问题里的那些传感器。但是,其他不需要machine、不需要控制的领域,但是也需要用传感器去测量、去噪声、估计、预测、辨识啊!其实从需求角度,类似“怎么让机器能像人一样分辨人的语音”的研究,也是从40年代就开始了,一开始也是“语谱图”之类的土招儿,好像是贝尔实验室弄的吧。类似的问题“识别航拍照片”,“识别手写文字”都是类似的工作。这些工作也都希望使用计算机代替人来做呢。

      花开两朵各表一枝,先放下各行各业的需求和土招儿暂且不说,再来看看计算机。与此同时,计算机产生之后也需要找到更多的应用领域。除了吸引人的计算速度之外,数学家开始琢磨让计算机再干点别的。

      于是,50年代开始出现“人工智能(artificial intelligence AI)”这个词。注意是artificial不是simulation。也就是说,不是用计算机“模仿”人脑硬件结构和人的思维过程,而是研究怎么让半导体造计算机用二进制数据结构+算法去达到肉长的人脑的智能“效果”。好比做题,只需要你能得到结果,不看步骤。数据结构和算法是计算机专业的核心之一,也是当年在“制造计算机”之外,研究怎么“使用计算机”的独门课程。(咱们中国大学里的计算机系大概是60年代从电子系、自动化系里独立出来的。)所以 “会编程、搞软件的”IT民工里,科班生比半路出家的“蓝领”强就强在,除了会if for这些语法之外,就是人家数据结构、算法、离散数学这些方面正经学过。那些“走迷宫”、“8皇后问题”,就是数学家抽象出来,丢给计算机去做的人的智力题。

      AI又叫狭义的人工智能,基本可以等同于计算机算法了。当然也确实有研究人脑结构和思维过程,用计算机去simulation人脑的“广义”人工智能,不过那更多是医学、生理学的事情啦。也许有人说不对啊,神经网络(Neural Networks NN)可是就是模拟人的神经元呀的算法啊,算狭义还是广义?这个,统计学家们发来抗议电,说NN压根就没那么玄乎,不过就是类似“投影寻踪回归(Projection Pursuit Regression)”的算法。这个后面写到模式识别具体算法时候会提到。

      但是除了做智力题之外,人的能力里属于智能的到底都有什么呢?经过总结,其中之一是识别能力,然后是决策能力。

      这下好了,一边是需求,一边是计算机的计算能力。估计、预测、辨识、识别……是时候把这些类似的工作统筹解决了!

      这样在60年代,模式识别(Pattern Recognition PR)产生了。

分页树展主题 · 全看首页 上页
/ 5
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河