Comment un ordinateur apprend

Mathématiques, sciences humaines, anthropologie, écologie, biologie, génétique, médecine, ou encore philologie, linguistique, grammaire et autres. La vaste partie consacrée aux sciences dans leur ensemble, et dans leur unicité.
Répondre
Avatar de l’utilisateur
Imladir
Messages : 25
Inscription : mar. 9 juil. 2013 10:25
Présentation : [url=http://adulte-surdoue.fr/presentations/lumiere-t3797.html]ici[/url]
Profil : Bilan +
Test : WISC
Localisation : Orsay
Âge : 39

Comment un ordinateur apprend

Message par Imladir »

Qu'est-ce que l'apprentissage ?

Dès le début des années 50, on commence à se poser la question de savoir si les "machines" peuvent "penser". Dans Computing machinery and intelligence, Mind, 1950, Alan Turing pose déjà cette question. Mais que veut dire "penser" ? Plutôt que de tenter de répondre à cette question, il en introduit une nouvelle : "Les machines peuvent-elles faire ce que nous (entités pensantes) pouvons faire ?".

En 1959, Arthur Samuel définit l'apprentissage comme étant le "champ d'étude donnant la capacité aux ordinateurs d'apprendre sans être explicitement programmés pour". En 1993, Tom M. Mitchell propose une définition plus formelle : "On dit d'un programme informatique qu'il apprend d'une expérience E étant donné des classes de tâches T et une mesure de performance P, si sa performance pour les tâches de T telle que mesurée par P est améliorée par l'expérience E". Cette dernière définition en plus d'être bien plus claire a l'avantage d'être plus fidèle à la proposition de Turing, et est donc la plus utilisée.

Cette définition revient à chercher à ce que le programme soit capable de généraliser ce qu'il apprend à partir d'un ensemble d'exemples de référence à des exemples nouveaux, dont il ne connaît pas la "classe".

Prenons l'exemple de la reconnaissance d'image. Je cherche à construire un programme qui va me dire si une image représente un chat ou une voiture. Je vais donc lui fournir un grand nombre d'images différentes, avec plein de chats et de voitures différents, dans diverses positions, de couleurs différentes etc. Le programme va essayer de trouver les invariants, c'est à dire les structures que l'on retrouve chez tous les chats mais pas dans les voitures, et inversement.
Une fois le classifieur entrainé, je prend une photo de mon chat à moi, image que le classifieur n'a jamais vu. Bien que ne l'ayant jamais vu, il doit pouvoir me dire que c'est un chat : il a généralisé. De même, si je lui montre un jouet en forme de voiture, il devrait pouvoir me dire qu'il s'agit d'une voiture. Mais le classifieur ne peut faire que ce pour quoi il a été entraîné : si je lui montre une image d'avion, il me dira probablement que c'est une voiture, il est incapable de me dire que c'est ni l'un ni l'autre.

Les différentes approches

On trouve dans le monde de l'apprentissage trois grandes familles d'approches : l'apprentissage supervisé, l'apprentissage non-supervisé, et l'apprentissage par renforcement.

L'apprentissage supervisé

L'apprentissage supervisé est ce qu'il y a de plus "simple" : on sait ce qu'on veut différencier (par exemple des voitures et des chats) et on dispose de nombreuses données pour entraîner le modèle (ici, plein d'images différentes de voitures et de chat). Puisqu'on sait très exactement ce dont on dispose, le classifieur n'a plus qu'à trouver les points communs au sein d'une même classe qui sont distincts de ceux des autres classes. L'avantage est que ces classifieurs sont relativement faciles à mettre en place, donnent souvent de très bons résultats pour des tâches "faciles", mais ont pour inconvénient essentiel d'être très sensibles au bruit : par exemple si une image est floue ; en outre, ces classifieurs nécessitent de très nombreux exemples de référence pour parvenir à trouver les points communs.

L'apprentissage non-supervisé

Cette famille est de l'autre côté du spectre, et c'est ici que l'on trouve les problème les plus difficiles à résoudre. En effet, on part ici du principe qu'on ne connait pas la classe des exemples de référence : en gros, on peut imaginer qu'on prend l'intégralité des images référencées par google, et on balance le tout dans le classifieur. Comme on ne peut pas demander à un humain d'apposer un label (chat, voiture, vélo, etc.) à chaque image, le classifieur va essayer de trouver une bonne représentation des images : il va essayer de trouver des structures qui peuvent ou non être présentes (des lignes selon différentes orientations, des lignes qui se rejoignent selon certains angles, puis qui forment des structures précises). Ensuite, on prend quelques images dont on connaît les labels, et on dit au classifieur : ça c'est un chat. Le classifieur regarde quelles sont les structures qu'il a appris qui sont présentes sur la nouvelle image, et va déterminer que toutes les images sur lesquelles ces mêmes structures sont présentes sont des chats.

L'apprentissage par renforcement

Famille d'apprentissage un peu à part, elle est surtout utilisée dans le cadre de la robotique. On ne cherche pas ici à classifier quoi que ce soit, mais à apprendre des comportements intéressants. Prenons par exemple un robot aspirateur dans une pièce carrée, avec à un coin une station de recharge. Le but du robot est évidemment qu'il passe le plus de temps possible à aspirer, tout en s'assurant de toujours avoir l'énergie nécessaire pour fonctionner : il doit donc retourner fréquemment sur la station de recharge, mais en y passant le minimum de temps possible. C'est ce qu'on appelle la fonction de récompense. Le principe va donc être d'apprendre le comportement qui va maximiser cette récompense.
Ces utilisateurs ont remercié l’auteur Imladir pour son message (13 au total) :
Mlle RoseHoppypixelvoisbôkenkaZaWaldarnaxolotlsandersdédaleJoebarKanmadeleinestok

Avatar de l’utilisateur
Imladir
Messages : 25
Inscription : mar. 9 juil. 2013 10:25
Présentation : [url=http://adulte-surdoue.fr/presentations/lumiere-t3797.html]ici[/url]
Profil : Bilan +
Test : WISC
Localisation : Orsay
Âge : 39

Re: Comment un ordinateur apprend

Message par Imladir »

Un début pour planter le cadre général du domaine, je compléterai petit à petit, avant de passer à comment utiliser ça dans le cadre des neurosciences, et ce qu'on peut en faire.

Première fois que j'essaye de faire ce genre de trucs, donc n'hésitez pas à faire des remarques ou des suggestions.

Avatar de l’utilisateur
Hoppy
Messages : 1778
Inscription : jeu. 20 sept. 2012 09:03
Présentation : [url=http://adulte-surdoue.fr/presentations/que-cache-sous-masque-t2667.html]Ici[/url]
Profil : Bilan +
Test : WAIS
Localisation : 13
Âge : 36
Contact :

Re: Comment un ordinateur apprend

Message par Hoppy »

Merci pour ce post Amladir, mais je peux seulement me cantonner à ces remerciements car je pourrais y contribuer au vu de mon niveau...

Ceci dit, il me tarde de voir ta seconde partie en le reliant aux neurosciences :-)
«La vie est un mystère qu'il faut vivre, et non un problème à résoudre» - Gandhi

Avatar de l’utilisateur
Miss dans la lune
Mud Drifting
Messages : 730
Inscription : ven. 3 mai 2013 12:18
Profil : Bilan +
Test : WAIS

Re: Comment un ordinateur apprend

Message par Miss dans la lune »

pas de remarques, pas de suggestions, on attend impatiemment la suite :-) ; merci de nous faire partager tes connaissances.

Avatar de l’utilisateur
SolarLight
Messages : 51
Inscription : mer. 19 juin 2013 11:20
Profil : Bilan non concluant
Test : WAIS
Localisation : Sur Terre, à la recherche d'un monde meilleur
Âge : 37
Contact :

Re: Comment un ordinateur apprend

Message par SolarLight »

Ce début d'exposé du sujet est intéressant, c'est prometteur, et j'ai aussi envie de lire la suite, c'est concis, clair et compréhensible! Merci!
Trouver les 2 derniers nombres de cette série: 1 2 1 3 2 5 3 7 5 11 8 13 13 ... ... .

Avatar de l’utilisateur
Imladir
Messages : 25
Inscription : mar. 9 juil. 2013 10:25
Présentation : [url=http://adulte-surdoue.fr/presentations/lumiere-t3797.html]ici[/url]
Profil : Bilan +
Test : WISC
Localisation : Orsay
Âge : 39

Re: Comment un ordinateur apprend

Message par Imladir »

Les principaux algorithmes

Les arbres de décision

L'apprentissage d'arbres de décision est une technique relativement simple et par conséquent très utilisée : il est même possible de construire ces arbres sans avoir la moindre notion en Apprentissage... Mais alors l'arbre ne sera probablement par optimal.

Prenons un exemple simple : vous voulez jouer au tennis, mais le terrain n'est pas toujours ouvert. Durant deux semaines, vous avez enregistré les conditions atmosphériques et regardé si le terrain était ouvert ou pas. Vous avez obtenu le tableau suivant :

[table=width:50%;border:1px solid #cccccc;][tr=text-align:center;][td=border:1px solid #cccccc;]Jour[/td][td=border:1px solid #cccccc;]Temps[/td][td=border:1px solid #cccccc;]Température[/td][td=border:1px solid #cccccc;]Humidité[/td][td=border:1px solid #cccccc;]Vent[/td][td=border:1px solid #cccccc;]Terrain Ouvert[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J1[/td][td=border:1px solid #cccccc;]Soleil[/td][td=border:1px solid #cccccc;]Chaude[/td][td=border:1px solid #cccccc;]Elevée[/td][td=border:1px solid #cccccc;]Faible[/td][td=border:1px solid #cccccc;]Non[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J2[/td][td=border:1px solid #cccccc;]Soleil[/td][td=border:1px solid #cccccc;]Chaude[/td][td=border:1px solid #cccccc;]Elevée[/td][td=border:1px solid #cccccc;]Fort[/td][td=border:1px solid #cccccc;]Non[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J3[/td][td=border:1px solid #cccccc;]Nuageux[/td][td=border:1px solid #cccccc;]Chaude[/td][td=border:1px solid #cccccc;]Elevée[/td][td=border:1px solid #cccccc;]Faible[/td][td=border:1px solid #cccccc;]Oui[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J4[/td][td=border:1px solid #cccccc;]Pluie[/td][td=border:1px solid #cccccc;]Moyenne[/td][td=border:1px solid #cccccc;]Elevée[/td][td=border:1px solid #cccccc;]Faible[/td][td=border:1px solid #cccccc;]Oui[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J5[/td][td=border:1px solid #cccccc;]Pluie[/td][td=border:1px solid #cccccc;]Fraîche[/td][td=border:1px solid #cccccc;]Normale[/td][td=border:1px solid #cccccc;]Faible[/td][td=border:1px solid #cccccc;]Oui[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J6[/td][td=border:1px solid #cccccc;]Pluie[/td][td=border:1px solid #cccccc;]Fraîche[/td][td=border:1px solid #cccccc;]Normale[/td][td=border:1px solid #cccccc;]Fort[/td][td=border:1px solid #cccccc;]Non[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J7[/td][td=border:1px solid #cccccc;]Nuageux[/td][td=border:1px solid #cccccc;]Fraîche[/td][td=border:1px solid #cccccc;]Normale[/td][td=border:1px solid #cccccc;]Fort[/td][td=border:1px solid #cccccc;]Oui[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J8[/td][td=border:1px solid #cccccc;]Soleil[/td][td=border:1px solid #cccccc;]Moyenne[/td][td=border:1px solid #cccccc;]Elevée[/td][td=border:1px solid #cccccc;]Faible[/td][td=border:1px solid #cccccc;]Non[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J9[/td][td=border:1px solid #cccccc;]Soleil[/td][td=border:1px solid #cccccc;]Fraîche[/td][td=border:1px solid #cccccc;]Normale[/td][td=border:1px solid #cccccc;]Faible[/td][td=border:1px solid #cccccc;]Oui[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J10[/td][td=border:1px solid #cccccc;]Pluie[/td][td=border:1px solid #cccccc;]Moyenne[/td][td=border:1px solid #cccccc;]Normale[/td][td=border:1px solid #cccccc;]Faible[/td][td=border:1px solid #cccccc;]Oui[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J11[/td][td=border:1px solid #cccccc;]Soleil[/td][td=border:1px solid #cccccc;]Moyenne[/td][td=border:1px solid #cccccc;]Normale[/td][td=border:1px solid #cccccc;]Fort[/td][td=border:1px solid #cccccc;]Oui[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J12[/td][td=border:1px solid #cccccc;]Nuageux[/td][td=border:1px solid #cccccc;]Moyenne[/td][td=border:1px solid #cccccc;]Elevée[/td][td=border:1px solid #cccccc;]Fort[/td][td=border:1px solid #cccccc;]Oui[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J13[/td][td=border:1px solid #cccccc;]Nuageux[/td][td=border:1px solid #cccccc;]Chaude[/td][td=border:1px solid #cccccc;]Normale[/td][td=border:1px solid #cccccc;]Faible[/td][td=border:1px solid #cccccc;]Oui[/td][/tr]
[tr=text-align:center;][td=border:1px solid #cccccc;]J14[/td][td=border:1px solid #cccccc;]Pluie[/td][td=border:1px solid #cccccc;]Moyenne[/td][td=border:1px solid #cccccc;]Elevée[/td][td=border:1px solid #cccccc;]Fort[/td][td=border:1px solid #cccccc;]Non[/td][/tr][/table]

A partir de ce tableau, on va chercher à construire l'arbre de décision optimal, c'est à dire celui qui permettra de réduire au maximum la taille de l'arbre, pour permettre de regarder le moins de critères possible. L'arbre construit est alors :
Image

Maintenant, nous sommes le jour 15. Vous constatez qu'il fait beau et chaud, qu'il y a un fort vent mais que l'humidité est normale. Plutôt que d'essayer de retrouver dans le tableau une ligne qui vous intéresse, il vous suffit d'utiliser l'arbre, et vous savez alors très rapidement que vous pouvez aller jouer, le terrain sera ouvert !

Les arbres de décisions sont parfois très puissants : pour les passagers du Titanic, à partir de la classe de voyage, du nom, du sexe, de l'âge, du nombre de parents/frères/sœurs à bord, du numéro du ticket, de l'emplacement de la cabine et du port d'embarquement, on peut déterminer avec une fiabilité de plus de 90% qui a survécu au naufrage.

Mais les arbres de décision ont évidemment leurs lacunes : on ne peut par exemple pas les utiliser (ou difficilement et approximativement) lorsqu'on a des mesures continues comme la vitesse, le poids, ou encore lorsqu'on cherche à déterminer une classe qui n'est elle non plus pas discrète (au sens mathématique du terme, donc pas du type oui/non, blanc/bleu/rouge, riche/pauvre, etc).

Les méthodes de clustering

Une autre méthode d'apprentissage très utilisée repose sur un algorithme appelé kNN : k-nearest neighbours. Ou en bon français, k-plus proches voisins. Le principe est très simple :

Mettons que vous ayez des données taille/poids d'un certain nombre de personnes. Vous savez s'il s'agit d'hommes ou de femmes. Vous pouvez dès lors construire un graphe de ce style là (on imagine en bleu les femmes, en rouge les hommes) :
Image

Puis on vous donne le poids et la taille d'une personne, et vous devez déterminer s'il s'agit d'un homme ou d'une femme, le point vert :

Image

Vous pouvez chercher à regarder la distance avec tous les points que vous avez déjà enregistré, et chercher quels sont les trois plus proches (à l'intérieur du cercle plein). Deux d'entre eux sont rouges : vous allez classifier votre nouveau point comme un rouge également. Mais vous pouvez aussi regarder les cinq plus proches voisins (à l'intérieur du cercle pointillé). Alors votre point devient un bleu.

On le voit, le principe est très simple, mais est très sensible au bruit, et il peut être difficile de déterminer combien de voisins il faut regarder pour parvenir à classifier le nouveau point.

Un autre soucis provient de ce genre de problème :
Image

Si l'on regarde les plus proches voisins, ce point devrait être classifié bleu. Mais on remarque assez aisémment que les rouges semblent former une ligne...sur laquelle se trouve le nouveau point, et qu'il serait certainement plus intéressant de le classifier en rouge. Pour parvenir à ce résultat, on va essayer de trouver une déformation de l'espace pour éloigner les bleus de la ligne rouge : c'est ce qu'on appelle l'apprentissage de métrique.
Image

Les réseaux Bayésiens

Ces techniques d'apprentissages reposent sur l'utilisation des probabilités. L'immense majorité des anti-spams fonctionnent grâce à ça. Le principe est relativement simple :
Je commence par prendre un grand nombre de mails, que j'ai déjà classé à la main, spam ou non-spam. Je regarde les mots présents dans les spams, et ceux présents dans les non-spams : j'obtiens, étant donné une classe la probabilité d'y trouver un mot donné. Prenons par exemple le mot viagra : il est très présent dans les spams, mais assez peu voire pas du tout dans les non-spams.

Maintenant, je reçois un nouveau mail, qui contient le mot viagra : quelle est alors la probabilité qu'il s'agisse d'un spam ?

En compliquant les choses (très sensiblement, via des Modèles de Markov Cachés pour ceux que ça intéresse), on obtient des applications comme la reconnaissance de la parole. En gros, j'ai entendu telle suite de son, quel est le son suivant le plus probable ? Etant donné que j'ai eu telle suite de mots et tels phonèmes, quel est le mot le plus probable maintenant ?

Les Machines à Vecteurs Supports

Les SVMs (Support Vector Machine) sont une technique d'apprentissage extrêmement solide et utilisée, formulée mathématiquement. Utilisé essentiellement pour une classification binaire (donc avec deux classes), les SVMs font chercher à obtenir une plan de séparation entre deux classes, tout en conservant la marge la plus importante possible pour prendre en compte le bruit :
Image

Evidemment, le plan (ou hyper-plan, on ne travaille pour ainsi dire jamais en deux dimensions...) peut ne pas être linéaire, les fonctions polynomiales (de degrés 2 à 10 généralement) sont très utilisées, voire des fonctions beaucoup plus compliquées qu'on appelle les noyaux.

Lorsque j'ai un nouvel exemple qui arrive, je regarde simplement de quel côté de l'hyper-plan il se trouve, et je lui donne la classe qui correspond.

Les réseaux de neurones

Inspirés du fonctionnement biologique, l'apprentissage par réseaux de neurones a un fonctionnement beaucoup plus empirique et moins mathématique que les SVMs (ce qui est à l'origine d'une guéguerre entre les deux communautés d'ailleurs).
Image

Le principe est relativement simple : on a un réseau de "neurones" en plusieurs couches.
- La couche d'entrée reçoit les valeurs de l'exemple qu'on considère (par exemple, le niveau de gris d'un pixel donné pour une image, un neurone = un pixel)
- Une ou plusieurs couches intermédiaires, où chaque neurone va "intégrer" ce que produit chaque neurone de la couche précédente, chaque neurone accordant un poids différent (une importance différente) aux neurones de la couche précédente
- Une couche de sortie, qui est composée d'autant de neurones que de classes qu'on souhaite reconnaître.

Chaque neurone fonctionne sur le même modèle que les neurones biologiques : si l'activation des neurones inférieurs dépassent un certain seuil (modulé par les poids propre au neurone) alors le neurone s'active. Sinon, il reste muet.

Durant une vingtaine d'années, les réseaux de neurones ont rencontré un gros mur, qu'ils n'ont réussi à franchir qu'au début des années 2000, et sont encore aujourd'hui en plein développement.

Le gros avantage des réseaux de neurone est qu'ils produisent des résultats très intéressants, chaque neurone étant sensible à des caractéristiques différentes, et plus on "monte" dans les couches, plus les neurones sont "évolués" et reconnaissent des structures complexes (plutôt que de parler du neurone grand-mère, on parle du neurone chat).

Un exemple de ce à quoi les neurones situés dans une couche inférieure dans le cadre d'une reconnaissance d'image peuvent être sensibles (chaque case correspond à un unique neurone, ils sont tous sur la même couche) :
Image
Si une image présente la caractéristique préférée d'un neurone, alors celui-ci s'active, une manière de dire "Hey, moi j'ai trouvé une barre oblique à 45° !", un autre pourra dire "Hey, moi j'ai vu du bleu !".

Si on regardait la préférence de neurones de couches supérieures, on pourrait voir apparaître des neurones qui réagissent à des formes géométriques précises ("Toi tu as vu une barre à 45° et toi tu as vu du bleu ? Attend voir. Hey, mais c'est une barre bleue oblique à 45° dis donc, et avec tes copains d'à côté, je peux même dire que c'est un carré bleu légèrement penché !"), puis à des choses nettement plus complexes, comme des visages.
Ces utilisateurs ont remercié l’auteur Imladir pour son message (7 au total) :
Mlle RoseJoebarW4xpixelvoisWaldarnKanmadeleine

Avatar de l’utilisateur
Imladir
Messages : 25
Inscription : mar. 9 juil. 2013 10:25
Présentation : [url=http://adulte-surdoue.fr/presentations/lumiere-t3797.html]ici[/url]
Profil : Bilan +
Test : WISC
Localisation : Orsay
Âge : 39

Re: Comment un ordinateur apprend

Message par Imladir »

J'ai essayé de détailler un peu la fin pour la visualisation de la sensibilité d'une neurone, j'espère que c'est un peu mieux. Les réseaux de neurones (et surtout les réseaux profonds comme il est question ici) sont l'un des trucs les plus compliqués du domaine, pas évident à présenter simplement donc...

Avatar de l’utilisateur
Za
Messages : 2945
Inscription : lun. 15 avr. 2013 12:25
Présentation : [url=https://adulte-surdoue.fr/viewtopic.php?f=78&t=3525#p102226]C'était moi...[/url]
Profil : Bilan +
Test : WISC

Ancien Membre de l'équipe

Re: Comment un ordinateur apprend

Message par Za »

Ok !! Merci, c'est très clair en effet !
Passionnant ces réseaux de pseudo-neurones, c'est vraiment à la jonction entre informatique et neurologie...
J'ai mis mon képi dans la cage
et je suis sorti avec l'oiseau sur la tête...
J. Prévert

Avatar de l’utilisateur
Miss dans la lune
Mud Drifting
Messages : 730
Inscription : ven. 3 mai 2013 12:18
Profil : Bilan +
Test : WAIS

Re: Comment un ordinateur apprend

Message par Miss dans la lune »

génial!
Tu vas finir ta thèse plutôt que prévu toi! et on va suivre ça en LIVE :cheers:
Enfin, je m'emballe, là tu nous exposes juste les bases de ce que tu sais déjà, mais j'espère qu'on pourra aussi assister à tes propres questionnements par la suite, aux résultats des enregistrements des micros états etc.

Ca c'est trop cool! La suite! La suite! (t'as l'air motivé, alors on en profite hein ;) )

Avatar de l’utilisateur
Imladir
Messages : 25
Inscription : mar. 9 juil. 2013 10:25
Présentation : [url=http://adulte-surdoue.fr/presentations/lumiere-t3797.html]ici[/url]
Profil : Bilan +
Test : WISC
Localisation : Orsay
Âge : 39

Re: Comment un ordinateur apprend

Message par Imladir »

Pour la suite je pense causer des applications pour les interfaces Cerveau-Machines, ou ce dont on parlait par rapport à Alzheimer etc. Mais on atteint mes limites là, donc ça risque d'être un poil plus compliqué et long à faire. Surtout si je lis quelques articles histoire d'être sur de ne pas trop raconter de bêtises.

Pour ma thèse, à voir. Une chose est sûre, c'est qu'elle n'en finira pas plus vite malheureusement. Par contre, elle pourra peut-être finir en pile 36 mois, ce qui serait chouette. Pour ce qui est des questions, idées ou résultats, j'ai plusieurs fois envisagé de créer un blog pour ça. Mais je ne suis pas certain du tout que ce soit intéressant et encore moins que j'aurais grand chose à y dire. D'un autre côté, ça pourrait peut-être me permettre de ne pas trop glandouiller et ainsi d'avoir des trucs à raconter :p
Mais il faudrait de toute façon que je regarde ce qu'il est possible de faire par rapport à l'INRIA. Donc je ne sais pas trop, on verra.

Avatar de l’utilisateur
W4x
Fée du logis
Fée du logis
Messages : 3863
Inscription : lun. 21 nov. 2011 23:19
Présentation : topic1075.html
Profil : Bilan +
Test : WAIS
Contact :

Ancien Membre de l'équipe

Re: Comment un ordinateur apprend

Message par W4x »

C'est certes complexe mais bien expliqué. Pas de problème dans l'interface chaise-écran pour le moment ^^
Mathematics is a game played according to certain simple rules with meaningless marks on paper. D.Hilbert

Avatar de l’utilisateur
Kan
Messages : 702
Inscription : mar. 10 juil. 2012 10:39
Présentation : [url=http://adulte-surdoue.fr/presentations/bonjour-t2373.html]:noitatnesérP[/url]
Profil : Bilan +
Test : WAIS
Âge : 47

Re: Comment un ordinateur apprend

Message par Kan »

Extra !

Je comprend mieux l'importance de la miniaturisation maintenant. La superposition des couches et la multiplication du nombre de matériaux a une telle importance dans la performance.

Du coup l'intelligence est liée à l'infiniment petit et à l'infiniment grand ?
Ça pourrait être la différence majeur entre l'intelligence artificielle et la naturelle ?

Avatar de l’utilisateur
Thibaud
A ♥ Vaillant
Messages : 535
Inscription : mer. 20 févr. 2013 09:02
Présentation : [url=http://adulte-surdoue.fr/presentations/have-dream-t3319.html]TITI[/url]
Profil : Bilan +
Test : WAIS
Localisation : Aldorande, Marseille
Âge : 38

Re: Comment un ordinateur apprend

Message par Thibaud »

Excellent post, très clair, très synthétique, tout ce qu'on aime !
Vivement la suite !
Et l'idée du blog est excellente, tu sais déja que tu aura les membres d'AS qui iront !!
Le monde est sinistré, et moi j'écris ma sinistrose;
un lyriciste nait à chaque fois que le sinistre ose...

Avatar de l’utilisateur
Imladir
Messages : 25
Inscription : mar. 9 juil. 2013 10:25
Présentation : [url=http://adulte-surdoue.fr/presentations/lumiere-t3797.html]ici[/url]
Profil : Bilan +
Test : WISC
Localisation : Orsay
Âge : 39

Re: Comment un ordinateur apprend

Message par Imladir »

Les applications au cerveau et aux neurosciences

Les applications sont essentiellement de deux types, selon que l'on essaye de comprendre ou d'apprendre des choses sur le cerveau, ou que l'on essaye d'utiliser ce que l'on sait déjà pour en tirer profit ou pour réparer des pertes de fonction sensorielles ou physiques.

Comprendre

Historiquement, la compréhension du fonctionnement du cerveau a beaucoup consisté en des études sur ses pathologies et sur leurs causes. Un cas célèbre est l'identification de l'aire de Broca qui est l'une des aires principales du traitement du langage. Broca a longuement étudié un patient présentant des troubles du langage puis lors de l'autopsie de celui-ci remarqua que son cerveau présentait une lésion : Broca en conclut qu'en l'absence d'autres critères explicatifs, la lésion se situait sur l'aire du cerveau qui gérait le langage.

Malheureusement, ce fonctionnement n'est pas sans inconvénient : dix ans plus tard, une autre zone du cerveau impliquée dans le langage fut identifiée (l'Aire de Wernicke) par la même méthode. Quelle confiance peut-on avoir dans le lien fait entre lésion et pathologie ? En l'absence de lésion, comment faire pour étudier le cerveau ?

L'une des réponses est venue avec l'étude des électro/magnéto-encéphalogrammes, puis surtout grâce à l'Imagerie par Résonance Magnétique fonctionnelle (ou IRMf). Cette dernière méthode permet de voir en temps réel la consommation en oxygène des différentes régions du cerveau avec des résolutions de l'ordre de la seconde et pouvant descendre au millimètre.

Une résolution d'un millimètre, ça donne un cerveau définit par 1 400 000 points environ : ça fait beaucoup pour trouver à l'œil nu, et plus encore pour pouvoir confirmer les découvertes. Imaginons maintenant que vous prenez 10 patients, vous enregistrez leur activité cérébrale pour deux tâches différentes, et vous comparez : quelles sont les zones actives dans un cas et pas dans l'autre ? Vous pouvez faire ça grossièrement, à vu d'œil. Mais vous pouvez aussi fournir ça à un algorithme d'apprentissage qui sera non seulement capable de déterminer quelles sont les régions statistiquement importantes dans telle ou telle tâche, mais pourra ensuite vous dire à quelle tâche correspond telle ou telle "image" que vous voudriez tester.

L'une des application les plus évidentes pour ça est de prendre un scanner cérébral d'autant de personnes que possible, pour lesquelles vous avez identifié l'absence ou la présence (et l'avancement) d'une maladie cérébrale, par exemple Alzheimer. Grâce à l'apprentissage, vous êtes capable de trouver quels sont les points communs de tous ces cerveau à chaque état d'avancement de la maladie. Si vous montrez à votre classifieur une nouvelle image, il va chercher avec qui cette image a le plus de points communs : vous pourrez alors établir un diagnostic. Ou en tout cas, vous aurez une idée du diagnostic à chercher (l'erreur 0, ça n'existe pas).

Un cas concret : prenons seize sujets, pour lesquels j'enregistre pendant deux fois cinq minutes l'activité cérébrale via un magnéto-encéphaloghraphe. Durant ces deux fois cinq minutes, je montre aux sujets des images à intervalle de temps aléatoire et dans un ordre aléatoire également : des fleurs, des visages, des lunettes ou des objets divers.
On obtient des trucs comme ça :
Image

A t = 8s, on a montré au sujet une fleur. C'est absolument illisible pour qui que ce soit, et même le chercheur qui a enregistré serait incapable de dire ce qu'il s'est passé ici s'il n'avait pas noté quà t=8s, il y avait eu une visualisation de fleur.
Pire, dans le cas présent, personne n'est capable de dire ce qui est significatif et ce qui ne l'est pas : l'activité que l'on voit à 8.2s sur les canaux MLT12 à 32 est-elle significative ? S'agit-t-il d'un artefact, par exemple un battement cardiaque qui est venu pourrir le signal ? Ou tout autre artefact d'ailleurs : certains artefacts peuvent par exemple être dus au passage d'une voiture sur un parking situé à 50m de la machine, c'est dire la sensibilité de l'appareil, et la difficulté à déterminer le rapport Signal Sur Bruit (qu'est-ce qui est réellement du signal, et qu'est-ce qui n'est que du bruit ?).

Mais si je cherche à prendre un signal au hasard, pour ensuite déterminer si le sujet a vu une fleur ou un visage ? Impossible à l'oeil nu. Mais en utilisant des techniques d'apprentissage... J'utilise à l'heure actuelle une technique de la famille de l'Apprentissage de Métrique, où je vais chercher à déformer uniformément (c'est à dire que la déformation est la même pour tout le monde) mes signaux pour parvenir à déterminer plus aisément qui est quoi : je transforme le tout en un code binaire, et je regarde ensuite qui sont les plus proches voisins. Pour des fenêtres de temps d'une demi-seconde, je pars d'un vecteur de réels de dimension 94 536 à un code binaire de taille 16 à 1024 bits (512 bits semblant pas trop mal marcher). Ce n'est pas encore terrible, mais j'obtiens un taux de succès de 62% environ (là où un choix aléatoire me donnerait 25% de succès).

Mais l'avantage de la technique, c'est que je peux regarder quels sont les canaux - les zones du cerveau - où la différence est importante, selon que je regarde une fleur, un visage, des lunettes ou des objets divers.

J'obtiens quelque chose comme ça (plus le cercle est gros et rouge, plus la zone est "importante" pour la différenciation) :
Image

On remarque tout de suite que c'est l'aire occipitale qui joue le plus. Pas une grande découverte me direz-vous. Certes. Mais imaginez : je demande à vingt sujets "normaux" de faire des maths. Je demande à vingt surdoués de faire des maths. J'enregistre avec un MEG leur activité cérébrale, je fais tourner le même genre d'algorithme. Pourrais-je voir quelles sont les zones qui permettent de faire la différence entre un surdoué et un "normal" ?

Diagnostic de maladies, détections avancée de crises épileptiques, identification du rôle de zones cérébrales, etc. sont de multiples applications possibles.

Utiliser

Pour autant, les applications les plus fréquentes se situent dans le domaine appelé "Interfaces Cerveau-Machine". Le principe est simple : interagir avec une machine - de n'importe quel type - juste par la pensée.

Historiquement, ce champs de recherche a été motivé par le désir de permettre aux individus souffrant du "syndrôme d'enfermement" (ou Locked-In syndrome en bon anglais) de communiquer avec l'extérieur : ces personnes, incapable de bouger d'une quelconque façon, pas même une paupière ou un œil n'ont aucun moyen de s'exprimer. Pour autant, il semble que nombre d'entre elles soient "parfaitement" conscientes de ce qu'il se passe autour d'elles. L'idée est donc venue de tenter d'utiliser leur activité cérébrale pour leur permettre de communiquer.

L'idée générale - qui est la même pour toutes les interfaces cerveau-machine - consiste à détecter un motif précis dans l'activité cérébrale. Quel motif, à quel moment, cela dépend de l'application. Les deux principaux sont le P300 et l'activité sensori-motrice.

Le P300

P300 désigne un pic de potentiels d'actions détecté environ 300ms après la présentation d'un stimulus, souvent visuel. Si l'on prend par exemple la grille suivante :
Image

Tour à tour, on allume chaque ligne. Puis une fois qu'on a choisi la bonne ligne, on allume tour à tour les caractères présents sur la ligne. Quand on a choisi le caractère désiré, on recommence pour un nouveau caractère. Mais comment choisir la ligne ou le caractère désiré ? C'est "simple" (en théorie, parce qu'en pratique...) : 300ms après que la ligne ou le caractère désiré s'est allumé, on observe un "pic" (qui tient plus de la colline qui tire la tronche qu'à l'Everest) d'activité cérébrale qui marque "l'intérêt, l'attention" pour l'élément allumé.

L'activité sensori-motrice

Dans la plupart des actions où il est question de prendre le contrôle d'une machine (que ce soit le déplacement d'un curseur, d'un bras ou d'un robot), on cherche le plus souvent à détecter un signal qui correspond à une activité sensori-motrice. En d'autres mots, en imaginant lever le bras gauche, je peux faire tourner le robot à droite. En imaginant tirant la langue, je peux faire tourner le robot à gauche. Si j'imagine lever le pied gauche, alors le robot s'arrête, etc.

Les difficultés sont très nombreuses : essayez d'imaginer le geste de lever la main droite par exemple, sans le faire. On estime que 25% de la population environ est absolument incapable de "produire" un signal suffisamment clair pour être utilisé. Ensuite, il est difficile de choisir quel type d'activité choisir (chez certaine personne, on verra très bien la différence entre bras droit/gauche, chez d'autre imaginer tirer la langue est ce qui fonctionne le mieux). Enfin, le signal que je produis est très différent en fonction de ma fatigue, de mon attention, d'être tout joyeux parce que la fille d'à côté m'a souri, ou à tiens non, c'était au type plus loin en fait, etc. D'immenses progrès sont réalisés, mais pour les amateurs de cybernétique, il va encore falloir patienter pas mal.

Réparer

La troisième application notable concerne tout ce qui est implants, notamment sensoriels. Grâce aux progrès faits dans de nombreux domaines (neurosciences, électronique, miniaturisation, informatique, etc.) arrivent sur le marché des implants visant à palier à la cécité ou la surdité par exemple. Le principe consiste ici à percevoir le son ou l'image, à transformer le signal, puis à l'envoyer directement dans le cerveau aux neurones qui traitent - en temps normal - ce genre d'information.
Les difficultés sont extrêmement nombreuses (outre le fait qu'une puce wifi interne grille le cerveau tellement elle irradie de chaleur par exemple) les plus importantes étant de savoir comment transformer le signal pour qu'il soit compréhensible par le cerveau - qui ne comprendrait rien à une suite de 0 et de 1 - et comment s'assurer que le signal est transmis aux bons neurones ? C'est petit un neurone... Et on ne peut pas tout envoyer sur le même neurone... De même, si je veux fonctionner dans l'autre sens : relier le cerveau à une prothèse de jambe. Comment je traite ce que produit une petite population de neurones pour le rendre compréhensible par la prothèse ?
Fort heureusement, le cerveau est doué d'un formidable talent qui lui permet de s'adapter : sa légendaire plasticité. Mais celle-ci ne fait pas tout, et d'énormes progrès sont encore à faire.
Ces utilisateurs ont remercié l’auteur Imladir pour son message (3 au total) :
pixelvoisZamadeleine

Avatar de l’utilisateur
Thibaud
A ♥ Vaillant
Messages : 535
Inscription : mer. 20 févr. 2013 09:02
Présentation : [url=http://adulte-surdoue.fr/presentations/have-dream-t3319.html]TITI[/url]
Profil : Bilan +
Test : WAIS
Localisation : Aldorande, Marseille
Âge : 38

Re: Comment un ordinateur apprend

Message par Thibaud »

Toujours aussi bien! Toujours aussi clair! J'aime beaucoup!
Le monde est sinistré, et moi j'écris ma sinistrose;
un lyriciste nait à chaque fois que le sinistre ose...

Avatar de l’utilisateur
UDrum
Messages : 25
Inscription : dim. 7 juil. 2013 22:51
Présentation : [url=http://adulte-surdoue.fr/presentations/presentation-2013-temps-passe-vite-t3796.html]du 08-09[/url]
Profil : Intéressé pour une personne de mon entourage
Test : NON
Localisation : Hérouville-Saint-Clair (14)
Âge : 52

Re: Comment un ordinateur apprend

Message par UDrum »

Sympa !

J'ai trouvé ton sujet intéressant et pour l'aspect synthétique/abordable de la lecture c'est un plaisir motivant d'en savoir/apprendre plus. Merci et bravo aussi pour les images.
Rien ne sert de réfléchir, il faut capter à point.

Avatar de l’utilisateur
Imladir
Messages : 25
Inscription : mar. 9 juil. 2013 10:25
Présentation : [url=http://adulte-surdoue.fr/presentations/lumiere-t3797.html]ici[/url]
Profil : Bilan +
Test : WISC
Localisation : Orsay
Âge : 39

Re: Comment un ordinateur apprend

Message par Imladir »

Ha pour les images je n'ai pas grand mérite, il n'y en a qu'une qui soit vraiment de moi.

Mais je suis content que ça plaise et que ce soit compréhensible en tout cas :)

Avatar de l’utilisateur
UDrum
Messages : 25
Inscription : dim. 7 juil. 2013 22:51
Présentation : [url=http://adulte-surdoue.fr/presentations/presentation-2013-temps-passe-vite-t3796.html]du 08-09[/url]
Profil : Intéressé pour une personne de mon entourage
Test : NON
Localisation : Hérouville-Saint-Clair (14)
Âge : 52

Re: Comment un ordinateur apprend

Message par UDrum »

Ah ok ! J'avais souvent entendu parlé de scanner, IRM, réseaux neuronaux, ...Etc. Et ce, bien que je n'ai jamais mis les pieds dans un milieu hospitalier au moment où il le fallait :lol: . En fait, j'aurais peut être du écrire adéquation/pertinence du texte et de illustration imagée mais tu m'as compris sur le caractère de l'accessibilité, intérêt ce qui est effectivement le plus important pour ceux qui n'ont entendu que des bribes ou des expressions répétées couramment.

De toi scanné ou de toi à avoir réalisé ladite image (ou les 2 ?). Je pose la question car quand on fait un stage, la première chose qu'on fait pour un test c'est souvent sur ou à partir de soi, de son poste de travail perso ou autre élément habituel bien usité.
Rien ne sert de réfléchir, il faut capter à point.

Avatar de l’utilisateur
Imladir
Messages : 25
Inscription : mar. 9 juil. 2013 10:25
Présentation : [url=http://adulte-surdoue.fr/presentations/lumiere-t3797.html]ici[/url]
Profil : Bilan +
Test : WISC
Localisation : Orsay
Âge : 39

Re: Comment un ordinateur apprend

Message par Imladir »

Non les données ne me concernent absolument pas, ne serait-ce que parce qu'obtenir un créneau d'utilisation d'une machine MEG (et je ne parle même pas pour une IRMf), c'est la croix et la bannière, alors si ce n'est pas strictement nécessaire...

Quand je dis qu'une seule image est de moi, c'est que c'est moi qui l'ai réalisée, c'est tout.

Avatar de l’utilisateur
UDrum
Messages : 25
Inscription : dim. 7 juil. 2013 22:51
Présentation : [url=http://adulte-surdoue.fr/presentations/presentation-2013-temps-passe-vite-t3796.html]du 08-09[/url]
Profil : Intéressé pour une personne de mon entourage
Test : NON
Localisation : Hérouville-Saint-Clair (14)
Âge : 52

Re: Comment un ordinateur apprend

Message par UDrum »

Ok Bien reçu ! Juste par curiosité (Pas de problème si cela était éventuellement déplacé de ma part...), quelle est cette image ?
Rien ne sert de réfléchir, il faut capter à point.

Avatar de l’utilisateur
Imladir
Messages : 25
Inscription : mar. 9 juil. 2013 10:25
Présentation : [url=http://adulte-surdoue.fr/presentations/lumiere-t3797.html]ici[/url]
Profil : Bilan +
Test : WISC
Localisation : Orsay
Âge : 39

Re: Comment un ordinateur apprend

Message par Imladir »

Celle ci :
Image

Avatar de l’utilisateur
marmotte
Messages : 406
Inscription : lun. 29 avr. 2013 21:37
Présentation : http://adulte-surdoue.fr/presentations/ ... t3561.html
Profil : Bilan +
Test : WAIS
Localisation : Dijon
Âge : 55

Re: Comment un ordinateur apprend

Message par marmotte »

Merci pour tes explications fort intéressantes.
Pour les interfaces cerveau/machine, est-ce au stade bonne idée qui pourrait marcher ou est-ce que par exemple le P300 permet déjà mettons de choisir des lettres sur un tableau?
Est-ce que tu pourrais nous donner aussi des info (ou des ref) sur la robotique? J'avais lu un peu les résultats des recherches sur l'apprentissage du chien de Sony il y a maintenant assez longtemps... Qu'est ce qui se fait en intelligence artificielle de robots actuellement?

Répondre