Dans les reseaux que je connais, il me semble que l'on fait des restrictions fortes afin d'obtenir des algorithmes "raisonables" en temps de calcul. Cela nous masquerait-il certaines caracteristiques importantes pour les systemes desquels une intelligence emerge ? Ou alors, existe-t-il des justifications au fait que les restrictions pratiques preservent toutes les potentialites des resaux les plus generaux ?
Je m'explique, afin d'etre plus intelligible. Un reseau de neurones est constitue d'automates relies entre eux par la structure abstraite. Ces automates evoluent en temps discret : selon leurs excitations d'entree et leur etat au temps n, un automate effectue une transition vers un nouvel etat au temps n+1. Il est clair par exemple que convenir de "le signal en sortie de l'automate est specifie par son etat" est naturel et n'imposera pas de restrictions sur les potentialites de clacul. Si au depart on avait convenu des deux ensembles distincts pour les etats (N1 etats differents) et les signaux de sorties (N2 signaux possibles en sortie), il faudra sans doute utiliser un ensemble plus grand d'etats (ensemble de cardinalite N3), mais dont le nombre est borne par N2*N1 (cardinalite des paires initiales).
En revanche, il est tres loin d'etre clair pour moi que les restrictions suivantes ne limitent pas la puissance d'un reseau de neurones :
- pourquoi les signaux sont-ils scalaires ? Pourquoi ne pas prendre des signaux a plusieurs composantes, des vecteurs ? Dans le cerveau, il me semble que les molecules agissant au niveau synaptique sont legions.
- pourquoi se restreindre a une fonction "echellon" ? Generalement, pour calculer si une transition aura lieu, on fait une somme ponderee des signaux en entree, et si cette somme depasse un seuil, on induit la transition vers l'etat suivant. Il me semble dans ce cas que c'est effectivement ce qui se passe dans les neurones biologiques. Mais pourquoi ne pas permettre quelque chose de plus general ? Par exemple, une "intensite" de signal en sortie pourrait etre dependante continuement de l'intensite en entree.
- il me semble aussi que l'on se restreint toujours a ce que le signal en sortie ne soit envoye que vers une seule entree d'un autre automate dans la structure. Meme si l'on utilise des signaux scalaires, n'est-il pas utile que le scalaire puisse etre communique a plusieurs membres cooperants ?
- la structure elle meme est figee et il n'y a pas d'adaptation dynamique. L'apprentissage est une phase preliminaire a l'exploitation du reseau, mais cet apprentissage cesse ensuite, et d'autre part les liens du reseau ne sont jamais reorgranises
J'ai bien conscience que l'on arrive deja a faire tellement de choses avec des reseaux simples et pratiques que toutes ces possibilites paraissent superflues. Aussi, dans la liste j'ai essaye de faire un ordre de pertinence : la premiere possibilite (utiliser des vecteurs) peut etre tres utile, mais la derniere possibilite par exemple est vraissemblablement utopique. Mon questionnement n'est pas tant dans un contexte de "Comment ameliorer les algorithmes ?" qu'une reflexion (vague pour moi) de "Comment emerge l'intelligence ?"
Par exemple, une machine de Turing elementaire : un ruban de papier, un ruban de brouillon et un ruban d'instruction, on n'ecrit que des 0 et des 1, on n'efface pas le brouillon ... est un modele qui permet en theorie de faire tout ce qu'un ordinateur peut faire (machine de Turing universelle). De meme, je voudrais savoir si l'on connait quelles hypotheses dans le cas d'un reseau de neurones permettent de conserver toute les potentialites d'un reseau general, plus proche de la realite biologique du cerveau, i.e. si l'on est capable de separer celles-ci des hypotheses que l'on fait pour des raisons pratiques de complexite et de temps de calcul.
D'avance je vous remercie pour votre temps, ainsi que d'avoir choisi d'apporter vos precieuses lumieres a FS a l'occasion de cette "Fete de la Science".
-----