Je suppose que c'est une question fondamentale et cela a à voir avec la direction du gradient lui-même, mais je cherche des exemples où les méthodes de 2ème ordre (par exemple BFGS ) sont plus efficaces qu'une simple descente de gradient.
18
Réponses:
Voici un cadre commun pour interpréter à la fois la descente de gradient et la méthode de Newton, qui est peut-être un moyen utile de penser la différence comme un complément à la réponse de @ Sycorax. (BFGS se rapproche de la méthode de Newton; je n'en parlerai pas en particulier ici.)
Nous minimisons la fonctionf , mais nous ne savons pas comment le faire directement. Donc, à la place, nous prenons une approximation locale à notre point actuel x et minimisons cela.
La méthode de Newton rapproche la fonction à l'aide d'une expansion de Taylor de second ordre: où ∇ f ( x ) désigne le gradient de f au point x et ∇ 2 f ( x ) la Hesse à x . Il passe ensuite à arg min y N x ( y ) et répète.
La descente de gradient, ayant uniquement le gradient et non la Hesse, ne peut pas simplement faire une approximation de premier ordre et minimiser cela, car comme l'a noté @Hurkyl, il n'y a pas de minimum. Au lieu de cela, nous définissons une taille de pas et un pas vers x - t ∇ f ( x ) . Mais notez que x - tt x−t∇f(x)
Ainsi la descente de gradient minimise une fonction
Gx(y):=f(x)+∇f(x)T(y-x)+1
Ainsi, la descente de gradient est un peu comme utiliser la méthode de Newton, mais au lieu de prendre l'expansion de Taylor de second ordre, nous prétendons que le Hessian est1tI G f N
la source
Essentiellement, l'avantage d'une méthode dérivée seconde comme la méthode de Newton est qu'elle a la qualité d'une terminaison quadratique. Cela signifie qu'il peut minimiser une fonction quadratique en un nombre fini d'étapes. Une méthode comme la descente de gradient dépend fortement du taux d'apprentissage, ce qui peut faire en sorte que l'optimisation converge lentement car elle rebondit autour de l'optimum ou diverge complètement. Des taux d'apprentissage stables peuvent être trouvés ... mais impliquent le calcul de la toile de jute. Même lorsque vous utilisez un taux d'apprentissage stable, vous pouvez avoir des problèmes comme l'oscillation autour de l'optimum, c'est-à-dire que vous ne prendrez pas toujours un chemin "direct" ou "efficace" vers le minimum. Il peut donc falloir plusieurs itérations pour se terminer, même sivous en êtes relativement proche. BFGS et la méthode de Newton peuvent converger plus rapidement même si l'effort de calcul de chaque étape est plus coûteux.
In the specific context of neural networks, the book Neural Network Design has quite a bit of information on numerical optimization methods. The above discussion is a condensation of section 9-7.
la source
In convex optimization you are approximating the function as the second degree polynomial in one dimensional case:
In this case the the second derivative
If you know the derivatives, then it's easy to get the next guess for the optimum:
The multivariate case is very similar, just use gradients for derivatives.
la source
@Dougal already gave a great technical answer.
The no-maths explanation is that while the linear (order 1) approximation provides a “plane” that is tangential to a point on an error surface, the quadratic approximation (order 2) provides a surface that hugs the curvature of the error surface.
The videos on this link do a great job of visualizing this concept. They display order 0, order 1 and order 2 approximations to the function surface, which just intuitively verifies what the other answers present mathematically.
Also, a good blogpost on the topic (applied to neural networks) is here.
la source