Aller au contenu

Les petites inventions qui font faire de grands bonds en avant


h16

Messages recommandés

Rien bité, quelqu'un m'explique ce que j'ai vu ?

C Elegans est une sorte de ver avec cerveau très simple (environ 300 neurones) et dont on connaît totalement le "connectome" (c'est-à-dire l'ensemble des connexions existantes entre ces neurones).

À partir de là ces chercheurs ont programmé un réseau de neurones artificiels qui sont connectés de la même manière, et donc une simulation de cerveau de C Elegans. Ils ont foutu tout ce bordel dans un robot (à la place d'un programme classique) en connectant les aires sensorielles à des capteurs, les aires motrices à des moteurs etc. et ont regardé comment ledit robot se débrouille.

Et il s'avère que le robot se comporte de manière pas trop mauvaise. Sachant qu'on parle d'un ver donc il ne faut pas s'attendre à des trucs de malade, mais il arrive à apprendre à s'écarter des murs alors que personne ne l'a programmé pour ça.

Lien vers le commentaire

Et après ça il va y avoir des gens pour continuer d'insister pour dire que le monde n'est pas déterministe, que le cerveau a des propriétés mystico-supernaturelles.

et passeront à côté du merveilleux véritable de cet univers.

Lien vers le commentaire

Je me sens obligé d'ajouter qu'on peut faire exactement la même avec un réseau de neurones qui ne reprend pas du tout la structure d'un cerveau, ou avec toute autre méthode de machine-learning totalement abstraite. Ça serait certainement même plus efficace puisque le cerveau de ver, par définition, est adapté de manière optimale à un corps de ver. Par ailleurs du neurone artificiel au vrai neurone il y a plusieurs dizaines de pas.

Ça n'enlève rien au côté classe de ce qu'ils font.

Lien vers le commentaire

Et après ça il va y avoir des gens pour continuer d'insister pour dire que le monde n'est pas déterministe, que le cerveau a des propriétés mystico-supernaturelles.

 

 

La question c'est celle de la conscience en général, et le robot de la vidéo n'a probablement pas de conscience.

Lien vers le commentaire

Sauf si j'ai raté un truc, ce n'est pas entièrement une première. Me semble avoir lu une news équivalente dans un mag de vulgarisation il y a déjà quelques années.

Ça me rappelle certaines expériences conduites dans le cadre de l'exploration spatiale: il faudrait que je googeule un peu, mais je me souviens d'un docu la dessus ou un chercheur en robotique expliquait que jusqu'ici on tentait de créer les algos les plus complexes possibles pour permettre au robot d'exécuter le plus de taches possible et être aussi autonomes que possible.

Une toute nouvelle approche, selon ce type, consistait a revenir à des programmes beaucoup plus simples, avec un simple système de conditions/objectifs simples ("atteindre le point A sans s'autodetruire") et un système d'instruction de sortie très basique ("actionne aléatoirement les servo moteurs des roues"), avec un système de sélection et de mutation aléatoire des processus les plus efficaces.

Autrement dit ils ont recréé un système évolutif artificiel: la principale fonction du programme étant de générer des copies de son propre algorithme, de sélectionner les plus efficaces, et de recommencer...

Dans le documentaire, le type montrait un robot très simple basé sur ce concept: insectoide, 6 "pattes" actionnées par servomoteurs, un capteur LED. Le robot est programmé pour se rapprocher le plus vite possible d'une source de lumière (le : rechercher l'intensité maximum perçue par le capteur), et 12 instructions de sortie: avant- arrière pour chaque patte.

Le type allume la bête. Au début le machin ne fait rien de spécial: les pattes bougent aléatoirement et il se tortille vainement sur le sol. Puis assez rapidement un mouvement émergé, de plus en plus net, de plus en plus organisé... Au bout de quelques centaines de "générations" du programme, le robot a clairement une "démarche" organisée, parfois totalement inattendue, mais généralement très efficace. Le type expliquait que si on ajoutait des obstacles, ou qu'on les plaçait sur des terrains plus difficiles, les robots galeraient quelques temps, mais finissaient toujours par s'adapter plus ou moins.

Pour illustrer, le type ramasse un des robots à ses pieds et lui arrache une patte. Le robot commence a claudiquer, puis petit à petit, il compense et recommence à avancer...

Il faut que j'essaie de retrouver une vidéo, ça m'avait totalement fasciné.

Lien vers le commentaire

Oui, c'est des algorithmes génétiques. Le truc inédit ici c'est qu'on copie intégralement la structure d'un cerveau, mais comme je le disais ce n'est pas forcément une solution optimale par rapport à un but. Par contre ça peut faire rêver à l'upload si on se dit qu'on pourrait en arriver à simuler des cerveaux humains.

Lien vers le commentaire

Voilà traditionnellement lorsqu'on a un réseau de neurones on passe par une phase d'entrainement pour lui apprendre à effectuer la tâche souhaitée, typiquement on veut détecter si un mail est du spam ou non, si un patient est malade de cancer ou non à partir d'une radio etc etc. L'entrainement consiste à faire varier les poids qu'on attribue à chaque neurone par un mécanisme qui vise à minimiser l'erreur en sortie (je vous passe les noms barbares). Pour ça il faut un échantillon d'entrainement et une méthode de calcul de l'erreur.

 

Là plutôt que d'entraîner le réseau de neurones, ils ont pris la structure du réseau propre au ver. Connecté des senseurs aux neurones en entrée et des moteurs aux neurones de sorties et hop voilà un robot qui bouge tout seul.

Évidemment comme le ver n'a pas de moteur, ils ont créé une matrice qui regroupe les neurones activant les muscles du ver et à partir de toutes ces activations ils en dérivent l'activation adéquate des moteurs.

 

La chose qui n'est pas proprement expliquée dans la vidéo c'est comment est obtenue cette transformation muscles -> moteur, c'est à mon avis pas complètement trivial de la laisser de côté.

Lien vers le commentaire

Oui, c'est des algorithmes génétiques. Le truc inédit ici c'est qu'on copie intégralement la structure d'un cerveau, mais comme je le disais ce n'est pas forcément une solution optimale par rapport à un but. Par contre ça peut faire rêver à l'upload si on se dit qu'on pourrait en arriver à simuler des cerveaux humains.

En fait, on ne copie que le réseau neuronal, mais on ne sait toujours pas si il faut répliquer les cellules gliales ou non, ni ce qu'elles font exactement.
Lien vers le commentaire

C'est surtout qu'on ne sait pas si elles ont un rôle computationnel, en revanche pour certains types de cellules gliales on connaît un peu leur rôle par exemple sur la vitesse de transmission du signal dans un axone, d'autres sécrètent le liquide cérébro-spinal (le liquide dans lequel le cerveau baigne et la moelle épinière baignent), autres apportent aux neurones différents types de molécules pour la nutrition.

Lien vers le commentaire

L'entrainement consiste à faire varier les poids qu'on attribue à chaque neurone par un mécanisme qui vise à minimiser l'erreur en sortie (je vous passe les noms barbares).

Hum, l'entrainement consiste à faire varier les poids qu'on attribue à chaque connexion entre 2 neurones. (D'où le coût machine important, du fait du nombre).

 

Algo = basiquement rétro-propagation de gradient. Un algorithme avec une histoire assez intéressante btw.

Lien vers le commentaire

Il y a des trouzaines d'algo tous plus performants les uns que les autres. Vous seriez surpris de voir combien une régression linéaire toute bête est performante quand le contexte s'y prête.

 

Le plus difficile c'est de trouver les bons inputs à faire passer dans la moulinette et de bien choisir son output.

 

Pour tous les algo vous avez besoin d'un échantillon d'apprentissage.

Lien vers le commentaire

Pour l'anecdote, les algorithmes de classification les plus performants en ce moment ne se basent pas sur des réseaux de neurones mais sur les SVM, qui ont plutôt leurs origines dans les stats.

Pour une anecdote bis, on s'aperçoit que, en fin d'apprentissage, certains réseaux de neurones ont réalisé ... une PCA (analyse en composantes principales). Les stats ne sont (forcément) jamais bien loin.

 

Lien vers le commentaire

Hum, l'entrainement consiste à faire varier les poids qu'on attribue à chaque connexion entre 2 neurones. (D'où le coût machine important, du fait du nombre).

 

Algo = basiquement rétro-propagation de gradient. Un algorithme avec une histoire assez intéressante btw.

Oui bon je voulais pas faire chier avec les barbarismes, je rappelle que certains ont dit qu'ils n'avaient rien bité à la vidéo de la page précédente.

Lien vers le commentaire

Je me sens obligé d'ajouter qu'on peut faire exactement la même avec un réseau de neurones qui ne reprend pas du tout la structure d'un cerveau, ou avec toute autre méthode de machine-learning totalement abstraite. Ça serait certainement même plus efficace puisque le cerveau de ver, par définition, est adapté de manière optimale à un corps de ver. Par ailleurs du neurone artificiel au vrai neurone il y a plusieurs dizaines de pas.

Ça n'enlève rien au côté classe de ce qu'ils font.

 

+1

 

Ca se fait avec des hexapodes depuis les années 90.

Le perceptron multicouches est particulièrement adapté à ce genre de système de décision.

 

Mais ça reste classe et plus fluide qu'aux débuts...

Lien vers le commentaire

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...