My Photo

Artist Credits

Blog powered by TypePad

May 31, 2007

Blogging at Terra Nova

I'll be a guest blogger over at Terra Nova this month.  TN is home to some of the world's top scholars on the science, business, and law of virtual worlds.  Lots of great opinions and discussion. 

Terra Nova

May 25, 2007

Another step forward for Virtual Medicine

The University of Calgary (go Flames eh!) and private interests have developed a 4D full-scale rendition of the human body.  They used the Java 3D API and object oriented design patterns.  The model resides in the "Cave", a research holodeck where the full-scale model can be viewed in 4D space.   

Christoph_caveman_2 The 4D human atlas is built upon data from basic anatomy textbooks. Fundamental body systems and organs were rendered into animated drawings by a graphic artist, and converted into Java 3DTM to bring them to life in the CAVE environment. “CAVEman is designed to look like a real human, but can also be sized to any scale we want,” says Sensen. “We can display all or only a few select components of the model at any given time."

CAVEman unveiled

The potential for this type of technology is amazing.  I can see these sorts of models easily being rendered in Virtual Worlds.  Should be easy to gain even more insight into animated motion and natural movement in our simulations. 

May 23, 2007

Predicting Crowd Behavior

Panic is contagious, and human contact in crowded conditions can create mob aggression.  This is a great example of the different methods for modeling human behavior and the relationships affected by that behavior.

The goal of this project is to develop a reusable and behaviorally-founded computer model of pedestrian movement and crowd behavior amid dense urban environments, to serve as a test-bed for experimentation. The idea is to use the model to test hypotheses, real world plans and strategies that are not very easy or are impossible to test in practice, Torrens says.

New Computer Model Predicts Crowd Behavior

This new model incorporates individual behavior among objects, which I would expect.  I think this would be a great experiment to run in a virtual world, let people play with the parameters and mold the behavior of the pedestrians and the environment.  I know this is a slightly twisted thought, but I find the idea of simulating a panicked crowd fairly amusing.  Just something about all those bots spreading chaos I guess.

May 21, 2007

Artificial Intelligence Sees Market Dimensions Far Beyond that of the Human Brain

Legend Advisory Corp. announced today that they are now using an Asset Allocation Neural Network (AANN) to forecast the strength of global asset classes.

New Breakthrough Unveiled in Investment Management

"AANN analyzes 32 customized inputs, each of which is       compressed from huge volumes of financial data, in order to rank the       relative strength of seven asset classes: large and small capitalization       domestic stocks, investment grade and high-yield domestic debt,       international debt and equity, and cash. Her recommendations are then       fed into a separate optimization program, which creates weightings to       suit the individual risk tolerances of Legends       model portfolios. Yet another set of screens picks out the appropriate       mix of mutual funds to fill the designated asset allocations."

This is a great example of how neural nets are being used in society to solve everyday business problems.  Neural nets are also used by banking companies to recognize changes in spending to detect credit card fraud.  This neural net with only 32 inputs is still rather small and basic, but this is where things start.  Humans can interpret millions of  inputs in our neural electrochemical brains. It wont be long before 32 inputs are considered prehistoric, kinda like the 1 megabyte harddrive.

May 09, 2007

Robots that learn

Dartmouth researchers have developed a basic learning robot called Brainbot.  It is part of some of the cutting-edge research carried out by the Neukom Institute for Computational Science. 

The Neukom Institute’s central purpose is to apply computational science to a wide array of subject areas, ranging from music to public policy. Computational science is the process through which scientists apply mathematical models to real-world events, and computational models often are important to test hypotheses when standard scientific experiments would not be possible.

Institute develops a robot that learns

This is still a pretty primitive attempt at machine learning, but the imagery questions are compelling.  I have always been amazed at how well I can read things that are written backwards, upside down, or in reverse.  We associate things based on a 3-dimensional image, an impression.  We record the contrast of colors, and associate them, along with the correlation of the color to the shape.  Think of a Coca-Cola soda can.  Red, White, swirls, letters, we all know that can, no matter what direction it is facing, whether empty or full, we know what that can looks like.

I'm also taken by how humans can associate sounds of words spoken in foreign languages to words in their own languages.  These will always be challenging tasks for the binary world.  The associations we create, and how we dynamically compare them to our other experiences is a very powerful and advanced level of processing.  Its going to take a while before we can program machines to do comparative associations.

When was the last time you saw a total stranger that reminded you of someone you knew, but hadn't thought of in a long time?

May 03, 2007

Neural Nets

I've been doing a lot of reading lately about Neural Nets and the different learning processes they use.  Neural Nets are rather crude artificial representations of the human brain that try to simulate the learning process.  Our brains are made up of billions of tiny neurons that can connect to thousands of other neurons by emitting electrochemical signals.  Signals are received along synapses, which can be attached or detached to the dendrites of other neurons.  When a neuron receives an input electrical signal, the neuron processes the information and determines whether to move it forward as an output to other neurons.  There are a couple great tutorials on the concepts behind neural nets at AI-Junkie.com and Jochen Frohlich.

I have a couple problems with Neural Nets.  The first being that they are a serial simulation of parallel processing.  Our brains are not very fast in the electrical, computational sense, but they are very efficient parallel processors.  Each cycle of our brain function processes millions of instructions, whereas today's CPU's only process a single instruction per cycle.  So trying to equate the processing architecture of our brains to a CPU is a stretch.  IBM has taken the approach of actually trying to replicate the parallel processing capabilities of a rat's brain using the Blue Gene L supercomputer.  Mouse brain simulated on computer

Second,  neural nets are restricted to binary inputs, whereas our brains are capable of taking many types of inputs such as the senses, touch, sight, smell, sound, and taste.  Our brains also act differently depending on hormone balances, nutrition, and what mood we happen to be in.  All of these factors alter how the neurons in our brain fire and transmit information.

Third, and most important is memory.  It is still a mystery how we remember certain events, people that we meet, or experiences.  It is theorized that our memories are nothing more than dynamic connections between neurons that occur during a particular experience.  As the memory fades and becomes less used, the connections across neurons degenerate, and eventually break, causing the memory to lapse.  It is also theorized that certain parts of our brain are highly tuned to manage these connections between neurons and index these memories using other neurons, memory neurons.

Neural nets simply do not have the ability to record a pleasant experience, or recognize an old friend in a crowd who has aged or changed their hair style.  Our memories and sub conscience are truly unique in this regard.  We have movie memory, or what some refer to as holographic memory.  We can actually re-run events in our brain as if they were occurring for a second time.  We can even make up events in our brains that never occurred, and we can dream.

I have an idea for improving the architecture of neural nets.  The parallel processing aspects of our brains are not going to be equaled by CPU's anytime soon, if ever.  We need a way then to leverage the serial nature of a CPU, and still perform the mass of computations required to simulate billions of neurons.  My thought for this approach is to make smarter neurons.  Instead of having neurons just take inputs, do some magic, and provide an output, what the neurons were given more options, say to record memory, dynamically associated or disassociate with other neurons, and to provide negative as well as positive responses to input.  Neurons should also have a weight for application to the senses, and the ability to prioritize work based on the state of the senses, say the 'hunger' sense is abnormally high, other senses would be diminished so that the organism could focus. 

 

April 21, 2007

Traffic Pulse

Last summer Michelle and I were driving home to Olympia from her 20th high school reunion in Eugene, OR.  It was a sunny Sunday afternoon, and we had about a 5 hour drive straight up the I-5 corridor into Olympia.  I-5 is the major thoroughfare from San Diego to Seattle, and in several spots, it is the only way to get from point A to point B. 

We passed through the busy downtown Portland area after some outlet mall shopping, and began the last leg home.  The drive from Portland to Olympia is about 2 hours, and there really aren't any towns of size in between, just lots of farmland, the Columbia River, and Mt. St. Helen's National Park.  Michelle was driving and I was playing DJ, when I felt the car start to slow down.  I looked up, we were climbing a steady low grade hill that allowed me to see the cars ahead of us for about a half-mile.  I could see the brake lights starting at the lead cars, and slowly making their way back through the pack that we happened to be in.  The slight slow down a half-mile ahead eventually led to our vehicle coming to a complete stand still.  What was once a quiet, uncongested road, was now a full blown traffic jam, in the middle of nowhere.

There wasn't an accident ahead of us, there weren't even that many cars.  What happened was that drivers ahead of us had packed so tightly together, that one vehicle tapping the brakes caused a chain reaction a half mile later, that eventually led to a stop in all traffic.  I termed this phenomenon "traffic pulse", and then proceeded to bore Michelle for the next 2 hours as I fixated on why this occurs, and the method I could develop to solve it. 

We have all witnessed traffic pulse before, and if you would like to see it in action in a virtual setting, check out this site.    Microsimulation of Road Traffic

I have since begun the patent disclosure process within IBM so that I can patent my idea.  I'll post more on my ideas once that process has completed and I legally allowed to discuss it.  Until then, it, like all my ideas, is the property of IBM.

April 10, 2007

Virtual Life

I find myself becoming more and more obsessed with this subject.  There are many instances of virtual life already available today.  One of the more popular forms is in the gaming world, where everyone seems to be living their own virtual life.  In games like World of Warcraft, you can interact with other live players, and then go and complete quests and kill things together.  Only the things you kill are rather dumb.  They die and reappear again in a few minutes, just as dumb as the last time they spawned.

Why cant the villans have intelligence?  What if killing a monster or a villain in a cemetery caused the monster's wife and family to become enraged, aggressive, vicious, and vengeful?

And what if they didn't reappear?  What if the other villains needed to reproduce to new villains, nurture their young, and develop villain relationships that will bond them for life, or virtual life if you will.

And what if these villains could be reformed, bargained with, or even tricked.  They may even have individual personalities.

This is the idea of replicating some of the functions of the human brain in a programming model.  The idea is to network the relationships of emotion and personality to probability determination.  We all act differently in different situations, even though we may have very similar experiences.  Some are shy in a crowd, while others are outgoing, and talkative. 

When we get angry or defensive, we shut off other functions in order to focus.  This is a survival technique adopted in our evolution.  Anger strengthens our muscles, stops digestive processes, constricts blood vessels, and reduces pain receptors.  Programmatically, anger has relationships  to other physiological functions.  As anger increases, some of these other receptors, may or may not be triggered, depending on your predisposition, or in this case, your temper.

These are some of the attributes of virtual life I am presently attempting to model and develop.  I need to work on how to store experience, and reuse it at the various functional nodes.  I have to keep the experiences small and focused, and be able to index and access them quickly across various nodes.  Its hard to define such arbitrary elements in a program.  Its almost JIT datatyping.

April 04, 2007

Machine Learning and Artificial Intelligence

A child tries to scoop liquid out of a cup with a fork, and doesnt get much to drink.  The child then tries a spoon, and gets some success.  The memory is registered, forks arent good for scooping liquid, spoons are.  One problem found, two options tried, one option equals success, one equals failure, and the child gains experience.

This seems like a pretty simple problem, but it's actually more complex than we might think.  What if the liquid is hot?  What if the liquid is bitter, and the child tastes the bitterness on the end of the fork?  Good thing we didnt try the spoon first.

Learning and gaining experience is about more than just selecting from a set number of  possible choices and measuring the outcome.  As humans, we 'feel' the experience.  We register every event in multiple ways.  We feel pleasure with some outcomes, and we feel pain with others.  These influences are critical to our ability to gain knowledge.

So how do we teach machines to feel, to measure the satisfaction of an experience?  To determine pleasure or pain?  Anger or happiness?  Good or evil?

I'm starting to work on this problem from a programming perspective using some of the concepts developed with neural nets or parallel distributed processing.  Neural nets are actually an older technology and from what I have seen, they are pretty limited in their capabilites.  But the idea of establishing highly specialized neural nodes that work in unison to make complex decisions is still very valuable.

My idea is to take the neural net concept and twist it around a bit.  I need a system is that is focused enough to draw from previous occurances, and draw inferences based on probability, and in some cases, inprobability.  The concept is closely related to the science of synchronous events, think of hive behaviors such as ants and bees.  Anybody read Ender's Game?

BlackJack is going well...   more soon.

March 17, 2007

The Evolutionary Container

The Evolutionary Container (EC) is a Java based application environment designed to support the evolution and development of virtual organisms in order to develop highly optimized artificial intelligence.    The container provides access to a probability inference engine that enables decision making.

I'm presently working on developing a generic structure for the construction of test case patterns.  The problem lies in giving virtual organisms the ability to query their environment, and create their own test structures. 

I began writting a test program for the probability inference engine.  My goal is to evolve a BlackJack player within the EC.  The simulation involves creating a BJ table, a number of players, a dealer, and a deck of cards.  One player is designed to gain intelligence using the inference engine.

I'll have an object/class model to share soon.

Started reading a couple cool books this weekend.  The Emotion Machine by Marvin Minsky is a book about the brain, and artificial intelligence. 

Also got Matt Ridley's An Agile Gene.  I've read a bunch of Matt's books, and I find him to one of the best science writters.

Back to work on the EC.  Next post I'll show some of the BlackJack object structures.