Prédiction de séquence pseudo-aléatoire

9

Avertissement: je suis un biologiste, donc désolé pour (peut-être) une question de base formulée en termes aussi grossiers.

Je ne sais pas si je devrais poser cette question ici ou sur DS / SC, mais CS est le plus grand des trois, alors voilà. (Après avoir posté, il m'est venu à l'esprit que la validation croisée pourrait être le meilleur endroit pour cela, mais hélas).

Imaginez qu'il y ait un agent qui prend des décisions binaires. Et un environnement qui, pour chacune des décisions de l'agent («procès»), récompense l'agent ou non. Les critères de récompense des décisions de l'agent ne sont pas simples. En général, les critères sont aléatoires, mais ils sont limités, par exemple, l'environnement ne récompense jamais plus de 3 fois pour la même décision et n'alterne jamais la décision récompensée plus de 4 fois de suite.

La séquence de critères pourrait alors ressembler à ceci

0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 ...

mais jamais

0 0 0 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 ...

car le critère de récompense ne peut pas se répéter plus de 3 fois.

Dans ces conditions, il est assez facile de formuler la stratégie que l'observateur idéal devrait entreprendre pour maximiser la récompense. Quelque chose dans le sens de

  1. décider au hasard
  2. si vous détectez ce critère répété 3 fois - décidez à l'opposé du dernier critère
  3. si vous détectez ce critère alterné 4 fois, décidez selon le dernier critère

Maintenant, la partie difficile. Maintenant, le critère de chaque essai dépend non seulement de l'historique des critères précédents, mais aussi de l'historique des décisions de l'agent, par exemple si l'agent alterne sur plus de 8 des 10 derniers essais, récompense la même décision que l'agent prise la dernière fois (comme si pour décourager l'agent d'alterner) et si l'agent a répété la même décision sur plus de 8 des 10 derniers essais, c'est-à-dire qu'il est biaisé, faire un critère opposé au biais. La priorité de l'histoire des critères sur l'histoire des décisions est précisée à l'avance, il n'y a donc jamais d'ambiguïté.

Les séquences des décisions (d) et des critères (c) peuvent maintenant ressembler à ceci

d: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 ...
c: 1 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1 0 ...
                       ↑ here criteria counteract bias in decisions  

Je ne vois pas de moyen simple d'inventer une stratégie de maximisation pour l'agent. Mais je suis sûr qu'il doit y en avoir un, et une sorte d'algorithme d'apprentissage automatique intelligent devrait être capable de l'identifier.

Ma question n'est pas tant de savoir comment résoudre ce problème (même si je serais heureux si vous suggérez une solution), mais plutôt comment ces types de problèmes sont appelés? Où puis-je lire à ce sujet? Existe-t-il une solution abstraite ou seule la simulation peut aider? En général, comment puis-je, en tant que biologiste, aborder ce type de problème?

Sergey Antopolskiy
la source
2
voir par exemple l' analyse des séries chronologiques autorégressives . il serait utile que vous soyez plus détaillé sur les données d'entrée. est-ce de la biologie? il existe des techniques std pour les problèmes std. les ANN récurrents (réseaux neuronaux artificiels) gèrent également cela. peut-être aussi passer par Computer Science Chat
vzn
2
Les modèles de Markov cachés peuvent être un outil utile.
Raphael
1
Vous voudrez peut-être lire sur Follow-The-Leader et d'autres variantes - onlineprediction.net/?n=Main.FollowTheLeader
MotiN
2
Je pense que ce à quoi vous faites référence est proche de ce que les gens en ML appellent l' apprentissage par renforcement .
Kaveh
1
ps: Vous voudrez peut-être essayer de publier sur Cross Validated si vous n'obtenez pas de réponse ici après un certain temps.
Kaveh

Réponses:

1

Vous pouvez aborder ce problème à l'aide de l'apprentissage par renforcement.

Un livre classique pour cela est Sutton et Barto:

Le projet de la deuxième édition est disponible gratuitement: https://webdocs.cs.ualberta.ca/~sutton/book/the-book.html

Afin de rendre votre problème markovien, définissez chaque état comme un vecteur des dix dernières décisions. Vos actions seront 1 ou 0.

Juan Leni
la source