Dans certains tutoriels, j'ai trouvé qu'il était indiqué que l'initialisation du poids "Xavier" (article: Comprendre la difficulté de former des réseaux neuronaux profonds à action directe ) est un moyen efficace d'initialiser les poids des réseaux neuronaux.
Pour les couches entièrement connectées, il y avait une règle générale dans ces didacticiels:
où est la variance des poids pour une couche, initialisée avec une distribution normale et n i n , n o u t est la quantité de neurones dans le parent et dans la couche actuelle.
Existe-t-il des règles de base similaires pour les couches convolutives?
J'ai du mal à trouver ce qui serait le mieux pour initialiser les poids d'une couche convolutionnelle. Par exemple, dans une couche où la forme des poids est (5, 5, 3, 8)
, donc la taille du noyau est 5x5
, le filtrage de trois canaux d'entrée (entrée RVB) et la création de 8
cartes d'entités ... serait 3
considéré comme la quantité de neurones d'entrée? Ou plutôt 75 = 5*5*3
, parce que les entrées sont des 5x5
patchs pour chaque canal de couleur?
J'accepterais les deux, une réponse spécifique clarifiant le problème ou une réponse plus "générique" expliquant le processus général de recherche de la bonne initialisation des poids et de préférence reliant les sources.
J'appuie ici la réponse d'Eric. Je prends également le "sqrt" du terme et pas seulement ce terme. Malgré cela, lorsque vous connectez sigmoïde au fond de votre réseau à la sortie "RelU" .... cela peut entraîner le décrochage de la formation. Cela est dû à la sortie "Relu" illimitée qui peut faire tomber le gradient à sigmoïde à 0 et aucun apprentissage ne se produit. Donc, dans les cas, j'ai un facteur "scaleDown" pour mon filet qui alourdira l'écart d'initialisation de ce facteur. Je continue à ajuster empiriquement les poids jusqu'à ce que l'apprentissage se produise. Un moyen simple de trouver est d'enregistrer le modèle immédiatement après 1 itération et de regarder la sortie RELU (qui est connectée à sigmoid). Continuez à régler les poids jusqu'à ce que cette sortie RELU soit raisonnable. Et puis utilisez ces poids pour la formation. C'est un bon début. S'il s'effondre toujours après quelques itérations, alourdissez-les un peu plus jusqu'à ce que vous atteigniez la stabilité. C'est juste un hack que j'ai utilisé. Cela a fonctionné pour moi pour ma configuration. Alors partage mon expérience. Différentes choses fonctionnent pour différentes configurations.
Alors bonne chance!
la source