Aller au contenu principal

Module 2 — Produit matriciel, transposée et inverse

Le produit matriciel est l'opération centrale de l'apprentissage. Chaque couche d'un réseau de neurones, chaque prédiction d'un modèle linéaire, chaque projection en réduction de dimension est un produit matriciel. Le comprendre, ce n'est pas mémoriser une recette : c'est voir une matrice comme une transformation appliquée à des données.

L'idée : une matrice transforme des vecteurs

Multiplier une matrice WW par un vecteur xx produit un nouveau vecteur. Concrètement, WW prend les caractéristiques de xx et les recombine :

y=Wxy = W x

Pour un modèle linéaire à trois caractéristiques et une sortie, WW est une ligne de poids, et yy est le score prédit : chaque poids dit combien la caractéristique correspondante compte. Pour une couche de réseau, WW a plusieurs lignes, et chaque ligne produit une sortie différente. Le produit matriciel calcule toutes ces sorties d'un coup.

La règle des dimensions : la seule chose à ne jamais oublier

(m×n)(n×p)=(m×p)(m \times n) \cdot (n \times p) = (m \times p)

Les dimensions intérieures doivent coïncider (n = n), et le résultat prend les dimensions extérieures (m × p). C'est la source numéro un des erreurs. La lecture à voix haute aide : « m par n, fois n par p, donne m par p ».

import numpy as np

X = np.random.randn(100, 3) # 100 observations, 3 caractéristiques
W = np.random.randn(3, 1) # 3 poids, 1 sortie
y = X @ W # (100, 3) @ (3, 1) = (100, 1)
y.shape # (100, 1) — une prédiction par observation

L'opérateur @ de NumPy est le produit matriciel. Le point crucial : le produit n'est pas commutatif. X @ W et W @ X ne sont ni égaux, ni même toujours définis. L'ordre encode le sens de la transformation.

La transposée : échanger lignes et colonnes

La transposée XTX^T retourne la matrice sur sa diagonale : les lignes deviennent colonnes. Une matrice (n, d) devient (d, n).

X.shape        # (100, 3)
X.T.shape # (3, 100)

Elle sert constamment à rendre deux formes compatibles pour un produit. La formule vedette, qui revient partout en apprentissage, est XTXX^T X : elle transforme un jeu de données (n, d) en une matrice (d, d) qui résume les relations entre caractéristiques — le cœur de la régression linéaire et de l'analyse en composantes principales du module 4.

L'inverse : « défaire » une transformation

L'inverse A1A^{-1} est la matrice qui annule AA : appliquer l'une puis l'autre ramène au point de départ.

A1A=IA^{-1} A = I

II est la matrice identité (des 1 sur la diagonale, des 0 ailleurs), l'équivalent matriciel du nombre 1. L'inverse permet de résoudre des systèmes : la solution exacte de la régression linéaire s'écrit β=(XTX)1XTy\beta = (X^T X)^{-1} X^T y.

L'inverse en pratique : rarement calculé directement

En théorie, on résout avec l'inverse. En pratique, on ne l'inverse presque jamais explicitement : c'est coûteux et numériquement instable. Les bibliothèques utilisent np.linalg.solve(A, b) plutôt que np.linalg.inv(A) @ b, plus rapide et plus stable. De plus, toutes les matrices ne sont pas inversibles : si deux caractéristiques sont parfaitement corrélées (colinéarité), l'inverse n'existe pas — c'est exactement ce que la descente de gradient permet de contourner, comme on le verra au module 6.

Pourquoi c'est le cœur de l'apprentissage profond

Un réseau de neurones enchaîne des produits matriciels séparés par des fonctions non linéaires :

h1=f(W1x),h2=f(W2h1),h_1 = f(W_1 x), \quad h_2 = f(W_2 h_1), \quad \dots

Chaque WiW_i est une transformation apprise ; chaque produit matriciel recombine l'information de la couche précédente. C'est précisément pour accélérer ces produits — des milliards par seconde — que les cartes graphiques (GPU) sont devenues indispensables à l'IA, comme l'expliquait le cours d'introduction.

En résumé

  • Le produit matriciel WxWx est une transformation : il recombine les caractéristiques d'un vecteur ; c'est l'opération de base de toute couche et de tout modèle linéaire.
  • Règle des dimensions : (m×n)·(n×p) = (m×p) ; les dimensions intérieures coïncident. Le produit n'est pas commutatif.
  • La transposée échange lignes et colonnes pour rendre les formes compatibles ; XTXX^T X résume les relations entre caractéristiques.
  • L'inverse défait une transformation et résout les systèmes, mais se calcule rarement explicitement (solve plutôt que inv) et n'existe pas toujours.

Module suivant : normes, distances et similarité cosinus — comment mesurer la taille d'un vecteur et la proximité entre observations.