C'est dommage d'être né à cette époque, au lieu d'un centenaire plus tard.
Aujourd'hui, on est à l'ère de la connerie artificielle.

Par contre ma connerie à moi elle est naturelle.
Les ordinateurs ne sont pas assez puissants, et on se limite à l'algorithme d'apprentissage supervisé. Il faut autre chose. Trouver un algorithme qui a besoin d'apprendre par lui-même. (Malgré mon petit niveau, l'apprentissage compétitif, par renforcements est très puissant pour prendre des décisions sans être supervisé)
(Je parle des réseaux neuronaux car c'est le futur de l'AI)
J'avais oublié de donner l'algorithme. On prend les sorties des neurones de sortie. C'est celui qui a la valeur de sortie la plus élevée qui gagne, et qui donne la décision du réseau. J'en faisais un usage discret, mais il est possible de transformer la sortie des neurones de sorties en pourcentages. Après il y a plusieurs noms à cet algorithme. On peut dire apprentissage par renforcement, ou apprentissage compétitif, ou apprentissage par essais/erreurs. Mais c'est finalement la même chose pour les réseaux neuronaux.
Il suffit de donner à l'AI les cas de base. Echec, on pénalise le neurone de sortie. Si il gagne, on le renforce. On ne lui donne pas les règles, il les trouve tout seul. C'est l'AI en explorant, qui trouve les règles. Il n'y a pas d' apprentissage supervisé, c'est l'AI elle-même qui créer les motifs d'apprentissage (les patterns).
Mon expérience était franchement basique.
Le but c'était qu'une AI apprenne par elle même à jouer au jeu du serpent. Rien de glorieux.
Mais ça a marché ! C'était un projet de deuxième année.
Je me suis basé sur le K-mean pour programmer un perceptron en apprentissage compétitif. Et c'est possible.
Les échecs, c'était quand elle se cognait(un mur ou sa queue) ou qu'elle tournait en rond, et les réussites, c'était quand elle mangeait la pomme. Ce sont les seules informations dont elle disposait pour "comprendre" le jeu. La stratégie, c'est elle qui l'a trouvée toute seule.
J'avais simplifié l'apprentissage à l'extrême pour qu'il ne prenne en gros pas plus d'une 1/2 heure. Car c'était pour un exposé.
Pour cela, j'ai simplement utilisé un perceptron d'une seule couche. Obsolète, mais c'est le réseau de base des années 80. Ca ne nous rajeunit pas. Après des génies ont créé le perceptron multi-couches. Aujourd'hui on en est aux réseaux à convolutions, mais ça me dépasse.
J'ai toujours l'application dans mon cloud. Je peux la poster si vous voulez. J'ai également gardé le code source en VB.
[EDIT] Beaucoup d'anciens amis m'avaient conseillé de reprendre mes études, car selon eux, j'ai du potentiel. Mais j'ai la flegme et j'ai peur des gens.
Je vous donne le projet du serpent. C'est un exécutable pour Windows. Pour les curieux. (C'est marrant de voir comment elle évolue au fur et à mesure, car les paramètres initiaux sont aléatoires, et les positions de la pomme aussi). Il suffit d'enlever l'extension .txt pour pouvoir l'exécuter.
Si vous êtes patients, vous remarquerez la faiblesse de cet apprentissage : elle ne peut pas apprendre à ne pas s'enfermer dans sa propre queue. Mais au moins c'est rapide pour un oral. Elle n'a pas accès à la grille en entier. C'est un perceptron d'une seule couche, donc il ne faut pas s'attendre à des merveilles. Pour qu'elle ait accès à l'ensemble de la grille, il faut un réseau de plusieurs couches. Voire un réseau à convolutions.
Je peux aussi poster tout le projet. Sauf que ma démonstration de l'impossibilité de résoudre le XOR par un perceptron (d'une couche) est fausse car je n'ai pas pris en compte le biais. Mais c'est le cas. Un perceptron d'une couche ne peut pas résoudre le XOR.
Pour résoudre le XOR, il faut 2 couches (l'entrée ne compte pas). Il faut 2 entrées, 2 neurones dans la couche intermédiaire, et un neurone de sortie. En utilisant la rétropropagation (du gradient) de l'erreur, c'est possible. Les mecs qui ont compris comment utiliser plus d'une couche dans les réseaux neuronaux sont des génies!