Pourquoi les algorithmes génétiques ne sont-ils pas utilisés pour optimiser les réseaux de neurones?

13

D'après ma compréhension, les algorithmes génétiques sont de puissants outils d'optimisation multi-objectifs.

En outre, la formation des réseaux de neurones (en particulier les réseaux profonds) est difficile et pose de nombreux problèmes (fonctions de coût non convexes - minima locaux, gradients disparaissant et explosant, etc.).

Je suis également convaincu que la formation conceptuelle d'un NN avec GA est possible. Je me demandais, pourquoi ne sont-ils pas utilisés dans la pratique? Est-ce une question de performance?

cat91
la source

Réponses:

5

La formation de réseaux neuronaux (NN) avec des algorithmes génétiques (AG) n'est pas seulement faisable, il existe des domaines de niche où les performances sont suffisamment bonnes pour être utilisées fréquemment. Un bon exemple de ceci est Neuroevolution des topologies augmentantes ou NEAT , qui est une approche réussie pour générer des contrôleurs dans des environnements simples, tels que les jeux.

Dans le cas plus général cependant, l'approche ne s'adapte pas bien aux grands réseaux profonds avec de nombreux paramètres à régler.

Les algorithmes génétiques et autres recherches globales pour les paramètres optimaux sont robustes comme les algorithmes basés sur le gradient ne le sont pas. Par exemple, vous pouvez entraîner un NN avec des activations de fonction pas à pas ou toute autre fonction d'activation non différenciable. Ils ont des faiblesses ailleurs. Une chose pertinente dans le cas des AG utilisés pour les NN est que les paramètres de poids sont interchangeables dans certaines combinaisons mais fortement dépendants dans d'autres combinaisons. La fusion de deux réseaux neuronaux tout aussi bons avec des paramètres différents - que vous feriez en croisement dans un GA - se traduira généralement par un troisième réseau avec de mauvaises performances. Le succès de NEAT est en partie de trouver un moyen de résoudre ce problème en «développant» les connexions du NN et en les faisant correspondre entre des réseaux de neurones similaires.

Les approches basées sur les gradients sont beaucoup plus efficaces. En général, et pas seulement dans le domaine des NN, si vous pouvez calculer le gradient d'une fonction par rapport aux paramètres, vous pouvez trouver des paramètres optimaux plus rapidement que la plupart des autres techniques d'optimisation. Un gradient précis garantit au moins une petite amélioration par rapport à une seule évaluation, et la plupart des autres optimiseurs tombent dans un paradigme de génération et de nouvelle tentative qui ne peut pas fournir ce type de garantie. La faiblesse de la tendance à trouver des optima locaux ne s'est pas avérée être un obstacle majeur pour les fonctions de perte dans les NN, et a été abordée avec un certain succès en utilisant des extensions à la descente de gradient de base telles que l'élan, le RPROP, Adam, etc.

Dans la pratique sur un grand réseau multicouche, les méthodes de gradient sont probablement des ordres de grandeur plus rapides que les recherches GA telles que NEAT pour trouver des paramètres de réseau. Vous ne trouverez aucun CNN formé par GA qui résout ImageNet, ou même MNIST, où l'AG a trouvé les poids du réseau sans aide. Cependant, les AG, ou du moins certaines variantes d'entre eux, ne sont pas exclus à 100%. Par exemple, ce blog de 2017 passe en revue des articles récents, y compris l' évolution à grande échelle des classificateurs d'images, qui explore l'utilisation des AG pour découvrir les hyperparamètres NN, ce qui est une tâche importante dans l'apprentissage automatique et peu exploitable à l'aide de méthodes basées sur un gradient.

Neil Slater
la source
1

En fait, Google Brain a déjà fait la même chose pour les classificateurs d'images

Pourtant, leurs recherches utilisent la rétropropagation pour former des réseaux, mais ils utilisent des algorithmes génétiques pour trouver une bonne architecture. Une dernière chose à mentionner: pour arriver à leur meilleur modèle - cela leur demandait une énorme puissance de calcul.

Ils ont publié le premier article en 2017 et en 2018 ont obtenu une version améliorée . Vous pouvez en lire plus dans leur article de blog

Il existe une autre recherche pour la recherche d'architecture de réseau, mais ils utilisent l'optimisation bayésienne au lieu d'algorithmes génétiques

Vadym B.
la source