Matlab 利用PCA输出对角点特征进行神经网络训练

Matlab 利用PCA输出对角点特征进行神经网络训练,matlab,opencv,neural-network,classification,pca,Matlab,Opencv,Neural Network,Classification,Pca,我正在从事一个车辆分类项目,在该项目中,我有一辆特定汽车的N图像,并且每个图像的40拐角/边缘都已被检测并存储在矩阵中,比如MAT[40x2] 所以我创建了一个Nx(40x2)矩阵,比如NMAT 现在我不知道如何使用这个3D矩阵作为pca(mat)或princomp(mat)函数的输入 然而,我知道什么是pca以及它的计算是如何进行的,但我所不知道的是如何使用它。 那么有人能给我提供一个快速浏览的机会吗 在使用matlab PCA函数和其他一些数据后,PCA还返回特征值、特征向量和主成分。 但是

我正在从事一个车辆分类项目,在该项目中,我有一辆特定汽车的N图像,并且每个图像的40拐角/边缘都已被检测并存储在矩阵中,比如
MAT[40x2]

所以我创建了一个
Nx(40x2)
矩阵,比如NMAT

现在我不知道如何使用这个3D矩阵作为
pca(mat)
princomp(mat)
函数的输入

然而,我知道什么是pca以及它的计算是如何进行的,但我所不知道的是如何使用它。

那么有人能给我提供一个快速浏览的机会吗

在使用matlab PCA函数和其他一些数据后,PCA还返回特征值、特征向量和主成分。


但是,由于神经网络仅将向量而不是矩阵作为输入,那么在使用pca函数检索某些数据后,应该向神经网络提供什么?(我不知道如何使用这些主成分来创建1D特征向量)

您需要
将其重塑为一个2D矩阵,其中包含
N行和80列,因此每个图像都被建模为80维空间中的一个点,您希望降低其维度。从ANN的角度来看,输入是否具有“自然”的二维布局并不重要。ANN不会处理这些信息,因此可以“销毁”

至于问题的第二部分,ANN确实需要一个向量输入,但需要对其中的几个进行训练,因此训练函数很可能需要一个输入矩阵。该矩阵是数据矩阵与根据其相应特征值从
pca
中选择的主成分之间的乘积


这是一个快速、高层次的演练

所以通过重塑你的意思是我需要将二维坐标数组a=[2,3;4,6;5,9;7,1]转换成新的一维数组Narr=[2,3,4,6,5,9,7,1]?是的。这将是与一个图像相关联的特征向量。重塑是实现这一点的Matlab函数的名称。因此,我现在理解的是,通过这种方式,我得到一个矩阵imageMat[Nx80],这是我的数据矩阵,我使用Matlab pca函数或其他方法计算其主成分,并将其放入矩阵中,比如compMat[]然后乘以
imageMat*compMat
,创建一个新的矩阵trainMat[],然后使用此trainMat作为NNYes的输入。imageMat*compMat部分是数据在主分量子空间上的投影。请注意,您需要从compMat中删除一些列,以仅保留与最高特征值相关联的列,以便投影数据位于比原始数据更低的维度空间中。否则,就没有必要计算主成分分析;这只是数据空间坐标的变化。是的,我知道我应该只使用前k个方差最大的主成分,那么有什么方法可以找到k或者它的点击试验类型的方法吗?