Face Recognition with PCA, LDA and Spectral Clustering Nils Murrugarra
2
Motivation • Our Project Goal: • To explore the influence of new feature spaces that can provide higher
discriminative power for the face recognition problem • New feature spaces were generated through PCA, LDA and Spectral Clustering algorithms.
Data Set Features
All pixels in an image
Source
Labeled Faces in the Wild [1]: http://vis-www.cs.umass.edu/lfw/
# instances
1288
3
Dataset Person Ariel Sharon Colin Powell Donald Rumsfeld George W Bush Gerhard Schroeder Hugo Chavez Tony Blair
Class 0 1 2 3 4 5 6
# instances 77 236 121 530 109 71 144 1288
[0 … 255]
4
Approach: PCA and LDA
75%
. .
[…] New Feature Vector
[…] Feature Vector • PCA • LDA Projection
Train SVM Classifier trained
25%
. .
Test
[…] Feature Vector
Projection
[…] New Feature Vector Prediction
5
Approach: LDA
Maximize distance between classes
Minimize variation in all classes
6
Approach: Spectral Clustering
100%
. .
[…] New Feature Vector
[…] Feature Vector Spectral Clustering Projection
SVM Classifier trained
75%
25% 25%
Prediction
7
Approach: Spectral Clustering • Created a graph with all the images considering a k-nn graph (KNNG) and a
Fully Connected graph (FCG). • Each image is represented as a feature vector as described above. • Each feature vector is scaled with zero mean and one unit variance. • Two images are compared using its feature vectors with an Euclidean distance • It was employed an implementation from scikit-learn [3] python that
considers the Normalized Graph Laplacian Sym [2]
8
Experiments - Tuning
PCA
Spectral Clustering - FCG
• LDA generates number of components = #_of_classes – 1 (6)
9
Experiments - Tuning
Comparison Spectral Clustering - KNNG
10
Discussion • PCA and Spectral Clustering need at least 50 and 40 components to achieve an
accuracy near 0.7, while LDA got higher accuracies with only 6 components. Let’s see the projections!!
PCA Projection
11
Discussion
Spectral Clustering Projection
12
Discussion
LDA Projection
13
Discussion PCA eigenvalues are plotted and we can appreciate which pixels are more important (white color) to help in increase the variance of the features. Let’s See!!
LDA Projections
PCA Projections
Not possible to see a structure of a face. • This is due that it does not work directly on the eigenvectors of the covariance matrix of the data. • Instead, it tries to project instances of the same class as close as possible, while the projected means per class as farther as possible
14
Discussion • Related to spectral Clustering, FCG achieved a better performance than KNNG.
Let’s See!! • One intuition of this result is that the FCG assigns a weight for all the possible edges
considering lower weights for similar instances and higher for different ones. • In contrast KNNG only assigns a weight 1 for its k-nearest neighbors and sometimes the graph could be disconnected and generate more connected components than the number of classes that we have. • Notice that connected components of a same class if they are projected in different regions, they can damage the learning instead of improving it.
15
Conclusion • In this project, , we have applied a
machine learning design cycle to the Face Recognition Problem considering PCA, LDA and Spectral Clustering approaches. • The main contribution of our work is that we have explored, tuned and discussed different ways of model a face recognition problem achieving similar results in this three scenarios. Future Work • Consider other spectral methods (e.g. other graphs) in conjunction with different distances measures (e.g. cosine) • Train with the complete LFW dataset.
16
Questions
17
References [1]. Gary B. Huang, Manu Ramesh, Tamara Berg, and Erik Learned-Miller (2007). Labeled Faces in the Wild: A Database for Studying Face Recognition in Unconstrained Environments. University of Massachusetts, Amherst, Technical Report 07-49, October. [2]. Ng, A. Y., Jordan, M. I., & Weiss, Y. (2002). On spectral clustering: Analysis and an algorithm. Advances in neural information processing systems, vol 2, pp849-856. [3]. Pedregosa et al (2011). Scikit-learn: Machine Learning in Python, JMLR 12, pp. 2825-2830. [4]. Shi, J.; Malik, J. (2000), Normalized cuts and image segmentation. Pattern Analysis and Machine Intelligence, IEEE Transactions on , vol.22, no.8, pp.888,905, Aug 2000