西西河

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

共:💬65 🌺337
全看分页树展 · 主题 跟帖
家园 (三)模式识别中的工程、技术

为什么要说说PR没被数学、统计和计算机专业抢去的问题,实际是想分析一下PR里的科学与技术,理论与工程的问题。

如果去学PR,看任何一种这方面的经典教材来看,基本上全是在讲各种理论、各种分类回归算法、和算法的思路。(关于这方面的经典教材,其实特别想单独来说的。如果是第一本,挑一本对自己胃口的书很重要。原因是经典基本都是700页起的,而且基本满眼望去都是公式。理科生不论,对于看理论经常感觉力不从心,或者没什么耐心的工科生,如果找了一本不对自己胃口的书可能就很难看下去,Amazon上的书评里每本经典都有一堆5星,但是也颇有些1 2星的。)

虽然可以说“学PR 就等于学各种分类算法”,但是不等于说PR 就等于分类算法。最起码炮制这方面的论文就不等于炮制分类算法,想想也是,不然工科生还有的混吗!

作为说PR的最后一节,这次工科生要来吹吹牛,看看PR除了统计理论和算法,有什么离不了工程、技术的地方。

还是先把流程图再画一遍:

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

上一篇主要说的是 “计算机算法”—3—>“识别结果”这块,确实最重要,是核心。“数值表示”—2—>“计算机算法”比较简单:算法要求输入的数据通常都是个很规整的矩阵,比如N个训练样本,每个样本p个特征(feature),输入就是一个N*p的矩阵。 此外,有的算法需要对列进行标准化,有的不接受连续型变量和离散值变量的混合,有的干脆不接受连续型变量,要量化变成哑变量。所以根据算法的不同,对数据的形式也要稍微做点加工。这也没啥特别的。

关键就在于前面,“客观对象”—1—>“数值表示”。

还是继续以人脸识别为例吧。研究了一个算法,都要在网上的几个标准人脸库中的图像上实验自己的算法。通常库里每个人的照片包括各种姿态(比如稍微左右侧一些,抬头低头),表情变化,各种光照阴影,有的还有饰物比如眼睛,帽子,发型变化。图像尺寸都是统一的,的比如256*256,灰度也是8bit这样。

好了,你的算法在几个人脸库上跑得不错,实验数据有了,论文有谱了,你很开心。老板也很开心,于是老板接了个小项目,让你参与做个人脸识别的门禁系统。这时候你就会发现,想按照那个完整流程来工作,1这一步的问题一点也不少。

首先就是传感器的问题。传感器直接决定了图像有没有形变,颜色和灰度有没有改变,是不是清楚,分辨率有多高。通常的问题不是“有还是没有”,而是“有。怎么办?”

所以从硬件选型到板卡布置这块首先少不了“专门经验”,然后还有成像这块和图像处理的知识。得到内外参数,怎么把畸变调整一下,然后降降噪声,直方图均衡调整一下对比度,尺寸也调整一下。这些图像处理课里的内容,虽然也都是简单的数学公式,但是,场合不同,想要的图像效果不同,参数上也总要微调的——让我想起了PID参数的整定。嗯,很工科。

插一句,我所理解的工程学就是对实际问题的专门经验的积累。公式理论简单,而经验的获得,只需要多花时间和实际问题打交道,自然熟能生巧。这么看工科很easy,经验也没什么神秘的。但是每个人的时间总是有限的,如果专门在一个领域花了比别人多的时间,那么他的经验就变得宝贵起来了。此外“接触实际”四个字也不是人人都喜欢的。实际中没有书本上的“理想条件”,只有各种层出不穷的想不到的问题。挑战性一点不比在理论上探索低。工科的思维就是事前对可能遇到的实际问题的复杂性的敏感和估计,事中遇到问题时的能想法子解决。可以对性能妥协、将就;可以对参数近似、也可以试验出来;可以把原本充满创新的玩意改得朴实无华或者面目全非——一切只为了这玩意最后能工作起来、能动换(然后再慢慢往好看、好用上改)。

嗯,跑题了,继续。现在图像清楚得已经堪比人脸库了,识别效果还不错。找客户来验收吧!可是给客户演示完,人家突然问系统能不能集成到一起,做到DSP和嵌入式系统上;还要这样,还要那样……嗯?等等,你忽然想到好像程序是在双核PC上跑的,好像用了好些个MATLAB导出的函数,有个算法还是R里面的……

你嘴上说是,脸上没反应,但心里浮现的却是《潜伏》里陆桥山审马奎时从牙缝里挤出来的台词:我真想撕烂你的嘴!你当初不是说……

可老板下了死命令,大家只好大干快上干起来!作为开发算法的你,责无旁贷啊!

软件彻底用C和C++重写!不能用好使的MATLAB了,API真矬,简单的矩阵运算要费劳资这么大劲。不知不觉1礼拜过去了,终于写好了。

赶紧到下载到那边已经是改到第N版刚拿回来,还热乎乎的板卡:

咦,没反应?软件还是硬件问题?那边查电路,这边改程序试试?

呼,有影了,可是噪声咋这么严重,鼻子不是鼻子脸不是脸的?摄像头还是板子上有干扰?软件上能再改改参数?

终于运行起来了,怎么好像卡死了?哦,原来是太慢了。硬件条件比PC机差了好几个档次了,怎么办啊,换个简单一点的算法?那性能咋办?那之前那个算法好不容易得到实验结果不是都白做了么?

……

满头黑线了吧?

这个人脸识别的例子有点夸张了,但不是完全虚构出来的。通过这个例子想说的是,数据来源,软硬件的布置,性能的取舍,参数的实验调整都是论文上看不到也写不出来的实际工程问题。通常需要各种不同的传感器和硬件打交道,也需要各行各业的专业背景知识。涉及图像的少不了摄像头、照相机和图像处理的知识;做水声信号和语音识别,少不了拾音器阵列,频域方面的信号处理知识。这也就是为啥自动化,电子,通信、甚至生物医学专业能掺和其中的原因。

最后总结一下我对PR的认识:

PR是因为各个领域有“电脑代替人脑”的实际需求才产生的,所以是一定面向应用的。

PR不是在标准数据集上验证分类算法的性能就完了,这个是ML的事情。PR是要把ML算法在实际问题中用起来。是理论加实际,科学和技术(虽然理论是核心)。

前三节主要是围绕PR来说,就说到这吧。下面打算试着说说我认识的机器学习算法概貌和一直没露面的数据挖掘。

全看分页树展 · 主题 跟帖


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

Copyright © cchere 西西河