Il y a quelques jours, Yann LeCun, lauréat du prix universitaire Turing, a remis en question une étude de Google.
Il y a quelque temps, Google AI a proposé un cadre général de construction de pertes hiérarchiques LocoProp pour les réseaux de neurones multicouches dans sa nouvelle recherche "LocoProp : Enhancing BackProp via Local Loss Optimization", qui utilise uniquement un optimiseur de premier ordre tout en atteignant des performances. proche de celle des méthodes du second ordre.
Plus précisément, le cadre réinvente un réseau neuronal comme une composition modulaire de plusieurs couches, où chaque couche utilise son propre régulateur de poids, sa propre sortie cible et sa fonction de perte, atteignant finalement à la fois performances et efficacité.
Google a vérifié expérimentalement l'efficacité de sa méthode sur des modèles et des ensembles de données de référence, réduisant ainsi l'écart entre les optimiseurs de premier ordre et de second ordre. De plus, les chercheurs de Google ont déclaré que leur méthode de construction des pertes locales était la première fois que la perte carrée était utilisée comme perte locale.
Source de l'image : @Google AI
Pour cette recherche de Google, certaines personnes ont commenté qu'elle était géniale et intéressante. Cependant, certaines personnes ont exprimé des points de vue différents, notamment Yann LeCun, lauréat du prix Turing.
Il pense qu'il existe de nombreuses versions de ce que nous appelons aujourd'hui des accessoires cibles, certaines remontant à 1986. Alors, quelle est la différence entre LocoProp de Google et eux ?
Source photo : @Yann LeCun
Concernant la question de LeCun, Haohan Wang, qui est sur le point de devenir professeur adjoint à l'UIUC, a accepté. Il a dit qu'il était parfois surprenant que certains auteurs pensent qu'une idée aussi simple était la première du genre dans l'histoire. Peut-être qu'ils ont fait quelque chose de différent, mais l'équipe de publicité avait hâte de tout revendiquer...
Source photo : @HaohanWang
Cependant, certaines personnes ne sont "pas froides" envers LeCun, pensant qu'il Les considérations concurrentielles soulèvent des questions, voire « provoquent la guerre ». LeCun a répondu en affirmant que sa question n'avait rien à voir avec la compétition et a donné l'exemple d'anciens membres de son laboratoire comme Marc'Aurelio Ranzato, Karol Gregor, Koray Kavukcuoglu, etc., qui ont tous utilisé certaines versions de propagation de cibles, et maintenant ils travaillent tous chez Google DeepMind.
Source photo : @Gabriel Jimenez @Yann LeCun
Certaines personnes ont même taquiné Yann LeCun : "Quand tu ne peux pas battre Jürgen Schmidhuber, deviens-le."
Yann LeCun a-t-il raison ? Voyons d’abord en quoi consiste cette étude de Google. Y a-t-il une innovation remarquable ?
Cette recherche a été réalisée par trois chercheurs de Google : Ehsan Amid, Rohan Anil et Manfred K. Warmuth.
Adresse papier : https://proceedings.mlr.press/v151/amid22a/amid22a.pdf
Cet article estime qu'il existe deux facteurs clés pour le succès des réseaux de neurones profonds (DNN) : la conception du modèle et données de formation, cependant, peu de chercheurs discutent des méthodes d'optimisation pour mettre à jour les paramètres du modèle. Notre formation du DNN implique de minimiser la fonction de perte, qui est utilisée pour prédire la différence entre la valeur réelle et la valeur prédite du modèle, et d'utiliser la rétropropagation pour mettre à jour les paramètres.
La méthode de mise à jour du poids la plus simple est la descente de gradient stochastique, c'est-à-dire qu'à chaque étape, le poids se déplace par rapport à la direction négative du gradient. De plus, il existe des méthodes d'optimisation avancées, telles que l'optimiseur de momentum, AdaGrad, etc. Ces optimiseurs sont souvent appelés méthodes du premier ordre car ils utilisent généralement uniquement les informations des dérivées du premier ordre pour modifier la direction de la mise à jour.
Il existe également des méthodes d'optimisation plus avancées telles que Shampoo, K-FAC, etc., qui ont fait leurs preuves pour améliorer la convergence et réduire le nombre d'itérations. Ces méthodes peuvent capturer les changements de gradients. Grâce à ces informations supplémentaires, les optimiseurs d'ordre supérieur peuvent découvrir des directions de mise à jour plus efficaces pour le modèle entraîné en prenant en compte les corrélations entre différents groupes de paramètres. L’inconvénient est que le calcul des directions de mise à jour d’ordre supérieur est plus coûteux en termes de calcul que les mises à jour de premier ordre.
Google a présenté un cadre pour la formation des modèles DNN dans l'article : LocoProp, qui conçoit les réseaux de neurones comme des combinaisons modulaires de couches. De manière générale, chaque couche d'un réseau neuronal effectue une transformation linéaire sur l'entrée, suivie d'une fonction d'activation non linéaire. Dans cette étude, chaque couche du réseau s’est vu attribuer son propre régulateur de poids, son propre objectif de production et sa propre fonction de perte. La fonction de perte de chaque couche est conçue pour correspondre à la fonction d'activation de cette couche. En utilisant cette forme, la formation d'un petit lot donné de pertes locales peut être minimisée, en itérant entre les couches en parallèle.
Google utilise cet optimiseur de premier ordre pour les mises à jour des paramètres, évitant ainsi le coût de calcul requis par les optimiseurs d'ordre supérieur.
La recherche montre que LocoProp surpasse les méthodes de premier ordre sur les références approfondies des auto-encodeurs et fonctionne de manière comparable aux optimiseurs d'ordre supérieur tels que Shampoo et K-FAC sans exigences de mémoire et de calcul élevées.
LocoProp : rétropropagation améliorée avec optimisation des pertes locales
Généralement, les réseaux de neurones sont considérés comme des fonctions composites qui transforment l'entrée de chaque couche en une représentation de sortie. LocoProp adopte cette perspective lors de la décomposition du réseau en couches. En particulier, au lieu de mettre à jour les poids d'une couche pour minimiser une fonction de perte en sortie, LocoProp applique une fonction de perte locale prédéfinie spécifique à chaque couche. Pour une couche donnée, la fonction de perte est choisie pour correspondre à la fonction d'activation, par exemple, une perte tanh serait choisie pour une couche avec activation tanh. De plus, le terme de régularisation garantit que les poids mis à jour ne s'écartent pas trop de leurs valeurs actuelles.
Semblable à la rétropropagation, LocoProp applique une passe avant pour calculer les activations. Lors du passage arrière, LocoProp définit des cibles pour les neurones de chaque couche. Enfin, LocoProp décompose la formation du modèle en problèmes indépendants sur plusieurs couches, où plusieurs mises à jour locales peuvent être appliquées en parallèle aux poids de chaque couche.
Google a mené des expériences sur des modèles d'encodeurs automatiques profonds, une référence courante pour évaluer les performances des algorithmes d'optimisation. Ils ont effectué une optimisation approfondie sur plusieurs optimiseurs de premier ordre couramment utilisés, notamment SGD, SGD with momentum, AdaGrad, RMSProp, Adam et des optimiseurs d'ordre supérieur, notamment Shampoo, K-FAC, et ont comparé les résultats avec LocoProp. Les résultats montrent que la méthode LocoProp est nettement plus performante que les optimiseurs de premier ordre et est comparable aux optimiseurs d'ordre élevé, tout en étant nettement plus rapide lorsqu'elle est exécutée sur un seul GPU.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!