Blog

Part 6 : L’architecture des réseaux de neurones

Cet article fait partie d’une série d’articles qui vous permettra de comprendre étape par étape comment fonctionne l’intelligence artificielle et plus particulièrement les réseaux de neurones.

Je vous invite à lire, si vous ne l’avez pas déjà fait, les articles précédents :

Part 1 : Les réseaux de neurones artificielles

Part 2 : Comment fonctionne le Perceptron

Part 3 : Comment les réseaux de neurones prennent des décisions

Part 4 : Qu’appelle t-on apprentissage automatique

Part 5 : Les réseaux de neurones : la fonction d’activation sigmoide


 

Avant de parler de réseau de neurones plus complexe que ceux étudiés jusqu’ici, il semble important de comprendre un peu plus la théorie et le lexique qui permettent de nommer différentes parties d’un réseau de neurones. Nous allons donc définir l’architecture d’un réseau et les termes associés.

 

Les couches d’un réseau de neurones

Supposez que nous ayons le réseau de neurones suivant :

neurons

La couche (« layer » en anglais) la plus à gauche du réseau ci-dessus est appelée la couche d’entrée (“input layer” en anglais), et les neurones de cette couche sont appelés les neurones d’entrés (input neurons). La couche de neurones la plus à droite est appelée la couche de sortie (output layer) qui contient les neurones de sorties (output neurons). Dans le cas du réseau ci-dessus, il n’y a qu’un unique neurone de sortie.

Les couches du milieu, quelque soit leur nombre, sont les couches cachées (“hidden layer” en anglais), vu que les neurones dans cette couche ne sont ni des neurones d’entrées, ni de sorties.

Le réseau ci-dessous possède 2 couches cachées (“hidden layers”) :

multiple-couches-réseaux-de-neurones

Combien de neurones utiliser par couche de votre réseau

Le nombre de neurones des couches d’entrées et de sorties est souvent assez facile à deviner. Par exemple, si nous souhaitons créer un réseau de neurones qui analyse des images de taille (32×32), c’est à dire 32 pixels en hauteur et 32 pixels en largeur, alors, vu que 32×32=1024, notre réseau de neurones aura 1024 variables d’entrée afin d’alimenter le réseau avec chaque pixel de l’image :

grille

Si nous souhaitons également que ce réseau nous permette d’identifier si une image contient un chat, alors nous pouvons envisager d’utiliser qu’un seul neurone de sortie qui renverra 0 ou 1 (0 si il n’y a pas de chat et 1 si l’image contient un chat).

Par contre, déterminer avec exactitude combien de couches cachées (“hidden layers”) doit contenir un réseau de neurones pour être efficace peut être très difficile.

En fait, il n’y a pas de règle précise pour la conception des réseaux. Les chercheurs ont développé de nombreuses théories de design pour les couches cachées, qui aident à obtenir le comportement souhaité par un réseau. Par exemple, il peut être intéressant de trouver un compromis entre le nombre de couches et le temps nécessaire pour entraîner le réseau. En effet, plus vous aurez de couches, plus des calculs mathématiques seront nécessaires et plus il sera long et couteux en puissance serveur d’entrainer votre réseau de neurones.

 

Quelques architectures de réseaux de neurones (feedforward, récurrent, etc..)

Jusqu’à maintenant, nous avons vu des neurones dont les sorties d’une couche sont systématiquement utilisées comme entrée de la couche suivante. Ce type de réseau, que vous rencontrerez souvent, sont appelés les réseaux de neurones “feedforward”. Ce qui signifie qu’il n’y a aucune boucle dans le réseau. L’information circule toujours vers l’avant, jamais vers l’arrière de l’entrée à la sortie.

Si nous avions eu des boucles, nous aurions des situations dans lesquelles l’entrée de la fonction “sigmoide” dépendrait également de la sortie. Ca n’aurait pas beaucoup de sens, et donc nous n’utilisons généralement pas de boucle.

Cependant, nous le verrons plus tard, il existe d’autres sortes de modèles de réseaux de neurones artificiels dans lesquelles des boucles rétroactives sont possibles. Ces modèles sont appelés des réseaux de neurones récurrents.

Les réseaux de neurones récurrents sont moins répandus et influents que les réseaux de neurones feedforward, en partie car les algorithmes apprenants pour les réseaux récurrents sont (à date) moins performants.

Cependant, les réseaux de neurones récurrents sont tout de même très intéressants. Ils sont plus similaires dans l’esprit au fonctionnement de nos propres cerveaux humains que les réseaux feedforward. Ils ont en effet la capacité de mémoriser une partie des données qu’ils analysent et donc de prédire facilement la suite logique…

Et ils peuvent résoudre des problèmes que les réseaux feedforward sont incapable de résoudre tels que les prédictions de série temporelles (Le speech to text ou les traductions de texte d’une langue vers une autre (Français vers l’anglais par exemple)).

Conclusion

Dans le prochain article, nous verrons plus en détail comment un algorithme intelligent est capable de distinguer que sa prédiction : c’est à dire ces résultats proposés sont corrects ou éronnés. Cela est possible grâce à ce que l’on appelle la mesure de l’erreur et surtout une fonction de coût (loss function). Bien que mathématiquement compliquée, cette technique est vraiment importante pour vous aider à appréhender les réseaux de neurones efficacement. C’est un must-have!!

Cet article fait partie d’une série d’articles qui vous permettra de comprendre étape par étape comment fonctionne l’intelligence artificielle et plus particulièrement les réseaux de neurones.

Je vous invite à lire, si vous ne l’avez pas déjà fait, les articles précédents :

Part 1 : Les réseaux de neurones artificielles

Part 2 : Comment fonctionne le Perceptron

Part 3 : Comment les réseaux de neurones prennent des décisions

Part 4 : Qu’appelle t-on apprentissage automatique

Part 5 : Les réseaux de neurones : la fonction d’activation sigmoide

Comments are closed, but <a href="https://rocketbootstrapper.com/fr/architecture-reseaux-de-neurones/trackback/" title="Trackback URL for this post">trackbacks</a> and pingbacks are open.