Avatar de Sacredceltic
Publié par Sacredceltic 15 réponses
Ouvert

Projet de création d'un système automatique de détection des prises de contrats déviantes

Bonjour,

à l'instigation de Coin Coin, qui m'a chaleureusement encouragé à élaborer mon idée, j'ouvre ce nouveau fil, pour l'expliciter, la détailler et encourager d'autres membres du site à y prendre part.
J'espère vraiment que ce fil ne sera pas, comme tant d'autres le sont souvent, pollué par des adeptes du mélange de tout et autre querelleurs en recherche de règlements de comptes n'ayant rien à voir avec le schmilblick.
J'aimerais également que les participants se cantonnent à des considérations techniques, matérielles et factuelles et qu'ils laissent de côté les impressions émotionnelles ou métaphysiques, qui n'ont rien à faire dans un projet technique de cette nature.
D'avance je vous remercie.

Avatar de Sacredceltic

Pour commencer, je précise mon objectif initial et je précise les termes employés.
Mon premier objectif était de détecter les "trolls", nom que j'avais décidé d'employer parce que c'est la norme sur Internet de nommer ainsi les gens qui détournent ou polluent les systèmes de participation en réseau.
Cette dénomination ayant choqué certains, je la laisse de côté, comme ça on s'épargnera cette pollution-là, inutile au projet, par les âmes sensibles. Je parle désormais, faute de mieux de "Prises de contrats déviantes"...
On peut ergoter tant qu'on veut sur la subjectivité de la définition de ce qui est "déviant", comme sur le sexe des anges, et c'est intéressant, mais moi ce que j'ai en tête, c'est d'OBJECTIVER la déviance, à l'aide d'une IA, qui permettrait, grâce à sa puissance d'analyse statistique, de MESURER précisément les chances de remporter un contrat donné, en fonction d'une main donnée et de la position du preneur par rapport au donneur (qui joue un rôle important dans la prise dans l'élaboration d'une stratégie) et de vérifier si le gain a été maximisé.

Avatar de Sacredceltic

Alors comment réaliser un tel système ?
Tout d'abord, je voudrais préciser que je trouve le terme d'"Intelligence Artificielle" un peu dévoyé et sensationnaliste, s'agissant des différents projets actuellement en cours et publiés sur Internet, dont certains sont déjà en accès libre, comme GPT.
En effet plusieurs géants du Web sont en pleine course pour développer la meilleure "IA" possible : Google, Microsoft, Elon Musk, Jeff Bezos, IBM et beaucoup d'autres.
La plupart de ces IAs sont fondées sur le principe de l'"Apprentissage Profond" (en anglais : "Deep-learning")

Kézako ?
Il s'agit de fournir à l'IA de grandes quantités de données et de lui les faire analyser afin qu'elle détecte des régles ou des comportements (en anglais "Patterns")

Donc pour le Tarot, on fournirait à l'IA considérée des quantités de mains de preneurs, de contrats associés, de place du preneur, et de nombre de points obtenus, et puis on la laisserait réfléchir toute seule aux corrélations existant entre ces données.

La merveille de ces systèmes, c'est qu'on a plus besoin de leur "apprendre les règles". Ils les DÉCOUVRENT TOUT SEUL !
l'IA va "comprendre" TOUTE SEULE que lorsque la main contient le 1, l'Excuse et le 21, le contrat a plus de chances d'être remporté que sans ces cartes.
Donc elle apprendra tout : l'importance des atouts, des rois, des couleurs, des coupes,...TOUT. TOUTE SEULE.

, :
On ne parle pas de la même "IA". L'IA qui "joue" sur ce site n'est pas une "IA". C'est un algorithme dans lequel on a codé les règles du jeu "en dur". C'est pour ça qu'il ne joue pas très bien, d'ailleurs. Ça n'a RIEN A VOIR !
Avatar de Sacredceltic

Mais donc il faut des données pour alimenter l'apprentissage de l'IA. Et plus on en mettra, plus les inférences qu'elle en fera seront pertinentes et profondes. Il est même possible qu'elle détecte des corrélations auxquelles encore aucun joueur de Tarot n'a jamais songé...Parce qu'un être humain, fut-il très intelligent, n'a pas la capacité de calcul d'une IA.
La quantité de distribution possibles au Tarot est quasi infinie. C'est un nombre astronomique.
Donc il n'y a pas 2 mains identiques dans une vie. C'est donc très difficile pour un humain d'y appliquer une logique profonde. Tout au plus y appliquons-nous un "instinct" basé sur notre expérience personnelle, limitée. L'IA va beaucoup plus loin.

Donc beaucoup de données. Je pense à minima de l'ordre de 100.000 et probablement plus proche du million, pour démarrer un tel système.

Où trouver ces données ? C'est une question qui me taraude.
Peut-être quelqu'un, quelque part, en dispose. Mais c'est vrai que le Tarot n'intéresse, à l'échelle mondiale, qu'une petite communauté. Alors que peut-être que personne n'a donc encore pensé à constituer une telle base de données.

Vous allez me dire : les sites de Tarot, dont celui-ci, en disposent. Oui mais ils ne veulent pas les divulguer, car ils y attribuent de la valeur économique.
Donc il faut leur prendre ces données puisqu'elles sont consultables à l'écran sur leurs sites. Oui mais ça pose à la fois des problèmes techniques et juridiques.
On peut effectivement concevoir un "extracteur de données de site" (en anglais : "web-scraping") mais le propriétaire du site peut tenter de s'y opposer par des mesures techniques et légales.

, :
Le nombre de combinaisons de 15 cartes parmi 78, est 4367914309753280
vous pouvez le vérifier ici : Consulter le lien externe
Avatar de Sacredceltic

On peut contourner les mesures légales prises par le propriétaire du site (je ferai un autre post sur les mesures techniques) en "dissimulant" l'extraction.
L'idée est de faire tourner l'extracteur discrètement, depuis plusieurs points, à différents moments, pour ne pas se faire repérer. Oui, mais c'est plus compliqué à mettre en oeuvre techniquement et logistiquement. Mais c'est possible.
Et pour éviter les poursuites légales éventuelles, on peut aussi mettre les données extraites à la disposition du public, ce qui ruine toute accusation d'"appropriation" illicite de données.
Je ne suis pas légaliste. Peut-être un expert de ces questions voudra-t-il participer à ce projet. Ça serait bien utile.

, :
Mimie lui a fait ma demande (parce que je ne sais pas comment le contacter) de fournir les données, mais il a répondu que ce n'était pas possible. Donc on doit faire sans lui.
Maintenant, je n'ai pas dit que je vais extraire les données du site. Peut-être d'un autre site ou peut-être vais-je les trouver déjà prêtes à consommer ailleurs.
Quant à "corriger" l'IA, oui c'est possible, mais je ne pense pas que ce soit SOUHAITABLE. À mon avis, quand une IA aura digéré un million de mains, de contrats et de scores, elle sera bien meilleure juge que n'importe quel être humain. Elle "comprendra" bien plus sur le Tarot que l'ensemble des joueurs humains réunis. Après, c'est sûr que ça sera mieux avec 10 millions, 100 millions, mais rien n'empêche de continuer à la faire apprendre par la suite.
, :
Bonjour Prof,

là tu poses plein d'autres défis que je n'englobe pas, à date, dans mes objectifs.
Encore une fois, je me limite aux souscriptions de contrats déviantes. Donc seulement l'appréciation de son risque par le preneur, au vu de sa main et de sa position. C'est tout.

Bien sûr, la main ne fait pas tout, surtout à 5, mais c'est déjà un pas.

Le fait est que la jouerie bonne ou mauvaise sera quand même évaluée, globalement, parce que si un joueur se plante systématiquement avec de bonnes mains, c'est qu'il est mauvais et ça, on pourra le voir par comparaison avec d'autres joueurs avec des mains "équivalentes" (en définissant l'"équivalence", sachant que 2 mains identiques ne peuvent se représenter dans une vie...)

Le choix du roi appelé, c'est intéressant aussi. On pourrait en effet essayer d'évaluer la bonne intuition des joueurs. Mais c'est une autre problématique. Un bonus pour plus tard ;-)

Mais les joueurs qui souscrivent à n'importe quoi, indépendamment de leur main, se fichent en général de la couleur qu'ils appellent, leur but étant le sabotage de la partie, donc dans leur cas, au moins, ça n'apporterait rien...

Quant à la tactique, comme je l'ai déjà indiqué, je ne veux pas m'y atteler pour l'instant. C'est plus compliqué, il faut plus de données, il y a beaucoup plus de paramètres en jeu.
Peut-être qu'une fois réussi le système d'appréciation de la main, je m'y attaquerai. Ou peut-être quelqu'un d'autre.
À chaque jour suffit sa peine.
, :
J'ai discuté avec un juriste - pas spécialisé en droit applicable aux données sur Internet - mais c'est tout de même intéressant : La propriété des données de parties de jeux réalisées par des joueurs sur un site par inscription est tout à fait discutable.
En effet, comme chaque distribution est unique, la main de chaque joueur est unique et donc la partie qu'ils jouent est leur création exclusive. Les données de leur partie appartient donc aux joueurs et à personne d'autre et ils peuvent en disposer selon leur bon plaisir.
Donc si un joueur veut récupérer ses données de parties, il en a parfaitement le droit, car c'est la copie d'une création collective qu'il n'a cédée à personne.
, :
Eh bien là, comme ça, je n'en sais rien parce que je suis un humain avec mon instinct à moi, imparfait. Mais l'IA attribuera une probabilité de gain à cette main sur la base de probabilités de réussite de mains « équivalentes » présentes dans les données. Certains de ces gains seront dûs au chien, à la qualité du jeu ou au jeu du partenaire, mais peu importe, ils auront une probabilité moyenne, comparable à celles d'autres mains, en moyenne plus gagnantes ou plus perdantes, et c'est le principal, enfin pour l'instant.
, :
Mais c'est justement ce qu'on veut: que l'IA reconnaisse des évaluations déviantes et celles qui sont raisonnables et les distinguent par le résultat obtenu. Peu importe la proportion des 2 dans les données d'apprentissage, l'essentiel c'est qu'il y ait suffisamment d'échantillons de chaque catégorie. Et je pense que si on prend des parties d'un joueur donné, on va trouver:
-des prises de contrat raisonnables par lui
-des prises de contrat raisonnables par les autres joueurs de sa table
-des prises de contrat « distraites » ou trop audacieuses par l'un des joueurs ( sans doute minoritaires)
-des prises de contrat déviantes par des saboteurs (en minorité)

Au final, on aura de tout, et si c'est en grande quantité, ça suffira pour que l'IA tire ses conclusions. L'important c'est la quantité, qui permettra à l'IA d'inférer plein de règles, peut-être même des « règles inattendues », je l'espère.
Avatar de Sacredceltic

Donc je vais essayer de résumer les étapes nécessaires à l'aboutissement de ce projet :

1) Trouver une base de données suffisantes ou construire un extracteur
2) si on opte pour un extracteur, faute, de données, il faut choisir un outil d'extraction. Il y en a plusieurs disponibles sur le web. Je viens d'essayer avec Browserflow, et, pour l'instant, ce n'est pas concluant avec ce site. Il y a des obstacles techniques que, à date, je ne sais pas résoudre...
3) Il faut définir en détail toutes les données qui doivent être extraites :
Composition de la main, position du preneur, contrat souscrit, points obtenus, poignée déclarée (?), date de la partie (?), identifiant - bien sûr, ANONYME- du joueur (pour recouper son comportement dans le temps et par rapport aux autres ?), autres données (??)
4) lorsque l'outil d'extraction est défini, il faut bâtir le scénario d'extraction des données
5) définir le scénario d'extraction des données : quand ? depuis quels points ? à quelles heures ? dépôt des données extraites dans quel réceptacle ?

Merci de m'aider à compléter et détailler cette liste de tâches !

, :
Au point 5, je voulais dire : définir le scénario d'EXECUTION de l'extraction.
, :
6) Choisir un moteur d'IA en libre-service en vérifiant les conditions d'utilisation et les volumes de données autorisées. En général, ces services fonctionnent de manière gratuite pour une utilisation limitée, et payante pour une utilisation ou des volumes de données plus importants.

7) Injecter les données récoltées dans le moteur d'IA choisi, ce qui constitue sa phase d'apprentissage initiale.

8) le laisser constituer son réseau de "neurones" (c'est comme ça que ça s'appelle) en fonction des inférences qu'il a tirées des données fournies.

9) lui apprendre à répondre aux questions relatives à ce modèle de données.
Exemples :
Avec cette main, quelles sont mes chances de gagner si je souscrit une Garde Sans ?
ou
Combien de joueurs souscrivent des contrats avec moins de 30% de chance de les remporter ?
ou encore
Combien de joueurs ont changé leur appréciation du risque au fil du temps ?
ou encore
Classe-moi les joueurs en 5 groupes selon leurs probabilités de gagner/de perdre : inconscients/très audacieux/audacieux/raisonnables/timorés et dénombre les dans chaque groupe.
Avatar de Sacredceltic

Intermède ludique :

Ce matin, j'ai pris une Garde avec la main suivante :
Excuse,21, Roi de Coeur, Dame de coeur, 10,6, 4 de coeur, 1,3,6 de Trèfle, Valet, Cavale et Dame de Carreau, 4 et 5 de Pique.
Auriez-vous osé prendre à ma place ? Trouvez-vous cela trop osé ?
J'ai appelé le Roi de Carreau.
Merci pour vos réponses

, :
A 4 ou 5?
, :
5
, :
A 5 je garde jeu limite interessant
, :
J'attends d'autres commentaires et je vous dirai comment ça s'est passé pour moi: c'est intéressant et c'est complètement lié au sujet !
, :
Hello, si j'ai le bénéfice de l'entame, je tente.
Entame roi de coeur (long) s'il est coupé contrat fichu
2 bouts imprenables et 1 roi = garde.
, :
Je n'avais pas l'entame mais un joueur de La Défense a lancé coeur ;-)
Avatar de perseverance

bonjour
intéressant ton sujet , mais à ce jour l'I.A. ne fait pas mieux que l'humain .pose une question précise sur le jeu de tarot à CHAT GPT elle consulte sa base de données et te dis de consulter la FFT.
bonne journée

, :
J'ai dejà répondu à cette objection dans mon fil précédent. ChatGPT est une application textuelle de GPT qui s'appuie sur les contenus Internet pour répondre sur différents sujets. Le problème, c'est qu'internet contient plein d'âneries, donc il les restitue. C'est le principe Garbage In-Garbage out : si on injecte de la merde dans une IA , elle restitue de la merde.
En plus, le thème du jeu de Tarot sur Internet est très limité et pollué par des milliers de contenus qui parlent de Tarot divinatoire. Donc ChatGPT n'apprendra jamais à jouer au tarot ni à en parler de manière pertinente.
Mais moi je parle de GPT, le moteur qui est derrière, sans les contenus internet. Ce moteur fonctionne PARFAITEMENT si on lui fournit les BONNES DONNÉES. Et c'est bien mon intention. Ici, on le limitera à des inférences concernant uniquement les données de parties de Tarot réelles et RIEN d'autre. Et alors il fera sa cuisine « magique «  à partir de ce bon miel, pour produire ce qu'aucun humain n'aura encore jamais produit sur le jeu de Tarot.
, :
Et ne confondons pas les objectifs : une fois de plus, je répète que mon objectif, en tout cas dans un premier temps, est d'apprendre à une IA basée sur le Deep-learning (GPT ou une autre) à ÉVALUER UNE MAIN de tarot et estimer la probabilité de réussite ou d'échec d'un contrat souscrit sur la base de cette main.
Il ne s'agit donc pas d'apprendre à l'IA à jouer au Tarot. Juste de lui apprendre à évaluer une main pour pouvoir juger ensuite si une souscription de contrat est « raisonnable » ou « déviante ».
On pourrait ambitionner d'apprendre à l'IA à jouer, comme le font déjà des IAs avec d'autres jeux : les échecs, les dames, le go et certains jeux de cartes, et où elles sont devenues d'ailleurs imbattables, mais c'est plus compliqué. Le jeu de la carte a encore plus de possibilités que la distribution et donc il faudrait injecter tous les plis de toutes les parties en plus des mains, et il faudrait encore plus de données pour que l'IA en tire des enseignements pertinents. Je ne doute pas qu'elles en seraient capables, mais ce n'est pas mon objectif pour l'instant.
Avatar de Sacredceltic

Je vais essayer un autre extracteur : Consulter le lien externe

Avatar de fred68

j'essaie de comprendre un paramètre qui me chagrine :
Pour moi un contrat déviant s'analyse avec la main de départ
exemple : je fais une GC avec 3 atouts en main : c est un contrat déviant.
MAIS...si j appelle un partenaire qui a un jeu béton, ou si dans le cas d'une garde ou d'une GS je touche 2 bouts dans le chien...mon contrat est réussi même si il reste déviant.
Comment l'IA va analyser ce contrat réussi ?

Ca m'énerve quand je tombe sur un preneur qui fait n'importe quoi
je fulmine quand en plus j ai la malchance d'être appelé
et j enrage complètement quand il réussi son contrat parcequ'il a une chance de...(bip!) et que je suis en def !

Mais pour l'IA se sera du ON / OFF : la partie est gagnée ou perdue

Avatar de Sacredceltic

Oui mais les probabilités sont différentes. On ne peut pas avoir du bol tout le temps. En plus, à 5, il faut considérer que la main du partenaire est un hasard irréductible.
L'IA basera ses probabilités, car c'est bien de ça qu'il s'agit, sur toute la masse des données, et pas sûr certains cas particuliers. Et c'est là que c'est intéressant, parce qu'elle peut-être que les probabilités réelles vont à l'encontre de nos intuitions de pauvres humains au cerveau limité à notre expérience plus ou moins bien digérée.
Et puis il y a les partenaires qui auraient dû prendre et qu'ils ne l'ont pas fait, soit parce qu'ils sont trop timorés (j'en connais), soit parce qu'ils sont mal-intentionnés (j'en connais aussi, dont je me méfie comme de la peste).
Il est vrai qu'on pourrait également faire digérer à l'IA les mains des autres joueurs, pour qu'elle évalue également cette probabilité et les conséquences sur le score du preneur.
Peut-être le fera-t-on dans un second temps, pour affiner.
Pour l'instant, je trouve l'objectif d'évaluer la main du preneur suffisamment ambitieux et donc je reste focalisé sur ce premier pas.
Ce serait déjà pas mal que l'IA puisse se mettre à la place du preneur, qui ne voit que sa main propre.

, :
Et j'insiste : c'est bien pour ça qu'il faut une grande quantité de données. Pour que les cas particuliers soient dilués dans la masse. Plus de données, ce sont des probabilités plus fiables.
Avatar de La Dolce

Hello, je lis et relis avec enthousiasme.
J'ai une question concernant ce paragraphe :
" MESURER précisément les chances de remporter un contrat donné, en fonction d'une main donnée et de la position du preneur par rapport au donneur (qui joue un rôle important dans la prise dans l'élaboration d'une stratégie) et de vérifier si le gain a été maximisé. "
En quoi la position du preneur est importante ? s'il prend en 1ère, 2nd ou 3ème ou 4ème intention, puisque ton outil consiste à analyser la pertinence de l'annonce du contrat ? N'y a t il pas autant de probabilités (cad 1 sur 5) qu'un preneur annonce sachant que les donnes sont aléatoires ?

, :
@La Dolce : tu l'as dit toi-même dans mon intermède ludique. Tu dis que tu prends si t'as la main pour lancer Roi de coeur. On ne fait pas le même scénario de jeu si on a la main ou pas et on ne construit pas son écart de la même façon. Donc oui, c'est important.
, :
Oui en effet, merci Sacred. Je ne puis être davantage utile, j'ai atteint "ma vitesse maxi" ;) et me contente désormais de lire...
, :
Non, n'hésite pas à poser des questions ou à intervenir. Je n'ai pas forcément pensé à tout. Toutes les suggestions ou les doutes sont bons à considérer.
Avatar de Sacredceltic

Je ne suis pas sûr que ce soit en rapport. Je constate tout de même une corrélation forte : entre le nombre de parties jouées et le score mensuel. Par exemple on peut facilement voir actuellement en CP5, en regardant les scores des joueurs du top 10, que certains joueurs jouent 2 à 3 x plus de parties que d'autres.
Donc ça prouve une chose: c'est que si on n'est pas mauvais et qu'on joue beaucoup, on peut terminer avec un score supérieur ou égal à celui d'un excellent joueur qui joue peu.
Evidemment, il faut quand même être pas trop mauvais, autrement on s'enfonce inexorablement.

, :
Bjr,
Oui Sacred, le prémium à cinq (sauf rares exception) favorise ceux qui jouent le plus. C'est pour cette raison que j'avais proposé un calcul des scores basé sur des séries moyennisées ET comparées.
Cette proposition a été à l'origine des pires dérives du forum, même si l'Admin l'avait trouvé pertinente. Mais la consultation des joueur a généré les pires dérives que l'on ait pu connaitre sur le forum, de grâce restons en là. Bon Dimanche.
Avatar de Sacredceltic

Oui, c'est n'est effectivement pas le sujet ici. Je renvoie ceux qui voudraient s'exprimer là-dessus à le faire sur les fils de discussion pertinents et pas sur celui-ci.

Avatar de Sacredceltic

Bonsoir à ceux qui s'intéressent à ce sujet passionnant.
Une mise à jour, parce qu'il y a du nouveau :
J'ai merdouillé longuement au début, en cherchant la bonne source de données et le bon outil pour les extraire. J'ai enfin trouvé les 2 !
Je sais désormais extraire les données de parties de Tarot à 5 d'une source intéressante et volumineuse. Mes tests technique sont concluants.
Il me reste donc à beaucoup travailler encore pour structurer les données pour qu'elles soient interprétables, puis pour les injecter dans un moteur d'inférences "IA" afin qu'il apprenne à évaluer des mains et des contrats annoncés, en fonction de leurs scores obtenus.
Pour l'instant, je conserve mon double objectif limité de:
1) faire choisir à l'IA si elle prend un contrat en fonction d'une main donnée, et quel type de contrat.
2) de dire si un contrat annoncé est déviant ou pas, selon la main disponible.
En fait les 2 reviennent au même, car si l'IA ne "prend" pas, c'est qu'elle trouve le contrat présenté déviant.
J'utiliserai peut-être le résultat avec un robot, sur ce site, pour cliquer automatiquement sur le bon bouton, après lui avoir communiqué la composition de ma main, via un robot. Ça sera certainement rigolo.
Je pense arriver à ce 1er résultat sous 3 mois.
Je vous tiens au courant.

Avatar de Sacredceltic

Bonnes questions.
1) oui, ce sera basé sur le score obtenu, positif ou négatif et l'IA sera instruite pour optimiser ce résultat.
2) Non, dans un 1er temps, j'exclue la jouerie. Donc l'IA n"apprendra" que le score en fonction de la main, pas du jeu. Mais comme elle sera instruite sur des milliers de parties, son évaluation des mains sera donc statistiques, sans considération de la qualité des joueurs..

Maintenant, si j'atteins ce 1er résultat de faire en sorte que mon IA soit plus clairvoyante que moi-même sur les chances de remporter un score optimisé en fonction d'un contrat donné, et donc de lui faire, in fine, "choisir" le contrat en fonction de la main, à ma place, j'irai évidemment plus loin et je tenterai sans doute d'intégrer les données de "jeu" proprement dites, mais c'est beaucoup plus compliqué parce que ça fait beaucoup plus de données à collecter, à structurer et à injecter dans son "cerveau"..
Mais, c'est également possible. Maintenant que je sais où et comment collecter les données, je peux les collecter toutes, y compris le détail des plis.

, :
En complément à ta remarque sur l"autonomie" des IAs, j'ajoute que, en fait, si, elles sont bien autonomes. Par exemple, actuellement, les meilleurs IAs pour les échecs (Stockfish, Stella..) ou pour le Go, construisent elles-mêmes leurs réseaux de "neurones" à partir des millions de parties et de leurs résultats qu'elles analysent. Tous les projets d'IAs de jeux se sont convertis à ces "constructions artificielles dynamiques de réseaux de neurones", si bien qu'aucun humain ne peut plus ni battre la machine, ni même comprendre pourquoi il est battu. L'IA construit des "neurones" plus vite que n'importe quel humain ne le peut. Et ON N'Y COMPREND PLUS RIEN, parce qu'on n'a plus, nous humains, la capacité cognitive de comprendre quels raisonnements supérieurs à fait l'IA. Et oui, on en est déjà là..

.