Lecture 9: Apprentissage non supervisé
Introduction
- ACP
- $k$-means
- Clustering
- Réduction de dimension
- Interprétation, visualisation
$k$-means
Données $x_1, ⋯, x_n ∈ ℝ^d$
On cherche à remplacer les données par un vecteur de “centres”
\[(μ_1, ⋯, μ_k) ∈ ℝ^d\]où $k$ est le nombre de clusters
- Allocations:
- \[z_{ij} = 1 \text{ si le point } x_i \text{ est assigné à } μ_j\]
avec $z ∈ ℝ^{n × k}$
- Distortion:
- \[J(μ, z) = \sum\limits_{ i=1 }^n \sum\limits_{ j=1 }^k z_{ij} \Vert x_i - μ_j \Vert^2\]
On cherche à la rendre la plus petite possible ⟶ compression
\[J(μ, z) = \sum\limits_{ j=1 }^k \sum\limits_{ i ∈ A_j } \Vert x_i - μ_j \Vert^2\]où \(A_j ≝ \underbrace{\lbrace i \mid z_{ij}=1 \rbrace}_{\text{les points du clustering}}\)
Problème: les $z_{ij}$ ne forment pas un ensemble convexe
Même si les $z_{ij}$ sont considérés comme étant dans un simplexe: la distortion est
- convexe en $z$
- convexe en $μ$
mais pas dans les deux à la fois.
Algorithme $k$-means : minimisation alternée
Algorithme itératif :
Initialisation des centres : μ^(0)
(E) ∀t ≥ 0, z^(t+1) ∈ argmin_z J(μ^(t), z)
(M) μ(t+1) ∈ argmin_μ J(z^(t+1), μ)
Propriétés:
- $J$ décroît
- La distortion arrête de décroître après un nombre fini d’itérations, puisque les $z_{ij}$ sont dans un ensemble fini (mais on ne sait pas si ça converge vers l’optimum global)
Etape (E)
\(\min_{z_{i\bullet}} \sum\limits_{ j=1 }^k z_{ij} \Vert x_i - μ_j \Vert^2 = \Vert x_i - μ_s \Vert^2\) pour $s$ tq $z_{is}=1$
Complexité en $O(nkd)$
(E): Assigner chaque $x_i$ au centre le plus proche
Etape (M)
\[\sum\limits_{ i∈A_j } \Vert x_i - μ_j \Vert^2\]⟹
\[argmin_μ \sum\limits_{ i=1 }^n \Vert x_i - μ \Vert^2 = \frac 1 n \sum\limits_{ i=1 }^n x_i\](M): Moyenne des points dans chaque cluster
Propriétés
- distortion décroissante
- convergence finie
-
initialisation de $μ$ à déterminer
- ⟶ $k$-means++ : on initialise les $μ_i$ en les éloignant le plus les uns des autres ⟹ convergence vers l’optimum à un facteur log près
Plusieurs noms pour cet algorithme :
- $k$-means
- Algorithme de Lloyd
- nuées dynamiques
- quantisation vectorielle (on remplace les données $x_i$ par leur moyenne)
Problème de la poule et de l’oeuf
\[J(μ, z) = \sum\limits_{ i=1 }^n \sum\limits_{ j=1 }^k z_{ij} \Vert x_i - μ_j \Vert^2\]- Si on connaît les centres ⟹ trouver les $z$ est facile
- Si on connaît les $z$ ⟹ trouver les centres est facile
Mais si on n’a ni l’un ni l’autre ⟶ comment faire ? (problème de la poule et de l’oeuf)
Valeurs de $k$?
- Pour $k=1$ ⟶ variance des données
- Pour $k=n$ ⟶ $k$ max, chaque point est dans un cluster
Des fois : ajouter un cluster fait diminuer drastiquement la distortion (ex: quand on a deux ensembles de données bien séparés).
⟶ Si on ajoute $+ λk$ à la distortion
⟹ on ne rajoute de nouveaux clusters que si la distortion suivante diminue de $λ$ (limite l’ajout intempestif de nouveaux clusters).
Mais nouveau problème : comment trouver $λ$ ? (ex: peut représenter une grandeur physique, etc…)
Problèmes de $k$-means
-
$k$-means favorise les clusters circulaires ⟶ si on a clairement un cluster très allongé ⟹ on peut être embêté
-
déséquilibre des classes : $k$-means va des fois couper en deux un gros cluster au profit de plus petits
Analyse en Composantes Principales (ACP/PCA)
Clusters = sous-espaces affines (ex: une droite)
Deux versions :
- Analyse
- Synthèse (comme $k$-means)
ACP: Synthèse
Données:
- $x_1, ⋯, x_n ∈ ℝ^d$
- Sous-espace affine translaté de $μ$, dont des vecteurs de base sont $z_1, ⋯, z_k ∈ ℝ^d$
But:
minimiser l’erreur
\[\sum\limits_{ i=1 }^n \Vert x_i - y_i \Vert^2\]tq $y_i ∈ \text{sous-espace}$
i.e. Distortion:
\[\min_{\text{sous-espace } V} \sum\limits_{ i } d(x_i, V)^2\]\[y_i ∈ V ⟺ ∃\vec{α}; \; y_i = μ + \sum\limits_{ j=1 }^n α_{ij} z_j\]
But:
\[\min_{μ, (z_j), (α_{ij})} \sum\limits_{ i=1 }^n \Vert x_i - μ - \sum\limits_{ j=1 }^k α_{ij} z_j \Vert^2\]
Pour $k=1$
\[\min_{μ∈ ℝ^d, z, α∈ℝ^n} \frac 1 2 \sum\limits_{ i=1 }^n \Vert x_i - μ - α_{i} z \Vert^2\]Algo 1: Minisation alternée entre $(α)$ et $(μ, z)$
Minimum par rapport à $(α)$
\[α_i^\ast = \frac{z^T(x_i - μ)}{\Vert z \Vert^2}\]⟹ Donc l’infimum par rapport à $(α)$ vaut
\[\frac 1 2 \sum\limits_{ i } (x_i - μ)^T(x_i - μ) - (x_i - μ)^T \frac{zz^T}{\Vert z \Vert^2} (x_i - μ) \\ = \frac 1 2 \sum\limits_{ i } (x_i - μ)^T\Big(I - \frac{zz^T}{\Vert z \Vert^2}\Big) (x_i - μ) \\ = \frac 1 2 Tr\left(\Big(I - \frac{zz^T}{\Vert z \Vert^2}\Big) \underbrace{\sum\limits_{ i } \underbrace{\underbrace{(x_i - μ)}_{∈ ℝ^d} (x_i - μ)^T}_{∈ ℝ^{d×d}}}_{\text{matrice de covariance }≝ \; Σ}\right)\]Lemma: $∀A$ symmétrique semi-définie positive :
\[argmin \frac 1 2 \sum\limits_{ i } (x_i - μ)^T A (x_i - μ) \ni \frac 1 n \sum\limits_{ i } x_i = μ^\ast\]Preuve:
\[\sum\limits_{ i } A (μ - x_i) = 0\\ ⟺ A \left(μ - \frac 1 n \sum\limits_{ i=1 }^n x_i \right)\]⟹ Hypothèses: données centrées
Synthèse
\[⟺ \min_z Tr\left(\Big(I - \frac{zz^T}{\Vert z \Vert^2}\Big) Σ\right) \\ ⟺ \max_z \frac{zΣz^T}{\Vert z \Vert^2}\\ ⟺ \max_{\Vert z \Vert = 1} z^T Σ z\\ = \text{ vecteur propre associé au rayon spectral}\]Distortion:
\[Tr\left(Σ - \sum\limits_{ i=1 }^k λ_i(Σ)\right)\]si $λ_1(Σ) ≥ λ_2(Σ) ≥ ⋯$
Au début: la variance vaut $Tr(Σ)$, puis on réduit l’erreur d’approximation au fur et à mesure (jusqu’à atteindre une valeur nulle pour $k=d$).
⟶ on dit qu’on “explique la variance”
En résumé: ACP:
- \[μ = \frac 1 n \sum\limits_{ i=1 }^n x_i\]
- \[Σ = \frac 1 n \sum\limits_{ i=1 }^n (x_i - μ)(x_i - μ)^T\]
- Calculer les vecteurs propres dominants $z_1, ⋯, z_k$
ACP: Analyse
Trouver $z ∈ ℝ^d$ ($\Vert z \Vert=1$) tq $(z^T x_i)_{i=1, ⋯, n}$ ait une variance (empirique) maximale
- Variance emprique des $z^T x_i$:
- \[≝ z^T Σ z\]
Rappel:
\[Σ ≝ cov(x) \\ cov(Ax) = A \; cov(x) A^T\]
Leave a comment