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

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 :

  1. $k$-means
  2. Algorithme de Lloyd
  3. nuées dynamiques
  4. 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

  1. $k$-means favorise les clusters circulaires ⟶ si on a clairement un cluster très allongé ⟹ on peut être embêté

  2. 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 :

  1. Analyse
  2. 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:

  1. μ = \frac 1 n \sum\limits_{ i=1 }^n x_i
  2. Σ = \frac 1 n \sum\limits_{ i=1 }^n (x_i - μ)(x_i - μ)^T
  3. Calculer les vecteurs propres dominants $z_1, ⋯, z_k$
V = μ + \sum\limits_{ i=1 }^k ℝ z_i

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