La PCA comme moindres carrés
Le modèle linéaire du cours suppose la matrice
Le modèle s'écrit avec les seuls symboles du cours :
où
( ) porte le sous-espace, désormais inconnu, rassemble en colonnes les paramètres de chaque observation, est le bruit.
1. Lien avec le cours
Le projet prolonge directement le modèle linéaire : la solution des moindres carrés sert deux fois par itération, le projecteur orthogonal
2. Structure du code
Le cadre commun des projets s'applique : le modèle d'abord, la loss ensuite, puis l'algorithme à la main.
class LowRankModel:
"""M observations in dimension d, living near a k-dimensional subspace."""
def __init__(self, d=10, k=2, sigma=0.1):
...
def rvs(self, m, rng):
"""Simulate (H_true, Theta_true, X) with X = H @ Theta + W."""
...
def loss(H, Theta, X):
"""Frobenius misfit ||X - H @ Theta||^2."""
...
def als(X, k, n_iter, rng):
"""Alternating least squares: solve Theta given H, then H given Theta."""
...Tests imposés. Sans bruit et pour des données exactement de rang als est numériquement nulle et le sous-espace est retrouvé (les projecteurs coïncident) ; la loss de als décroît à chaque demi-étape, sans exception, chaque demi-étape étant un moindres carrés exact ; et les erreurs de reconstruction de als, de la SVD et de sklearn.decomposition.PCA coïncident sur les mêmes données centrées.
3. Travail demandé
- Base connue. Pour
observations partageant la même connue, montrer que l'estimation de chaque est la solution des moindres carrés du cours, appliquée colonne par colonne, et qu'elle s'écrit d'un bloc . - Base inconnue. Poser le problème joint
. Montrer que pour toute matrice inversible , le couple donne la même loss : la base n'est pas identifiable, seul le sous-espace l'est, et le projecteur est l'objet bien défini. Convenir d'une représentation, colonnes orthonormées. - Les moindres carrés alternés, à la main. Implémenter
als: àfixée, résoudre (la formule de l'étape 1) ; à fixée, résoudre (la même formule, transposée). Vérifier la décroissance monotone de la loss, choisir un critère d'arrêt, et étudier l'effet de l'initialisation aléatoire : la loss finale change-t-elle ? le sous-espace ? - Le bon outil. Centrer les données, soustraire la moyenne empirique, c'est estimer
, puis obtenir le sous-espace optimal d'un coup par la SVD de centrée, les premiers vecteurs singuliers gauches (théorème d'Eckart-Young, admis), et confronter à sklearn.decomposition.PCA. Comparer àals: erreurs de reconstruction, distance entre projecteurs. - Interprétation. Tracer l'erreur de reconstruction en fonction de
, de à : la courbe en coude, l'outil de choix de la dimension. Pour , tracer le nuage des colonnes de , la représentation réduite des données, et interpréter les colonnes de , les directions que les données ont élues. - Ouverture : la PCA probabiliste. Le geste bayésien du cours s'applique aussi ici : la pPCA (Tipping et Bishop) modélise
avec et . Son MLE retrouve le sous-espace principal, avec en prime = moyenne des valeurs propres écartées de la covariance empirique (résultat admis). Le vérifier par Monte-Carlo sur des données simulées où est connue. Remarquer enfin que l'alternance de als, une affectation puis une mise à jour, est aussi la structure de K-means : la réduction de dimension et le partitionnement sont deux argmin alternés.
4. Livrables
Le notebook reproductible des modalités communes, avec la démonstration de non-identifiabilité rédigée, la courbe de décroissance de la loss de als, la comparaison chiffrée ALS/SVD/sklearn, la courbe en coude et le nuage réduit commentés, et la vérification pPCA de l'ouverture.
