Plusieurs filtres dans une couche convolutionnelle n'apprendraient-ils pas le même paramètre pendant l'entraînement?

11

D'après ce que j'ai appris, nous utilisons plusieurs filtres dans une couche Conv d'un CNN pour apprendre différents détecteurs de fonctionnalités. Mais puisque ces filtres sont appliqués de la même manière (c'est-à-dire glissés et multipliés aux régions de l'entrée), n'apprendraient-ils pas simplement les mêmes paramètres pendant l'entraînement? Par conséquent, l'utilisation de plusieurs filtres serait redondante?

cjbayron
la source

Réponses:

6

J'ai eu la même confusion en comprenant ce fait. La confusion se pose aux débutants car le livre explicite ne mentionne pas que les filtres sont différents.

puisque ces filtres sont appliqués de la même manière

Les filtres sont appliqués de manière similaire, mais la valeur de la cellule dans la matrice est différente les uns des autres filtres. Ils extraient donc différentes fonctionnalités de l'image.

ne vont-ils pas simplement apprendre les mêmes paramètres pendant l'entraînement

Non, ils n'apprennent pas le même paramètre car les filtres sont désormais différents. L'utilisation de filtres multiples n'est donc pas redondante.

homme de fer
la source
Merci d'avoir répondu. Qu'est-ce qui les rend exactement différents? Comment pouvons-nous nous assurer qu'ils apprennent différents paramètres pendant la formation? Est-ce leurs valeurs initiales?
cjbayron
1
des valeurs différentes de chaque cellule les rendent différentes. Comme certains détecteront une ligne oblique, certains détecteront une ligne de courbe à 45 degrés, etc. Ils sont donc tous différents.
ironman
1
Oui, je comprends que différentes valeurs font que les filtres détectent différentes fonctionnalités. Mais comment ces filtres apprennent-ils différemment pendant l'entraînement?
cjbayron
3
Si les filtres commencent tous de la même façon, ils resteront ainsi. L'initialisation aléatoire signifie qu'ils partent différemment et à partir de là, ils apprennent des choses différentes. Recherchez la rupture de symétrie dans les réseaux de neurones pour plus d'informations.
Aaron
4

J'ai trouvé la réponse à cette question: https://www.quora.com/Why-does-each-filter-learn-different-features-in-a-convolutional-neural-network

Il dit ici: "... (l'optimisation) algorithme constate que la perte ne diminue pas si deux filtres ont des poids et des biais similaires, donc il finira par changer l'un des filtres (poids et biais de ') afin de réduire ainsi la perte apprendre une nouvelle fonctionnalité. "

Merci pour vos réponses. Appréciez-le :)

cjbayron
la source