Aller au contenu
Kudos AI

Conditionnement

Le rapport entre la plus grande et la plus petite courbure d’une surface de perte, qui détermine à lui seul la vitesse à laquelle la descente de gradient peut y converger.

Aussi appelé : Nombre de conditionnement, κ

Comprendre Conditionnement

Au voisinage d’un minimum, une surface de perte ressemble à une cuvette quadratique, et la forme de cette cuvette est sa hessienne. Le conditionnement est le rapport de la plus grande valeur propre L de cette matrice à la plus petite μ. À κ = 1 les lignes de niveau sont des cercles et le gradient pointe droit vers le minimum depuis n’importe où. À mesure que κ croît, elles s’étirent en ellipses, et le gradient - toujours perpendiculaire à la ligne de niveau - pointe de plus en plus en travers de la vallée plutôt que le long de celle-ci.

Ce n’est pas une métaphore de la lenteur mais son calcul. Un pas de gradient multiplie l’erreur le long de chaque direction propre de courbure λ par 1 − ηλ, indépendamment des autres directions. Toute direction doit se contracter, donc la taille du pas est plafonnée par la plus raide à η < 2/L ; et la direction la plus lente à se contracter est la plus plate. Les deux contraintes réunies font que κ, et rien d’autre du problème, fixe le taux.

Les équilibrer donne le pas optimal η = 2/(L + μ) et une contraction de (κ − 1)/(κ + 1) par pas. Le nombre mérite d’être converti en nombre de pas avant d’être balayé : même un κ modéré de 24 se contracte à 0,919488 par pas, si bien que diviser l’erreur par un million prend 165 pas - sur un problème à deux paramètres. Les réseaux réels ont des conditionnements qui se comptent en milliers.

Puisque κ est une propriété du paramétrage et non du problème sous-jacent, on peut le changer sans changer ce qui est appris. Remettre à l’échelle une colonne d’entrée déplace les valeurs propres de la hessienne ; standardiser les variables aussi, et les normalisations par lot ou par couche également. Voilà pourquoi ces techniques accélèrent l’entraînement avec une telle régularité : ce ne sont pas des raffinements statistiques, c’est du conditionnement, et le conditionnement est le taux.

Comment calculer

κ = L/μ = λ_max(H) / λ_min(H), ρ_GD = (κ − 1)/(κ + 1)

où

H
la hessienne de la perte au minimum
L
la plus grande valeur propre : la courbure la plus raide
μ
la plus petite valeur propre : la courbure la plus plate
ρ_GD
le facteur de réduction de l’erreur à chaque pas, au pas optimal

Exemple : Conditionnement

Un problème de moindres carrés est rendu mal conditionné à dessein en divisant par cinq une colonne de sa matrice de plan. Sa hessienne a L = 1,760627 et μ = 0,073849, donc κ = 23,8410 et la contraction prédite vaut (κ − 1)/(κ + 1) = 0,919488 par pas.

La mesure de l’exécution - distance à l’optimum aux pas 20 et 100, puis extraction du rapport par pas - donne 0,919488. Rien n’a été ajusté : la prédiction utilise deux valeurs propres et reproduit une exécution qui n’en sait rien. Convertie en nombre de pas, 0,919488 prédit 164,6 pas pour diviser l’erreur par un million, et l’exécution en prend 165.

L’inertie sur le même problème, avec β = 0,435629, atteint la même précision en 42 pas. Le taux asymptotique (√κ − 1)/(√κ + 1) = 0,660022 prédit un gain d’un facteur quatre à cinq et le gain mesuré vaut 165/42 = 3,9 ; l’écart est réel et attendu, car le taux de Polyak est asymptotique et cette exécution atteint la précision machine avant que l’asymptotique n’arrive.

Questions fréquentes

Comment connaître le conditionnement de mon problème sans calculer de hessienne ?

Pour les grands modèles on ne le calcule pas exactement, on le déduit. Une exécution qui oscille dès qu’on relève un peu le taux d’apprentissage mais qui rampe dès qu’on le baisse signale un grand κ. La réponse pratique est la même dans les deux cas : normaliser les entrées, ajouter des couches de normalisation, et utiliser l’inertie ou une méthode adaptative.

Un grand conditionnement signifie-t-il que le modèle est mauvais ?

Non. C’est une propriété du paramétrage, non de ce que le modèle peut représenter. La même classe de fonctions dans des coordonnées différentes peut avoir un κ de 1 ou de 10 000, avec des solutions identiques - et c’est précisément pourquoi une remise à l’échelle peut transformer le temps d’entraînement sans rien changer au modèle.

Pourquoi l’inertie obtient-elle √κ plutôt que κ ?

Sa vitesse est une moyenne amortie des gradients passés. Le long de la direction plate, les gradients successifs concordent, donc la moyenne s’accumule ; le long de la direction raide, ils alternent de signe et s’annulent en grande partie. Un seul mécanisme aveugle amplifie exactement la direction lente et amortit exactement celle qui oscille, et le taux qui en résulte dépend de √κ.

En résumé

Le conditionnement est la chose la plus utile à connaître d’un problème d’optimisation avant de l’attaquer : il prédit le taux de convergence à plusieurs décimales près, il explique pourquoi la mise à l’échelle des variables et la normalisation fonctionnent, et sa racine carrée est ce qu’achètent l’inertie et les méthodes adaptatives.