Aller au contenu


- - - - -

Méthode d'apprentissage


74 réponses à ce sujet

#61 Dr.Calvin

Dr.Calvin

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Female

Posté 11 juin 2010 - 12:22

merci de ta réponse rapide ^_^ ta méthode est très proche de la mienne ce qui me rassure. Je pense que dans ce cas, la maladresse de Mylène vient de son manque de vocabulaire et de son manque d'"expérience", car d'après ce que tu dis, elle n'a pas d'auto-apprentissage : lui implanterais-tu tous les nouveaux mots manuellement ?

#62 DenisDenis

DenisDenis

    Nouveau membre

  • Membres
  • 12 messages

Posté 11 juin 2010 - 12:38

d'après ce que tu dis, elle n'a pas d'auto-apprentissage : lui implanterais-tu tous les nouveaux mots manuellement ?


Si, j'ai dû mal m'exprimer: tous les mots qui ne sont pas reconnus sont automatiquement mémorisés dans une base temporaire, avec mémorisation du nombre d'occurrences où ce mot a été rencontré. Au bout d'un certain nombre de fois (trois fois, pour être exact), le nouveau mot est définitivement mémorisé dans la base de mots.

Après, j'ai un peu triché en ajoutant une base de 100 000 mots que j'ai trouvé sur le net, pour accélérer un peu cette phase et me consacrer au plus important: l'apprentissage des faits.

Il faut savoir aussi que j'ai désactivé certaines fonction d'apprentissage dans la version qui est sur internet, pour éviter que des imbéciles ne lui apprennent n'importe quoi (et il y en a, j'ai tous les logs des conversations, j'ai vu de belles horreurs).

#63 Dr.Calvin

Dr.Calvin

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Female

Posté 11 juin 2010 - 12:49

Si, j'ai dû mal m'exprimer: tous les mots qui ne sont pas reconnus sont automatiquement mémorisés dans une base temporaire, avec mémorisation du nombre d'occurrences où ce mot a été rencontré. Au bout d'un certain nombre de fois (trois fois, pour être exact), le nouveau mot est définitivement mémorisé dans la base de mots.

je ne sais pas faire ça => ça m'intéresse énormément : est-ce que ce bout de code est compris dans ton "je ne peux pas le diffuser " ou bien est-ce que tu pourrais faire une version pédagogique de ce passage du programme (même en pseudo-langage, ça serait très bien)?

Il faut savoir aussi que j'ai désactivé certaines fonction d'apprentissage dans la version qui est sur internet, pour éviter que des imbéciles ne lui apprennent n'importe quoi (et il y en a, j'ai tous les logs des conversations, j'ai vu de belles horreurs).

de même, si tu pouvais décrire ces fonctions d'apprentissage, je serais toute ouïe :rolleyes:

#64 Electron

Electron

    Pilier du forum

  • Membres
  • PipPipPipPip
  • 906 messages
  • Gender:Male
  • Location:LABEGE
  • Interests:Électronique, robotique ludique, programmation de jeux et utilitaires, et plein d'autres choses.

Posté 11 juin 2010 - 12:50

Donc, si je suis ton raisonnement*, "j'ai une voiture", la voiture ne faisant pas partie du même corps physique, j'ai donc engendré une voiture ???

Pas mal DenisDenis ;)
Dans l'exemple que j'ai donné sur mon précédent post ce n'est pas du tout ce que je dis.

Cependant, ça me fait plaisir d'avoir ce genre d'exemple comme ça cela me permet de voir ce que je peux améliorer dans mon hypothèse.
Par exemple dans ce cas-là, on peut constater que la voiture (qui est un objet) ne peut pas être engendrée par l'humain et donc le verbe "avoir" ne peut être pris dans le sens de la créature engendrée.
Dans le cas d'un système de langage d'un robot le cas de l'engendrement sera plus simple puisque le robot n'engendre pas.

"Plus on partage, plus on possède, voilà le miracle". LEONARD NIMOY
"Celui qui se bat peut perdre, celui qui ne se bat pas a déjà tout perdu". BERTOLT BRECHT (1898-1956)
Comment se lancer dans la robotique !
Mince encore un post pour augmenter mon compteur ;)


#65 DenisDenis

DenisDenis

    Nouveau membre

  • Membres
  • 12 messages

Posté 11 juin 2010 - 01:07

la voiture (qui est un objet)
le robot n'engendre pas.


Voilà, tu confirme ce que je disais, tout ceci ne sont que des connaissances implicites que tu as mais que l'ordinateur n'a pas à la base.


Pour ce qui est de l'apprentissage, j'ai fait dans le simplissime: mes bases sont de simples fichiers textes (plus facile à lire et à modifier manuellement), que je charge en mémoire dans des vector (je suis en C++). Ajouter un enregistrement, c'est juste un base->push_back(NouvelEnregistrement);

Avec cependant une exception pour les mots: avec 100 000 mots, j'avais un temps de réaction un peu long pour rechercher séquentiellement un mot dans la base. Je me suis donc fait une classe IndexMot qui permet de les retrouver plus rapidement. Il faudra très certainement que je fasse bientôt la même chose pour les faits. Tout ceci reste de la cuisine informatique accessible à n'importe quel développeur.

#66 Dr.Calvin

Dr.Calvin

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Female

Posté 11 juin 2010 - 01:09

j'enchaîne sur la remarque d'Electron ;) , et remercie au passage DenisDenis :)

il y a encore deux autres catégories, non seulement pour le verbe avoir mais aussi pour d'autres cas, que nous n'avons pas encore relevées : la différence entre abstrait/concret et émotions/sensations. Je donne des exemples respectivement pour les deux catégories :

- abstrait : "j'ai une idée", dans ce cas, le robot va devoir mettre de côté tout son vocabulaire concernant de près ou de loin les 5 sens, et va peut-être, s'il est limité, ramener l'humain dans le domaine concret en le poussant à décrire son idée comme on décrit une image. Encore faut-il que cet humain joue le jeu, auquel cas le robot serait obligé d'insister et d'abandonner au bout d'un certain nombre de tentatives.
Concret : "j'ai une voiture" (posséder), "j'ai les yeux verts" (ça fait partie de mon corps), "j'ai deux enfants"(je les ai engendrés). Ce sont les cas que nous avons distingués au début, je n'ai donc rien de spécial à ajouter

- émotions : "j'ai le cafard" (expressions toutes faites qu'il faut faire apprendre au robot), "j'ai de la chance" ou au contraire "j'ai des soucis" la aussi le robot peut s'en sortir en mettant de côté son vocabulaire sur les 5 sens et en poussant l'humain à décrire des situations concrètes.
Sensations : "j'ai mal à la tête", "j'ai un coup de pompe", etc. Nous sommes de retour dans le domaine concret mais ce sont des sensations diffuses, voire indéterminées ("j'ai mal" tout court, par exemple) et le robot doit distinguer avec les cas précédents.

- il me vient dans la foulée une autre catégorie toute bête, la catégorie grammaticale : l'auxiliaire avoir ! DenisDenis en parle au sujet du verbe être, d'ailleurs...

Voilà voilà :ph34r:

#67 Electron

Electron

    Pilier du forum

  • Membres
  • PipPipPipPip
  • 906 messages
  • Gender:Male
  • Location:LABEGE
  • Interests:Électronique, robotique ludique, programmation de jeux et utilitaires, et plein d'autres choses.

Posté 11 juin 2010 - 06:35

Voilà, tu confirme ce que je disais, tout ceci ne sont que des connaissances implicites que tu as mais que l'ordinateur n'a pas à la base.

Ha oui, oui, tout à fait ;)
Mon idée n'est pas qu'il apprenne lui-même en fonction d'une IA mais qu'il vérifie dans sa DB s'il possède déjà le mot qu'il entend :
1) Si c'est oui, il détermine le sens du mot selon des règles de base et répond.
2) Si c'est non, il stocke le mot nouveau, par contre il faudrait qu'il comprenne le sens de la phrase entendue avec ce mot nouveau pour savoir à quel occasion réutiliser ce mot, et c'est ça que je ne visualise pas encore.
Je crois qu'on s'est compris là ;)

j'avais un temps de réaction un peu long pour rechercher séquentiellement un mot dans la base.

Pour ça je crois que j'ai trouvé un système très rapide (théoriquement) mais je n'aie pas eu le temps encore de le tester et je ne veux pas en parler tant que ce n'est pas fait ;)
Le principe repose aussi sur une indexation mais différente de ce qui se fait généralement mais comme je l'ai dit c'est à tester :/

"Plus on partage, plus on possède, voilà le miracle". LEONARD NIMOY
"Celui qui se bat peut perdre, celui qui ne se bat pas a déjà tout perdu". BERTOLT BRECHT (1898-1956)
Comment se lancer dans la robotique !
Mince encore un post pour augmenter mon compteur ;)


#68 miq75

miq75

    Nouveau membre

  • Membres
  • 41 messages
  • Gender:Male
  • Location:Wissembourg

Posté 05 août 2010 - 04:00

Bon, j'ai lu a peu près tout le fil, et la question n'est pas simple. (J'ai suivi il y a longtemps un cours de traitement automatique du langage, mais je n'en ai que des souvenirs vagues)

Bien que je ne l'ai jamais fait, voilà comment j'aurais tenté de procéder si j'avais voulu créer un botnet (ce ne sont que des idées).

-Pour ce qui est des différentes phases d'analyse sémantique des phrases, en entrée :
L'utilisation de grammaires formelles (du genre ... Phrase = Sujet Verbe [Complément] .... Sujet = Nom_Propre .... Sujet = Article_Personnel ... Sujet = Article Nom_Commun ... etc..) pour créer des arbres sémantiques me parrait être un bon début.
On peut utiliser la classe sémantique des mots pour leur reconnaissance. La grammaire peut être donnée explicitement dans le code source.
On sait cependant que ça pose des problèmes de pluralité de sens dans certains cas ("Le chef sale la note" peut être vu comme 2 arbres sémantiques différents - sale en verbe ou sale en adjectif).
Pour distinguer parmis les 2 arbres sémantiques, il faut faire une analyse contextuelle de la phrase (par rapport au reste du texte) et pour cela il faut connaitre le sens des mots utilisés.
Avec ce contexte, on peut (je pense) choisir l'arbre sémantique et dire que la phrase à été comprise.

-Pour ce qui est du traitement de l'arbre sémantique :
Dans tous les cas, ce qui compte, c'est la structure de données utilisées pour représenter la connaissance.
On pense d'abord à une Base de données relationnelle. (Il y a de nouveaux concepts emergents de bases de données non relationnelles, c'est peut être intéressant ici, a réfléchir.)
Les tuples sont des mots, OK.
Les Tables sont des classes sémantiques, OK,
Mais quelles sont les relations de cette BD ?
le moteur d'inférence nous indique une de ces relation : l'implication. Une autre qui peut parraitre évidente est le fait d'être, et une autre celui de posséder. Il y en a d'autres, comme être_identique_à, (ce qui donne comme sens à être celui de l'inclusion dans un ensemble).
le problème, ici, c'est que être, posséder, impliquer sont aussi des verbes.
Cela veut dire qu'on se dirigerais sur des tables_classes_sémantiques, et sur des tables_relations_entre_les_classes_sémantiques_et_des_verbes. En fait, vers une méta BD (au niveau relationnel).
Rien que l'établissement de cette méta BD est très complexe et demanderais un travail spécifique. Mais elle permettrait d'apprendre à un autre niveau qu'un simple apprentissage de nouveaux mots. Elle créerai un apprentissage du sens.

Pour le système d'apprentissage :
Il y a 2 axes : la compréhension de la phrase (passage du sens de la DB vers la phrase), et l'acquisition de nouvelles connaissances à partir de la phrase (passage du sens de la phrase vers la BD).
La part de compréhension/acquisition, c'est le lot de tous les systèmes d'apprentissage. Ici cependant elle est facilité, parce que la machine apprends à chaque phrase (ne serait-ce que la justesse sémantique de ladite phrase).
On peut immaginer adjoindre un champ dans les tables avec une note de confiance dans le nouveau mot ajouté, et augmenter cette note de confiance quand le mot est réemployé. Idem pour les relations re-confirmées.
Lors d'un echec de logique entre ce que dit une personne et la base de connaissance, je proposerai de mettre en place un méchanisme de disjonction sémantique d'un mot (par exemple le verbe être, qui doit avoir beaucoup de sens différents).
Ce pourrait être un méchanisme qui demande confirmation de tous les faits de cette incohérence, puis demande la différence sémantique entre les différents sens. S'il la comprends, alors distinguer les 2 sens comme 2 mots différents, s'il ne la comprends pas, alerter le dévellopeur. (et a nous d'améliorer le système pour la prendre en compte)

-Pour la génération d'une réponse :
ben, on peut cibler des questions qui touchent les nouveautées, ce que vos botnets font déjà.
En revanche, je n'aime pas l'idée de disposer de réponses toutes faites. Je préfère une sortie incohérente, quitte à devoir comprendre pourquoi elle est incohérente et pouvoir corriger la source de cette incohérence.
J'avoue que je n'ai pas trop réfléchi à cette partie.

Je sais bien que c'est très incomplet, mais je vous livre juste mes réflexions. qu'en pensez vous ?

-autres idées :
Considérer que la grammaire formelle utilisée est quelque chose qui doit aussi être appris. Je pense que je commencerai par là, en fait. Modéliser la grammaire sémantique dans la BD, ça doit dépoter. Mais comment intégrer cet apprentissage ?
En relisant je me rends compte que le seul sens que j'ai appris avec ce système, c'est celui des verbes concrets. Comment apprendre celui des noms propres, sinon en ayant des interfaces autres (yeux, représentation spatiale) ?

#69 miq75

miq75

    Nouveau membre

  • Membres
  • 41 messages
  • Gender:Male
  • Location:Wissembourg

Posté 05 août 2010 - 04:10

Non non non ce n'est pas du tout con ce que tu dis et c'est même bien vue. Cependant c'est difficilement applicable mais cela est fonction du langage.
Par exemple, si tu prend des langages comme Delphi ou C++ c'est pratiquement irréalisable car il sagit de programmes compilés. Autrement dit, tu saisi un algo en langage utilisateur (for, while, if ...etc.) et un compilateur se charge de les convertir en langage machine (010001110) sous la forme d'un executable "directement" exploitable par le processeur. Ainsi donc un "programme" capable de se réécrire lui même devrait présenter de multiples sous programmes qui seraient réécris en temps réel par un programme "maitre" puis compilés dans la foulées pour être exploitable par le programme maitre. Si en théorie cela n'est pas impossible, en pratique cela est complètement irréalisable car la compléxité du programme maitre serait telle que les temps de réponse (a moyen terme) seraient inadmissible pour un système "réactif" même en imaginant que l'informatique connaisse une progression exponentielle. De plus, l'écriture d'un tel programme maître nécessiterait des ressources en ingénieurie science-fictionnesques et serait, en pratique, in-débuggable car des milliers de sous programmes seraient modifiés en temps réel. Donc pour les langage compilé, il faut oublier ce principe tant pour des raisons de performance qu'en terme d'ingénieurie. Il existe cependant un échappatoire grace a la programmation orientée objet. En fait, ce type de programmation se rapproche fortement du principe du programme maitre et des sous programme a ceci pret qu'il fait appel a des objets disposants de leur propres propriétés. En fait, un objet est un groupe de variables et de procédures répondant à un modèle générique (défini par le développeur) mais pouvant être initialisés et utilisés de façon différentes (par exemple le champs texte dans lequel j'écris est un composant qui possède différentes propriétés comme par exemple la couleur du texte ou sa taille -> Ce sont les variables. Mais il possède aussi un nombre données de fonction comme par exemple la combinaison de touche Ctrl+A qui sélectionne tout le texte. On pourrait trés bien imaginer réécrire cette fonction pour qu'elle ne sélectionne que les majuscules (fonction) si le texte est écrit en gras (variable de l'objet) et que les minuscule (fonction) s'il est écris en rouge (variable). Mais poussons plus loin. Imaginons désormais que notre champs texte possède un ensemble de fonction (faire clignoter en rouge les lettres E, transformer en smiley tous les espace...etc) et un ensemble de vrariables qui le définisse (taille du champs texte, couleur, image de fond...etc). On peut alors faire en sorte que l'execution des fonction ne soit pas liée "par le code" aux variable (qui peuvent être le résultat de fonction) mais par un fichier texte qui dit si la variable machin vaut tant alors lancer telle ou telle fonction. Enfin, imagine une fonction capable de "pondérer" l'adéquation du lancement de telle(s) fonction(s) par rapport a telle(s) variable(s) (parce que les performances machines seront meilleurs, ou que l'utilisateur a cliqué sur un bouton comme quoi il est contente...etc) et de l'écrire dans le fichier ini de liaison si cette pondération est plus interressante (on peut même garder une trace de la progression en datant les combinaisons). dans ce cas, nous avons une machine qui tendra a s'adapter au mieux aux besoins et donc capable d'apprendre. D'ailleurs, au final, a un stimuli simple, la machine en arrivera a élaborer un déclenchement en série (ou en parrallèle) de fonctions simples qui finiront par aboutir à un résultat complexe (comme s'il sagissait d'une sorte de super fonction unique constituée des autres). C'est en exploitant cette méthode de développement que nous programmons Caliban. J'espère que j'ai su m'exprimer correctement.


mais il existe d'autre langages que ceux compilés. ce sont les langages interprétés ! Ces derniers sont souvent désignés sous le nom de Script car ils ne sont pas en eux même directement compréhensible par la machine. Il leur faut pour cela un interpréteur, ou traducteur qui converti en langage machine en temps réel le Script. Et c'est exactement ce que fait notre Internet Explorer ou Firefox préféré. les pages d'un site sont écritent par exemple en javaScript, en html ou ce que tu veux mais ces fichiers ne sont pas utilisables par l'ordinateur. il faut pour cela un autre programme, notre fameux programme maitre, qui soit capable de dire "bon alors ce script dit de faire ca donc je vait lancer telle ou telle procédure" qui sont intégrée d'office dans l'interpréteur. C'est d'ailleurs ces fonction présentent dans l'interpréteur qui sont les fameuses "mise a jour", "pluggins" ou "drivers" que l'ont doit sans cesse installer afin de faire evoluer notre interpréteur pour qu'il soit en phase avec les besoins grandissants des langages interprétés. Tu remarqueras donc que le concept se rapproche un peu de la programmation objet car il y a un programme maitre qui manipule un ensemble de notions. A ceci pret qu'en objet, ces notions sont capable d'executer -elles même- des fonction sans faire appel a leur programme maitre. Ainsi, on pourrait trés bien imaginer un interpréteur suffisement abouti et un script suffisement soffistiqué pour qu'il soit capable de générer lui même des script exploités par l'interpréteur. Mais en pratique cela ne fonctionne pas correctement sauf pour des taches simples car les régles de syntaxe des script sont trés strictes (plus qu'en programmation compilée). je ne vais pas entrer dans les détails a ce sujet mais concrètement, il est difficile d'imaginer un script capable de générer des script servant de support a un apprentissage non prévu par le programmeur.

Pour résumer, ta suggestion est tout sauf idiote mais elle peut se traduire dans la pratique sous plusieures forme et, la plus appropriée (pour un système capable d'apprendre) et pratique à mettre en oeuvre est selon moi la programmation orienté objet.

J'espère avoir répondu a ta question ;)

Juste une remarque sur les langages :
Python est un langage interprété orienté objet. Je l'ai déjà utilisé pour executer un sous-programme écrit en dehors du programme, (et meme écrit après que le programme principal ait été activé) c'est donc tout a fait possible. Il possède une instruction "eval(chaine_de_caractères)" permettant d'exécuter tout code écrit à la volée ou pioché dans un fichier. Il possède aussi des classes dédiées à la manipulation de morceaux de codes python.

#70 miq75

miq75

    Nouveau membre

  • Membres
  • 41 messages
  • Gender:Male
  • Location:Wissembourg

Posté 05 août 2010 - 04:31

...

Bien que je ne l'ai jamais fait, voilà comment j'aurais tenté de procéder si j'avais voulu créer un botnet (ce ne sont que des idées).

...

Je parle d'un chatbot, bien sur, pas d'un botnet.... c'est chiant de pas pouvoir editer...

#71 miq75

miq75

    Nouveau membre

  • Membres
  • 41 messages
  • Gender:Male
  • Location:Wissembourg

Posté 05 août 2010 - 05:36

Comme je lache pas facilement une idée, voilà un premier jet de BD

Vocabulaire : Certitude, Mot
chaque mot connu

Sens(relationnel) : Certitude, Mot, Arité
chaque mot entrainant une relation (en général un verbe, avec les différentes possibilités d'arité de ces relations (soit un chiffre, soit un code (0?) signifiant que ce nombre est variable)

InstanceDeSens : Certitude, Mot-Sens, Mot-Sujet, [Mot-Secondaire, indiceInstance]
mot-secondaire est optionnel, et pour les arités supérieures à 2 on utilise indiceInstance pour identifier les nombreux mot-secondaires de la même instance


Si on veut intégrer la grammaire dans l'apprentissage, il faut distinguer ces 2 phrases :
"Tu" est un mot
et
Tu est un homme

Le premier est grammatical
Le second est sémantique

Bon, faut que je file.

#72 miq75

miq75

    Nouveau membre

  • Membres
  • 41 messages
  • Gender:Male
  • Location:Wissembourg

Posté 06 août 2010 - 02:17

Bon, en reposant à plat, ça donne ça :

La structure des tables me parait bien. La certitude bornée entre 0 et 5 compris. Quand une phrase est entrée elle commence avec une certitude de 2.

Des entrées possible pour débuter l'apprentissage seraient :

verbe être mot
être être mot
être être verbe
sujet être mot
...

Je fais le choix de parler sans conjugaison ni articles volontairement, puisque le systèeme apprends tout juste la grammaire. On commence par simple.

Le déroulement que j'immagine maintenant avec ces entrées est le suivant :

"verbe être mot" est stoqué dans la table vocabulaire, avec une certitude de 2, comme toute entrée par défaut. Puis on lance un module de recherche de cohérence, qui compare les données des tables (mettons 10 données ayant un lboc de lettre consécutif en commun, en commençant par chercher dans les tables + complexes) avec la nouvelle phrase. Il n'a rien a faire.

"être être mot" est stoqué de la même manière. La recherche de cohérence se trouve avec 2 mots similaires contenants des espaces. Elle détecte que les contenus après le premier espace sont identiques, elle tente une cohérentisation de la chose :
dans la table vocabulaire :
"verbe être mot" prends -1 en certitude (sauf si ça le fait passer à zero)
"être être mot" prends -1 en certitude (sauf si ça le fait passer à zero)
"verbe", "être", "être mot" sont créés comme mots de note 1
dans la table sens :
"être mot" est créé avec la certitude 2 et l'arité 1.
dans la table instance :
"être mot", "verbe", 2
"être mot", "être", 2
tout ça est une étape, un cycle de cohérence, il y a 10 cycles a passer comme ça.

le résultat du second cycle pourrait être :
vocabulaire :
"verbe", "être", "mot", "verbe être mot", "être être mot", "être mot", tout à 1
sens :
"être mot" à 1, "être" à 2 (par comparaison entre "être mot" et "être") avec une arité de 2 ?
Instance :
...

puis les autres cycles ne font rien, y'a plus rien a déduire.
et on continue avec "être être verbe"...


Voilà, si quelqu'un veut coder ça pour essayer de voir ce que ça donnerait ;)

#73 miq75

miq75

    Nouveau membre

  • Membres
  • 41 messages
  • Gender:Male
  • Location:Wissembourg

Posté 06 août 2010 - 04:27

En fait, je pense que ca ne donnerai rien :aum ieux ce système permettrait d'apprendre le sens de certains verbes, et d'apprendre peut être partiellement une grammaire, mais il n'apprends pas plus le sens de la pluspart des mot. C'est je pense le point crucial : que la machine puisse appréhender le sens des mots, pour faire une IA.

#74 feydaykyn

feydaykyn

    Nouveau membre

  • Membres
  • 1 messages

Posté 20 septembre 2010 - 09:42

Bonjour,

Je me demandais : quelles méthodes utilisez-vous pour apprendre à vos robots ? J'ai fait très peu de robotique, aussi tout ce qui suit est purement théorique... En voulant faire des robots qui apprennent, il me semble qu'on essaye de reproduire la façon dont nous humains avons appris : répétition des gestes, unicité de l'apprentissage (une tâche à la fois), etc. C'est à la fois relativement puissant et très long (on est majeur à 18 ans !). Si on veut réduire le temps d'apprentissage d'un robot, il me semble qu'il faut inventer une nouvelle pédagogie plus adaptée. Dans ma tête ça passe par l'utilisation d'un simulateur pour démultiplier les expériences du monde réel et accélérer l'apprentissage.

Par ailleurs, je ne sais pas si je dis une hérésie, mais je me demande toujours si ce ne serait pas plus pratique de mettre à l'extérieur du robot toute la partie calcul, et relier "l'âme et le corps" par wifi ou affilié. Les processeurs actuels ne sont pas si puissants que ça, et pour le travail sur l'intelligence artificielle, tout se passe en labo, donc la dépendance au wifi ne serait pas pénalisante.

#75 miq75

miq75

    Nouveau membre

  • Membres
  • 41 messages
  • Gender:Male
  • Location:Wissembourg

Posté 11 octobre 2010 - 09:04

Bonjour,

Je me demandais : quelles méthodes utilisez-vous pour apprendre à vos robots ? J'ai fait très peu de robotique, aussi tout ce qui suit est purement théorique... En voulant faire des robots qui apprennent, il me semble qu'on essaye de reproduire la façon dont nous humains avons appris : répétition des gestes, unicité de l'apprentissage (une tâche à la fois), etc. C'est à la fois relativement puissant et très long (on est majeur à 18 ans !). Si on veut réduire le temps d'apprentissage d'un robot, il me semble qu'il faut inventer une nouvelle pédagogie plus adaptée. Dans ma tête ça passe par l'utilisation d'un simulateur pour démultiplier les expériences du monde réel et accélérer l'apprentissage.

Par ailleurs, je ne sais pas si je dis une hérésie, mais je me demande toujours si ce ne serait pas plus pratique de mettre à l'extérieur du robot toute la partie calcul, et relier "l'âme et le corps" par wifi ou affilié. Les processeurs actuels ne sont pas si puissants que ça, et pour le travail sur l'intelligence artificielle, tout se passe en labo, donc la dépendance au wifi ne serait pas pénalisante.


Personnellement, je n'ai pas de robots, je m'intéresse à l'aspect programmation pure. Donc je ne connait pas les capacités de l'embarqué et je pense de toute façon à un controle par ondes, comme tu dit.

Pour l'autre question, oui, l'apprentissage est long et on pense en général à un apprentissage par l'expérience. Mais une machine peut être dupliquée, une fois l'apprentissage effectué. Il suffit de recopier les données de l'apprentissage (plus ou moins une petite période d'adaptation, car aucune machine n'est physiquement absolument identique). Quand à une pédagogie plus appliquée, de toute facon la pédagodie utilisée va déjà être faite en fonction du type de capacité d'apprentissage qu'on donne à la machine, c'est donc déjà plus ou moins ce qui est fait au cas par cas.



Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users