Teorie Matematică
Formule și demonstrații din referatul lucrării
1. Reprezentarea imaginii
O imagine grayscale de \(h \times w\) pixeli se reprezintă ca vector \(\mathbf{x} \in \mathbb{R}^d\), cu \(d = h \cdot w\). Pentru LFW (Labeled Faces in the Wild), setul de date folosit în aplicație, după conversia la grayscale și redimensionarea la \(50 \times 37\) px, avem \(d = 50 \times 37 = 1850\).
2. Centrarea datelor și matricea de covarianță
Fie \(X \in \mathbb{R}^{n \times d}\) matricea de date. Centrul:
\[ \boldsymbol{\mu} = \frac{1}{n} \sum_{i=1}^n \mathbf{x}_i, \qquad \tilde{X} = X - \mathbf{1}\boldsymbol{\mu}^\top \]Matricea de covarianță empirică:
\[ C = \frac{1}{n}\, \tilde{X}^\top \tilde{X} \;\in\; \mathbb{R}^{d \times d} \]3. Direcția de varianță maximă (Teorema PCA)
Prima componentă principală este soluția problemei de optimizare:
\[ \mathbf{u}_1 = \operatorname*{arg\,max}_{\|\mathbf{u}\|=1} \; \mathbf{u}^\top C \,\mathbf{u} \]Demonstrație (multiplicatori Lagrange):
\[ \mathcal{L}(\mathbf{u}, \lambda) = \mathbf{u}^\top C\, \mathbf{u} - \lambda\bigl(\|\mathbf{u}\|^2 - 1\bigr) \] \[ \frac{\partial \mathcal{L}}{\partial \mathbf{u}} = \mathbf{0} \;\Longrightarrow\; 2C\mathbf{u} - 2\lambda\mathbf{u} = \mathbf{0} \;\Longrightarrow\; C\mathbf{u} = \lambda\mathbf{u} \]Recunoaștem ecuația de valori proprii. Varianta proiectată în punctul optim:
\[ \mathbf{u}^\top C\, \mathbf{u} = \mathbf{u}^\top (\lambda\mathbf{u}) = \lambda\,\|\mathbf{u}\|^2 = \lambda \]Maximul se atinge pentru \(\lambda = \lambda_1\), cea mai mare valoare proprie a lui \(C\).
4. Proiecția și reconstrucția
Primii \(k\) vectori proprii formează matricea de proiecție \(U_k = [\mathbf{u}_1 \mid \cdots \mid \mathbf{u}_k] \in \mathbb{R}^{d \times k}\).
\[ \mathbf{z} = U_k^\top (\mathbf{x} - \boldsymbol{\mu}) \;\in\; \mathbb{R}^k \]Reconstrucție aproximativă din \(k\) eigenfaces:
\[ \mathbf{x} \;\approx\; \boldsymbol{\mu} + \sum_{i=1}^k \alpha_i\, \mathbf{u}_i, \qquad \alpha_i = \mathbf{u}_i^\top(\mathbf{x} - \boldsymbol{\mu}) \]5. Varianță explicată cumulativă
\[ \text{VEC}(k) = \frac{\displaystyle\sum_{i=1}^k \lambda_i}{\displaystyle\sum_{i=1}^d \lambda_i} \]Se alege \(k\) astfel încât \(\text{VEC}(k) \geq 0{,}95\). Whitening: \(\tilde{\alpha}_i = \alpha_i / \sqrt{\lambda_i}\) normalizează toate componentele la varianță unitară, util pentru SVM cu kernel RBF.
1. Clasificatorul cu Marjă Maximă
Dat un set de antrenare \(\{(\mathbf{z}_i, y_i)\}_{i=1}^n\) cu \(y_i \in \{-1, +1\}\), SVM liniar caută hiperplanul \(\mathbf{w}^\top \mathbf{z} + b = 0\) care maximizează marja:
\[ \min_{\mathbf{w},\,b} \; \frac{1}{2}\|\mathbf{w}\|^2 \quad \text{astfel încât} \quad y_i\bigl(\mathbf{w}^\top \mathbf{z}_i + b\bigr) \geq 1, \;\forall i \]Marja geometrică față de hiperplan este \(\dfrac{2}{\|\mathbf{w}\|}\).
2. SVM cu marjă moale (Soft-Margin)
\[ \min_{\mathbf{w},\,b,\,\boldsymbol{\xi}} \; \frac{1}{2}\|\mathbf{w}\|^2 + C\sum_{i=1}^n \xi_i \quad \text{astfel încât} \quad y_i(\mathbf{w}^\top \mathbf{z}_i + b) \geq 1 - \xi_i,\; \xi_i \geq 0 \]Parametrul \(C\) controlează trade-off-ul între marjă și erori de clasificare.
3. Condițiile KKT și formularea duală
Atașând fiecărei constrângeri un multiplicator Lagrange \(\alpha_i \geq 0\), condițiile Karush-Kuhn-Tucker conduc la:
\[ \mathbf{w} = \sum_{i=1}^n \alpha_i\, y_i\, \mathbf{x}_i, \qquad \sum_{i=1}^n \alpha_i\, y_i = 0, \qquad \alpha_i \bigl[y_i(\mathbf{w}^\top \mathbf{x}_i + b) - 1\bigr] = 0 \]Substituind în lagrangian se obține problema duală:
\[ \max_{\boldsymbol{\alpha}}\; \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i,j=1}^{n} \alpha_i\,\alpha_j\,y_i\,y_j\, \langle \mathbf{x}_i, \mathbf{x}_j \rangle \quad \text{cu} \quad 0 \leq \alpha_i \leq C \]Din complementaritate, doar punctele cu \(\alpha_i > 0\) contribuie la soluție - aceștia sunt vectorii suport, situați chiar pe hiperplanele de margine. Problema duală depinde de date doar prin produsele scalare \(\langle \mathbf{x}_i, \mathbf{x}_j \rangle\), ceea ce deschide drumul către funcțiile kernel.
3. Kernel RBF
Pentru date neseparabile liniar, SVM folosește o funcție kernel care calculează produsul scalar în spațiul caracteristicilor fără a-l materializa explicit:
\[ K(\mathbf{z}_i, \mathbf{z}_j) = \exp\!\left(-\gamma \|\mathbf{z}_i - \mathbf{z}_j\|^2\right) \]Decizia de clasificare pentru un punct nou \(\mathbf{z}\):
\[ \hat{y} = \operatorname{sgn}\!\left(\sum_{i \in SV} \alpha_i y_i K(\mathbf{z}_i, \mathbf{z}) + b\right) \]unde suma rulează doar peste vectorii suport (punctele de pe marjă).
4. Extensia multiclasă (One-vs-Rest)
Pentru \(m\) persoane se antrenează \(m\) clasificatori binari. Clasa prezisă este cea cu scorul decizional maxim:
\[ \hat{c} = \operatorname*{arg\,max}_{c \in \{1,\ldots,m\}} \left(\sum_{i \in SV_c} \alpha_i y_i K(\mathbf{z}_i, \mathbf{z}) + b_c\right) \]1. Descompunerea în Valori Singulare
Orice matrice \(A \in \mathbb{R}^{m \times n}\) se poate scrie:
\[ A = U \Sigma V^\top \]unde \(U \in \mathbb{R}^{m \times m}\), \(V \in \mathbb{R}^{n \times n}\) sunt ortogonale, iar \(\Sigma \in \mathbb{R}^{m \times n}\) este diagonală cu \(\sigma_1 \geq \sigma_2 \geq \cdots \geq 0\).
2. Legătura SVD - Covarianță
Aplicând SVD matricei centrate \(\tilde{X} = U\Sigma V^\top\):
\[ \tilde{X}^\top \tilde{X} = (U\Sigma V^\top)^\top (U\Sigma V^\top) = V \Sigma^\top U^\top U \Sigma V^\top = V \Sigma^2 V^\top \] \[ C = \frac{1}{n}\tilde{X}^\top\tilde{X} = V\,\frac{\Sigma^2}{n}\,V^\top \]Deci coloanele lui \(V\) sunt vectorii proprii ai lui \(C\), iar \(\lambda_i = \sigma_i^2 / n\). Eigenfaces = coloanele lui \(V\).
3. Avantajul practic
Când \(n \ll d\) (\(n \approx 1000\), \(d = 1850\)), diagonalizarea directă a lui \(C \in \mathbb{R}^{d \times d}\) ar necesita \(\mathcal{O}(d^3)\) operații. SVD truncat (primele \(k\) valori singulare) reduce complexitatea la \(\mathcal{O}(ndk)\), semnificativ mai eficient.
\[ \tilde{X} \approx U_k \Sigma_k V_k^\top \quad (k \ll \min(n,d)) \]4. Teorema Eckart-Young
Dintre toate matricele de rang cel mult \(k\), cea mai bună aproximare a lui \(X\) în norma Frobenius este truncarea SVD la primele \(k\) componente:
\[ X_k = \sum_{i=1}^k \sigma_i\, u_i\, v_i^\top, \qquad \|X - X_k\|_F^2 = \sum_{i=k+1}^{\min(m,n)} \sigma_i^2 \]Pe această proprietate se bazează reducerea de dimensionalitate prin PCA: păstrarea primelor \(k\) componente minimizează eroarea de reconstrucție în sensul Frobenius.
Concepte
- CLAHE
- Contrast Limited Adaptive Histogram Equalization. Egalizare locală a histogramei cu limitarea amplificării zgomotului.
- Computer vision
- Vedere artificială; domeniu care procesează informația vizuală.
- Curse of dimensionality
- Blestemul dimensionalității; în spații de dimensiune mare distanțele euclidiene devin aproape uniforme și clasificarea bazată pe distanță își pierde eficacitatea.
- Eigenface
- Vector propriu al matricei de covarianță, reformatat ca matrice de pixeli.
- Grayscale
- Tonuri de gri; reprezentarea imaginii ca matrice scalară, fiecare pixel având o intensitate în \([0, 255]\).
- Kernel trick
- Aplicarea unui algoritm liniar într-un spațiu transformat fără calculul explicit al transformării.
- KKT
- Condițiile Karush-Kuhn-Tucker, condiții necesare de optimalitate pentru probleme cu constrângeri de inegalitate.
- LFW
- Labeled Faces in the Wild; set de date public cu fotografii de fețe etichetate.
- Overfitting
- Supraantrenare; modelul învață particularități ale datelor de antrenare și nu generalizează pe date noi.
- PCA
- Principal Component Analysis; reducerea dimensionalității prin proiecție pe direcțiile de varianță maximă.
- RBF
- Radial Basis Function; nucleu gaussian \(K(\mathbf{x}, \mathbf{x}') = \exp(-\gamma \|\mathbf{x} - \mathbf{x}'\|^2)\).
- SVD
- Singular Value Decomposition; descompunerea în valori singulare.
- SVM
- Support Vector Machine; clasificator care caută hiperplanul cu margine maximă.
- Whitening
- Normalizarea componentelor PCA prin împărțire la \(\sqrt{\lambda_i}\) astfel încât toate să aibă varianță unitară.
Evaluare și metrici
- Cross-validation
- Validare încrucișată; setul de antrenare se împarte în \(k\) părți disjuncte, modelul se antrenează pe \(k-1\) părți și se evaluează pe partea rămasă, repetând de \(k\) ori. Scorul raportat este media celor \(k\) valori obținute.
- TP, FN, FP, TN
- true positives, false negatives, false positives, true negatives; cadranele matricei de confuzie pentru o clasă fixată.
- Precizie
- precision; \(P = \dfrac{TP}{TP + FP}\).
- Recall
- \(R = \dfrac{TP}{TP + FN}\).
- F1-score
- Media armonică între precizie și recall: \(F_1 = \dfrac{2 P R}{P + R}\).
- Suport
- support; numărul de exemple dintr-o clasă în setul de evaluare.
Biblioteci software
- Matplotlib
- Bibliotecă pentru generarea graficelor. matplotlib.org/stable
- NumPy
- Bibliotecă pentru tablouri n-dimensionale și algebră liniară. numpy.org/doc/stable
- OpenCV
- Bibliotecă pentru procesarea imaginilor. docs.opencv.org/4.x
- scikit-learn
- Bibliotecă pentru învățare automată (PCA, SVM, validare încrucișată). scikit-learn.org/stable