Journal Des ordinateurs qui pensent...

Posté par  (site web personnel) .
Étiquettes : aucune
0
17
août
2008
Bonjour chères moules,

ma nouvelle lubie consiste à m'intéresser au monde a priori très complexe de l'intelligence artificielle. J'ai envie de découvrir le truc, d'un point de vue théorique bien sûr, mais aussi avec des exemples simples et concrets pour démarrer (je développe beaucoup en python et en java), car quand c'est trop austère, je n'accroche pas.

J'en ai marre de coder des ptits jeux qui ne fonctionnent qu'en mode multijoueur car je suis incapable de coder une IA correcte (soit elle est nulle, soit elle est trop parfaite car elle connait les variables censées être inconnues)

Bref, si vous avez des références d'ouvrages, si possible en français, susceptibles de m'intéresser, je suis preneur.

Note : je suis très mauvais matheux, j'espère que cet aspect de ma personne n'est pas trop handicapant pour rentrer dans le sujet :-/

Merci beaucoup !
  • # Trop vague

    Posté par  . Évalué à 4.

    Ce que tu dis est trop vague, car l'IA ça va d'un simple bot qui joue au morpion, aux jeux de stratégie temps réel, en passant par les FPS et compagnie....
    Il faut préciser le sujet qui t'intéresse.

    Pour parler grossièrement, l'IA, actuellement, est fréquemment un simple système qui distribue des points sur des actions possibles, ensuite, elle prend le meilleur score pour réaliser l'action.


    Mais souvent, avec un peu de logique, tu peux faire ce que tu veux, par exemple, il y a quelque année (je devais avoir environ 16ans), je m'étais amusé à réaliser un algorithme de path finding pour un petit jeu à moi. J'avais réfléchi plusieurs nuit et en moins d'une semaine, j'avais pondu un truc en delphi qui fonctionnait de façon nickel pour trouver un chemin, en fonction de "poids" de terrain.
    Quel ne fut pas ma surprise quelque année plus tard en découvrant l'algorithme A*. C'était pour ainsi dire, mon truc. J'avais réussi à sortir un algo connu simplement en réfléchissant logiquement (j'en étais fier, et encore aujourd'hui ;-) ). J'avais même intégrer des optimisations que n'avais pas le A* de base.


    Tout ça pour dire, que, en fonction de ce que tu as besoin, même sans gros écrit, tu trouve toujours ce que tu as besoin si tu es capable d'être purement logique et de mettre par écrit ce que tu as en tête.
    Les écrits ne permettent que d'optimiser ce que tu as imaginer : un exemple, tout le monde sais facilement imaginer une recherche d'un mot dans une chaîne de caractères, mais en cherchant un peu, il es possible de tomber sur des algorithmes permettant une optimisation de la recherche ( http://fr.wikipedia.org/wiki/Algorithme_de_recherche_de_sous(...) ).

    Tout ça pour dire que souvent, si tu arrive a mettre les comportements souhaité par écrit, tu as déjà une grosse partie du boulot de fait.
    • [^] # Re: Trop vague

      Posté par  . Évalué à -5.

      Bof, c'est plus de l'algorithmique que de l'IA ça. Autant faire des maths pour faire des trucs chiants.
      • [^] # Re: Trop vague

        Posté par  . Évalué à 3.

        À ma connaissance (mais elle est faible), l'IA est à ce jour toujours le l'algorithmique. Plus ou moins complexe, mais ça n'en demeure pas moins.
        D'ailleurs, notre cerveau ne fonctionne-t-il pas lui aussi de cette façon ?
        l'information suit un chemin parmis les neurones suivant des critères qui lui ont été attribué. Peut-être avec un peu de hasard pour la créativité, mais bon, tout ceci est normalement restranscriptible, et quelque soit la complexité, ça reste de l'algorithmique quand même.
        • [^] # Re: Trop vague

          Posté par  . Évalué à 2.

          Pour l'instant personne ne sait dire à quoi est dû """""l'intelligence humaine""""". On sait juste que c'est très complexe, que y'a bcp de paramètres qui rentre en ligne de compte.

          Tout ce qui ce passe dans le cerveau est parallélisé à un point inimaginable et incomparable à ce qui est fait en informatique.
          L'information suit pas vraiment un chemin mais se diffuse et renforce ou affaiblit les liens entre les neurones. Par exemple pour l'instant les modèles de connexions les plus performants pour les réseaux de neurones bah c'est les modèles aléatoires...
        • [^] # Re: Trop vague

          Posté par  . Évalué à 10.

          Bon, j'ai perdu bêtement ma réponse, donc je vais faire court:

          Mon avis est assez proche de Chambre_chinoise.

          En gros, un bête algorithme n'est pas "intelligent" en soi.

          Genre un algo de plus court chemin, exécuté par une machine, en entré il a un graphe, en sortie il a un chemin, et c'est tout, c'est une coquille vide.

          Quand tu étales une carte devant toi, tu as un but, tu veux à priori aller quelque part, par envie, par obligation, que sais-je. Après, sur cette carte, tu vois des traits, qui représentent des routes, des autoroutes, des chemins: tout ça fait sens.

          Sans but, sans motivation, sans représentation, sans envie, sans besoin, sans conscience d'un monde extérieur à soi, un graphe n'est rien. Pour toi, (sans d'ailleurs que tu en ai conscience, tu fais pas des maths pour aller chez un amis) ce n'est pas un graphe, c'est la représentation de quelque chose.

          Pour moi c'est ce qui fait la différence entre une coquille qui calcule et quelque chose d'intelligent. Et c'est le sens des recherches dans ce genre d'équipe: http://www.aiboteamhumboldt.com/projekte.php?lang=en ( http://www.martin-loetzsch.de/ par exemple) en robotique. Les robots ont besoin de concevoir le monde, et de le représenter de manière interne pour ne pas raisonner que sur un modèle, mais pour agir dessus.

          L'intelligence, dans ce cas, serait un comportement émergent. Je sais que d'autres existe, je sais qu'un monde existe, je sais que je peux agir dessus, je sais que quand j'agis, je fais plaisir (ou pas) à des gens, a moi. Je ne calcule pas le plus court chemin dans un graphe.
          • [^] # Re: Trop vague

            Posté par  (site web personnel) . Évalué à 2.

            Maintenant, pour ceux qui connaissent et qui passent, de temps en temps, leurs soirées à regarder des séries alacon(tm)

            Relisez ce commentaire avec dans la tête la voix et la tête de cette personne: http://l.yimg.com/img.tv.yahoo.com/tv/us/img/site/35/30/0000(...)

            Saisissant hein ? Bon ben, c'est pas le tout mais, je retourne bosser.

            PS Pour les autres il s'agit du rôle de Charle Epps un acteur qui joue un mathématiciens super méga balèze dans la série Numb3rs sur M6 et qui aide le FBI parce que les maths ça fait enfermer les méchants
            • [^] # Re: Trop vague

              Posté par  . Évalué à 4.

              C'est vachement plus facile de faire semblant d'être super méga balèze que d'être super méga balèze.

              Bon évidemment, dans mon cas, c'est naturel, donc c'est un peu de la triche.


              (je fais semblant d'être sérieux, enfin, j'essaye. Ça y est, je pouffe. J'éclate de rire, ça suffit les conneries)
          • [^] # Re: Trop vague

            Posté par  (site web personnel) . Évalué à 1.

            j'affinerais ainsi : pour moi l'IA c'est la capacité à réagir dans des situations imprévues, et même d'apprendre.

            quand tu demandes à ton GPS JonJon de trouver le plus court chemin, il fait quoi ? un calcul, comme un robot dans son expression la plus simple. on appelle les algos de Dijkstra au secours et basta.

            si je code une équipe de foot ball, c'est tellement basique car tout est codé en dur (je suis une quiche en foot et ia), de fait je trouve que c'est le niveau zéro de l'IA.

            cependant lorsqu'un robot est plus évolué, qu'il apprend, enrichit de lui même son comportment, là pour moi on peut appeler ça de l'IA.

            je vais finir par l'exemple. le WALL-E est un robot de la compagnie Buy N'Large (tirée du film à succès de Pixar). si le robot se contente de rassembler les ordures et les aggréger : c'est un automate et somme toute son IA est faible, voire nulle (cf les gros modèles travaillant dans les soutes à ordures du vaisseau).

            losque le petit WALL-E, sur Terre, développe des comportements typiquement humains (collectionnite aïgue et nostalgie), il cesse d'être un automate et devient une IA.

            notez que les nouveaux comportements développés ne sont pas nécessairement utiles et peuvent se réveler néfastes.

            T'as le bonjour de JavaScript !

            • [^] # Re: Trop vague

              Posté par  . Évalué à 4.

              Plus qu’à définir : « comportement typiquement humain ». Bon courage. ^^
              • [^] # Re: Trop vague

                Posté par  (site web personnel) . Évalué à 4.

                Plus qu’à définir : « comportement typiquement humain ». Bon courage.

                Non, non, très facile. Les humains utilisent KDE plutôt que Gnome.
                • [^] # Re: Trop vague

                  Posté par  . Évalué à 7.

                  Toi, tu passe pas le test de Turing, ton univers n'est pas assez vaste :)
                  • [^] # Re: Trop vague

                    Posté par  . Évalué à 3.

                    en effet il a oublié de préciser que le humains utilisaient emacs plutôt que vim :D

                    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

              • [^] # Re: Trop vague

                Posté par  (site web personnel) . Évalué à 1.

                le comportement humain :
                - tout comportement évolué et inutile ?
                - ce qui ne se réfère pas aux fonctions essentielles (manger, dormir, se reproduire) ?
                - l'opposition de l'animal

                je sais que je shématise, les baleines, les singes et d'autres sont connus pour des capacités parfois proches des notres. il paraît qu'il y a des singes sous kde et fans d'emacs !!! (troll rapport aux commentaires plus bas). moi c'est gnome et vi. pas gnome en fait mais bon, s'il faut choisir...

                T'as le bonjour de JavaScript !

                • [^] # Re: Trop vague

                  Posté par  (site web personnel) . Évalué à 2.

                  Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook.

                  Moi proposer réécrire KDE en Ook : ça comprendre plus facile.
        • [^] # Re: Trop vague

          Posté par  . Évalué à 4.

          D'ailleurs, notre cerveau ne fonctionne-t-il pas lui aussi de cette façon ?

          Bien que le domaine soit encore très expérimental, il est à peu près certain que le mode de fonctionnement privilégié du cerveau est la reconnaissance de motif, alors que l'ordinateur ne sait faire que du calcul. C'est pour celà que l'ordinateur est capable d'extraire des logarithmes à toute vitesse alors qu'il n'est pas capable de reconnaitre un arbre stylisé sur une peinture.

          Généralement l'intelligence artificielle, au sens noble du terme, cherche à émuler la reconnaissance de motifs (pattern matching) du cerveau. Après les méthodes sont nombreuses : réseaux de neurones, algorithmes évolutifs, algorithmes figés ou approche statistique tout est bon pour arriver au résultat.

          Dans un jeu vidéo, le plus souvent (et si le problème n'est pas NP complet) on se contente bêtement d'un algorithme figé : on évalue tous les coups possibles, puis tous les coups suivants etc. jusqu'à descendre de N niveaux dans l'arbre des possibilités et on prend la position la plus favorable (La notation de la position la plus favorable étant définie arbitrairement par le codeur)

          Après si ca ne marche pas (trop gourmand en ressource, trop long, notation des positions favorables trop ardue etc.) on est obligé de se tordre un peu la tête pour donner plus de peps à son algo. Mais là les choix de méthodes se font au cas par cas suivant les problèmes.
          • [^] # Re: Trop vague

            Posté par  . Évalué à 2.

            Si l'intelligence* était la reconnaissance de motifs, comment qualifier la connaissance d'un motif ? Autrement dit, quel est le motif d'un nouveau motif et peut-on le reconnaître ?

            Une autre question dans ce genre réthorique, peut-on reconnaître quelque chose que l'on ne connait pas ou, au moins, reconnaître que l'on ne la connaît pas ? Comment ça trop d'alcool...

            *: ce n'est pas tout à fait ce que tu as dit mais bon.
            • [^] # Re: Trop vague

              Posté par  . Évalué à 3.

              Si l'intelligence* était la reconnaissance de motifs
              Non le mode de fonctionnement de l'intelligence humaine est principalement basée sur la reconnaissance de motif. De même qu'un immeuble est principalement basé sur de la pierre. Mais bon une pierre n'est pas un immeuble. Une autre preuve de pensée évoluée est l'enterrement des morts, ce qui ne correspond pas vraiment à une reconnaissance de motif.

              Une autre question dans ce genre réthorique, peut-on reconnaître quelque chose que l'on ne connait pas ou, au moins, reconnaître que l'on ne la connaît pas

              Oui et non, un objet inconnu est par définition inconnu. Par contre on peut reconnaitre tout ce que l'on a conceptualisé. Par exemple l'atome a été conceptualisé bien avant d'être découvert et il a été observé bien après avoir été découvert. Autre exemple les aveugles de naissance qui recouvrent la vue suite à une opération médicale sont capables de reconnaitre des objets de visu. Par exemple si on montre à un aveugle une boite ou le dessin d'un triangle il va être capable de dire ce que c'est. (C'est le principe des correspondances)
        • [^] # Re: Trop vague

          Posté par  . Évalué à 1.

          Disons que ce qui distingue l'AI du reste de l'algorithmique, c'est généralement que les algorithmes utilisés en AI sont non-deterministes: il y a un aspect aléatoire qui fait qu'on ne peut pas prévoir le résultat en lisant l'algorithme.
          • [^] # Re: Trop vague

            Posté par  (site web personnel) . Évalué à 2.

            N'importe quoi... ce sont les entrées qui sont aléatoires (autant que le monde/réel l'est), l'algorithme lui est parfaitement déterministe...
    • [^] # Re: Trop vague

      Posté par  . Évalué à 4.

      Pas faux, c'est déja pas mal d'avoir précisé que c'était une IA de jeu qui était voulue ;)


      Parce qu'effectivement, l'IA c'est vaste.

      Le truc le plus "ambitieux" que j'ai vu de ce côté là, pour la partie raisonnement pur, c'est le projet CHERCHEUR, de Jacques_Pitrat, qui vise grossièrement à construire un programme informatique qui raisonne comme un humain qui résoudra un problème.

      Grossièrement toujours, l'approche est la suivante:
      -> tu décris un problème dans un langage formel (problème SEND+MORE=MONEY, Sudoku ou ce genre de problème, mais pas seulement) relativement expressif
      -> le programme analyse et génère un programme spécifique en C, qui va raisonner d'abord sur le problème pour faire des déductions utiles à la résolution (il possède déja une base de donnée de règles à appliquer)
      -> appliquer une phase de combinatoire pour tester des hypothèses (genre S=4) quand on a "suffisamment" raisonnés sur le problème, relancer une phase de raisonnement en tenant compte de cette hypothèse, et recommencer

      Je crois qu'il y a aussi une phase d'apprentissage, ou si le programme C a pas l'air d'être efficace, il va essayer d'en tenir compte pour être plus efficace après, essayer de n'utiliser que les règles les plus efficaces, etc.


      L'objectif ultime du projet est de faire en sorte que le programme devienne autonome en apprenant de lui même comment raisonner sur le problème original. Dans son cas c'est apprendre les règles de raisonnement.



      En gros ce qu'il fait avec c'est modéliser un problème, le filer à son programme, attendre le résultat et regarder la démonstration, et s'extasier genre "ah ouais ça j'y aurai jamais pensé"

      Pour la partie raisonnement sur le problème (partie "meta") il s'est amusé à faire faire le raisonnement automatiquement par son programme lui même (faire le choix des règles à appliquer en gros) et à coder un choix de règles lui même et à constater que son choix de règle marchait moins bien. (Pas compris comment ça marchait, il a pas beaucoup détaillé)

      Désolé pour les refs, j'ai ça http://www.lina.sciences.univ-nantes.fr/JFPC08/jfpc08/index.(...) mais c'est pas très parlant pour un néophyte je pense, il y avait aussi des slides mais pas très détaillés.
      En dehors de ça il y a la page de Pitrat, ses publis et les thèses de ses thésards, mais le tout n'est pas forcément "à jour" sur ce projet.
      Il y a ça aussi : http://www.automatesintelligents.com/interviews/2001/nov/pit(...)
  • # Re:

    Posté par  . Évalué à 1.

    je suis très mauvais matheux, j'espère que cet aspect de ma personne n'est pas trop handicapant pour rentrer dans le sujet :-/

    Non. Au contraire en IA, tout reste à faire et ce qu'il manque, c'est de l'imagination.
    Pour commencer, tu peux voir des trucs un peu rigolo comme les automates cellulaires ou les algorithmes génétiques. Il n'y a pas du tout de maths là dedans.
    • [^] # Re: Re:

      Posté par  . Évalué à -3.

      automate, intelligence, automate, intelligence, automate, intelligence, tu trouves pas qu'il y a comme un truc bizarre dans les sons de ces mots ?....
      Sans blague, y'a pas plu con qu'un automate (on dit souvent que le premier ordinateur/automate construit est une calculatrice, c'est intelligent une calculatrice ?!?)

      Et pour ce qui est des algos. génétiques, des réseaux de neurones et des systèmes multi-agents effectivement tout ça peut être utilisé sans être mathieu, mais il n'empêche que pour utiliser à fond ces outils il faut les comprendre, et pour les comprendre, bah les maths ça aide...
      • [^] # Re: Re:

        Posté par  . Évalué à 4.

        Ben pour l'instant la vraie intelligence artificielle n'existe pas, alors que ce soit des automates ou l'A* c'est kifkif en effet.
        Ce que je voulais dire, c'est qu'en trouvant des méthodes vraiment originales on a peut être plus de chance de s'en approcher.

        Il y a aussi une théorie qui dit que les personnes qui ont le plus de chances de trouver certains problèmes réputés très difficiles (comme trouver une vraie IA ou démontrer que P != NP (ou égal)), sont ceux qui sont loin du domaine, car ils pourront penser différemment, sans être influencés.

        Enfin bon pour revenir aux automates cellulaires, comme ceux de Conway, c'est quand même assez fou ce qu'on peut faire de complexe à partir de choses simples.
        • [^] # Re: Re:

          Posté par  . Évalué à -1.

          Enfin bon pour revenir aux automates cellulaires, comme ceux de Conway, c'est quand même assez fou ce qu'on peut faire de complexe à partir de choses simples.

          100% d'accord
        • [^] # Re: Re:

          Posté par  . Évalué à 3.

          Il y a aussi une théorie qui dit que les personnes qui ont le plus de chances de trouver certains problèmes réputés très difficiles (comme trouver une vraie IA ou démontrer que P != NP (ou égal)), sont ceux qui sont loin du domaine, car ils pourront penser différemment, sans être influencés.

          Merde, alors ma grand mère aurait aurait pu demontrer le théorème de Fermat si j'avais essayé de lui expliquer ? Dommage que je l'aie pas fait :)
          • [^] # Re: Re:

            Posté par  . Évalué à 4.

            Si tu lui expliques en terme mathématiques, c'est sûr que non.
            Mais de nombreux problèmes peuvent être expliqué d'une façon détourné.
  • # un rat ?

    Posté par  . Évalué à 2.

    Si tu as un rat sous la main tu peux faire un essai avec ça : http://afp.google.com/article/ALeqM5g7B_SGvREXwQAgg-6yLVHExj(...)
  • # Écrit comment TU joues !!

    Posté par  (site web personnel) . Évalué à 7.

    Il parait que ce qui pousse le chat à attaquer sa proie se résume à une équation :

    Si la probabilité de se faire remarquer >= la probabilité d'attraper sa proie
    Attaquer();

    Quand on y réfléchi ça semble logique, mais c'est justement le calcul de cette probabilité qu'il va te falloir modéliser.

    Je pense que je vais dire une évidence, mais dans un code, la seule chose qui permet d'influencer le comportement du programme, ce sont les variables. Ici ça va être la même chose. Pour commencer, joue a tes jeux, en te demandant qu'est ce qui te pousse à prendre telle décision dans le jeu.

    Le hasard ? Un comportement autistique qui fait que tu prend en compte l'ensemble des paramètres du jeu ? Ni l'un ni l'autre. L'homme n'est ni libre ni rationnel, et nos décisions ne sont jamais justes car nous n'avons jamais une information complète et objective. Voir les pages très intéressantes sur la Theorie_des_jeux

    Il faut que tu fasses la liste des paramètres qui entrent en compte quand tu joues à tes jeux : bilan perte/gain si on est dans un jeu comme les échecs; stade dans le jeu ( début/milieu/fin ) pour les jeux fermés : tournois poker, course de voiture; connaissance de l'adversaire ( temps de réaction, style de jeu etc ); il y a énormément de paramètres qui peuvent influencer internes au jeu ( points de vie ) ou externes ( nombre d'adversaires déjà en train de s'acharner sur ta cible.. )

    Ensuite, à partir de ça, il faut élaborer un modèle à suivre ( ou plusieurs, et présenter différentes IA, chacune aillant son style ). La prise de décision est très facile à mettre en place, et se résume à une simple équation en prenant en compte les paramètres relevés plus haut. Libre à toi de les complexifier en mettant en compte un historique des décisions de l'adversaire, de rajouter un peu d'aléatoire pour éviter des réactions prévisibles etc

    Je n'ai pas d'ouvrages à te conseiller, mais je pourrais te conseiller d'aller voir les pages qui traitent de CoreWar, c'est - une forme - d'intelligence artificielle, qui dispose d'une grande littérature et qui devrait déjà t'occuper un petit moment ! :)

    Amuse toi bien !
    • [^] # Re: Écrit comment TU joues !!

      Posté par  . Évalué à 2.

      Si la probabilité de se faire remarquer >= la probabilité d'attraper sa proie
      Attaquer();


      J'en doute: t'as au moins d'autres paramètres. Genre "si j'ai très très faim" et si "j'ai pas vu un oiseau depuis des siècles" alors "seuil de risque" très très haut :)
      Son expérience de la chasse aussi j'imagine, genre le chat inexpérimenté va plus facilement se faire remarquer, il va mal évaluer la probabilité de se faire remarquer, voir ne pas du tout avoir conscience qu'il peut se faire remarquer.

      L'homme n'est ni libre ni rationnel, et nos décisions ne sont jamais justes car nous n'avons jamais une information complète et objective.

      C'est aussi une question de temps: nous disposons d'un temps limité pour prendre nos décisions. C'est même pire que ça, notre esprit nous "pousse" à prendre des décisions rapide (ennui, lassitude) si nous stagnons, amha.

      Et si tu regardes théories des jeux, il existe des jeux à information complète, genre le solitaire pas exemple. Les échecs aussi même, nous avons toutes les informations sur le jeu, pas de hasard. Certe nous ne savons pas ce que va jouer l'adversaire, on peut seulement l'imaginer.

      À part ça, quelques algos "de bases" en algo de jeux : en:Negamax en:Alpha-beta_pruning, etc.
      • [^] # Re: Écrit comment TU joues !!

        Posté par  (site web personnel) . Évalué à 1.

        Bon ça fait longtemps aussi que les chats sont nourris à bases de croquettes et qu'ils n'ont plus besoin de chasser pour se nourrir ! Je crois que l'article que j'avais lu ( une brève dans un sciences humaines ) parlait surtout de la chasse comme "jeu" pour le chat, et non pas comme nécessité vitale ( effectivement ça change les critères ... )

        ce que tu dis sur les jeux à information complète est intéressant, mais ça ne rend pas les choix plus objectifs pour autant. Le jeu d'échec est reconnu pour êter un jeu de mémoire : il y a une liste d'ouverture à connaître, une liste de fermeture, et la partie se déroule entre ces deux états définis ( enfin je dis peut être des bêtises, il faudrait qu'un amateur vienne confirmer ).

        Dans les réflections sur le jeu, il y a le livre de Carse, Jeux finis Jeux infinis, qui présente les jeux selon qu'ils sont tournés vers l'intérieur, ou vers l'extérieur. De même, on peut s'intéresser à la manière dont le changement d'un détail dans la règle, change la stratégie du joueur en profondeur etc.. Mais ce sont là d'autres débats !
        • [^] # Re: Écrit comment TU joues !!

          Posté par  . Évalué à 2.

          Bon ça fait longtemps aussi que les chats sont nourris à bases de croquettes et qu'ils n'ont plus besoin de chasser pour se nourrir ! Je crois que l'article que j'avais lu ( une brève dans un sciences humaines ) parlait surtout de la chasse comme "jeu" pour le chat, et non pas comme nécessité vitale ( effectivement ça change les critères ... )

          Le jeu peut très bien être vu comme un moyen d'apprendre justement :) Le jeune chat s'entraîne, instinctivement, pour quand il devra trouver sa bouffe tout seul et pour régler les paramètres de l'équation.


          Héhé, l'information est complète, ça n'empêche pas qu'on a une capacité limitée à "dérouler" le jeu, due au très très grand nombre de combinaisons possible et qu'on ne sait pas ce que l'adversaire va jouer.

          Donc effectivement c'est beaucoup de pratique, du par cœur au début ou à la fin quand la combinatoire est "calme" et de "feeling" (quoi que ça puisse vouloir dire) pour pas te mettre dans des situations ou d'expérience tu te mets en danger et mettre l'adversaire en danger, de prévisions sur ce que va jouer l'adversaire, de dosage du risque, ...



          Du coup, comme disais mon prof d'IA, il y a deux façon de faire de l'IA, grossièrement:

          * Mettre l'intelligence et la connaissance humaine sur le problème dans l'algorithme,
          * Ou pondre un algo qui va prendre les décisions toutes seules sans qu'on lui tienne forcément la main.

          Il y a aussi le bourrinage que permet la machine, bien sûr quand c'est possible, mais je suis pas sûr qu'en soit ça mérite le qualificatif "d'intelligence artificielle" :)
    • [^] # Re: Écrit comment TU joues !!

      Posté par  . Évalué à 10.

      Je tiens à preciser le vrai programme du chat:


      (1) Don’t run, if you can walk.
      (2) Don’t walk, if you can stand.
      (3) Don’t stand, if you can sit.
      (4) Don’t sit, if you can lie down, and
      (5) Don’t stay awake, if you can take a nap.


      Et celui du chien:


      if you can’t eat it, and you can’t fuck it; piss on it.


      (source: Church of Satan [http://www.churchofsatan.com/Pages/MostPower.html])
  • # Pouet

    Posté par  (site web personnel) . Évalué à 2.

    Merci pour vos premières réponses

    Effectivement je suis resté un peu flou dans ma question initiale... Je pense utiliser ca dans un premier temps dans des petits jeux que j'ai développé à la va-vite, et qui sont relativement simple dans les règles.

    Dans ce qui m'a poussé à éclaircir mes idées : je tombais souvent sur des textes parlant de réseaux neuronaux, d'algo génétiques, ou plus récemment (avec le spam) les filtres bayésiens, et j'étais curieux de mettre une image derrière toutes ces appellations qui pour l'instant sont plutôt obscures à mes yeux.


    Bref, dans ma grande naïveté je pensais qu'un bouquin super interessant appelé "l'IA pour les nuls" me détaillerait plein de trucs chouettes, avec des cas typiques à modéliser, un peu comme les designs pattern utilisés en POO ^^


    De toute évidence ce n'est pas le cas :)
    • [^] # Re: Pouet

      Posté par  (site web personnel) . Évalué à 1.

      Ah, une autre utilisation que je souhaitais en faire, c'était la reconnaissance basique de motifs dans une image. Pour se faire, il faut apparemment recourir aux réseaux neuronaux...
      • [^] # Re: Pouet

        Posté par  (site web personnel) . Évalué à 2.

        Les algo genetiques et reseau de neurone (sauf les simples) sont difficile a mettre au point. Les trucs comme le minmax ou les probabilite conditionnel (réseau baysien) marchent mieux.

        "La première sécurité est la liberté"

  • # Définition

    Posté par  (site web personnel) . Évalué à 4.

    La définition de l'IA qu'on m'avait donné, c'est "un programme qui n'est pas intelligent, mais qui donne à l'utilisateur l'impression de l'être".

    Au final, attends-toi à être déçu :-). La plupart des techniques d'IA sont soit du type "je teste toute les solutions possibles, je garde la meilleure", soit du type "le concepteur a fait un truc astucieux qui colle bien à la situation dans lequel le programme est utilisé, mais sorti de ce contexte le programme n'a aucune intelligence".
    • [^] # Re: Définition

      Posté par  (site web personnel) . Évalué à 4.

      Est de l'intelligence pure tout ce que n'est pas capable de faire un ordinateur. Jouer au échec vient de changer de catégorie :)

      "La première sécurité est la liberté"

  • # Il n'y a pas que des algos !

    Posté par  . Évalué à 4.

    J'ai lu un peu trop de commentaires expliquant que l'intelligence info n'existe pas, qu'il n'y a que des algos.
    Les méthodes du style "lago génétique" ou "réseau de neuronnes" ont été citées, je vais décrire rapidement la deuxième ...

    En fait, on commence par considérer un certains nombre de critères que l'on met en entrée du système. Le choix de ces critères dépend beaucoup du type d'application que l'on veut faire , même s'il ne faut pas hésiter à ajouter des critères aléatoires (l'age du capitaine ?) pour parfois obtenir des résultats étonnants.

    Ensuite, ces critères sont donnés en entrée à un système d'équations dont les coefficients sont variables. Ceci constitue en effet un algorithme, mais ce n'est pas cet algorithme qui est intelligent.

    Puis on éduque le système, on fourni des tests dont on connaît la réponse, et on donne des bonnes ou mauvaises notes au système (en effet, au début on donne beaucoup de mauvaises notes).
    L'algo précédent récupères les notes et modifie les coefficients - en gros, l'algo dit, "je me suis pris une mauvaise note, mais si j'avais le coefficient X un peu plus fort, j'aurais eu une meilleur note" (c'est la que les maths interviennent bcp).

    Et au bout de nombreux essais, les notes commencent à être meilleures ... jusqu'à obtenir des taux de succès acceptables.

    Pourquoi donc, parler d'intelligence ?
    Parce que l'algorithme, le programme, n'ont pas changé entre le début ou toute réponse était mauvaise, et la fin ou toute réponse est bonne.
    Ce qui permet d'avoir le bon résultat qui a été appris est stocké en mémoire (cerveau?), et seuls les coefficients finaux sont importants.
    Et c'est d'ailleurs à ce stade que l'on peut découvrir que le critère "age du capitaine" intervient finalement de facon non négligeable pour déterminer si un poisson péché est frais ...

    Ceci étant dit, les jeux utilisent en effet quasiment jamais de réelle IA, mais des algos prédéfinis, ou alors des recherches exhaustives de solution...
    • [^] # Re: Il n'y a pas que des algos !

      Posté par  . Évalué à 3.

      Pour rebondir avec un de mes autres commentaire, les algorithmes "à apprentissage", en quelques sorte, se construisent une connaissance, un genre de modèle, différent selon les algos, à partir de ce qu'on leur a donné et de ce qu'ils ont pu déduire. Les réseaux de neurones servent surtout à faire de la classification, c'est à dire de mettre une étiquette sur un objet, genre "ce truc est un A" si tu fais de la reconnaissance de caractère.

      Ça les rends plus souple et plus adaptables, même ça marche pas bien dans tous les cas. un des problèmes des metaheuristiques, d'autres algo à apprentissage ou plus ou moins, par exemple, c'est qu'ils sont adaptables certes, mais qu'il est parfois difficile de les "tuner" pour obtenir le résultat souhaité.
      • [^] # Re: Il n'y a pas que des algos !

        Posté par  . Évalué à 1.

        Attention, un algo ne se construit pas une représentation... un homme oui, mais une machine n'est pas capable de mettre en relation des concepts abstraits.

        Par contre les réseaux de neurones sont effectivement performants pour de la classification. La reconnaissance de visages passe assez bien par exemple, mais apprendre quelle réponse donner à un certain groupe de stimuli est aussi de la classification... Un réseau de neurones est aussi capable d'apprendre (à partir d'une base exemples avec solution par exemple) et d'extraire les poids accordé à chaque paramètre de l'équation. Mais il n'y a la dedans aucune représentation, pas d'intelligence.


        Une image qui permet assez bien de fixer quelques limites à ce que l'on peut considérer comme intelligent ou pas est la suivante (je sais plu qui l'a dit mais c'est pas de moi) :

        Imaginez un ordinateur avec une mémoire infinie (c'est juste un postulat quoi). Bon, si cet ordinateur avait en mémoire toutes les conversations possibles, qui ont étés tenues et qui seront tenues (c'est possible, on a dit infini !).
        Si vous commencez une discussion avec lui sur mettons vos vacances au ski, il pourra vous répondre (il aura même une infinité de réponses disponibles ayant comme antécédent votre première phrase). Vous répondrez à sa réponse, puis à son tour il répondra, mais tout cela restera cohérent, c'est juste un re-jeu de conversassions potentielles... donc si il vous réponds comme un humain, c'est qu'il est intelligent.
        Pourtant on voit bien qu'en partant du principe qu'il fait que rejouer de l'existant, la présence d'intelligence est plus ou moins douteuse...

        (Si quelqu'un voit qui (un chercheur) a pris cet exemple je suis preneur...)
        • [^] # Re: Il n'y a pas que des algos !

          Posté par  . Évalué à 1.

          Il me semble que tu parles du test de Turing (il me semble car le test ne consiste pas précisément en ce que tu décris ici).

          Il s'agit d'une expérience proposée par Turing pour déterminer un seuil en ce qu'on n'appelait pas encore Intelligence Artificielle, et ce qu'on n'appelle plus Intelligence Artificielle ! C'est-à-dire l'utopie d'une machine intelligente. Mais comme bien d'autres messages l'ont précisé, l'IA c'est désormais plus un ensemble de champs, mais principalement un nom donné à l'étude d'algorithmes non-déterministes et bidouillages associés genre, "quelle fonction heuristique pour ce problème" (donc ici c'est bien l'humain qui réfléchit à l'heuristique, et pas la machine). Il y a bien entendu d'autres approches sous la coupe de "l'intelligence artificielle", y compris celles qui essaient de simuler le cerveau humain au maximum, comme si ça avait un sens.

          Mais ce qui est sûr, c'est qu'une machine qui passe le test de Turing n'est pas intelligente pour autant. C'est l'illusion de l'intelligence, et c'est bien entendu différent. Car pour passer le test dans sa version générique, il suffit de duper l'examinateur dans une conversation (un autre humain étant un témoin). Bien que la conversation puisse faire appel à "l'intelligence", il s'agit ici plus de mimer le comportement humain que d'être intelligent... et malheureusement comme on le sait bien, l'un n'implique pas l'autre ;).
        • [^] # Re: Il n'y a pas que des algos !

          Posté par  . Évalué à 2.

          Mais il n'y a la dedans aucune représentation

          Oui mais non, dans le cas de la classification, il y a une sorte de représentation d'un ensemble de visages, genre il n'a pas vu toutes les photos possibles du visage, mais grâce à sa structure il va pouvoir classer le visage. Il encode d'une certaine manière une représentation possible d'un ensemble de visages connus.


          Après, effectivement, le réseau de neurone n'a aucune idée de ce qu'est un visage ou de ce qu'est une personne. Il n'a aucune notion de sémantique.

          Est-ce à dire que les machines ne sont pas capables d'intelligence ? Ce n'est pas forcément mon avis. Ça veut simplement dire que le réseau de neurone en lui même n'est pas un être intelligent. Par contre il peut faire parti d'un être plus vaste qui lui, sera peut être intelligent. L'intelligence émergerait alors de cet ensemble plus vaste, d'un être qui serait capable de comprendre et d'agir sur le monde. Voir de se concevoir lui même.


          Pour l'exemple du ski: le bot, dans ce cas, n'est pas personnellement impliqué dans l'affaire, il donne juste la sensation de l'intelligence. Serait-ce différent pour un robot suffisament élaboré ayant découvert et appris le ski alors qu'il n'en avait aucune connaissance avant, et qu'il ait appris de lui même les concepts ?
    • [^] # Re: Il n'y a pas que des algos !

      Posté par  (site web personnel) . Évalué à 1.

      Les méthodes du style "lago génétique" ou "réseau de neuronnes" ont été citées, je vais décrire rapidement la deuxième ...

      Je crois que c'est là dessus que j'aimerais orienter mes recherches.

      C'est faisable facilement un truc qui avale une image et qui dit si oui ou non un panneau de circulation (à peu près rond et à peu près rouge) se trouve dedans ?

      On lui basarderait plein de photos avec des leurres, et le bouzin serait capable à plus ou moins long terme de dire "oui ya un panneau rond et rouge" ou "non ya pas de panneau"

      Algo génétique ou réseau de neurones pour ce genre de trucs ? mes premières recherches indiquent plutôt réseaux de neurones.

      Sauf qu'un commentaire plus haut disait que c'était fun, mais quand je lis [http://alp.developpez.com/tutoriels/intelligence-artificiell(...)] je trouve ça beaucoup moins fun :(
      • [^] # Re: Il n'y a pas que des algos !

        Posté par  (site web personnel) . Évalué à 2.

        Ce n'est plus de l'ia de jeu mais de la reconnaissance de forme.

        En général, cela prend un temps cpu monstre (sauf si les images peuvent rester petite) et les seul algo de reconnaissance ("amateur") que j'ai vu fonctionner correctement utilisait des trucs simplismes (seuillage de couleur, etc...) et une maitrise de l'éclairage (pour maitriser la couleur). Le nombre de faux positif est sinon hallucinant.

        En général, une reconnaissance de forme "robuste" est un ensemble d'astuce lié à ce que tu veux reconnaitre.

        Un algo bourrin souvent vu est un calcul de "distance" entre l'image et une image de référence (genre 4*4 pixel). La référence est baladé sur l'image n*m, cela fait donc en gros (n-4)*(m-4) distance à calculer (addition de différence au plus simple, car une racine carré coute chère). Ensuite, comme l'objet peut tourner, on recommence avec plusieurs version de la référence incliné... C'est du bourrin.

        "La première sécurité est la liberté"

      • [^] # Re: Il n'y a pas que des algos !

        Posté par  . Évalué à 0.

        Sauf qu'un commentaire plus haut disait que c'était fun, mais quand je lis [http://alp.developpez.com/tutoriels/intelligence-artificiell(...)] je trouve ça beaucoup moins fun :(

        C'est pour ça que dire que y'a pas besoin de math pour utiliser c'est prendre un gros raccourci.

        99% des utilisateurs d'internet ne comprennent rien aux protocoles de routage et pourtant ils les utilisent au final.
  • # On t'a reconnu

    Posté par  . Évalué à 10.

    Aller, arrête un peu, on t'a reconnu, tu es une IA male
    qui cherche une IA femelle...

    C'est degoutant, il y a des sites pour ça !! :)

    ==========> [ ]
  • # SMA

    Posté par  . Évalué à 2.

    Si je peux te conseiller une petite lecture ...

    Gerhard Weiss, ed. by, Multiagent Systems, A Modern Approach to Distributed Artificial Intelligence, MIT Press, 1999, ISBN 0-262-23203-0.
  • # Bien

    Posté par  (site web personnel) . Évalué à 1.

    J'ai trouvé pas mal de ressources sur internet, plus ou moins imbitables.

    J'ai fais une première tentative de codage d'algo génétique en python en m'inspirant d'un truc trouvé en java


    Ca marche a peu près correctement, mais c'est terriblement lent (de 2 à 30 secondes pour trouver un nombre à deux chiffres), là où le programme java semble trouver toujours du premier coup.

    J'ai une de mes fonctions qui doit plomber tout ca...

    Pour ceux que ca interesse : [http://fuck.the.world.free.fr/algo/algogen.py]

    Ca se lance comme ca :
    python algogen.py [nombre]

    et ca donne grosso merdo ça :

    cho7@cho7land:~/Desktop$ python algogen.py 6
    Le nombre 6 admet par exemple la solution 0+6
    cho7@cho7land:~/Desktop$ python algogen.py 6
    Le nombre 6 admet par exemple la solution 4+2
    cho7@cho7land:~/Desktop$ python algogen.py 6
    Le nombre 6 admet par exemple la solution 1+1+4


    ps : désolé pour le code trop moche écrit à la sauce python 2.1 et un développeur qui a un peu trop bu de java recemment
    • [^] # Re: Bien

      Posté par  . Évalué à 2.

      ps : désolé pour le code trop moche écrit à la sauce python 2.1 et un développeur qui a un peu trop bu de java recemment
      Bravo, j'avoue qu'utiliser des chaînes de caractères de 0 et de 1 pour signifier des bits, c'est assez fort ... vive les programmeurs java et leur lourdeur !
      [/humour]
      • [^] # Re: Bien

        Posté par  (site web personnel) . Évalué à 1.

        [hs]
        Bof, les chaines c'est plus une méconnaissance de python qu'un héritage de java.

        J'utilise beaucoup python, énormément même, mais comme un couteau suisse. Je fais des utilitaires avec, qui répondent à un besoin donné à un instant T, et qui ensuite sont archivés "au cas où". Du coup je ne peaufine pas trop mon code, et je trouve les nouvelles syntaxes pythoniennes certes plus concices, mais moins lisibles àmha pour ma ptite tête

        Pour en revenir aux tableaux de bytes, je n'ai pas trop cherché si le "type" existait en python. Je suis parti sur l'idée que je ne savais pas trop s'il fallait mieux utiliser une collection remplie de 0 et 1 avec python utilisant 4 octets pour chaque entier, ou une chaine sachant qu'un caractère est probablement codé sur moins.

        Bref, on s'en fiche pas mal, ce n'est pas le débat. Fin du HS donc, merci :)
        [/hs]
        • [^] # Re: Bien

          Posté par  . Évalué à 2.

          [hs]
          Le problème, c'est que c'est de l'optimisation pas terrible (qui est un peu pas naturelle, et qui est un peu de l'héritage C) au détriment de trucs qu'on ne voit pas forcément (les comparaisons sur les chaines sont peut-être plus coûteuses). C'est un peu prématuré et sans profiling :)
          Ceci dit, je n'ai pas lu ton code, je ne connais rien aux algos génétiques :)
          [/hs]

          Sinon, il y a ça, mais je ne sais pas du tout ce que ça vaut : http://home.gna.org/oomadness/en/genetic/index.html
    • [^] # Re: Bien

      Posté par  . Évalué à 3.

      Juste pour info, est-ce ton intelligence artificielle qui est l'auteur de ta petite page d'escroquerie sous couvert d'humour ici [http://allopassgratuit.free.fr/howto.html]? Je me demande ce qu'Allopass en pense, et à fortiori la justice si quelqu'un est assez stupide pour tomber dans le panneau.
  • # Bien

    Posté par  (site web personnel) . Évalué à 2.

    Essayons de récapituler ce que j'ai lu jusqu'à présent sur internet.

    Je pense avoir compris la base des réseaux génétiques. On créé une population au hasard, on tire 2 individus, dans 70% des cas environ ils se reproduisent pour donner naissance à deux autres individus, qui 1 fois sur 1000 subissent des mutations génétiques. Ces deux individus sont ensuite réintégrés dans la population initiale (parcontre les deux parents ne le sont pas forcément, d'après ce que j'ai lu, ca doit dépendre des philosophies...) ou bien commence à peupler une nouvelle population, et on boucle autant de fois qu'on peut tirer d'individu dans la population. Ensuite soit on ajoute la nouvelle population à l'ancienne, soit elle la remplace completement (vous conseillez quoi, vous ? car j'avoue que c'est pas très clair tout ça, chacun y va de sa sauce)

    De même il faut parfois rajouter des individus au hasard en fin de cycle pour ne pas faire tirer l'algo vers les maximums locaux, à savoir plein d'individus tip-top au niveau de leur fitness score, mais malheureusement serait incapable de résoudre le problème pour autant.

    Le choix des deux individus reproducteurs peut varier d'un algo à l'autre. Certains trient leur population et prennent les deux meilleurs à chaque fois, d'autres en prennent deux au hasard, d'autres prennent le meilleur et le font s'accoupler avec tous les autres, mais globalement la technique de la roulette est utilisée, à savoir qu'on tire bien au sort les individus, mais avec tout de même plus de chance de tirer un bon qu'un mauvais.

    Ensuite les réseaux neuronaux.

    Là je trouve les explications que j'ai trouvé sur internet beaucoup plus élitistes !

    En gros, un neurone est une fonction qui attend n entrées. Pour chacune de ces entrée est appliquée un coefficient multiplicateur (ou poids), et quand le neurone fait la somme de toutes ses entrées*poids, il lance sa fonction d'activation. C'est le résultat de cette dernière qui dira si le neurone est actif ou non, sachant que pour un neurone basique, la fonction d'activation est simple : si la somme de mes entrées*poids >0 elle retourne 1, sinon elle retourne 0

    On peut être moins binaire en utilisant une fonction sigmoïde, nom barbare signifiante que la représentation graphique de cette fonction ressemble à un S, et qu'en gros selon la somme des entrées*poids, ce qui sort de la fonction d'activation sera proportionnellement proche de -1 ou 1 (par exemple 0.3 ou -0.3)

    On peut calibrer les poids à la main pour forcer le résultat attendu en sortie de neurone selon certaines entrées, c'est ce qu'on appelle l'apprentissage supervisé.

    On peut également laisser les neurones trouver le poids idéal en leur fournissant un jeu d'essai conséquent comprenant une série de valeur d'entrées et la valeur de sortie attendue.

    Ca peut être fait simplement pour deux entrées et deux poids, par rééquilibrage progressif, mais pour plein de neurones avec pleins d'entrées, ca devient long et fastidieux.

    Les algorithmes génétiques entrent donc en jeu et permettent de calculer grossomerdo un ensemble de poids que le neurone devra utiliser pour répondre à peu près correctement aux entrées qu'on lui fourni.

    Pour se faire, il devra à chaque nouvelle entrée dans les neurones qu'on lui fournit en jeu de test regarder le résultat attendu, tenir compte des autres poids qu'il avait déjà et qui lui permettait de répondre juste, pour élaborer un nouvel ensemble de poids qui répondrait juste à la fois aux anciennes demandes, mais également à cette nouvelle.

    L'avantage de l'algorithme génétique, c'est qu'on peut être "tolérant" et lui dire par exemple, si tu t'approche de la solution à 90% ça nous va ! (le réseau donnera donc la bonne réponse 9 fois sur 10)


    (ça je suis vraiment pas sûr) Donc si on veut reprendre notre algo génétique de base, l'individu aura de plus en plus de gène au fur et à mesure qu'on l'entrainera, et l'algo moulinera de plus en plus pour trouver un ensemble de poids corrects.

    Bon, maintenant c'est l'heure des corrections, n'hésitez pas à me dire ce que je n'ai pas compris :)
    • [^] # Re: Bien

      Posté par  . Évalué à 4.

      Rapidement, tu te trompes sur l'apprentissage.

      Régler les poids à la mano, c'est pas du tout de l'apprentissage, c'est une sorte de tuning manuel. L'apprentissage ça doit être automatique.

      Apprendre à partir d'exemples, c'est ce qu'on appelle l'apprentissage supervisé, par opposition à apprentissage non supervisé.

      L'apprentissage non supervisé, grosso modo, c'est apprendre quand on a pas d'information préalable sur les données qu'on va traîter.

      Si on prends l'exemple de la reconnaissance d'écriture par exemple, l'apprentissage supervisé ce serait:

      J'ai une base de donnée de dessin de "R", je les donne à manger à l'algo d'apprentissage en lui disant qu'il doit les classer comme des "R", je recommence avec des "A", ...

      Ensuite tu lui file un dessin, et il doit trouver quelle lettre ton dessin représente.

      L'apprentissage non supervisé, il ne connait pas les classes au préalable, et il doit trouver tout seul que deux "R" sont dans la même classe, que les "A" se ressemblent tous mais qu'ils sont différents des "R", donc créer deux classes "A" et "R".


      Pour finir, j'y connais pas grand chose en réseau de neurone, mais utiliser des algo génétiques pour fixer les poids d'un réseau neuronal, ça a l'air plutôt avancé et de ma petite fenêtre j'ai pas vu ça dans les algo "classique" d'apprentissage pour un réseau de neurone ...
      • [^] # Re: Bien

        Posté par  (site web personnel) . Évalué à 2.

        Merci pour ces explications. Effectivement l'algo génétique mélangé au réseau neuronaux me parait hardcorde à mon niveau :)

        Il me reste beaucoup de zones d'ombre; notamment sur la quantité de neurone/synapses_par_neurones/couches qu'un réseau doit avoir pour un problème donné.

        Par exemple, je souhaite mettre en place un réseau neuronal super avancé à qui on donnerait un triplet de chiffre.

        Le but est de lui apprendre à dire Oui si le plus petit des 3 chiffres se trouve à gauche du triplet ou à droite. Et de répondre Non s'il se trouve au milieu.

        Vous le modéliserez comment ce problème ?
        • [^] # Re: Bien

          Posté par  . Évalué à 2.

          Pour le nombre de couche il me semble qu'il a été démontré qu'un réseau à 2 couches est suffisant (tout réseau avec un nombre de couche supérieur peut être modélisé avec un à 2 couches). Mais c'est des vieux souvenirs, ça demande à être vérifié.

          Après, la quantité de neurones, bah ça dépend du nombre d'entrées et de sorties que tu veux.

          Et pour les nombre de synapses et de liaisons, il doit y avoir des études un peu partout sur les différentes topologies.

          En tous cas, pour tout ce qui est "tunage" de ce genre de paramètre, je pense que le mieux pour commencer est d'essayer avec différentes valeurs, et de voir le résultat. Tu trouveras plein d'avis différents sur la question, si tu veux pousser un peu plus, il doit y avoir pas mal de publi dessus. En fait, il n'y a pas (encore ?) de règles sur tout dans ce domaine, alors oui c'est un peu vague au début, tu sembles paumé, mais c'est comme ça que ça marche !
    • [^] # Re: Bien

      Posté par  . Évalué à 1.

      Donc si on veut reprendre notre algo génétique de base, l'individu aura de plus en plus de gène au fur et à mesure qu'on l'entrainera
      Non, le nombre de gènes est immuable (chaque gêne correspond à un élément de ton algo de réponse, il est donc figé), par contre la combinaisons des gènes s'améliore de génération en génération par rapport à la solution cherchée.

      'algo moulinera de plus en plus pour trouver un ensemble de poids corrects.
      Non, le réseau de neurones ne retient pas l'ensemble des scénarios déjà joués (pas d'historique), chaque nouveau réajustement se fait en fonction des poids en place et du jeu en cours. On modifie _légèrement_ les poids pour les faire tendre vers la solution (ce qui fait qu'on ne change pas complètement notre comportement en un coup, et donc que le test précédent doit toujours être valable).
      Mais il est possible qu'un cas de test OK au début devienne KO plus tard ...
      Au bout du compte (en production) soit on fige les poids aux valeurs qui nous conviennent le mieux (95% succès ?), soit notre système continue d'apprendre (idéal dans un milieu évolutif) ...

      Globalement, les deux systèmes fonctionnent sur le même principe, ce qui change, c'est la méthode de réajustement des variables.
  • # IA mauvais souvenir

    Posté par  . Évalué à 1.

    Le souvenir que j'ai de mes cours d'IA était que c'était franchement artificiel et pas intelligent, en gros très fumeux.
    • [^] # Re: IA mauvais souvenir

      Posté par  . Évalué à 5.

      L'intelligence naturelle n'est pas toujours très intelligente non plus. Donc c'est bien simulé.

      Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.