Je veux savoir si la descente en gradient est le principal algorithme utilisé dans les optimiseurs comme Adam, Adagrad, RMSProp et plusieurs autres optimiseurs.
Je veux savoir si la descente en gradient est le principal algorithme utilisé dans les optimiseurs comme Adam, Adagrad, RMSProp et plusieurs autres optimiseurs.
Réponses:
Non. La descente de gradient est utilisée dans les algorithmes d'optimisation qui utilisent le gradient comme base de son mouvement de pas. Adam
,, Adagrad
et RMSProp
tous utilisent une certaine forme de descente de gradient, mais ils ne constituent pas tous les optimiseurs. Des algorithmes évolutifs tels que l' optimisation de l'essaim de particules et les algorithmes génétiques sont inspirés des phénomènes naturels et n'utilisent pas de gradients. D'autres algorithmes, tels que l'optimisation bayésienne , s'inspirent des statistiques.
Découvrez cette visualisation de l'optimisation bayésienne en action:
Il existe également quelques algorithmes qui combinent les concepts de l'optimisation évolutive et basée sur le gradient.
Les algorithmes d'optimisation non dérivés peuvent être particulièrement utiles dans les fonctions de coût non convexes irrégulières, les fonctions de coût non différenciables ou les fonctions de coût qui ont un dérivée gauche ou droite différente .
Pour comprendre pourquoi on peut choisir un algorithme d'optimisation non dérivé. Jetez un œil à la fonction de référence Rastrigin . L'optimisation basée sur un gradient n'est pas bien adaptée pour optimiser des fonctions avec autant de minima locaux.
Selon le titre:
Non. Seuls certains types d'optimiseurs sont basés sur la descente de gradient. Un contre-exemple simple est lorsque l'optimisation se fait sur un espace discret où le gradient n'est pas défini.
Selon le corps:
oui. Adam, Adagrad, RMSProp et autres similaires optimiseurs (Nesterov, Nadam, etc.) tentent tous de proposer une taille de pas adaptative (taux d'apprentissage) pour la descente de gradient afin d'améliorer la vitesse de convergence sans sacrifier les performances (c'est-à-dire conduisant à un minimum local pire / maximum).
Il convient de noter qu'il existe également des méthodes de Newton, et également des méthodes quasi-Newton, qui fonctionnent avec une dérivée de second ordre de la fonction de perte (la descente de gradient fonctionne avec la dérivée de premier ordre). Ces méthodes ont perdu le compromis vitesse-évolutivité de la descente de gradient en raison du grand nombre de paramètres du modèle dans les problèmes pratiques.
Quelques notes supplémentaires
La forme de la fonction de perte dépend à la fois des paramètres du modèle et des données, donc le choix de la meilleure méthode dépend toujours de la tâche et nécessite des essais et des erreurs.
La partie stochastique de la descente du gradient est obtenue en utilisant un lot de données plutôt que les données complètes. Cette technique est parallèle à toutes les méthodes mentionnées, ce qui signifie qu'elles peuvent toutes être stochastiques (en utilisant un lot de données) ou déterministes (en utilisant l'ensemble des données).
, ou à d'autres points réalisables en fonction de la trajectoire et méthode spécifique. Cette technique est également parallèle aux méthodes mentionnées, nous aurions pu
La réponse à la question peut être non. La raison est simplement due aux nombreux algorithmes d'optimisation disponibles, mais en choisir un dépend fortement du contexte et du temps dont vous disposez pour l'optimisation. Par exemple, l' algorithme génétique est une approche d'optimisation bien connue qui n'a pas de descente de gradient à l'intérieur. Il existe également d'autres approches comme le retour en arrière dans certains contextes. Ils peuvent tous être utilisés sans tirer parti de la descente du gradient pas à pas.
D'un autre côté, pour des tâches comme la régression, vous pouvez trouver une forme proche pour résoudre le problème afin de trouver des extremums, mais le fait est qu'en fonction de l'espace des fonctionnalités et du nombre d'entrées, vous pouvez choisir l'équation de forme proche ou le gradient descente pour diminuer le nombre de calculs.
Bien qu'il existe de nombreux algorithmes d'optimisation, dans les réseaux neuronaux, les approches basées sur la descente de gradient sont davantage utilisées pour de multiples raisons. Tout d'abord, ils sont très rapides. Dans l'apprentissage en profondeur, vous devez fournir autant de données qu'elles ne peuvent pas être chargées simultanément dans la mémoire. Par conséquent, vous devez appliquer des méthodes de gradient par lots pour l'optimisation. C'est un peu statistique mais vous pouvez considérer que chaque échantillon que vous apportez à votre réseau peut avoir une distribution à peu près similaire aux données réelles et peut être suffisamment représentatif pour trouver un gradient qui peut être proche du gradient réel de la fonction de coût qui devrait être construit en utilisant toutes les données en main.
Deuxièmement, la complexité de trouver des extremums en utilisant des matrices et leur inverse est pour une tâche de régression simple dont les paramètres peuvent être trouvés en utilisant . Il s'avère que les méthodes simples basées sur un gradient peuvent avoir de meilleures performances. Il convient également de mentionner que dans le premier cas, vous devez apporter simultanément les données à la mémoire, ce qui n'est pas possible dans les cas où vous traitez des tâches de Big Data.
Troisièmement, il existe des problèmes d'optimisation qui n'ont pas nécessairement de solution proche. La régression logistique en fait partie.
Eh bien, vous avez choisi des optimiseurs qui sont utilisés dans les réseaux de neurones, ces optimiseurs utilisent des algorithmes basés sur un gradient. La plupart des algorithmes basés sur le gradient de temps sont utilisés dans les réseaux de neurones. Pourquoi donc? Eh bien, préférez-vous essayer de trouver le minimum en connaissant la pente d'une courbe ou sans le savoir? Lorsque vous ne pouvez pas calculer le gradient, vous revenez à l'optimisation sans dérivé . Cela étant dit, il y a des cas où même si vous avez des informations sur le dégradé, il est préférable d'utiliser une méthode sans dégradé. C'est généralement le cas avec des fonctions qui ont beaucoup de minima locaux. Les algorithmes basés sur la population tels que les stratégies évolutives et les algorithmes génétiques ont ici le dessus. Et il y a aussi la branche de l'optimisation combinatoire où un ensemble d'outils complètement différent est utilisé.