Si les Hessois sont si bons pour l'optimisation (voir par exemple la méthode de Newton ), pourquoi s'arrêter là? Utilisons les troisième, quatrième, cinquième et sixième dérivés? Pourquoi pas?
29
Si les Hessois sont si bons pour l'optimisation (voir par exemple la méthode de Newton ), pourquoi s'arrêter là? Utilisons les troisième, quatrième, cinquième et sixième dérivés? Pourquoi pas?
Réponses:
J'interprète la question comme étant "Pourquoi la méthode de Newton n'utilise-t-elle que des dérivées premières et secondes, pas des dérivées tierces ou supérieures?"
En fait, dans de nombreux cas, le passage au troisième dérivé aide; Je l'ai déjà fait avec des trucs personnalisés. Cependant, en général, aller vers des dérivés plus élevés ajoute de la complexité de calcul - vous devez trouver et calculer tous ces dérivés, et pour les problèmes multivariés, il y a beaucoup plus de dérivées tierces que de premières dérivées! - qui dépasse de loin les économies de nombre de pas que vous obtenez, le cas échéant. Par exemple, si j'ai un problème tridimensionnel, j'ai 3 premières dérivées, 6 secondes dérivées et 10 troisièmes dérivées, donc passer à une version de troisième ordre fait plus que doubler le nombre d'évaluations que je dois faire (de 9 à 19), sans parler de la complexité accrue du calcul de la direction / taille des pas une fois que j'ai fait ces évaluations, mais ne réduira certainement pas le nombre de pas que je dois faire de moitié.
Maintenant, dans le cas général avec variables, la collection de n t h dérivées partielles numérotera , donc pour un problème avec cinq variables, le nombre total de troisième, quatrième et les cinquièmes dérivées partielles seront égales à 231, soit une augmentation de plus de 10 fois par rapport au nombre de première et deuxième dérivées partielles (20). Vous devriez avoir un problème qui est très, très proche d'un polynôme du cinquième ordre dans les variables pour voir une réduction suffisamment importante du nombre d'itérations pour compenser cette charge de calcul supplémentaire.k nt h ( k + n - 1k - 1)
la source
Je ne vois pas vraiment quel est l'aspect statistique de cette question, je vais donc répondre à la partie optimisation.
La convergence comporte deux parties: le coût d'itération et le nombre d' itérations
Presque toutes les réponses ici se concentrent uniquement sur le coût d'itération et ignorent le nombre d' itérations . Mais les deux comptent. Une méthode qui itère en 1 nanoseconde mais qui prend itérations pour converger ne vous sera d'aucune utilité. Et une méthode qui explose n'aidera pas non plus, peu importe le coût de son itération.dix20
Voyons ce qui se passe.
Alors: pourquoi ne pas utiliser> des dérivés de second ordre?
En partie parce que (et cela est vrai aussi pour le 2ème ordre, mais plus à ce sujet dans un peu):
Les méthodes d'ordre supérieur ne convergent généralement plus rapidement que lorsqu'elles sont proches de l'optimum .
En revanche, ils explosent plus facilement lorsqu'ils sont plus éloignés de l'optimum!
(Bien sûr, ce n'est pas toujours vrai; par exemple, un quadratique convergera en une étape avec la méthode de Newton. Mais pour les fonctions arbitraires dans le monde réel qui n'ont pas de belles propriétés, cela est généralement vrai.)
Cela signifie que lorsque vous êtes plus éloigné de l'optimum, vous voulez généralement une méthode de faible ordre (lire: premier ordre). Ce n'est que lorsque vous êtes proche que vous souhaitez augmenter l'ordre de la méthode.
Alors pourquoi s'arrêter au 2ème ordre lorsque vous êtes près de la racine?
Parce que le comportement de convergence "quadratique" est vraiment "assez bon"!
Pour voir pourquoi, vous devez d'abord comprendre ce que signifie «convergence quadratique» .
Mathématiquement, la convergence quadratique signifie que, si est votre erreur à l'itération , alors ce qui suit est finalement vrai pour une constante : k cϵk k c
En clair, cela signifie que, une fois que vous êtes proche de l'optimum (important!), Chaque étape supplémentaire double le nombre de chiffres de précision .
Pourquoi? C'est facile à voir avec un exemple: pour et , vous avez , , etc., ce qui est ridiculement rapide . (C'est super exponentiel !)| ϵ 1 | = 0,1 | ϵ 2 | ≤ 0,01 | ϵ 3 | ≤ 0,0001c = 1 | ϵ1| = 0,1 | ϵ2| ≤ 0,01 | ϵ3| ≤ 0,0001
Pourquoi ne pas s'arrêter au 1er ordre plutôt qu'au 2e ordre?
En fait, les gens le font souvent lorsque les dérivés de second ordre deviennent trop chers. Mais la convergence linéaire peut être très lente. Par exemple, si vous obtenez vous aurez peut-être besoin de 10 000 000 d'itérations avec convergence linéaire pour obtenir , mais seulement 23 itérations avec convergence quadratique. Vous pouvez donc voir pourquoi il y a une différence drastique entre la convergence linéaire et quadratique. Ce n'est pas le cas pour la convergence de 2ème et 3ème ordre, par exemple (voir paragraphe suivant).| ϵ | < 0,5ϵk= 0,9999999 | ϵ | < 0,5
À ce stade, si vous connaissez l'informatique, vous comprenez qu'avec la convergence de second ordre, le problème est déjà résolu . Si vous ne voyez pas pourquoi, voici pourquoi: il n'y a rien de pratique à gagner en triplant le nombre de chiffres à chaque itération au lieu de le doubler - qu'est-ce que ça va vous acheter? Après tout, dans un ordinateur, même un6 6 ≈ 5 6
double
nombre de précision a 52 bits de précision, soit environ 16 chiffres décimaux. Peut-être que cela réduira le nombre d'étapes dont vous avez besoin de 16 à 3 ... ce qui sonne bien, jusqu'à ce que vous vous rendiez compte que cela vient au prix d'avoir à calculer des dérivées tierces à chaque itération, où se trouve la malédiction de la dimensionnalitévous frappe fort. Pour un problème à dimensions, vous venez de payer un facteur de pour obtenir un facteur de , ce qui est stupide. Et dans le monde réel, les problèmes ont au moins des centaines de dimensions (voire des milliers voire des millions), pas seulement ! Ainsi, vous gagnez peut-être un facteur de 20 en payant un facteur de, disons, 20 000 ... à peine un compromis judicieux.6 ≈ 5 6Mais encore une fois: rappelez-vous que la malédiction de la dimensionnalité est la moitié de l'histoire .
L'autre moitié est que vous obtenez généralement un comportement pire lorsque vous êtes loin de l'optimum, ce qui affecte généralement le nombre d'itérations que vous devez faire.
Conclusion
Dans un cadre général, les méthodes d'ordre supérieur à 2 sont une mauvaise idée. Bien sûr, si vous pouvez apporter des hypothèses supplémentaires utiles à la table (par exemple , peut - être vos données ne ressemblent à un polynôme haut degré, ou si vous avez des moyens de délimitation de l'emplacement de l'optimum, etc.), vous pouvez peut - être trouver qu'ils sont une bonne idée, mais ce sera une décision spécifique au problème, et non une règle générale à suivre.
la source
Même le calcul de Hessians est un peu de travail:
Maintenant, voyez à quoi ressemble la dérivée troisième: Il s'agit d'une matrice tridimensionnelle. Voici à quoi ressemblent ses éléments:
La dérivée de Sixième sera une matrice à six dimensions:
Habituellement, le compromis n'est pas favorable pour aller après supérieur à la Hesse. Je veux dire le compromis entre le gain potentiel de vitesse en utilisant des approximations d'ordre supérieur par rapport à l'amplification du bruit. Vous avez toujours du bruit dans les entrées parce que nous parlons d'applications statistiques. Ce bruit sera amplifié par les dérivés.
Si vous jouez au golf, l'analogie de l'optimisation consiste à balancer d'abord en essayant d'atteindre le green, ne vous inquiétez pas trop pour un trou. Une fois, sur le green, nous mettrons en visant un trou.
la source
En règle générale, lorsque vous analysez l'efficacité de ces algorithmes, vous trouverez des résultats tels qu'une étape d'un algorithme du quatrième ordre ayant à peu près la même efficacité que deux étapes d'un algorithme du deuxième ordre.
Ainsi, le choix de l'algorithme à utiliser est relativement simple: si une étape de l'algorithme du quatrième ordre prend deux fois plus de travail ou plus d'une étape de l'algorithme du deuxième ordre, vous devez utiliser ce dernier à la place.
C'est la situation typique pour ce type de méthodes: l'algorithme classique a le rapport travail / efficacité optimal pour les problèmes généraux. Bien qu'il existe des problèmes occasionnels où une approche d'ordre supérieur est inhabituellement facile à calculer et peut surpasser la variante classique, ils sont relativement rares.
la source
Vous pouvez considérer l'ordre des dérivées comme l'ordre d'une approximation polynomiale de la fonction. La plupart des routines d'optimisation reposent sur la convexité. Un polynôme quadratique sera convexe / concave partout alors qu'un polynôme de 3e ordre ou supérieur ne sera pas convexe partout. La plupart des routines d'optimisation reposent sur des approximations successives de fonctions convexes avec quadratique pour cette raison. Une approximation quadratique convexe nécessite d'imposer une condition de définition positive pour que le quadratique soit convexe.
la source
Permettez-moi d'être le seul ici à défendre des méthodes de troisième ordre pour la convergence SGD, mais certainement pas dans tout l'espace ce qui aurait besoin de coefficients, mais par exemple dans une seule direction, qui n'a besoin que d'un seul coefficient supplémentaire si ayant déjà un modèle de 2e ordre dans cette direction.≈ dje suis3/ 6
Pourquoi un modèle unidirectionnel de 3e ordre peut-il être avantageux? Par exemple, parce que près de zéro dérivée seconde dans cette direction signifie essentiellement deux scénarios alternatifs: plateau ou point d'inflexion - seul le premier nécessite une taille de pas plus grande, et la dérivée 3e permet de les distinguer.
Je crois que nous irons vers des méthodes hybrides multi-ordres: méthode du 2ème ordre dans un sous-espace de faible dimension, par exemple à partir de PCA de gradients récents, ce qui permet toujours une descente de gradient simultanée libre du 1er ordre vers une partie du gradient orthogonal à ce sous-espace ... et en plus J'ajouterais par exemple un modèle de troisième ordre pour une seule direction la plus pertinente.
la source