J'essaie de former un réseau neuronal profond pour la classification, en utilisant la propagation arrière. Plus précisément, j'utilise un réseau de neurones convolutifs pour la classification d'images, en utilisant la bibliothèque Tensor Flow. Pendant l'entraînement, je ressens un comportement étrange et je me demande simplement si cela est typique ou si je fais quelque chose de mal.
Donc, mon réseau de neurones convolutionnels a 8 couches (5 convolutionnelles, 3 entièrement connectées). Tous les poids et biais sont initialisés en petits nombres aléatoires. J'ai ensuite défini une taille de pas et je continue la formation avec des mini-lots, en utilisant Adam Optimizer de Tensor Flow.
Le comportement étrange dont je parle est que pendant environ les 10 premières boucles de mes données d'entraînement, la perte d'entraînement ne diminue pas, en général. Les poids sont mis à jour, mais la perte d'entraînement reste à peu près à la même valeur, augmentant et diminuant parfois entre les mini-lots. Cela reste ainsi pendant un certain temps, et j'ai toujours l'impression que la perte ne diminuera jamais.
Puis, tout d'un coup, la perte d'entraînement diminue considérablement. Par exemple, dans environ 10 boucles à travers les données d'entraînement, la précision de l'entraînement passe d'environ 20% à environ 80%. À partir de là, tout finit par bien converger. La même chose se produit chaque fois que je lance le pipeline de formation à partir de zéro, et ci-dessous est un graphique illustrant un exemple de course.
Donc, ce que je me demande, c'est si c'est un comportement normal avec l'entraînement des réseaux de neurones profonds, par lequel il faut un certain temps pour "entrer en action". Ou est-il probable que je fasse quelque chose de mal qui cause ce retard?
Merci beaucoup!