Modèle Google Inception: pourquoi il y a plusieurs softmax?

13

La topologie du modèle Google Inception est disponible ici: Google Inception Netowrk

J'ai remarqué qu'il y a 3 couches softmax dans ce modèle (# 154, # 152, # 145), et 2 d'entre elles sont une sorte d'évasion précoce de ce modèle.

D'après ce que je sais, la couche softmax est pour la sortie finale, alors pourquoi il y en a tellement? quel est le but des 2 autres couches?

skywalkerytx
la source

Réponses:

27

Réponse courte: les architectures profondes, et en particulier GoogLeNet (22 couches) sont en danger du problème des gradients disparaissants pendant la formation (algorithme de rétropropagation ). Les ingénieurs de GoogLeNet ont résolu ce problème en ajoutant également des classificateurs dans les couches intermédiaires, de sorte que la perte finale est une combinaison de la perte intermédiaire et de la perte finale. C'est pourquoi vous voyez un total de trois couches de perte, contrairement à la couche unique habituelle comme dernière couche du réseau.

Réponse plus longue: dans le Machine Learning classique, il existe généralement une distinction entre l'ingénierie des fonctionnalités et la classification. Les réseaux de neurones sont surtout connus pour leur capacité à résoudre des problèmes de bout en bout, c'est-à-dire qu'ils combinent les étapes d'apprentissage d'une représentation des données et de formation d'un classificateur. Par conséquent, vous pouvez considérer un réseau de neurones avec une architecture standard (par exemple, AlexNet) comme étant composé d'une phase "d'apprentissage de la représentation" (les couches jusqu'à l'avant-dernière) et d'une phase de "classification" qui, comme prévu, comprend une fonction de perte.

Lors de la création de réseaux plus profonds, un problème apparaît comme le problème des "gradients disparaissants". Ce n'est en fait pas spécifique aux réseaux de neurones; plutôt à toute méthode d'apprentissage basée sur un gradient. Ce n'est pas si insignifiant et mérite donc une explication appropriée pour lui-même; voir ici pour une bonne référence. Intuitivement, vous pouvez penser aux gradients transportant de moins en moins d'informations à mesure que nous nous enfonçons dans le réseau, ce qui est bien sûr une préoccupation majeure, car nous réglons les paramètres (poids) du réseau uniquement sur la base des gradients, en utilisant le "back-prop". "algorithme.

Comment les développeurs de GoogLeNet ont-ils géré ce problème? Ils ont reconnu que ce ne sont pas seulement les caractéristiques des couches finales qui transportent toutes les informations discriminatoires: les caractéristiques intermédiaires sont également capables de distinguer différentes étiquettes; et, plus important encore, leurs valeurs sont plus "fiables" car elles sont extraites de couches antérieures dans lesquelles le gradient contient plus d'informations. S'appuyant sur cette intuition, ils ont ajouté des "classificateurs auxiliaires" en deux couches intermédiaires. C'est la raison des couches de pertes "early escape" au milieu du réseau auxquelles vous avez fait référence dans votre question.

La perte totale est alors une combinaison de ces trois couches de perte. Je cite l'article original:

Ces classificateurs prennent la forme de réseaux convolutionnels plus petits placés au-dessus de la sortie des modules Inception (4a) et (4d). Pendant la formation, leur perte s'ajoute à la perte totale du réseau avec un poids d'actualisation (les pertes des classificateurs auxiliaires ont été pondérées de 0,3). Au moment de l'inférence, ces réseaux auxiliaires sont rejetés.

Visuellement:

entrez la description de l'image ici

galoosh33
la source
1
"... les calques antérieurs dans lesquels le gradient contient plus d'informations" - pourquoi?
maximum
2

En plus de la réponse de @ galoosh33: Il me semble que les classificateurs auxiliaires utilisent les mêmes étiquettes que le classificateur de sortie final. Source: diapositive 34 dans https://pdfs.semanticscholar.org/0b99/d677883883584d9a328f6f2d54738363997a.pdf

Auparavant, je me demandais si ces classificateurs auxiliaires utilisaient d'autres types d'étiquettes (par exemple, simplement chien au lieu de husky sibérien).

gebbissimo
la source