J'essaie de mieux comprendre les réseaux de neurones convolutifs en écrivant du code Python qui ne dépend pas des bibliothèques (comme Convnet ou TensorFlow), et je me retrouve coincé dans la littérature sur la façon de choisir des valeurs pour la matrice du noyau, quand effectuer une convolution sur une image.
J'essaie de comprendre les détails de l'implémentation à l'étape entre les cartes d'entités dans l'image ci-dessous montrant les couches d'un CNN.
Selon ce schéma:
Le noyau de la matrice du noyau "parcourt" l'image, créant une carte des caractéristiques, où chaque pixel est la somme de tous les produits par élément entre chaque poids du noyau (ou matrice de filtre) et la valeur de pixel correspondante de l'image d'entrée.
Ma question est: comment initialiser les poids de la matrice du noyau (ou du filtre)?
Dans la démonstration ci-dessus, ce sont simplement des 1 et des 0, mais je suppose que cela est simplifié par souci du diagramme.
Ces poids sont-ils formés à une étape de prétraitement? Ou choisi explicitement par l'utilisateur?