Bonjour,
J’ai trouvé un bon exemple de reconnaissance des caractères par le réseau de neurone sur un cite officiel de Matlab : lien
Voici un petit résumé de cet exemple :
Un réseau doit être conçu et formé pour identifier les 26 lettres de l'alphabet. Après le prétraitement de chaque lettres (binairisation, redimensionnement (ici 5*7 pixel)), le résultat est que chaque lettre est représentée en tant que 5 *7 pixels.
Voici un exemple pour la lettre A :
Voici un exemple pour la lettre A en présence de bruit :
Nous avons 5*7 =35 éléments qui seront stockés dans un vecteur qui s’appelle alphabet. Et puisque nous avons 26 lettres, chaque lettres est représentée par un numéro ou encore cible (targets). Par exemple pour la lettre A, targets =1 (pour B : targets =2, pour C : targets = 3 etc...).
L’architecture de réseau de neurone est la suivante :
Le réseau a besoin de 35 entrées et 26 neurones dans la couche de sortie pour identifier les lettres.
Les 26 fonctions d’activations (ou fonction de transfert) pour la couche de sortie utilisées pour cette exemple sont : logsig (De même pour les 10 fonctions d’activations de la couche cachée).
Le réseau est formé pour produire un 1 en position correcte du vecteur de sortie et de remplir par 0.
Questions :
1- Pourquoi le choix de 10 neurones de la couche cachée ? Autrement dit comment peut-on déterminer le nombre de neurones de la couche cachée ?
2- Quand est ce qu’on ajoute d’autres couches cachées ? Parce que j’ai trouvé le même exemple, sauf que cette fois pour la reconnaissance des chiffres (vous pouvez le télécharger ici) avec deux couches cachées.
3- Pourquoi ont-ils utilisé la fonction d’activation logsig et non pas par exemple hardlim ?
4- Ce type de réseau est appelé feed-forward backpropagation network. Est ce que quelqu’un à une idée sur ce type de réseau ?
Merci !
Partager