Les méthodes de dégradé fonctionnent généralement mieux en optimisant que car le gradient de est généralement plus bien mis à l’échelle . C'est-à-dire que sa taille reflète de manière cohérente et utile la géométrie de la fonction objectif, ce qui facilite la sélection d'une taille de pas appropriée et l'optimisation optimale en moins de pas.logp(x)p(x)logp(x)
Pour voir ce que je veux dire, comparons le processus d'optimisation de gradient pour et . En tout point , le gradient de estSi nous multiplions cela par , nous obtenons la taille de pas exacte nécessaire pour atteindre l'optimum global à l'origine, peu importe ce quep(x)=exp(−x2)f(x)=logp(x)=−x2xf(x)
f′(x)=−2x.
1/2xest. Cela signifie que nous n’avons pas à travailler trop pour avoir une bonne taille de pas (ou «taux d’apprentissage» dans le jargon du ML). Peu importe où se trouve notre objectif initial, nous fixons simplement notre pas à la moitié de la pente et nous serons à l'origine en une étape. Et si nous ne connaissons pas le facteur exact nécessaire, nous pouvons simplement choisir une taille de pas d'environ 1, faire un peu de recherche de ligne et nous trouverons très rapidement une bonne taille de pas, qui fonctionne bien, peu importe où. est. Cette propriété est robuste à la traduction et à la mise à l'échelle de . Bien que la mise à l'échelle entraîne la différence d'échelle optimale entre l'étape 1/2, au moins l'échelle sera-t-elle la même quel que soit , il suffit donc de trouver un paramètre pour obtenir une optimisation efficace basée sur les gradients schème.
xf(x)f(x)x
En revanche, le gradient de a de très mauvaises propriétés globales d’optimisation. Nous avonsCeci multiplie le très bon et bien dégradé avec un facteur qui décroît (plus vite que) de façon exponentielle à mesure que augmente. À , nous avons déjà , de sorte qu'un pas le long du vecteur de gradient est environ fois trop petit. Pour obtenir une taille de pas raisonnable vers l'optimum, il faudrait redimensionner le gradient en fonction de la réciproque, une énorme constantep(x)
p′(x)=f′(x)p(x)=−2xexp(−x2).
−2xexp(−x2)xx=5exp(−x2)=1.4⋅10−1110−11∼1011. Un tel gradient mal dimensionné est pire qu'inutile à des fins d'optimisation - nous ferions mieux d'essayer un pas unitaire dans la direction en montée plutôt que de le définir en nous ajustant à ! (Dans de nombreuses variables, devient un peu plus utile puisque nous obtenons au moins des informations directionnelles à partir du gradient, mais le problème de la mise à l'échelle demeure.)
p′(x)p′(x)
En général, rien ne garantit que aura de telles propriétés d’échelle de gradient que cet exemple de jouet, en particulier lorsque nous avons plus d’une variable. Cependant, pour à peu près tous les problèmes non triviaux, sera bien meilleur que . En effet, la probabilité est un gros produit avec un tas de termes, et le journal le transforme en une somme, comme indiqué dans plusieurs autres réponses. À condition que les termes de la probabilité soient bien conçus du point de vue de l'optimisation, leur journal est généralement bien tenu, et la somme des fonctions bien comportées est bien conduite. Par sage je veux direlogp(x)logp(x)p(x)f′′(x)ne change pas trop ni trop rapidement, ce qui conduit à une fonction presque quadratique facile à optimiser par les méthodes de gradient. La somme d'un dérivé est le dérivé de la somme, quel que soit son ordre, ce qui permet de s'assurer que cette grosse pile de termes de somme a une dérivée seconde très raisonnable!