《菜鸟搞科研》1:特征提取——计算机怎么记录你和高富帅

作为一名搬砖界资深的民工,我经常被要求在各种场合介绍搬砖的经验或者心得。但在这些高大上的场合,动辄就会被要求讲够45分钟,这对于一个普通话非常不标准不顺溜的民工来说实在很有难度。但是我又迫切地想跟各位民工兄弟们交流,非常珍惜每一次发言的机会,所以就有了这个《搬砖搞科研》的系列。其中记录了当年我从一名初级民工,经历了被各种砖头虐后,终于了解了砖头的使用方法的故事。本系列的推出,就是希望各位新入行的兄弟姐妹工友们,不要再重蹈覆辙。本系列的宗旨就是发扬我们民工界简单粗暴的风格。

视频地址

http://v.youku.com/v_show/id_XMjc0MTg4NzY2NA==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2

代码地址

http://7xl8wi.com1.z0.glb.clouddn.com/feature.rar

cmd-markdown-logo

各位网友大家好,我是砖家魏骁勇,砖是砖头的砖!

cmd-markdown-logo

我在工地上用过很多的砖,PCA,LDA,SVM,Random Walk, Deep Learning等等等等。记得当初我第一次上工,老板一提到这些高大上的名字,我居然一个都没有听说过,我羞愧过,我堕落过,我想我搬了这么多年的砖居然还如此浅薄,我对不起父母。我看书,查资料,推公式,希望把这些砖里的每一颗沙子都了解得清清楚楚。我想很多工友都跟我有过类似的经历。

cmd-markdown-logo

然而,我今天要说的是:你可能在浪费时间。明白砖头的细节固然是件高大上的事情。但是,我相信大部分的工友只是砖头的使用者而不是做砖头的人。学习一种砖头最好的方法就是明白它的大体功能,然后去用它。如果你过早地陷入砖头的构成和细节中,很容易就会迷失方向和丧失信心。

cmd-markdown-logo

举个例子,老板今天让你给了一块砖头让你去修理下隔壁的二胖子。你拿到砖头后认真地开始研究起来,你查资料发现砖是由粘土成型后经过高温烧制而成,烧制前的粘土还要晾晒2个多月,烧制时间为10天,颜色成黄色,冷却后呈红色,粘土砖烧制成之后要在窑内冷却保持缓慢的气氛,最后冷却完全后出炉。看到这里你信心百倍,觉得自己是个有文化的民工。然后跟老板炫耀说他的砖是黑色,肯定是烧制过程中缺氧导致。老板一看砖头给你半个月了隔壁的二胖子还生龙活虎的,气就不打一处来,一下把砖拍你脑袋上就开骂:缺氧?我看你是缺脑子!你这头猪!

cmd-markdown-logo

这就是过早陷入细节迷失方向的例子。所以,我们这个系列要贯彻的第一个宗旨就是黑盒子,Blackbox, 黑盒子就是一个具有某种功能的装置,内部细节对用户进行了屏蔽,作为一名初级民工,我们只需要知道它输入什么,提供什么输出就可以了。比如,前面例子中的老板就是一个典型的黑盒子用户,他知道只要对一块砖头输入大于9.81牛顿的力,就可以把对方拍成个傻子,他不用关心一块砖的烧制过程和成色品质。不管黑砖红砖,能拍到二胖子就是好砖!

cmd-markdown-logo

好了,我们今天就开始介绍第一块砖,它是一种用来做地基的砖,以后我们用到的砖大都建立在它的基础之上,所以最先介绍它。它叫做特征提取,Feature Extraction。

cmd-markdown-logo

我们先来套用一下黑盒子。特征提取的输入是一个你正在研究的对象,比如一串文字,一副图像等等,它的输出则通常是一串数字。这串数字能代表输入对象的某些属性或者特质。对同一个对象,不同的特征提取模块,得到的数字是不同的。

cmd-markdown-logo

我们来举个例子,比如输入是包含一张人脸的图像,现在我们经过了一个肤色提取模块,得到一个一串数字,为了简化,我们只写一个数字,比如:2,为什么是2呢,可能肤色提取模块按颜色深浅来编号,比如白色为1,黄色为2, 棕色为3,黑色为4, 不知道什么色为5等等。这样就表达了每张人脸图像肤色深浅的一种特质。这样做有什么好处呢,那就是量化。量化以后计算机就可以很容易处理,而不用人来进行判断。

cmd-markdown-logo

当数据的规模变得非常大的时候,这种优势就越发明显。比如现在我们有很多个城市的人脸图像,我们就可以很容易分析出每个城市的人肤色深浅的比例,从而来决定我们到哪个城市去推销美白产品比较好。比如在成都美白产品就不如其他城市好卖,据说眼霜的销量不错。

cmd-markdown-logo

好了,总之特征提取就是把一个被研究对象的特质量化下来方便计算机处理。前面说过,但特征提取可以有很多的方法,并不一定借用计算机程序。比如银行对客户的收入进行分级,0-10,越大存款越多。

cmd-markdown-logo

HR面试以后,对被面试者的思维方式进行分级,0-10,越大越有想法。不管自动的,人工的方法都可以叫做特征提取。

cmd-markdown-logo

我们再把特征提取的概念进一步扩展。假设我们有多个特征提取模块同时作用于同一对象。那么我们就可以得到像这样的一张表格。表格的每一行就是一个对象的所有特征值,我们可以把这些特征值串起来,这串数字就反应了一个对象的综合特征,我们把它叫特征向量, Feature Vector。

cmd-markdown-logo

为了更好地理解Feature Vector,我们把这串数字当成一个坐标值绘制出来,大家就可以直观的看到待研究对象的分布情况了。我们现在绘制的这个图,其实是一个空间的表示,我们先不引入那些复杂的空间概念。你只需要记住这是一个直观表达了各个对象特征的空间,叫做特征空间,Feature Space.

cmd-markdown-logo

到此为止,我们可以把特征提取的概念进一步泛化一下,有了一个更大的黑盒子,暂且叫特征向量构造黑盒子好了。你可以想象这个黑盒子里面装着我们开始讲过的无数个特征提取小盒子。一个对象经过大盒子就输出了一个特征向量,多个对象的特征向量放在一起就组成了,其实应该叫张成,好了,懒得解释这个名字,算我没说,多个向量组成了特征空间。

cmd-markdown-logo

好了,时间到了,今天暂且说这么多,对我们这个系列有兴趣的工友请关注我们的微博 @搬砖搞科研,欢迎大家提出宝贵的意见。另外,为了提高这个系列的观赏性,如果有懂动画和美工的工友请与我们联系。

Leave a Reply

Your email address will not be published. Required fields are marked *