About

We need you to help us collect data on how humans learn.

We're a group of five high school students that are studying the way different types of artificial intelligence (AI) algorithms learn, when compared to humans. This is part of a STEM research course by Project Lead The Way (PLTW) that has spanned a semester, after three years of previous engineering courses. To do this, we've created two different kinds of common AI algorithms, a neural network and a genetic algorithm, and both have been designed to complete the same task: winning a game. To compare our findings to how humans learn, we need to generate lots of data from actual people playing our simple game, that's where you come in!

Design

How we set out to complete our project, from the game to the AI.

The Game

When creating the game which would be played by visitors to the website, and which would generate all the human player data to compare to the AI's data, we needed to make sure that it would be a genuine learning curve that each player would have to overcome, just like the AI would. In order to fulfill this and make the learning curve take under five minutes for our players convenience, we made a simple game using Java and the Lightweight Java Game Development Library (LWJGL) loaded in an Applet.

Genetic Algorithm

Most AI systems are fit to solve only one particular type of problem, and cannot be easily applied to different sets of inputs and outputs without having to change their architecture. However, a programming technique called Genetic Algorithms were created to fix this problem. They use the biological model of evolution to create solutions sets, “breed” them, and pick the solution set that was most adept at solving the problem. Genetic algorithms can be incredibly space-taking and computer power consuming if programmed incorrectly, but with a good program they can be incredibly efficient.

Neural Network

Artificial neural networks (ANN) are processing devices loosely based on the workings of brain cells. Most ANNs utilize some form of “learning rule,” which modifies the weights of connections according to the input patterns that it is presented with. This makes them very versatile, and can handle large amounts of inputs with easy to scale archetype. ANN’s are different than conventional computing because they are not sequential, they do not contain memory in the ordinary sense of the word, and the bits within the neural network are dynamically changing with each set of inputs.

Fork me on GitHub