• Aucun résultat trouvé

CHAPITRE 2 OUTILS DE CALCUL UTILISES

2.3 Intelligence artificielle

2.3.2 Réseau de neurones artificiels

Un réseau de neurones artificiels est un modèle mathématique qui tente de simuler la structure et les fonctionnalités des réseaux de neurones biologiques. Il permet de traiter, par le biais de l'informatique, des problèmes de différentes natures que les outils classiques ont du mal à résoudre [166]. L’étude de réseau de neurones artificiels peut remonter aux années 1940 [167]. Aujourd’hui, considéré comme une méthode intelligente, le réseau de neurones artificiels s'avère très puissant et efficace dans la résolution des problèmes de reconnaissance de formes, de classification automatique, d’approximation ou de prévision de fonctions complexes. Dans Chapitre 5 de ma thèse, cette méthode est utilisée pour modéliser la relation entre les paramètres techniques (optiques et mécaniques) des étoffes et les descripteurs sensoriels décrivant la perception humaine sur l’étoffe virtuelle.

Notion d’un neurone artificiel

Un neurone artificiel est la construction de base pour les réseaux de neurones artificiels. Sa conception et les fonctionnalités dérivent de l'observation d'un neurone biologique, qui est la construction de base pour les réseaux de neurones biologiques, incluant le cerveau, la moelle épinière et les ganglions périphériques [168]. Une comparaison des similitudes dans la conception et les fonctionnalités, selon les auteurs, est donnée dans la Figure 2-6.

Figure 2-6. Comparaison des structures entre un neurone biologique et un neurone artificiel [168]

La Figure 2-6 représente un neurone biologique avec ses corps cellulaires, des dendrites et des axones. L’information extérieure entre dans le neurone par des dendrites, puis le corps cellulaire traite l'information et la transmet via un axone. De la même manière, un neurone artificiel se compose des entrées, des poids de pondération, d’une fonction d’activation, d’un biais et d’une sortie. L'information extérieure entre dans le corps d'un neurone artificiel par des entrées pondérées (chaque entrée peut être multipliée par un poids de pondération individuel). Le corps d'un neurone artificiel résume alors les entrées pondérées, le biais et les "traite" ensemble selon la fonction d’activation. Enfin un neurone artificiel transmet les informations traitées à la sortie. Une description mathématique pour un neurone artificiel est donnée ci-dessous [168]:

𝑦 = 𝐹(∑𝑚𝑖=0𝑤𝑖 ∙ 𝑥𝑖 + 𝑏) (2-8)

où xi est l’entrée, wi les poids de pondération, b le biais, y la sortie. F est la fonction

d’activation qui définit les propriétés du neurone artificiel.

Généralement, la fonction d’activation peut être une fonction mathématique quelconque, souvent définie de façon à générer une sortie comprise entre 0 et 1. Dans la plupart des cas, nous prenons une fonction d’activation parmi les fonctions suivantes: seuillage, linéaire, linéaire saturée et sigmoïde. Lorsque la fonction d’activation est de type seuillage, nous appelons ce neurone artificiel le perceptron qui servira à résoudre les problèmes de classification. Dans le cas d’une fonction linéaire, le neurone artificiel effectue la transformation linéaire simple sur la somme des entrées pondérées et le biais. Ce type de neurone artificiel est utilisé dans une modélisation linéaire. Dans la plupart des cas, la fonction sigmoïde est la fonction la plus utilisée pour résoudre des problèmes de modélisation non-linéaire. Quelques exemples de fonctions d’activation sont donnés dans la Figure 2-7.

Figure 2-7. Les fonctions d'activation les plus utilisées

Construction d’un réseau de neurones artificiels

En combinant deux ou plusieurs neurones artificiels, nous obtenons un réseau de neurones artificiels, capable de résoudre des problèmes concrets complexes de modélisation et de classification. Chaque couche (i) est composée de Ni neurones, prenant leurs entrées sur les

Ni-1 neurones de la couche précédente. La première couche est appelée la couche d’entrée

alors que la dernière couche est la couche de sortie. Les couches intermédiaires sont appelées les couches cachées.

La conception de la structure d'un réseau de neurones artificiels consiste à choisir le nombre de couches et le nombre de neurones et à déterminer le mode d’interconnexion entre les neurones. La structure du réseau dépend généralement du problème que l'on souhaite résoudre [166]. De plus, le nombre de données est aussi un facteur à prendre en compte pendant la construction d’un réseau. Le problème de « sur-apprentissage » est souvent provoqué par le fait que le nombre de données est insuffisant par rapport à la complexité du problème traité. Dans cette situation, la performance du réseau devient instable.

Dans notre étude, nous utilisons une structure de réseau à trois couches de type « feed- forward » (c.f. Figure 2-8) afin de simuler la transmission d'informations depuis l’entrée vers la sortie, sans boucle de retour. Il n'y a aucune limitation sur le nombre de couches, le type de fonction d’activation utilisée et le nombre de connexions entre les neurones artificiels individuels. Le calcul mathématique est donné ci-dessous [168].

Sur la couche d’entrée, nous avons :

𝑒𝑖 = 𝐹𝑖(𝑤𝑖𝑥𝑖 + 𝑏𝑖), i=1, 2, …, n (2-9) Sur la couche cachée, nous avons :

𝑐𝑗 = 𝐺𝑗(∑𝑛𝑖=1𝑟𝑖𝑗𝑒𝑖+ 𝑏𝑗′), j=1, 2, …, m (2-10)

Sur la couche de sortie, nous avons :

𝑦 = 𝐻(∑𝑚 𝑞𝑘𝑐𝑘

𝑘=1 + 𝑏′′) (2-11)

Entrainement d’un réseau de neurones

Une fois que la structure du réseau de neurones est fixée, nous effectuons un entraînement pour optimiser la performance du modèle minimisant l’écart entre une sortie réelle et une sortie prédite du modèle. Le principe est le suivant : nous pouvons modifier les paramètres du réseau de neurones tels que les poids de pondération reliant les neurones en réaction aux stimuli extérieurs qu'on lui soumet (les valeurs d'entrée), de manière à ce qu'il réagisse différemment si un même stimulus lui est appliqué ultérieurement. Le réseau de neurones s'améliore ainsi car, à chaque erreur qu'il fait, il subit une correction qui le fait réagir différemment s'il est confronté à la même situation. Le but étant qu'une fois l'apprentissage terminé, le réseau effectue la tâche pour laquelle il a été conçu sans se tromper, c'est-à-dire qu'il fournisse pour chaque stimulus d'entrée la "bonne" sortie, à savoir la sortie désirée par l'opérateur.

L'apprentissage n'est, bien sûr, pas réalisé par modification manuelle des paramètres du réseau par l’opérateur, mais par un algorithme d'entraînement. De nombreux algorithmes existent à ce jour, que l'on peut séparer en deux catégories :

- Les apprentissages supervisés : un "professeur" fournit un grand nombre de couples (entrées, sorties désirées pour ces entrées), et la correction s'effectue selon l'erreur obtenue pour chaque couple (erreur=sortieobtenue-sortiedésirée). Si

l'apprentissage est efficace, la norme de l'erreur diminue globalement.

- Les apprentissages non-supervisés : sans professeur définissant la sortie désirée pour une entrée donnée, donc sans signal d'erreur, le réseau apprend par lui-même

à classer des entrées similaires en trouvant des points communs aux stimuli appliqués.

La répétition de la correction en réaction à des stimuli en entrée constitue le processus d'apprentissage. Il faut parfois des milliers d'itérations de l'algorithme pour atteindre un résultat.

2.3.3 Logique floue et la sensibilité des données