您的位置:首页 > 其它

怎样让机器学会检测人脸——1、统计学习

2014-10-25 22:01 190 查看
让我们先从人类的学习说起,当你还是3岁孩子的时候,看到的事物都是新的,对世界充满了好奇也感到很迷惑。是你的爸爸妈妈一遍一遍的指着一个会摇尾巴汪汪叫的动物告诉你,这是一条小狗,你会睁大眼睛观察它的样子,仔细听它的叫声,还会伸手去抚摸它松软的毛,然后学着爸爸的口型说“小狗”。当你和狗狗相处了相当长的时间,你对它越来越熟悉,当你只看到它的尾巴,或者听到它的叫声,甚至闭上眼睛摸到它的毛,都能够轻松并且肯定的说,这是属于它的。

有一天妈妈的朋友带着另外的一条四条腿的动物到你家,你通过观察它的样子,你知道这可能也是一条狗,当它发出跟你家狗相似的叫声时,你更加确信这就是一条狗。

这是一个人类学习的例子,对于狗这个概念的判别,你通过大量的实践统计得到它的一些特征:看上去长着四条腿,会摇尾巴,会发出汪汪的叫声,有松软的毛摸上去很舒服。当你再次在一个新的事物上观察到这些特征,就会给出推断它可能是狗。符合先前观察的特征的程度越高,你越发对自己的推断肯定。

再举个例子,假如你先前长期观察过月亮的形状和农历日期的关系,你每天先通过日历查出日期,然后晚上出去观察月亮的形状;经过很长时间的训练以后,你不需要日历,只需要在晚上看一下月亮的形状,就能推断出大致是几号。比如观察到月亮很圆,你确信是十五或者十六,月亮是一个很细的左弧形,你会推测应该是初二三。

这就是统计学习。通过大量的统计获得某类事物的共性与有别于其他事物的特性,当观察到新的事物时,根据观察到的现象推断是否符合。

如果我们能够发现人脑统计学习的机制,不久可以让机器拥有学习能力么。然而人脑是一个复杂的神经网络系统,具备高超的分析处理能力和高度学习能力,到目前为止,人类的科学家们对脑机制的理解是否有限,虽然我们已经通过很多高科技手段收集到大量关于脑的解刨学数据,接收某种外界刺激时的神经元区域兴奋扫描图像等等,但是其内部工作原理,尚知之甚少。倘若有一天有人真的弄清楚了,并通过计算机仿真实现了真正的智能,这个世界将会发生革命性的改变。比以往的任何工业革命都要来得猛烈得多!

不了解人脑如何学习的没关系,统计学习的原理是完全可以用在计算机上。这就是我们要说的机器学习。比如我们想让机器学会判别一个图像是不是一个人脸,我们的内容将围绕着这一问题慢慢展开。

与幼儿学习辨认狗狗类似,首先我们需要大量的各种各样人脸的图片,统计学习嘛,只给一个图片,显然不足以代表整个类别。它只能表示图片中某个人这个这一个体。我们记这个集合为PositiveDatas。



有了人脸的图片就够了么?

当然不是,如果是这样,我可以说任何图片都是人脸。显然人脸是有别与其他事物的,比如上面说到的小狗。我们不能把一副小狗的图片判别为人脸嘛。为此我们还需要搜集很多不是人脸的其他事物的图片,比如说树木,建筑,动物等等。目的是要找出人脸这个类别区别于其他事物的特性。我们记这个集合为NegativeDatas。



为方便计算机处理,我们把图片都处理成一样的格式,每个图片为W个像素宽,H个像素高,每个像素点8位可以表示0~255之间的亮度值。显然一个这样的图片一共有W*H个像素,每个像素可以取256个灰度级。我们把它表示为一个数组I[W*H],或者说是一个W*H维的行向量。

为了更好的区别人脸和其他事物,我们通常会对I数据进行处理,提取一组更有利于描述人脸的特征,暂且不管是如何做到的,总归我们是从一个图片I上面通过计算得到另外一个特征数组,通常叫做特征向量V[nfeatures],是一个nfeatures维的实数,其中nfeatures是提取的特征的数目,V[i]表示第i个特征的值。

对PositiveDatas和NegativeDatas中的所有数据都提取特征向量,得到的向量集合分别记为正样本集{P},负样本集{N},分别有npos和nneg个特征向量。我们把合集记为M={P ,N}

机器学习的目的就是要从集合M中统计规律,通过遍历所有的nfeature个特征的值,找出某些特征值,能够很好的将正负样本区分开。比如说如果发现第i个特征值,90%的正样本都小于0.8,而只有5%负样本小于0.8。

现在给你一个新的图片,当我们观察到它第i个特征小于0.8时,可以相当有把握的说它很可能是人脸。因为计算它属于正样本的概率,应该是 0.9/(0.9+0.5) = 0.947,有九成以上的把握。我们对这一推断是有信心的。

这里我们只举了找到一个特征的例子,实际上我们会找到多个特征,并且把它们组合起来,为我们的推断提供强有力的证据。在这里先不展开,具体的问题会在后续文章长详解。在这里我们先来总结一下上面的描述的过程,也就是通常实现机器学习的一些关键步骤:

第一步,定义你要解决的问题,比如上面我们的目标是让机器学会如何识别图片是否为人脸。

第二步,收集与问题相关的数据,为了识别人脸我们收集了大量人脸图片和非人脸的图片数据。

第三步,提取合适的特征,如何从原始数据中提取特征是和具体问题密切相关的。后面我们会讲到典型例子。

第四步,采用合适的机器学习算法从特征集中求解问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: