Cyrare a écrit :Des intelligences artificielles "faciles" à concevoir sont par exemple un joueur d'échec qui une fois les règles assimilées va jouer comme une merde au début et comprendre comment tu joues au fur et à mesure des parties, pour finir par te battre avec tes propres techniques.
C'est déjà très scripté, il y a d'autres applications bien plus bluffantes (pour moi en tout cas) j'avais vu un reportage qui montrait un bras articulé dans un espace clos avec juste un cube. Le bras bougeait n'importe comment, et finissait par "comprendre" qu'il ne pouvait pas aller plus loin que la paroi et ne se cognait plus, et finissait aussi par comprendre l'existance du cube et même qu'il pouvait l'attraper avec sa pince et le déplacer.
Ce dont tu parles là, c'est de l'apprentissage par renforcement. C'est un système tout bête dans le fond qui fonctionne à base de récompenses.
Pour casser ce qui te semble "intelligent", dans ce concept le joueur artificiel d'échecs ne joue pas un coup parce qu'il y a "réfléchi" ou compris les règles mais parce que son système de récompense lui a indiqué que la meilleure (ou moins pire) récompense se trouvait dans le coup qu'il allait effectuer (si on omet le coefficient d'exploration qui pousse l'entité à faire une action totalement au hasard). Il actualise en même temps ses récompenses suivant le résultat obtenu par l'action.
La récompense peut par exemple être vue comme positive s'il a déjà joué ce coup, dans une ancienne partie, qui l'a mené vers la victoire, et négative s'il l'a mené à la perte. C'est une vision assez simpliste mais c'est ce qui est utilisé pour le backgammon, et qui y fonctionne.
Le hic est que pour que le joueur artificiel puisse savoir quelle action choisir, il faut qu'il puisse se représenter l'état dans lequel il se trouve. Cela implique qu'il puisse se représenter tous les types de situations possibles dans lesquels il se trouve afin d'inférer les bonnes actions.
Dans la pratique c'est beaucoup plus compliqué car il y a plein de facteurs qui entrent en jeu, l'entité a alors une représentation assez limitée de son entourage, ça ne fonctionne très bien que s'il n'y a pas un élément imprévu qui vienne chambouler sa représentation, car l'entité ne pourra pas se la représenter, elle continuera, si elle y arrive, bêtement à actualiser son système de récompenses, bien ou mal.
Dans un jeu comme les échecs ou le backgammon, il n'y a jamais d'élément imprévisible, on parle d'environnement déterministe. Pareil pour un bras enfermé dans une cellule.
Pour modéliser un peu la fonction de récompense du bras, on peut penser à des récompenses négatives lorsque le bras n'arrive plus à avancer (action "avancer" à un certain type d'état de l'entité).
Le bras infèrera qu'il est mauvais de tenter de faire certaines actions à certains endroits, car il aura une moins bonne récompense que s'il fait d'autres actions, comme attraper (à l'état "ne possède pas de cube") puis déplacer (lorsque "possède le cube") qui lui donnent une récompense positive.
Il faut de plus que l'hypothèse de Markov soit vérifiée et que l'entité agisse une "infinité" de fois.
Puis l'actualisation des valeurs de récompenses dépend beaucoup de la fonction de récompense implémentée par le programmeur.
En gros on laisse tourner une entité de façon aléatoire jusqu'à ce qu'elle apprenne bien, mais il se peut que ce "bien" n'arrive jamais. Ca dépend de plein de paramètres, mais essentiellement de la fonction de récompense
choisie par le programmeur.
Si on faisait ça sur des jeux, il se pourrait très bien que les entités, après apprentissage, agissent plus bêtement que de simples scripts.
Si ça t'intéresse, il y a
cette thèse qui est plutôt intéressante et explique en détail certaines parties de l'apprentissage par renforcement.
Puis il suffit de mettre des randoms dans les scripts et ça te semblera une vraie IA d'après ce que je comprends.
