Y a-t-il quelque chose qui garantit que les filtres convolutifs ne finissent pas de la même manière?
J'ai formé un modèle simple pour reconnaître les nombres manuscrits de l'ensemble de données mnist. C'est ici:
model = Sequential([
Conv2D(filters=1, kernel_size=(3,1), padding='valid', strides=1, input_shape=(28, 28, 1)),
Flatten(),
Dense(10, activation='softmax')])
J'ai expérimenté la variation du nombre de filtres pour la couche convolutive, tout en gardant les autres paramètres constants (taux d'apprentissage = 0,0001, nombre d'épisodes = 2000, taille du lot d'entraînement = 512). J'ai utilisé 1, 2, 4, 8 et 16 filtres, et la précision du modèle était de 92 à 93% pour chacun d'entre eux.
D'après ce que j'ai compris, pendant la formation, les filtres peuvent apprendre à reconnaître divers types de bords dans l'image (par exemple, verticaux, horizontaux, ronds). Cette expérience m'a amené à me demander si l'un des filtres finissait par être dupliqué - ayant le même poids ou des poids similaires. Y a-t-il quelque chose qui les en empêche?
Réponses
Non, rien n'empêche vraiment les poids d'être différents. En pratique, bien qu'ils finissent presque toujours par être différents parce que cela rend le modèle plus expressif (c'est-à-dire plus puissant), la descente de gradient apprend à le faire. Si un modèle a$n$ caractéristiques, mais 2 d'entre elles sont les mêmes, alors le modèle a effectivement $n-1$ caractéristiques, qui est un modèle moins expressif que celui de $n$ caractéristiques, et a donc généralement une fonction de perte plus importante.
Mais même si les poids sont différents, certains d'entre eux peuvent être très similaires. Si vous visualisez la première couche de vos filtres de convolution, et que vous en avez un grand nombre (par exemple 100), vous verrez que certains d'entre eux apprennent à détecter à peu près les mêmes arêtes (même orientation et même placement). Ces fonctionnalités sont si similaires qu'elles sont effectivement redondantes dans le modèle et n'ajoutent pas à sa puissance prédictive.
Il existe en fait tout un champ de recherche sur l'identification des fonctionnalités redondantes et leur élagage. Le Cun montre dans Optimal Brain Damage que l'élagage des fonctionnalités redondantes non seulement rend le modèle plus petit et plus rapide pour l'inférence, mais peut également améliorer la précision du modèle.
Voici un article de blog pour un aperçu de haut niveau de l'une des méthodes d'élagage pour plus d'informations.