Spaun: a Large-Scale Functional Brain Model
New submitter dj_tla writes "A team of Canadian researchers has created a state-of-the-art brain model that can see, remember, think about, and write numbers. The model has just been discussed in a Science article entitled 'A Large-Scale Model of the Functioning Brain.' There have been several popular press articles, and there are videos of the model in action. Nature quotes Eugene Izhikevich, chairman of Brain Corporation, as saying, 'Until now, the race was who could get a human-sized brain simulation running, regardless of what behaviors and functions such simulation exhibits. From now on, the race is more [about] who can get the most biological functions and animal-like behaviors. So far, Spaun is the winner.' (Full disclosure: I am a member of the team that created Spaun.)"
.... something the size of a human skull?
Just imagine how many people this could help!
It's not purely functional unless it's written in Haskell.
The golden age of humanity will start soon. The last gasp of the fossil fuel powered consumer society is now. We will create a new model of society, with longer living people and an understanding of how life works at the cellular, and most importantly, mathematical level. The future is not space, it's synthetic biology.
This simulation takes an hour to simulate one second of neural activity, but the researchers want to speed it up to real time. Why stop there? This brain would be much more interesting if it could simulate an hour of neural activity in one second.
Just a caution, though: make sure the physical arm it's connected to isn't within reach of any nuclear footballs.
"I still have the highest confidence in the mission, Dave."
Table-ized A.I.
Could you possibly post a link to a version that is not hidden behind a paywall? Perhaps a pre-print on your own research site; perhaps an HTML web page summary of your work?
.
http://nengo.ca/
.
It looks like they use Python scripting in their NENGO simulator: http://www.frontiersin.org/neuroinformatics/10.3389/neuro.11/007.2009/abstract
Apple hates you. The entire company. Seething, festering hatred.
The fact this responds in similar ways is astonishing.. not because of what this model has accomplished, but because it's a great big flashing light pointing to this being the right way to machine intelligence. "HEY OVER HERE!"
I'll pre order his book, and wait patiently for an open source version of this research / model to appear for people to hack on.
It's slow now, but 1/3600 speed within the next generation of computers to do in real time - and that's without optimization.
Interesting times indeed.
..don't panic
(Presumably) intelligently designed to mimic an evolved component of an evolved organism...
So what do you, as a creator, if the ai stubbornly concludes that your explanation of it's origins is unacceptable... After all, if you could evolve, why could it not have also evolved, and in turn rejects the notion that you created it at all?
File under 'M' for 'Manic ranting'
Hey, we're definitely thinking about this! In fact, the Java version can run on a GPU. And we're in the process of making a fast Python version based on theano. Unfortunately, even with all of these speedups, we're still talking about lots of neurons and lots of computation.
However, there are plenty of smaller scale models that you can run in Nengo to get a sense of what's going on in the larger Spaun model! The tutorials are a good place to start.
re: Runs at 1/3600 real time
.
No, it appears that running the Spaun model on NENGO in a Java Virtual machine on a quad-core cpu running at 2.5 GHz takes 3 hours to run an emulated 1 second:
.
http:models.nengo.ca/spaun
Notes:
--------
- This model requires a machine with at least 24GB of RAM to run the full implementation.
Estimated run times for a quad-core 2.5GHz are 3 hours per 1 second of simulation time.
- See the run_spaun.py file in the spaun directory for experiment options.:
One of the reasons you don't feel left out is because you know that if you work hard enough and you apply enough intelligence, you have a fair shot at one day owning that yacht or, if not you, your kids do. The capabilities of man are mysterious enough and far enough from technology that it is assumed in places with some basic freedoms like America that every child has a shot at becoming rich. Access education and inheritance only gets you so far if you don't apply yourself. And people like Bill Clinton demonstrate that even someone from a relatively poor background can still become filthy rich.
But what if that changes? What if being born to a wealthy family doesn't just give you external advantages like networking, school tuition and capital, but also gives you inherent mental and physical advantages that a poor simply can't match no matter how hard he tries or how good his genes? This would create a new class system much like that of the middle ages where being born noble guaranteed a life as a noble and being born a commoner guaranteed a life as a commoner.
I often don't like the choices people make, but I like the fact that people make choices. That's why I'm a conservative.
Because Python's such a nice glue language, it can talk to super fast Fortran and C libraries to be at at least comparable speed with Java. See NumPy. This is kind of stuff scientists use for number crunching.
We're using CUDA, so you'll need a recent NVidia card to run models on the GPU.
In unrelated news, fyngyrz announces an ultracap that has battery-equivalant energy, cost and cubic space consumption.
CLI paste? paste.pr0.tips!
Yeah, seriously. When it comes to maximizing performance/watt, C and OpenCL would be the way to go. I've taken a cognitive vision system using SURF + cluster analysis originally written in Java running at non-interactive rates on quad-core desktop system requiring gigs of RAM, and rewrote it in C using SIMD intrinsics and various other optimizations to improve cache efficiency and had it running at interactive rates on a single-core 800MHz ARM Cortex A8, 512MB of RAM, and PowerVR SGX 535 (a common mobile phone target). The ARM OpenCL implementation wasn't available at the time, but I hacked together some stuff exploiting OpenGL ES 2.0 shaders for a couple of the computationally expensive hotspots, and eventually got it running at real-time rates. It was something like a 6000x speed increase over the original naive Java version, even with the slower CPU.
That said, Spaun is a research project after all, so you use what you're familiar with.
If the brain were simple enough to be understood, it would be too simple to understand itself. (anonymous author).
"Gentlemen, you can't fight in here! This is the War Room!" -- Dr. Strangelove
You'll probably be best off with sticking with CUDA on nVidia hardware for now. nVidia's OpenCL implementation isn't quite as polished as it should be, but it's getting there. There are some idiosyncrasies between vendor's implementations, namely to do with auto-vectorization. AMD's compiler doesn't auto-vectorize, and nVidia's Fermi/Kepler hardware is scalar, so you end up having to write multiple code-paths for each architecture anyway to get best performance. All of the companies use highly-patched versions of Clang/LLVM for their OpenCL compiler, and they're only now starting to standardize on features, releasing them into the mainline, so this situation should improve with time.
Longer term, OpenCL is pretty promising for portable heterogeneous high-performance computing. In addition to GPUs, the compute kernels can run on CPU cores in parallel and there are a few companies writing implementations for their FPGA hardware too, and it'll be able to support future unified CPU/GPU memory addressing models. Intel is also heavily invested into OpenCL adoption for it's hardware.