Visualisation de la trajectoire d’optimisation dans les réseaux neuronaux
Dans la précédente Publier, J’ai montré quelques graphiques animés pour le processus de formation de régression linéaire et de régression logistique. Développer une bonne «sensation» de la façon dont ils «apprennent» est utile car ils peuvent être utilisés comme repères avant d’appliquer des modèles plus complexes. Bien que la plupart des réseaux de neurones profonds utilisent également un apprentissage basé sur un gradient, une intuition similaire est beaucoup plus difficile à trouver. Une des raisons est que les paramètres sont de très haute dimension et qu’il y a beaucoup de non-linéarités impliquées, il est très difficile d’imaginer dans nos têtes ce qui se passe pendant l’optimisation. Contrairement aux ordinateurs, nous ne sommes programmés que pour percevoir des espaces inférieurs ou égaux à la 3D.
Dans ce post, je montrerai beaucoup plus de tracés animés pour offrir un aperçu de ces espaces de grande dimension. Les modèles que j’utilise sont des perceptrons multicouches entièrement connectés avec des activations ReLU. Nous pouvons alors voir visuellement comment la largeur et la profondeur peuvent affecter le paysage de perte et la trajectoire d’optimisation.
Prenons cet ensemble de données 2D de 3 classes. Nous, les humains, pouvons facilement voir le motif en un coup d’œil qu’il est généré par une sorte de fonction en spirale. Il nous faut moins d’une seconde pour le reconnaître et, en même temps, nous produisons automatiquement un moyen d’extrapolation pour les données invisibles. C’est parce que nous sommes formés sur ce genre de tâche visuelle depuis notre naissance (n’oubliez pas non plus que nous ne pouvons le faire que dans un espace de très petite dimension). Ici, je vais former quelques réseaux de neurones artificiels pour classer cette forme et inspecter le processus de formation dans l’espace des paramètres.
Avant de continuer, je voudrais soulever une question importante: comment visualiser la trajectoire d’optimisation dans l’espace des paramètres de grande dimension?
Le moyen le plus simple consiste à trouver deux directions pour traverser l’espace de grande dimension et à visualiser les valeurs de perte sur ce plan. Mais quelles deux directions utiliser? Il existe une infinité de directions potentielles parmi lesquelles choisir. Dans le journal Visualisation du paysage de perte dans les réseaux neuronaux, Li et. Al., les auteurs ont discuté de certaines options et en ont adopté une en utilisant l’ACP pour réduire la dimensionnalité. Voici un bref résumé de la motivation:
- 2 vecteurs aléatoires dans un espace de grande dimension ont une forte probabilité d’être orthogonaux, et ils peuvent difficilement capturer toute variation pour le chemin d’optimisation. La projection du chemin sur le plan couvert par les 2 vecteurs ressemblera à une marche aléatoire.
- Si nous choisissons une direction pour être le vecteur pointant des paramètres initiaux vers les paramètres finaux entraînés, et une autre direction au hasard, la visualisation ressemblera à une ligne droite car la deuxième direction ne capture pas beaucoup de variance par rapport à la première.
- Si nous utilisons l’analyse des composants principaux (PCA) sur le chemin d’optimisation et obtenons les 2 premiers composants, nous pouvons visualiser la perte sur les 2 directions orthogonales avec le plus de variance.
Par conséquent, j’utilise l’approche PCA pour des chemins d’optimisation plus beaux. Gardez à l’esprit que ce n’est pas la «meilleure» approche pour la visualisation de chemin, car elle peut ne pas fonctionner à d’autres fins. Par exemple, si vous souhaitez comparer les chemins empruntés par différents optimiseurs, par exemple SGD vs Adam, cette approche PCA ne fonctionnera pas car les principaux composants proviennent des chemins eux-mêmes. Le fait que différents optimiseurs ont des chemins et des directions PC différents, c’est-à-dire une tranche différente du paysage de perte, rend la comparaison impossible. Pour cela, nous devons utiliser deux directions fixes.
Les architectures ici sont produites en variant et en combinant les deux propriétés ci-dessous
- Nombre de couches cachées: 1, 5, 10
- Nombre de neurones dans chaque couche cachée: 5, 20, 100
9 configurations au total.
Jetons un œil aux chemins d’optimisation aux côtés des zones de décision / limites produites par différents modèles. En affichant les zones de décision au lieu des précisions de validation / test qui reposent sur une division de l’ensemble de données généré, nous pouvons obtenir de meilleures intuitions sur les mauvais ajustements car nous avons déjà notre priorité – l’attente « en spirale » à l’esprit.
Tout d’abord, permettez-moi de vous montrer ce que fait une régression logistique dans ce cas,