[Dossier] Les réseaux de neurones artificiels

Pour parler math...

Modérateur: Modérateurs

[Dossier] Les réseaux de neurones artificiels

Messagepar Publication » 24/08/2004 - 0:07:43

Le cerveau humain est un modèle dans le développement de l’intelligence artificielle. De simples enchevêtrements de neurones lui donnent toutes ses capacités, et c’est ce que tentent de reproduire les chercheurs grâce à l’électronique. Ce dossier nous présente les principes des réseaux de neurones artificiels.

L’auteur de ce dossier est Frédéric Perez (fffred sur le forum), un grand merci à lui.

Image


Introduction

L’intelligence artificielle est en continuelle progression depuis l’invention de l’ordinateur et l’utilisation de programmes informatiques. Il existe en effet de nombreux programmes capables de réaliser des choses de plus en plus complexes : diriger un robot, résoudre des problèmes, jouer aux échecs… Mais ils sont très rarement capables de rivaliser avec le cerveau humain, et c’est pour cela que de nombreuses tâches sont encore irréalisables par les ordinateurs.

D’où vient cette différence ? La première chose est évidemment la capacité de calcul, le cerveau est une machine assurément incroyable. Cependant, les ordinateurs n’ont pas cette faculté d’apprentissage, ils ne connaissent pas le progrès si personne ne les modifie. Voilà le challenge pour l’intelligence artificielle : savoir apprendre.

D’un autre côté, la biologie a apporté un grand nombre d’informations sur le fonctionnement du cerveau, des neurones… Des mathématiciens ont alors tenté de reproduire le fonctionnement du cerveau en intégrant ces connaissances en biologie dans des programmes informatiques, et en leur donnant la possibilité d’apprendre. Cela a commencé en 1943 avec Mc Culloch et Pitts, mais en 1969, Minsky et Papert publièrent un livre pour montrer que le type de réseau élaboré à l’époque était limité. Heureusement, des progrès ont pu être réalisés par la suite. Ces recherches sur les "réseaux de neurones artificiels" ont maintenant beaucoup progressé. Nous en expliquerons les bases dans ce dossier.
Dernière édition par Publication le 24/08/2004 - 0:48:20, édité 6 fois au total.
Publication
 
Messages: 2055
Inscrit le: 30/07/2004 - 18:18:42

Les connaissances en biologie

Messagepar Publication » 24/08/2004 - 0:15:06

Les modèles de réseaux de neurones artificiels sont, à l’origine, une imitation du fonctionnement du cerveau. Il contient, chez l’homme, environ 10 milliards de neurones, et chacun est connecté à environ 10.000 autres neurones. On voit ainsi sa complexité étonnante.

Les connexions permettent le transfert d’informations sous forme d’impulsions électriques entre les neurones.

Image

Un neurone reçoit des impulsions de ses voisins par l’intermédiaire des "dendrites". Si la somme des signaux dépasse un certain seuil, il renvoie un signal vers d’autres neurones, par l’intermédiaire de son "axone". Ce mécanisme complexifie la façon dont les informations sont transmises : un neurone ne se borne pas à faire passer l’information, il la filtre.

Pour résumer, un neurone peut être schématisé ainsi : il fait la somme de toutes les informations qu’il reçoit et il émet un signal à condition que la somme soit suffisamment élevée.

Image

Si l’on ramène la contribution d’un neurone au cerveau tout entier, on se rend compte que chacun effectue un travail très simple par rapport au résultat obtenu. En effet, les neurones réalisent des opérations basiques, et pourtant, lorsque l’on en met 10 milliards ensemble, on peut créer une entité pensante !

Cependant, cela n’est pas suffisant : un cerveau ne peut rien faire s’il n’a pas de quoi apprendre. Il a besoin d’informations venant de l’extérieur. C’est pour cela qu’il est relié aux différents organes du corps. Par exemple, il reçoit les images provenant des yeux, les sons, les douleurs…

Grâce à ces informations il est capable de faire son apprentissage : lorsqu’une action a provoqué une douleur, il doit changer l’organisation des neurones afin de ne pas répéter la même erreur.

L’objectif des réseaux de neurones artificiels est donc de modéliser le fonctionnement des neurones réels, mais aussi de permettre un apprentissage.
Dernière édition par Publication le 24/08/2004 - 0:23:47, édité 1 fois au total.
Publication
 
Messages: 2055
Inscrit le: 30/07/2004 - 18:18:42

Le neurone mathématique

Messagepar Publication » 24/08/2004 - 0:17:32

On vient de voir que les neurones ont un fonctionnement assez simple et facilement applicable en mathématiques : il faut faire une sommation des informations qui lui sont fournies, puis appliquer un seuil à cette somme.

Pour schématiser cela, on admettra que les entrées (les informations que le neurone reçoit) ne peuvent valoir que 0 ou 1. Cela correspond aux signaux électriques fournis par les neurones voisins.

Image

La somme (Σ) est l’opération habituelle. Le seuil est représenté par une fonction de Heaviside :

Image

Ainsi, si la somme est suffisante, la sortie (signal transmis) vaut 1. Sinon, elle vaut 0.

Voilà ce qu’est un neurone en mathématiques. Il faut maintenant en assembler pour former un réseau.

Note : En réalité, les signaux utilisés ne sont pas binaires (0 ou 1) : on assouplit la définition précédente en autorisant que ces signaux soient des nombres réels. De plus, la fonction seuil n’est pas aussi abrupte. On utilise plutôt une sigmoïde qui a une pente plus douce.
Dernière édition par Publication le 24/08/2004 - 0:24:18, édité 1 fois au total.
Publication
 
Messages: 2055
Inscrit le: 30/07/2004 - 18:18:42

Le réseau de neurones

Messagepar Publication » 24/08/2004 - 0:19:18

Les neurones formels que l’on vient de définir doivent être assemblés pour former un réseau. Le type de réseau le plus simple s’appelle le "perceptron". Il est constitué en fait d’un seul neurone et permet de réaliser des opérations très simples. Il est cependant très limité. C’est pourquoi on utilise un type de réseau plus complexe, le Perceptron Multi-Couches (PMC). Comme son nom l’indique, il est constitué de plusieurs couches de neurones entièrement connectées entre elles (cf. figure ci-dessous).

Image

Que veulent dire "entrées" et "sorties" ? Si l’on compare notre réseau au cerveau, on peut comprendre cela comme les signaux reçus, et les ordres émis. Par exemple, si l’ "entrée" est une image provenant des yeux, disons, un ours qui attaque, alors il faut que le cerveau donne en "sortie" l’ordre de fuir ! Ainsi, lorsqu’un sens donne une information, le cerveau renvoie une réponse.

Note : Ces réseaux PMC sont les plus utilisés. Mais il en existe d’autres types, notamment les réseaux récurrents. Ce sont des réseaux qui bouclent sur eux-mêmes. Mais nous n’en parleront pas ici car la théorie est trop compliquée.
Publication
 
Messages: 2055
Inscrit le: 30/07/2004 - 18:18:42

Comment apprendre au réseau

Messagepar Publication » 24/08/2004 - 0:21:36

Maintenant que l’on a créé un réseau, il faut lui faire apprendre quelque chose. Pour mieux comprendre cela, nous prendrons l’exemple de la reconnaissance de caractères : on présente des caractères au réseau et il a pour objectif de reconnaître ce caractère. Par exemple, si on lui montre la lettre "a" dessinée, il doit nous répondre que cela est un "a".

Comment réaliser cela ? La méthode est en quelque sorte une imitation du cerveau : si la réponse est correcte, c’est bien, mais s’il y a une erreur, il faut modifier le réseau afin de ne pas réitérer l’erreur.

Image

On recommence plusieurs centaines de fois l’opération, jusqu’à ce que le réseau ait bien appris sa leçon !

Le principe est donc relativement simple. On fait l’éducation du réseau comme on éduquerais un enfant : il faut lui répéter plusieurs fois qu’il a fait une erreur, et à la fin, il a compris.

Note : Comment est-il possible de modifier le réseau ? Les liaisons entre les neurones ont en fait une particularité : elles ont un "poids". C’est un nombre réel souvent noté w. Ils interviennent dans la somme effectuée par chaque neurone (la somme est pondérée), et grâce à eux, il est possible de modifier le réseau en changeant leurs valeurs. Ceci dit, il n’est pas évident de savoir de combien il faut modifier ces poids. Plusieurs théories existent, elles permettent de modifier les poids de façon à converger vers une erreur minimale.
Publication
 
Messages: 2055
Inscrit le: 30/07/2004 - 18:18:42

Que peut faire un réseau ?

Messagepar Publication » 24/08/2004 - 0:22:54

Les réseaux de neurones ont de nombreuses applications possibles. En voici quelques exemples :

- Approximation de fonctions : les fonctions trop compliquées peuvent être approximées, grâce au réseau, par une somme de fonctions plus simples comme des polynômes ou des sigmoïdes.

- Optimisation de trajectoires : en intégrant les paramètres tels que le vent, les conditions extérieures, …. On peut, par exemple, déterminer quelle est la meilleure trajectoire pour un avion, une fusée…

- Reconnaissance : un réseau peut servir à reconnaître des caractères. Cela est déjà utilisé à la Poste pour lire les codes postaux, ou même dans certaines banques pour lire les chèques. Il est aussi possible de retrouver la prononciation des mots à partir d’un texte.

- Prévision : on utilise de plus en plus les réseaux pour faire des prévisions en marketing (prédiction de comportement, de possibilité de vente d’un produit, …) ou pour le trafic routier… Mais les prévisions en météo ou en bourse sont trop compliquées à réaliser.

- Contrôle : on peut contrôler les produits dans une industrie.

- Robotique : certains robots sont dotés de réseaux de neurones. Des entreprises japonaises se vantent déjà de leur utilisation, même pour des produits électroménagers ou informatiques.

Les réseaux de neurones ont encore beaucoup d’autres applications possibles. En général, cela se résume en un problème d’optimisation. Peut-être serons-nous capables, dans le futur, de reproduire une forme d’intelligence… Mais nous en sommes encore loin !
Publication
 
Messages: 2055
Inscrit le: 30/07/2004 - 18:18:42

Messagepar jyb » 25/08/2004 - 9:37:06

une charactéristique du cerveau est sa capacité à créer de nouvelle connexion à chaque fois qu'il apprend ou voi quelque-chose. Pour que la modification du poid attribué à chaque lien puisse mimé ce comportement, il faudrait qu'à l'orrigine toutes les connexions possible soient faites dés le départ, avec le cas échéant un poid de 0.

Celà peut être équivalent à une matrice où les nombres correspond au poid d'une liaison :bon: !
Avatar de l’utilisateur
jyb
 
Messages: 4142
Inscrit le: 05/06/2004 - 12:01:50
Localisation: Ile de France

Messagepar fffred » 25/08/2004 - 13:25:34

au départ, on donne souvent aux poids des valeurs aléatoires. Et cela arrive que des poids valent 0 bien sur (ou plutot etre très proche de 0).

Par contre c'est pas évident de mettre les poids dans une matrice, parce qu'elle ne pourra pas etre carrée ou rectangulaire : il n'y a pas autant de liaisons dans chaque couche.
je suis certain que vous croyez avoir compris ce que j'essayais de vous dire, mais êtes-vous sûr que ce que j'ai dit correspondait vraiment à ce que je voulais dire ?
Avatar de l’utilisateur
fffred
 
Messages: 1538
Inscrit le: 10/06/2004 - 19:40:27
Localisation: ile de france

LRIA-ETAT DE NOS RECHERCHES

Messagepar ADRIEN RETOUT » 25/08/2004 - 16:27:00

Je pense faire paraître des articles bientôt au nom du LRIA (www.isd-eu.org, menu LRIA). LRIA -Laboratoire de Recherche en Intelligence Artificielle, cf Forum www.vieartificielle.com, projet LIA.

LIA : projet LIA : naissance d'une intelligence artificielle avancée.

Notre fonction de Heaviside est deja bien plus développé. Nous avons aussi crée des dizaines d'autres fonctions intégrées dans un réseau de Neurones.

Nous avons pris en compte aussi des aspects multi-dimensionnels, nos réseaux sont combinés entre eux, puis forment des super-réseaux, etc...ils ce surperposent grâce à la théorie des ensembles...et forment des concepts de plus en plus abstraits et imaginatifs... qui sort l'IA de son manque d'émotion, d'abstraction...

@+
ADRIEN RETOUT
 

Messagepar Adrien » 25/08/2004 - 21:48:09

Intéressant, et je serais très heureux de publier un de vos articles :)
Adrien
Site Admin
 
Messages: 16167
Inscrit le: 02/06/2004 - 18:58:53
Localisation: 78

Messagepar fffred » 25/08/2004 - 22:07:20

je sais bien que la fonction de heaviside n'est pas celle que l'on utilise habituellement :D
(ce dossier se veut abordable par tous)

mais cette facon de combiner les réseaux ... je connaissait pas :bon:
je suis certain que vous croyez avoir compris ce que j'essayais de vous dire, mais êtes-vous sûr que ce que j'ai dit correspondait vraiment à ce que je voulais dire ?
Avatar de l’utilisateur
fffred
 
Messages: 1538
Inscrit le: 10/06/2004 - 19:40:27
Localisation: ile de france

Messagepar Xavier B. » 02/10/2004 - 19:20:23

J'ai trouvé ce dossier intéressant. Mais je me suis posé une question en le lisant. Quand le cerveau humain identifie une erreur de raisonnement, alors il change l'organisation de ses neurones, autant de fois qu'il le faudra, juqu'à ce qu'il se rende compte que son nouveau réseau ne commette plus l'erreur ? C'est une approche sympa, qui permet de "justifier" que l'on peut apprendre avec uniquement un réseau de neurones, mais il y a sans doute quelque chose d'autre, à mon humble avis... A moins que le cerveau ait aussi appris à apprendre. C'est à dire que si il existe 500 000 dispositions correspondant à une situation particulière ( reconnaitre la lettre "a" sur un tableau par exemple ), et que seules 10 000 de ces dispositions permettent de donner la bonne réponse, alors probabilitiquement, il faudra mettre un sacré bout de temps pour apprendre à reconnaître le "a". A moins que le cerveau ait appris à apprendre, et que sur les 490 000 mauvaises dispositions, il sache rapidement en éliminer, disons 400 000... Et l'apprentissage de l'apprentissage s'effectuant constamment, au final, on parvient à réparer ses erreurs en un coup, voire même à les anticiper... Mais comme je l'ai dit, l'idée est intéressante, autant qu'intriguante, mais je reste persuadé qu'il y a bien plus que cela. J'ai du mal à croire que ma réflexion faite en ce moment en écrivant ce message, ne soit que le résultat d'un parcours de signal électrique fait dans un sens bien précis, et non pas un autre, en passant par tels synapses avec telles sensibilités, et non pas d'autres... Un dossier qui amène à se poser des questions métaphysiques.
Xavier B.
 

Messagepar jyb » 02/10/2004 - 22:32:20

Ce que tu dis est certainement vrai.

En réalité, les réseaux de neuronnes qui sont décrits ici ne sont qu'une pâle copie de ce que fait la nature pour le moment. Mais du fait de nos technologies et connaissances actuelles, c'est déjà beaucoup.

A mon avis, notre cerveau doit utiliser des cas "type", des patterns qu'il apprend au début où qu'il connaît déjà (inné). Il ré-utilise sans doute ces formes -préfaites pour d'autres sujets, après avoir fait des rapprochements.

Mais tout ça, c'est de la logique pure, et nous ne savons pas comment les neuronnes peuvent faire ça :cry: . De même, la reconnaissance d'une situation nouvelle avec raprochement à une situation plus ou moins similaire est complexe à faire pour une machine.

Bref, on est encore très loin de produire un être artificiel ayant le même type d'intelligence que nous :beuh:

au fait: c'est normal si ton pseudo me dit qq chose ? :D

edit orth
Dernière édition par jyb le 27/12/2004 - 11:00:16, édité 1 fois au total.
Avatar de l’utilisateur
jyb
 
Messages: 4142
Inscrit le: 05/06/2004 - 12:01:50
Localisation: Ile de France

Messagepar fffred » 02/10/2004 - 23:37:11

je pense personellement que cette approche b'est pas tellement éloignée de la réalité : un réseau de neurone artificiel de moins de 100 neurones je crois a été réalisé pour reconnaitre les sons à partir des mots.
Les erreurs commises sont, oh surprise, les mêmes que celles d'un enfant !

on retrouve donc un soupçon de crédibilité ....
imaginez la même chose avec des milliers de neurones !
je suis certain que vous croyez avoir compris ce que j'essayais de vous dire, mais êtes-vous sûr que ce que j'ai dit correspondait vraiment à ce que je voulais dire ?
Avatar de l’utilisateur
fffred
 
Messages: 1538
Inscrit le: 10/06/2004 - 19:40:27
Localisation: ile de france

Messagepar Michel » 02/10/2004 - 23:40:28

Le problème est que l'on ne sait tout simplement pas pourquoi le cerveau fonctionne de la façon qu'il fonctionne. Et a priori on en est tres loin.
On sait de mieux en mieux les choses se passent et on arrive à décrire de plus en plus précisement comment les choses se passent.
Mais tout ceci n'est jamais en fait que de la description.
Le problème est d'ailleurs le même avec la génétique et plus généralement avec tout ce qui a trait au vivant avec ce petit plus de complication pour le cerveau puisqu'il nous permet de "fabriquer" des pensées.
Avatar de l’utilisateur
Michel
 
Messages: 19852
Inscrit le: 14/07/2004 - 14:48:20
Localisation: Cote d'Azur

fffred

Messagepar MClaveau » 27/12/2004 - 10:40:24

Lorsque je te cite :
Code: Tout sélectionner
un réseau de neurone artificiel de moins de 100 neurones je crois a été réalisé pour reconnaitre les sons à partir des mots.
Les erreurs commises sont, oh surprise, les mêmes que celles d'un enfant !


Je trouve que le raisonnement ressemble beaucoup à un syllogisme incomplet. Bref, le raisonnement lui-même n'est pas correct.
Ce qui n'empêche pas la conclusion d'être (peut-être) juste.

Bonne journée.
MClaveau
 

Messagepar fffred » 27/12/2004 - 23:28:34

je donnais juste un exemple, je ne faisait pas de raisonnement :heink:
je suis certain que vous croyez avoir compris ce que j'essayais de vous dire, mais êtes-vous sûr que ce que j'ai dit correspondait vraiment à ce que je voulais dire ?
Avatar de l’utilisateur
fffred
 
Messages: 1538
Inscrit le: 10/06/2004 - 19:40:27
Localisation: ile de france

euh...

Messagepar Xavier B. » 03/02/2005 - 14:17:21

Si mon pseudo te dit quelque chose, c'est sans doute que tu connais un gars qui s'appelle "Xavier B.". Non ?

Merci pour ta réponse. Ceci dit, j'ai encore une petite question. Je suis en train de faire un TIPE sur les réseaux de neurones. J'ai commencé par un réseau appliqué à la reconnaissance de caractères. Ca marche, et surtout, ca m'a permis de comprendre comment marche concrètement les réseaux de neurones.
Mais j'aimerais faire une application sympa, dans le cadre du développement durable. Je suis à court d'idée. J'ai vu dans le dossier que tu parlais d'optimisation de trajectoires, de robotique, de prévision... Est ce que tu aurais une idée d'application, des contacts ?

Merci. :sol:
Xavier B.
 

Messagepar jyb » 04/02/2005 - 0:02:07

Effectivement, je connais un Xavier B... !

Par contre, je n'ai pas trop d'idée pour ce qui est d'applications concrêtes du concept, peut-être que Fred a des idées ;)
Avatar de l’utilisateur
jyb
 
Messages: 4142
Inscrit le: 05/06/2004 - 12:01:50
Localisation: Ile de France

Re: euh...

Messagepar fffred » 06/02/2005 - 0:23:51

Xavier B. a écrit:Si mon pseudo te dit quelque chose, c'est sans doute que tu connais un gars qui s'appelle "Xavier B.". Non ?

Merci pour ta réponse. Ceci dit, j'ai encore une petite question. Je suis en train de faire un TIPE sur les réseaux de neurones. J'ai commencé par un réseau appliqué à la reconnaissance de caractères. Ca marche, et surtout, ca m'a permis de comprendre comment marche concrètement les réseaux de neurones.
Mais j'aimerais faire une application sympa, dans le cadre du développement durable. Je suis à court d'idée. J'ai vu dans le dossier que tu parlais d'optimisation de trajectoires, de robotique, de prévision... Est ce que tu aurais une idée d'application, des contacts ?

Merci. :sol:
J'ai aussi découvert les réseaux de neurones avec mon tipe :)
et d'ailleurs c'était de la reconnaissance de caractères également ...

Pour le développement durable, ca devient assez compliqué. Par exemple, je ne connais pas de réseau capable de prévoir la météo ... :fada:
(J'avais meme essayé de le faire, mais il faut énormément de données, et ca ne marche pas vraiment).
Sinon je vois pas trop le rapport avec l'optimisation de trajectoires. Je parlais par exemple de calculer la trajectoire optimale d'un avion connaissant les paramètres comme les points d'arrivée et de départ, le vent, .... (cf. tipe ;) )

Bref, placer des réseaux de neurones sur le thème du développement me parait un peu difficile, ou alors tiré par les cheveux.
:grat:
je suis certain que vous croyez avoir compris ce que j'essayais de vous dire, mais êtes-vous sûr que ce que j'ai dit correspondait vraiment à ce que je voulais dire ?
Avatar de l’utilisateur
fffred
 
Messages: 1538
Inscrit le: 10/06/2004 - 19:40:27
Localisation: ile de france

Messagepar xeter » 10/02/2005 - 1:40:02

Moi j'ai une idée :d :sol:

Un réseau de neurones est capable de différencier des caractères. Il pourrait dans un perfectionnement de la technologie différencier des emballages ou tout autre dans un centre de tri.
L'avantage principal est l'économie qui peut rendre le tri de déchets rentable, ( il ne l'est pas toujours loin de là ) de part le remplacement de l'homme par la machine.


J'entends parler de TIPE et il me semble que c'est une discipline que l'on trouve en Prépa. Je suis en TS et j'envisage d'aller en Prépa. Pourriez vous me faire part de vos avis et conseils ?

Merci ;)
xeter
 

Messagepar jyb » 10/02/2005 - 10:44:12

Là, il y a de l'idée :D

pour la prépa, il y a effectivement des taupes et ex-taupes ici et un topic où il a été question de prépa:

http://www.techno-science.net/forum/viewtopic.php?t=885
Avatar de l’utilisateur
jyb
 
Messages: 4142
Inscrit le: 05/06/2004 - 12:01:50
Localisation: Ile de France

Messagepar fffred » 10/02/2005 - 18:10:16

Le TIPE est en fait un projet qu'il faut présenter lors des concours

pour la reconnaissance d'emballages, c'est une bonne idée
je pense d'ailleurs que cela se fait déja (j'ai moi meme une cocote à riz qui marche avec des réseaux de neurones :D )
par contre pour faire ca en TIPE, c'est très difficile
on a pas accès facilement à des centres de tri des déchets :o
je suis certain que vous croyez avoir compris ce que j'essayais de vous dire, mais êtes-vous sûr que ce que j'ai dit correspondait vraiment à ce que je voulais dire ?
Avatar de l’utilisateur
fffred
 
Messages: 1538
Inscrit le: 10/06/2004 - 19:40:27
Localisation: ile de france

Messagepar Michel » 10/02/2005 - 18:43:51

fffred a écrit:(j'ai moi meme une cocote à riz qui marche avec des réseaux de neurones :D )


ca vaut mon micro-onde qui parle japonais, ca :siffle:
Avatar de l’utilisateur
Michel
 
Messages: 19852
Inscrit le: 14/07/2004 - 14:48:20
Localisation: Cote d'Azur

Messagepar fffred » 10/02/2005 - 21:58:24

:houla: la classe !!!
je suis certain que vous croyez avoir compris ce que j'essayais de vous dire, mais êtes-vous sûr que ce que j'ai dit correspondait vraiment à ce que je voulais dire ?
Avatar de l’utilisateur
fffred
 
Messages: 1538
Inscrit le: 10/06/2004 - 19:40:27
Localisation: ile de france

Suivant

Retourner vers Mathématiques

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invités

cron