suchow / judicious

MIT License
5 stars 6 forks source link

The Genetic Algorithm Turing Test #30

Open vlall opened 6 years ago

vlall commented 6 years ago

Experiment: There are 3 participants (1 of which is a bot): A, B, and C. Participant A is a human interrogator who must determine which of the other two participants are bots. This is done by asking a set number of questions (default=10) which both other participants must respond to. After each question, the interrogator will scale their confidence (1-5) whether participant B v C is the bot before proceeding to the next question. This scale is used to determine the fitness of the algorithm. We run these in parallel within a generation using various chat bot algorithms, then determine which chat bot algorithm is best fit for surviving a Turing Test. Due to the large space of questions an interrogator can ask, we may want to add additional constraints to increase chat bot survival.

judicious.turing_test(seconds=600, questions=10)
vlall commented 6 years ago

A better idea for a more organic fitness function: Measure fitness by number of questions asked. In this example, there is an indefinite amount of time and indefinite amount of questions. The interrogator must ask however many questions it takes to sufficiently determine which participant is the bot. Interrogator reward is based on if they identify the bot correctly and how long it took them. So the human must maximize for quicker time/correct identification. While the bot must maximize for slower time/evade detection. A large bonus in survival is given if the bot actually succeeds in evading detection.