Une matrice n'est pas un tableau, c'est une transformation

Si un vecteur est la position d'un point, une matrice est une commande qui fait bouger ce point. Une matrice peut faire pivoter, étirer, écraser ou déformer tout l’espace à la fois. En apprentissage automatique, les poids d'une couche neuronale sont les nombres dans une matrice. Lorsque les données traversent la couche, la matrice de pondération déforme littéralement l'espace, essayant de placer les points de différentes classes plus loin les uns des autres.

Changez les nombres dans la matrice W et observez comment l'espace se déforme
Grid nodes (x, y) map to (x′, y′):  x′ = ax + by,   y′ = cx + dy
Matrix W
(
)
[1.00, 0.00; 0.00, 1.00]

Transformations linéaires : ce qu'une matrice peut faire

Une transformation linéaire préserve deux choses : les lignes droites restent droites et l'origine reste fixe. Tout le reste – rotations, mise à l’échelle, réflexions, cisaillement – ​​une matrice peut le faire.
Identité [[1,0],[0,1]] : la transformation « ne rien faire ». L'espace est inchangé. np.oeil(2)
Échelle [[2,0],[0,2]] : étend l'espace de 2 le long des deux axes
Rotation [[0,-1],[1,0]] : fait pivoter chaque vecteur de 90°. Essayez-le dans le widget ci-dessus
Chaque couche dense (entièrement connectée) est une matrice :y=Wx+by=Wx+b. Entraînement = réglage des nombres en W
Multiplication matricielle : composer deux transformations en une

Multiplication matricielleA×BA\times Bce n'est pas seulement de l'arithmétique. Il s'agit d'appliquer deux transformations en séquence : d'abord B, puis A en haut. Passez la souris sur une cellule de la matrice de résultats C ci-dessous pour voir quelle ligne de A et quelle colonne de B se combinent. L’ordre compte – A×B n’est généralement pas égal à B×A.

Survolez une cellule de la matrice C pour voir quels éléments se combinent
Cij=kAikBkjC_{ij} = \sum_k A_{ik} B_{kj} — row ii of Couche 1 (W₁), column jj of Couche 2 (W₂)
Couche 1 (W₁)
231
042
Couche 2 (W₂)
12
01
30
Résultat
57
64
Survolez une cellule de résultat dans C – la ligne correspondante de A et la colonne de B sont mises en surbrillance.
Trois opérations à connaître
Cliquez sur une opération pour plus de détails
Matrices dans les réseaux neuronaux : une couche comme une déformation de l'espace

Chaque couche dense est littéralementy=Wx+by=Wx+b. La matrice W déforme l'espace ; le biais b le décale. L'entraînement signifie ajuster les entrées de W de sorte qu'après toutes les couches, les points de différentes classes (par exemple, chats contre chiens) soient éloignés les uns des autres et faciles à séparer.

L'algèbre linéaire en action ▼
python
1
import numpy as np
2
W = np.array([[0, -1], [1, 0]])
3
x = np.array([1, 0])
4
y = W @ x  # [0, 1]
5
inv_W = np.linalg.inv(W)
6
det = np.linalg.det(W)  # = 1.0
Les GPU sont devenus le cœur de l’apprentissage profond car ils exécutent des milliards de multiplications matricielles en parallèle. La formation GPT-4 a pris l'ordre de quadrillions d'opérations de ce type. Sans ce débit matriciel, les LLM modernes seraient impossibles.