LDA及其在人脸识别上的应用


LDA:线性判别分析,也称为Fisher线性判别,是常用的降维技术。

基本思想:将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大的类间距离和最小的类内距离,即模式在该空间中有最佳的可分离性。

LDA降维后的维度是直接和类别的个数相关的,与数据本身的维度没关系,比如原始数据是n维的,一共有C个类别,那么LDA降维之后,维数取值范围为(1,C-1),举个例子,假设图像分类,两个类别正例反例,每个图像用10000维特征表示,那么LDA之后,就只有1维特征,并且这维特征的分类能力最好。
对于很多两类分类的情况,LDA之后就剩下1维,找到分类效果最好的一个阈值貌似就可以了。

假设,x是一个N维的列向量,要使x通过LDA降到C维,只需要找到一个投影矩阵w,也即,一个N*C的矩阵,让w的转置矩阵和x相乘,便成为C维的了。(投影在数学上的表示就是用一个矩阵去相乘)

此时,问题的关键就在于:寻找一个投影矩阵!并且,该投影矩阵要保证模式样本在新的子空间有最大的类间距离和最小的类内距离。


LDA数学表示:

LDA及其在人脸识别上的应用_第1张图片

       LDA及其在人脸识别上的应用_第2张图片

     于是: 

        令:

      

      于是有:
   

       可转化为:

      由于是常数,所以有:

    此时,求解投影矩阵w转化为求矩阵 的最大特征根特征向量。

至此,投影到1维空间的投影向量w已经找到,如果要投影到k维的空间,只需要选出k个最大的特征值对应的特征向量组成矩阵W: ,而投影后的向量y:,这样可以保证投影后的向量的每个分量都有最大类间距和最小类内距的效果。


举例:

    

可以看到两个类别,一个蓝色类别,一个红色类别。现在要求将数据从二维降维到一维。直接投影到x1轴或者x2轴,不同类别之间会有重复,分类效果不好。上图映射到的直线就是用LDA方法计算得到的,可以看到,红色类别和蓝色类别在映射之后之间的距离是最大的,而且每个类别内部点的离散程度是最小的(或者说聚集程度是最大的)。


LDA在人脸识别上的应用:

训练:

假设采集的人脸图像为100*100大小,也即,一张人脸图像用10000维的列向量表示。

首先,需要训练出一个投影矩阵(降维矩阵)。训练样本有100个人,每个人5张图片,总共500张图片。

100个人,也即有100类,那么降维后的维数取值范围为(1,99),根据经验,我们降到20维。

也即,根据LDA方法,求出10000*20的投影矩阵,每一列都是矩阵的特征根对应的特征向量,第一列是最大的特征根对应的特征向量,第二列是第二大的特征根对应的特征向量......以此类推。用投影矩阵的转置矩阵(20*10000)乘以10000维的列向量(10000*1),即可得到20维的列向量(20*1),并用这20维的列向量来表示该人脸图像。

识别:

将待识别的人脸图像用投影矩阵进行降维,得到20维的列向量,并通过最近邻,求出与之最相近的那一类。(可用欧氏距离)




参考资料:吴文峰-《基于LDA和GSF人脸识别算法》

你可能感兴趣的:(LDA及其在人脸识别上的应用)