How The Game Works
The above grid represents a single frame of information. Each cell is a byte of information, and a frame is the composition of all of these independent bytes of information.
A byte can be in one of two states: on (green) or off (red). If you're colorblind, you can also see a byte's value by hovering over it with the mouse. Bytes can also be indeterminate (purple). An indeterminate byte could be either on or off - it hasn't decided which yet! When evaluating a frame, indeterminant values are resolved randomly to one or other other.
A frame can evaluate to true or false based on a set of rules. A rule consists of a set of bytes and the necessary values for those bytes. If any rule is satisfied, the frame is true. You can see the rules above. Right now, there is only one of them.
The point of the game is to guess the rule given only a set of frames. You'll notice that it's not you who's playing the game, it's Piglet!
Interacting with Piglet
Your job in this simulation is to choose which frame you show Piglet. Piglet will look at whatever frame you give her (after indeterminant bytes have resolved) and make a prediction of whether the frame is true or false.
If her prediction is wrong, she'll incorperate that board into her training model and get a little bit more accurate.
You can see how accurate Piglet is for the current game above. Currenly, Piglet requires roughly 8-10 novel results before she'll reach 100% accuracy, though of course that depends on which frames you show her.
What is this?
Piglet is an object-oriented AI that attempts to develop/grow without relying on neural networks or genetic algorithms.
In contrast to many other AIs, Piglet thinks about the world in terms of systems and definitions. This allows Piglet to reason not just about what things are true, but why they're true as well. Or to put it another way, Piglet doesn't just look for the right answer, she also tries to show her work!
Piglet's main goals are:
Transparency: It should be relatively straightforward to tell what Piglet is thinking and why. Whenever possible, Piglet should communicate in human-understandable terms.
Piglet should never be a black box.
Efficiency: Piglet should be able to train on reasonably low-powered, common computers. Piglet should aggressively optimize herself as she trains, not afterwards.
Concurrency: Users should be able to engage with Piglet while she is training and help direct her before she reaches the inference stage.
Piglet should be able to reason about and reach conclusions about datasets while she is training.
Users should be able to play an active role in Piglet's education.
Is Piglet Being Developed from Scratch?
I've been theorizing about Piglet for a few years, but I've only been actively working on Piglet for a little under a month.
Piglet is still in very early development, and likely will be for some time. The demo you're looking at now is less of a technical demonstration, and more of a conceptual 'mood-piece' to showcase how Piglet approaches problems and interacts with people differently than a typical neural network.
What is Piglet Doing for Ludum Dare?
The theme for Ludum Dare 41 is incompatible genres. My goal for this project is to spark people's interest about how AI can combine autonomous training and human direction.
When I talk to people about Piglet, I'll sometimes refer to her as "cooperative" AI - an AI designed to work alongside humans rather than separately from them. My hope is that the juxtopisition of an autonomous AI and human mentorship encourages other developers to blur the line between supervised and unsupervised learning.