나는 VLAD과 Fisher Vectors (FV)에 관한 많은 논문을 읽었습니다. 특히 this 논문 (그리고 본질적으로 주제에 관한 모든 논문에서) 저자들은 SIFT, VLAD 및 FV 치수를 줄이기 위해 PCA를 사용합니다.SIFT 또는 VLAD 벡터에 PCA를 어떻게 사용할 수 있습니까?
그러나 PCA는 공분산 행렬의 고유 값 계산과 관련이 있으며, 정사각형 행렬에 대해서만 고유 값을 계산할 수 있습니다.
이제 우리는 1M SIFT 벡터에 대해 PCA를 계산한다고 가정합니다. 1Mx128 매트릭스에서 PCA를 계산하려면 어떻게해야합니까?
내 이해는 this입니다. SVD가 대안이지만 다른 어떤 논문의 아무도 PCA에 관해서 이야기 한적이 없기 때문에 나는 아주 놀랐습니다! 내가 뭐 놓친 거 없니?
답변 해 주셔서 감사합니다. 약 500k 단어에 대해 효율적인 C++ pca 구현을 제안 해 주시겠습니까? – justHelloWorld
이전 실험실에서 사용한 SIFT 용 PCA 구현은 유감스럽게도 (유감스럽게도)있었습니다. 피셔 벡터의 가장 널리 사용되는 두 가지 구현은 다음과 같습니다. 1) INRIA (https://lear.inrialpes.fr/src/inria_fisher/) 및 2) Oxford의 VLFeat (http://www.vlfeat.org/overview/ encodings.html). VLAD에 대한 언급도있을 수 있습니다. 어쩌면 그들이 PCA를 다루는 지 조사 할 수있는 좋은 곳 일 수도 있습니다. – JARS