Ask Hackaday: What Are Invariant Representations?

book cover for on intelligence

Your job is to make a circuit that will illuminate a light bulb when it hears the song “Mary Had a Little Lamb”. So you breadboard a mic, op amp, your favorite microcontroller (and an ADC if needed) and get to work. You will sample the incoming data and compare it to a known template. When you get a match, you light the light. The first step is to make the template. But what to make the template of?

“Hey boss, what style of the song do you want to trigger the light? Is it children singing, piano, what?”

Your boss responds:

“I want the light to shine whenever any version of the song occurs. It could be singing, keyboard, guitar, any musical instrument or voice in any key. And I want it to work even if there’s a lot of ambient noise in the background.”

Uh oh. Your job just got a lot harder. Is it even possible? How do you make templates of every possible version of the song? Stumped, you talk to your friend about your dilemma over lunch, who just so happens to be [Jeff Hawkins] – a guy whose already put a great deal of thought into this very problem.

“Well, the brain solves your puzzle easily.” [Hawkins] says coolly. “Your brain can recall the memory of that song no matter if it’s vocal, instrumental in any key or pitch. And it can pick it out from a lot of noise.”

“Yea, but how does it do that though!” you ask. “The pattern’s of electrical signals entering the brain have to be completely different for different versions of the song, just like the patterns from my ADC. How does the brain store the countless number of templates required to ID the song?”

“Well…” [Hawkins] chuckles. “The brain does not store templates like that”. The brain only remembers the parts of the song that doesn’t change, or are invariant. The brain forms what we call invariant representations of real world data.”

Eureka! Your riddle has been solved. You need to construct an algorithm that stores only the parts of the song that doesn’t change. These parts will be the same in all versions – vocal or instrumental in any key. It will be these invariant, unchanging parts of the song that you will look for to trigger the light. But how do you implement this in silicon?

[Read more...]

Ask Hackaday: Program Passes Turing Test, but is it Intelligent?

turing test program screenshot

A team based in Russia has developed a program that has passed the iconic Turing Test. The test was carried out at the Royal Society in London, and was able to convince 33 percent of the judges that it was a 13-year-old Ukrainian boy named Eugene Goostman.

The Turing Test was developed by [Alan Turing] in 1950 as an existence proof for intelligence: if a computer can fool a human operator into thinking it’s human, then by definition the computer must be intelligent. It should be noted that [Turing] did not address what intelligence was, but only tried to identify human like behavior in a machine.

Thirty years later, a philosopher by the name of [John Searle] pointed out that even a machine that could pass the Turing Test would still not be intelligent. He did this through a fascinating thought experiment called “The Chinese Room“.

[Read more...]

Pokemon Artificial Intelligence Is Smarter Than You

Pokemon Artificial Intellegence

Who out there hasn’t angrily thrown a game controller across the room after continually getting killed by some stupid game-controlled villain? That is such a bummer! You probably wished there was some way to ‘just get past that point’. To take a step in that direction, [Ben] created an Artificial Intelligence program that will win at Pokemon Blue for Game Boy Advance.

The game is run in a Game Boy Advance emulator known as Visual Boy Tracer, which itself is a modified version of the most common GBA emulator, Visual Boy Advance. What sets Visual Boy Advance apart from the rest is that it has a memory dump feature which allows the user to send both the RAM and the ROM out of the emulator. The RAM holds all values currently needed by the emulator, this includes everything from text arrow flash times to details about currently battling Pokemon to the players position in the currently loaded map. The memory dump feature is key to allow the AI to understand what is happening in the game.

[Read more...]

The Neurogrid – What It Is and What It Is Not

Neurogrid circuit board that replicates functions of the human brain.

What it is:

Some would argue that replicating the human brain in silicon is impossible. However, the folks over at Brains in Silicon of Stanford University might disagree. They’ve created a circuit board capable of simulating one million neurons and up to 6 billion synapses in real-time. Yes, that’s billion with a “B”. They call their new type of computer The Neurogrid.

The Neurogrid board boasts 16 of their Neurocore chips, with each one holding 256 x 256 “neurons”. It attempts to function like a brain by using analog signals for computations and digital signals for communication. “Soft-wires” can run between the silicon neurons, mimicking the brain’s synapses.

Be sure to stick around after the break, where we discuss the limitations of the Neurogrid, along with a video from its creators.

[Read more...]

Self-Learning Helicopter Uses Neural Network

model helicopter attached to boom

Though this project uses an RC helicopter, it’s merely a vessel to demonstrate a fascinating machine learning algorithm developed by two Cornell students – [Akshay] and [Sergio]. The learning environment is set up with the helicopter at its center, attached to a boom. The boom restricts the helicopter’s movement down to one degree of motion, so that it can only move up from the ground (not side to side or front to back).

The goal is for the helicopter to teach itself how to get to a specific height in the quickest amount of time. A handful of IR sensors are used to tell the Atmega644 how high the helicopter is. The genius of this though, is in the firmware. [Akshay] and [Sergio] are using an evolutionary algorithm adopted from Floreano et al, a noted author on biological inspired artificial intelligences. The idea is for the helicopter to create random “runs” and then check the data. The runs that are closer to the goal get refined while the others are eliminated, thus mimicking evolutions’ natural selection.

We’ve seen neural networks before, but nothing like this. Stay with us after the break, as we take this awesome project and narrow it down so that you too can implement this type of algorithm in your next project.

 

[Read more...]

Hacking the Sci-Fi Contest Team Requirement

923531394944874135

We saw that some readers were not entirely happy with the team requirement for our Sci-Fi contest, which is running right now. We figured that those who do not work well with others might commit a bit of fraud to get around the requirement. But we’re delighted that someone found a much more creative solution. Why not enlist an AI to collaborate on your project?

[Colabot] is a hacker profile over on hackaday.io which is driven by ELIZA, a computer program that achieves limited interaction through natural language. Supposedly you add [Colabot] to your project and as it questions. We asked one on the profile page and are still awaiting the response. We think this itself could be a qualifying entry for the Sci-Fi contest if someone can find the right thematic spin to put on it.

As far as contest entries go there are only seven so far. Since everyone who submits an entry gets a T-shirt, and there are 15 total prize packages, we encourage you to post your entry as soon as possible. We want to see teams from hackerspaces and we can cryptically tell you that good things come to teams who post their project with the “sci-fi-contest” tag early!

Robot Foosball Will Kick Your Butt If You Play Slowly

foosball_pt3_1

Sometimes we find a project that is so far outside of our realm of experience, it just makes us sit back and think “wow”. This is definitely one of those projects. [Saba] has created a Robotic Foosball set that learns.

[Saba Khalilnaji] is a recent engineering graduate from UC Berkeley, and his passion is robotics. After taking an Artificial Intelligence class during his degree (you can take it online through edX!), he has decided to dabble in AI by building this awesome robot Foosball set.

His “basic” understanding of machine learning includes a few topics such as Supervised Learning, Unsupervised Learning and Reinforcement Learning. For this project he’s testing out a real-world application of Reinforcement Learning using the Markov Decision Process or MDP for short. At an extremely top level description it works by programming an agent to learn from the consequences of its actions in a given environment. There are a set of states, actions, probabilities for given state and action, and rewards for specific state and action sets.

Before we butcher the explanation anymore, check out his blog for more information — and watch the following video.

[Read more...]

Follow

Get every new post delivered to your Inbox.

Join 96,731 other followers