Le problème : comment représenter une image pour un ordinateur ?
Tu prends une photo de ton chat avec ton téléphone. L'image fait 224×224 pixels, chaque pixel a 3 canaux (rouge, vert, bleu), chaque canal est un nombre entre 0 et 255. Au total, c'est 150,528 nombres. Comment un réseau de neurones peut-il "comprendre" cette image ?
La réponse : il la traite comme un vecteur — une liste ordonnée de nombres dans un espace de très haute dimension. Toute l'algèbre linéaire du deep learning part de là.
Key Idea
Un vecteur est une liste ordonnée de nombres. En deep learning, tout est un vecteur : les images, les embeddings, les poids du modèle, les gradients. Maîtriser les vecteurs, c'est maîtriser le langage du deep learning.
Qu'est-ce qu'un vecteur ?
Des coordonnées GPS aux embeddings
Quand tu donnes ta position GPS, tu donnes deux nombres : latitude et longitude. C'est un vecteur en 2D : x=[48.8566,2.3522] (Paris). Si tu ajoutes l'altitude, c'est un vecteur en 3D. Un embedding de VICReg, c'est la même chose — mais en .
T
2048 dimensions
Vecteur
Un vecteur x∈Rn est une liste ordonnée de n nombres réels : x=[x1,x2,…,xn]T. Le nombre n est la dimension du vecteur.
En deep learning, les dimensions typiques sont :
Objet
Dimension
Exemple
Image MNIST
784
28×28 pixels en niveaux de gris
Image ImageNet
150,528
224×224×3 pixels RGB
Embedding VICReg
2,048
Sortie du ResNet-50
Embedding I-JEPA
1,280
Sortie du ViT-H/16
Token GPT-4
~12,288
Dimension cachée estimée
Notation
On note les vecteurs en gras minuscule : x, y, z. Les scalaires (nombres simples) en italique : x, y, z. Les matrices en gras majuscule : W, A.
Opérations fondamentales sur les vecteurs
Addition et mise à l'échelle
Combiner des représentations
Dans un réseau de neurones, les connexions résiduelles (skip connections) de ResNet font exactement ça : y=x+f(x). On additionne le vecteur d'entrée avec la transformation — c'est une addition de vecteurs.
L'addition se fait composante par composante :
a+b=[a1+b1,a2+b2,…,an+bn]T
Addition de vecteurs
La multiplication par un scalaire aussi :
αx=[αx1,αx2,…,αxn]T
Skip connection dans ResNet
Si x=[1.0,0.5,−0.3] est l'entrée et f(x)=[0.1,−0.2,0.4] est la sortie du bloc résiduel, alors :
y=x+f(x)=[1.1,0.3,0.1]
C'est ce qui permet aux gradients de "court-circuiter" les couches profondes et de résoudre le problème du vanishing gradient.
Le produit scalaire : mesurer la similarité
Est-ce que ces deux images sont similaires ?
Tu as deux embeddings : z1 (un chat) et z2 (un autre chat vu sous un angle différent). Comment savoir s'ils représentent le même concept ? Tu calcules leur produit scalaire — plus il est grand, plus les vecteurs "pointent dans la même direction".
Produit scalaire (dot product)
Le produit scalaire de deux vecteurs a et b de même dimension est :
a⋅b=∑i=1naibi=a1b1+a2b2+⋯+anbn
a⋅b=∑i=1naibi
Produit scalaire
Le produit scalaire a une interprétation géométrique fondamentale :
a⋅b=∥a∥∥b∥cos(θ)
où θ est l'angle entre les deux vecteurs.
Si θ=0° (même direction) → produit scalaire maximal
Si θ=90° (perpendiculaires) → produit scalaire = 0
Si θ=180° (directions opposées) → produit scalaire minimal (négatif)
Produit scalaire en 3D
a=[1,2,3],b=[4,5,6]a⋅b=1×4+2×5+3×6=4+10+18=32
La norme : mesurer la "taille" d'un vecteur
Normaliser les embeddings
Avant de comparer deux embeddings, on les normalise souvent pour qu'ils aient une norme de 1. Pourquoi ? Parce que sinon, un embedding avec des valeurs très grandes dominerait la comparaison, même s'il ne pointe pas dans la bonne direction.
Norme L2 (norme euclidienne)
La norme L2 d'un vecteur x est sa "longueur" dans l'espace :
∥x∥=∑i=1nxi2=x12+x22+⋯+xn2
∥x∥2=∑i=1nxi2
Norme L2
Un vecteur de norme 1 est appelé vecteur unitaire. On le note x^=∥x∥x.
Il existe d'autres normes :
Norme L1 (Manhattan) : ∥x∥1=∑i∣xi∣ — utilisée pour la régularisation sparse (Lasso)
Norme L∞ : ∥x∥∞=maxi∣xi∣ — la plus grande composante en valeur absolue
Cosine similarity : la mesure de similarité standard
Comparer des embeddings de tailles différentes
Imagine deux embeddings : z1 a des valeurs entre 0 et 100, z2 a des valeurs entre 0 et 1. Le produit scalaire brut serait dominé par z1. La cosine similarity normalise automatiquement — elle ne regarde que la direction, pas la magnitude.
Cosine similarity
La cosine similarity entre deux vecteurs est le cosinus de l'angle entre eux :
Les vecteurs partagent une composante commune (la 3ème dimension) mais divergent sur les deux premières → similarité modérée.
Distance euclidienne vs cosine similarity
Quel métrique choisir ?
Tu entraînes un modèle SSL. Pour la loss, tu dois mesurer la "distance" entre deux embeddings. Tu as deux choix : la distance euclidienne ∥z1−z2∥2 ou la cosine similarity. Lequel choisir ?
VICReg utilise la distance euclidienne (pas la cosine similarity) pour le terme d'invariance. C'est un choix délibéré : combiné avec le terme de variance qui empêche le collapse, la distance euclidienne est plus stable que la cosine similarity.
La relation entre les deux :
∥a−b∥2=∥a∥2+∥b∥2−2a⋅b
Si les vecteurs sont normalisés (∥a∥=∥b∥=1) :
∥a−b∥2=2−2cos(θ)=2(1−sim(a,b))
Donc minimiser la distance euclidienne entre vecteurs normalisés = maximiser la cosine similarity.
Espaces vectoriels : la structure mathématique
Pourquoi les embeddings 'fonctionnent'
Un résultat fascinant du word2vec (2013) : si tu prends l'embedding du mot "roi", tu soustrais "homme", et tu ajoutes "femme", tu obtiens un vecteur proche de "reine". roi−homme+femme≈reine. Comment est-ce possible ? Parce que les embeddings vivent dans un espace vectoriel où les opérations arithmétiques ont un sens sémantique.
Espace vectoriel
Un espace vectoriel est un ensemble de vecteurs muni de deux opérations (addition et multiplication par un scalaire) qui satisfont certains axiomes : associativité, commutativité, existence d'un élément neutre (vecteur nul), etc.
Les propriétés clés pour le deep learning :
Combinaison linéaire : αa+βb est aussi un vecteur de l'espace
Sous-espace : un sous-ensemble qui est lui-même un espace vectoriel
Base : un ensemble minimal de vecteurs qui permet de représenter tous les autres
Dimension : le nombre de vecteurs dans une base
Indépendance linéaire et rang
Combien de dimensions sont vraiment utilisées ?
Tu as entraîné un modèle avec des embeddings de dimension 2048. Mais est-ce que le modèle utilise vraiment les 2048 dimensions ? Ou est-ce que certaines dimensions sont redondantes ? C'est la question du rang de la matrice d'embeddings.
Indépendance linéaire
Des vecteurs v1,…,vk sont linéairement indépendants si aucun d'entre eux ne peut être écrit comme combinaison linéaire des autres. Le rang d'un ensemble de vecteurs est le nombre maximal de vecteurs linéairement indépendants.
Si tu empiles N embeddings de dimension d dans une matrice Z∈RN×d, le rang de Z te dit combien de dimensions sont effectivement utilisées.
Rang maximal (=min(N,d)) : toutes les dimensions sont utilisées → pas de collapse
Rang faible : beaucoup de dimensions sont redondantes → collapse partiel
Rang 1 : tous les embeddings sont identiques (à un facteur près) → collapse total
Projection et orthogonalité
Extraire l'information pertinente
Dans I-JEPA, le predictor doit projeter la représentation du contexte visible vers la représentation de la cible masquée. C'est une projection — on transforme un vecteur pour qu'il "pointe" dans la direction de la cible.
Projection orthogonale
La projection de a sur b est le vecteur :
projb(a)=∥b∥2a⋅bb
Deux vecteurs sont orthogonaux si leur produit scalaire est nul : a⋅b=0.
Projection de a sur b : la composante de a dans la direction de b
L'orthogonalité est fondamentale en deep learning :
Les bases orthogonales sont les plus efficaces pour représenter l'information
L'initialisation orthogonale des poids préserve les normes des gradients
Le terme de covariance de VICReg pousse les dimensions de l'embedding vers l'orthogonalité
Vecteurs en haute dimension : l'intuition qui change
La malédiction de la dimensionnalité
En 2D, si tu places des points aléatoires dans un carré, ils sont assez proches les uns des autres. En 1000D, presque tous les points sont à la même distance les uns des autres, et presque tout le volume est concentré près de la surface de la sphère. L'intuition 3D ne marche plus.
Phénomènes contre-intuitifs en haute dimension :
Concentration de la mesure : dans un espace de dimension d, le volume d'une sphère est concentré dans une fine couche près de la surface. Pour d=1000, 99.99% du volume est dans les 5% extérieurs.
Orthogonalité quasi-universelle : deux vecteurs aléatoires en haute dimension sont presque toujours quasi-orthogonaux. La cosine similarity entre deux vecteurs aléatoires en dimension d est environ d1.
La norme se concentre : pour un vecteur gaussien x∼N(0,Id), la norme ∥x∥ se concentre autour de d.
3Blue1Brown — Thinking visually about higher dimensions
Application : les embeddings dans le self-supervised learning
Le pipeline complet
Voici ce qui se passe quand I-JEPA traite une image :
L'image 224×224×3 est découpée en patches de 16×16 → 196 patches
Chaque patch est projeté en un vecteur de dimension 1280 (embedding)
Le ViT-H/16 transforme ces 196 vecteurs via self-attention
Le predictor prédit les embeddings des patches masqués
La loss mesure la distance euclidienne entre prédiction et cible
À chaque étape, on manipule des vecteurs. L'algèbre linéaire est le langage de tout ce pipeline.
Le tableau des opérations vectorielles et leur rôle :
Opération
Formule
Rôle en deep learning
Addition
a+b
Skip connections (ResNet)
Mise à l'échelle
αx
Learning rate, weight decay
Produit scalaire
a⋅b
Attention (Q·K), similarité
Norme
∥x∥
Normalisation, détection de collapse
Cosine similarity
∥a∥∥b∥a⋅b
InfoNCE loss (SimCLR, MoCo)
Distance euclidienne
∥a−b∥2
VICReg invariance, I-JEPA prediction
Projection
projb(a)
Predictor dans JEPA
Summary
Concept
Essentiel à retenir
Vecteur
Liste ordonnée de nombres — tout en DL est un vecteur
Produit scalaire
Mesure la similarité directionnelle entre deux vecteurs
Norme L2
"Longueur" du vecteur — le collapse = norme → 0
Cosine similarity
Similarité normalisée ∈ [-1, 1] — cœur du contrastive learning
Distance euclidienne
Utilisée par VICReg et I-JEPA (pas la cosine)
Rang
Nombre de dimensions effectivement utilisées — collapse = rang faible
Haute dimension
L'intuition 3D ne marche plus — concentration de la mesure
Références
Strang, G. (2016). Introduction to Linear Algebra, 5th edition. Wellesley-Cambridge Press. — Le livre de référence, chapitres 1-3 pour les vecteurs et espaces vectoriels.
Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning, Chapter 2: Linear Algebra. MIT Press. — Disponible gratuitement.
3Blue1Brown (2016). Essence of Linear Algebra — Série YouTube. La meilleure introduction visuelle à l'algèbre linéaire.
Bardes, A., Ponce, J., & LeCun, Y. (2022). VICReg: Variance-Invariance-Covariance Regularization for Self-Supervised Learning. ICLR 2022. — Pour comprendre comment les concepts vectoriels (variance, covariance, norme) sont utilisés pour empêcher le collapse.
Assran, M. et al. (2023). Self-Supervised Learning from Images with a Joint-Embedding Predictive Architecture. CVPR 2023. — I-JEPA utilise la distance euclidienne dans l'espace des embeddings comme loss de prédiction.