独立成分分析

来源:互联网 发布:矩阵的秩的性质 编辑:程序博客网 时间:2024/05/10 09:41

独立成分分析(Independent Component Analysis),最早应用于盲源信号分离(Blind Source Separation,BBS)。起源于“鸡尾酒会问题”,描述如下:在嘈杂的鸡尾酒会上,许多人在同时交谈,可能还有背景音乐,但人耳却能准确而清晰的听到对方的话语。这种可以从混合声音中选择自己感兴趣的声音而忽略其他声音的现象称为“鸡尾酒会效应”。

ICA方法最早是由法国的J.Herault和C.Jutten于八十年代中期提出来的,现在常称他们的方法为H-J算法,可以说是最经典的ICA算法之一。目前比较流行的ICA算法又Infomax算法(信息最大化)、FastICA算法(定点算法,Fixed-point、快速ICA算法),方法分类的依据主要是求取分离矩阵W的方法不同。
ICA理论模型:
ICA理论的基本思想是从一组混合的观测信号中分离出独立信号,或者尽可能独立的信号对其他信号进行表征。通过数学语言对ICA理论进行描述,设X=(x1,x2,...,xm)T为观测数据阵,家丁生成该数据阵的独立源为S=(s1,s2,...,sm)T,则ICA理论公式可以表示为X与S的线性关系,如式所示:
X = AS = ∑aisi;
公式中的A=(a1,a2,...,am)是一个n*m的混合矩阵。ICA理论认为用来观测的混合数据阵X是由独立元S经过A线性加权获得。ICA理论的目标就是通过X求得一个分离矩阵W,使得W作用在X上所获得的信号Y是独立源S的最优逼近,该关系可以通过下式表示:
Y = WX = WAS , A = inv(W);
Y = [y1,y2,...ym]T,Y的行向量相互独立,则Y就是独立基图像的聚集,Y的每一行代表一副估计的基图像。如下图所示,中间是人脸图像,左边是未知的人脸基图像,右边是用ICA方法估计的基图像。
 独立成分分析 - seven - seven
基于ICA的人脸识别模型
得到Y之后,就可以由Y的行向量为特征向量构造一个特征子空间,将待识别的人脸图像投影到这个子空间上,即用这组独立的基图像的线性组合来表示
f = a1y1+a2y2+...+amym;
a1,a2,...am为这幅人脸图像f在子空间中的投影系数,该投影系数可由下式求得:
[a1,a2,...am] = fT * pinv(Y);
其中pinv(.)为求矩阵的伪逆,pinv(Y) = Y(YYT)-1。
白化
在进行ICA处理之前,首先要对训练样本图像集进行预处理,包括去均值和白化。白化也叫球化,分为两步进行。首先要对观测数据阵X进行主成分分析,再对X进行白化。
  1. 对X进行主成分分析
求X的协方差矩阵,如下式:
C = X * X‘;
对C进行奇异值分解,如下式:
C = U*D*U’;
式中D为特征值的对角阵,U为C的奇异值分解中的左奇异阵,U的各个分量u1,u2,...,um为C的特征向量。
     2.  对X进行白化
观测数据阵X的白化过程如下:
Z = M * X;
上式中的M为白化矩阵,M = inv(sqrt(D)) * U',其中D极为X的协方差矩阵C的奇异值分解中的特征根对角阵。Z即为白化后的数据阵。
ICA人脸识别
经过上面的白化过程之后即可进行ICA独立成分分析了。本文应用FastICA算法,进行ICA处理。FastICA算法是芬兰赫尔辛基工业大学计算机及信息科学实验室Hyvarinen等人提出并发展起来的。FastICA算法基于非高斯性最大化原理,使用固定点迭代理论寻找W‘X的非高斯性最大值,该算法采用牛顿迭代算法对观测变量X的大量采样点进行批处理,每次从观测信号中分离出一个独立分量,是独立成分分析的一种快速算法。FastICA的算法原理以及具体步骤就不赘述了,中间牵涉一些理论性很强的数学知识。
经过FastICA处理之后就可以得到分离矩阵W,得出转换矩阵W1 = M * W,然后得到仁亮的独立基影像U = W1 * X。人脸在由独立基影像张成的子空间上的投影就构成了矩阵A = inv(W)。从而得到人脸的近似表达为Y = A * U = W1 * U。
对于测试集中的任一图像,将其投影到独立基影像子空间后得到Atest,再利用余弦公式法来与训练样本影像在独立基影像子空间上的投影进行比较,即可实现人脸识别。
0 0
原创粉丝点击