首先,PCA有如下特点:
1.要求被降维的数据是线性的。这里的数据是指那一列列的向量,比如我们的问题里面,每个数据库的图片都变成列向量,排列成一个矩阵;
2.要求被降维的数据确实是线性相关的。PCA分解之后,每个向量都可以用一组基向量线性表示,这证明,需要原来每个向量之间本来就是线性相关的。
结合1,2,PCA的本质就是把一组线性相关的数据投影到一个低维空间,每个数据都能有更低的维度表示。或者,当我们去掉一些特征值比较小的基底时,这种低维的表示是比较近似的。
PCA不能解决的问题是数据没有线性相关性的问题。例如,人脸识别的问题。人脸并不能保证总是出现在图片的相同的位置,也就是说,我们粗暴的把每个pixel排列起来形成的列向量,每个分量之间并不一定存在线性关系。当然,PCA在人脸识别中是有应用的,不过处理办法是把关键部位的坐标变成列向量,这样做,就必须现有识别的过程,那就不能满足我们的要求,得到线性的分解表达式。
我们的问题,材料图像的特征提取。这里考虑怎样在图片中挖孔的问题,当这个特征是空间平移旋转不变的时候,直接的分解保持线性关系其实是不合理的,因为图片对应的列向量中,不对应的pixel可能是有关系的。也就是说,I=f(I0,I1,I2,...,In)这个关系天然是非线性的。
这个非线性关系会带来两个问题:
1.怎么建立,也就是说,拿什么方法去代替PCA。由上面的例子,人脸识别的技术是可以拿来用的,更宽泛一点,计算机视觉的技术应该都是可以考虑的;另外,机器学习领域,autoencoder技术应该是可以用的。
2.怎样通过图片的表达式得到刚度矩阵表达式。根据以前算三次方的经验,多项式的关系都是可以得到的,但是速度会慢很多;另外,指数关系也应该是可以的(不确定)。具体的要先确定上面的非线性关系再说。