The Seed and the Flower

Posted in artificial intelligence, robotics, transhumanism on December 30th, 2011 by Samuel Kenyon

Right now I’m reading an architecture book from the 1970s called The Timeless Way of Building.  So far it has to do with theories of how towns and buildings and other things seem more “alive” than others, and how to achieve this quality—the “quality without a name”.

This of course goes far beyond merely architecture; indeed this book was brought to my attention not by an architect but by people in the UX (user experience) design community. Anyway, this blog post only covers a couple pages out of the book.

The author, Christopher Alexander, says that we have come to think of buildings, towns, and works of art as “creations.” And that “creation” is thought of as a monumental design task, “brought to birth, suddenly, in a single act, whose inner workings cannot be explained, whose substance relies ultimately on the ego of the creator.”

I would interject that the creator might understand the inner workings, but even then, for a complicated project attempted in a process with this mindset, the end result would probably not be completely understandable by the creator. More on that in a minute…

As Alexander writes:

The quality without a name cannot be made like this.

Imagine, by contrast, a system of simple rules, not complicated, patiently applied, until they gradually form a thing. The thing may be formed gradually and built all at once, or built gradually over time—but it is formed, essentially, by a process no more complicated than the process by which the Samoans shape their canoe.

And if you’re thinking that this sounds very much like how biology works, then you have predicted the next key statement on the same page:

The same thing, exactly, is true of a living organism.

An organism cannot be made. It cannot be conceived, by a willful act of creation, and then built, according to the blueprint of the creator. It is far too complex, far too subtle, to be born from a bolt of lightning in the creator’s mind. It has a thousand billion cells, each one adapted perfectly to its conditions—and this can only happen because the organism is not “made” but generated by a process which allows the gradual adaptation of these cells to happen hour by hour….

And Alexander claims that there is no other way. Of course, as a transhumanist and a roboticist and an occasional cognitive architect (oh, maybe there is architecture here after all!) I want to be able to create and modify life forms. I want to make artificial organisms, and interfaces between the organic and the non-organic.

However, I have enough experience with software development and project management to know that what Alexander says is true. I.e., I believe it based on my experience and observations.

flower field

So I have two immediate responses when I read this part of the book:

1. Examples of systems that look complex, but evolved and/or iterated via simple rules.

For instance, the cellular automata popularized by Stephen Wolfram in A New Kind of Science create complexity and even randomness from ridiculously simple rules. Behavioral robotics, which started in the 1980s (although there were a few examples long before then), embraced the artifical organism in the environment concept. They had simple programs and no traditional internal models.

If you’ve ever made any kind of robot, or a software agent in some environment, you may have discovered how complicated and or unplanned the behavior becomes so easily.

The adaptability and flexibility of organisms has not yet been matched by artificial creatures. I’ve discussed some of this before in my article “Softer, Better, Faster, Stronger: The Coming of Soft Cybernetics“.

If you’ve ever made a mobile robot or any other electromechanical system, and expected it to work perfectly as designed, you have probably encountered a rude awakening. It never works “out of the box” (unless you went through many cycles before putting it in the box). In fact, engineering in general is more of a building out of existing working things. And then your specific project still has to have cycles of test and/or integration, etc. And that brings me to response two: the meta.

2. The Meta: Development Methodology

The meta aspect is management of projects and what process the “creator” and his/her team uses. I don’t particularly care how similar a process is to biology…although biological evo-devo is quite interesting. I’d love to find ways of doing things that are totally alien to biology.

It’s just that I’ve found that cycles of development (“iterations” or “sprints”) have to happen. And it’s much better if there are feedback loops between testing with contexts. And contexts are environments, other artificial equipment, users, and so on.

Iterative development processes almost always work better than sequential types like Waterfall. In fact, I’ve never seen a sequential development process work out well. Others have discovered this to. It’s probably part of the reason why Agile software development processes are becoming the most popular.

Anyway, comments about why generative and iterative processes work in our version of the universe are welcome.

Post to Twitter Post to Facebook Post to Google Buzz Post to Reddit Post to StumbleUpon

Tags: , , ,

Embedded Systems Expo 2011: A Few Notes

Posted in artificial intelligence, computers, interfaces, robotics on September 28th, 2011 by Samuel Kenyon

Today I was at the 2011 Embedded Systems Conference / DesignCon exposition. I typically attend technology expos in Boston, keeping an eye out for devices and software that I might be able to use in my job. But of course, I’m also interested in what embedded systems technology will enable in the near future.
There wasn’t anything mind-blowingly cool, but I will mention a few things that may be of interest to my readers.

First, IBM had an instantiation of Watson there, which was housed in a large black monolith that would be menacing if not for the colorful touch screen. Yes, Watson can run on a computer that IBM actually sells, which is the IBM Power 750 server.

IBM Watson

I started playing Jeopardy against this Watson, but lost interest when I found that there wasn’t any voice recognition (to get a question right after winning the buzz, the software would tell you the answer, at which time you would honorably press a button to confirm or not).

I also experienced NLT’s new (samples became available in June 2011) 3D display. This is an LCD module which does not require glasses to see the 3D, and although I only stared at it for less than a minute, it did work and I did not have to be in a very specific location relative to the screen. I’d like to try an actual application that made use of mixed 3D/2D. That is part of what’s supposedly unique about this 3D LCD, is that it can mix 2D and 3D and it’s all at the same resolution. This is due to their HDDP (horizontally double-density pixel) tech. NLT also claims their LCD reduces cross talk (when your brain’s visual system mixes right and left eye information).

NLT 3D LCD Tech

Speaking of display tech, I also played with Uneo’s Force Imaging Array System and 3D-Touch Module. The force array was not combined with a screen, and I’m not sure exactly what the killer app(s) would be—they claim it could be used for some unspecified medical, automotive, industrial apps. But I tried it and it works, and they told me that they would have one with even higher resolution soon (the current one has 2500 elements).

The 3D-Touch module was embedded in a tablet, and that also worked pretty well. The example app was of course a paint program, where you can see how your finger’s pressure affects the brush width as you paint. This doesn’t use the array—instead it uses sensors at the corners of the screen. That means you should be able to add it to any existing screen—it doesn’t have to be layered into the display stack. I certainly could imagine this being useful, at least occasionally, in various apps on my phone. Uneo has demoed it with Android devices so far but plans on getting support from the other mobile OSes.

Uneo 3D Touch example (photo from Uneo)

Microsoft was there. Nothing amazingly new…they had the Xbox 360 Wireless Speed Wheel, which ships in October as far as I know. It seems like such an obvious controller that I was surprised that it didn’t come out until 2011.

Xbox 360 Wireless Speed Wheel (stock photo)

They had a Kinect there, of course, and that’s always fun to play with—I spent about 10 minutes chopping flying fruit with my sword-hands. For those that are excited by this prospect, Fruit Ninja is available as of last month. For those living under rocks, Kinect is a super massively best selling controller for the XBox 360 which tracks the movement of your body as input for games. When it came out, people immediately started hacking it and using the sensor for robot applications. Microsoft didn’t like that at first, but now they’ve given in and offer a legit SDK (Software Development Kit) for it.

Fruit Ninja Kinect (stock screenshot)

I was pleased to see that one attendee teleconned in with a VGo telepresence robot. Note this photo is of the back of robot.

VGo robot in use at ESC 2011

Post to Twitter Post to Facebook Post to Google Buzz Post to Reddit Post to StumbleUpon

Tags: , , , , , , ,

Architecting Emotional Robots

Posted in artificial intelligence, cognitive science, robotics on April 7th, 2011 by Samuel Kenyon

Creating a robot with emotions is a software development problem.

How does the zebra feel right now?

Emotion is a matter of cognitive architecture.  It is part of the information system of the mind.  Recreating “emotions” really means recreating a type of mind that uses internal mechanisms similar to our minds.  Making an emotional machine requires the proper design and implementation and deployment.

The reason I added “deployment” in there is because environment is quite important.  The mind is a system that interacts with other entities—there is an information flow.  The level of externalism required affects how situated and/or embodied an artificial agent has to be.  That is where robots come in.  However, a robot and its world can be simulated.

What Do I Mean by Architecture?

The metaphor of architecture lets us think of the mind as a building.  But really I mean a large building that was built from millions of interlocking parts and took months or years to design.  And as with buildings, a mind is not just designed and built—it also has to survive the real world.

The metaphor breaks down a bit when you consider how natural minds emerge from ever-changing, growing (or shrinking), adaptable, flexible bags of meat.  However, in their own slow way buildings do change via maintenance and new additions, and they are in fact flexible and movable so as to survive wind and earthquakes.

Of equal or greater importance, I also think of architecture here in its software engineering usage [1]:

Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.

Why Do We Need an Entire Architecture?

One might think that a programmer could just add in some emotion—make a few calls to the emotion function, or tack on a loosely coupled Emotion module.  But based on the best theories so far from researchers, emotions are actually many things going in the mind.  And they are all inherent in the system and intertwined with evolutionarily old parts.  In other words, if you ripped out all the stuff related to emotions, you wouldn’t have much left.  In future posts I will go into the details of potential architectures and why there are certain dependencies.

References:
[1] IEEE Computer Society, IEEE Recommended Practice for Architectural Description of Software-Intensive Systems: IEEE Std 1472000. 2000. via P. Eeles, “What is a software architecture?”

Image credits:

1. safari-partners
2. Marko Ljubez

Post to Twitter Post to Facebook Post to Google Buzz Post to Reddit Post to StumbleUpon

Tags: , , , , ,

What are Symbols in AI?

Posted in artificial intelligence, cognitive science on February 22nd, 2011 by Samuel Kenyon

A main underlying philosophy of artificial intelligence and cognitive science is that cognition is computation.  This leads to the notion of symbols within the mind.

There are many paths to explore how the mind works.  One might start from the bottom, as is the case with neuroscience or connectionist AI.  So you can avoid symbols at first.  But once you start poking around the middle and top, symbols abound.

Besides the metaphor of top-down vs. bottom-up, there is also the crude summary of Logical vs. Probabilistic.  Some people have made theories that they think could work at all levels, starting with the connectionist basement and moving all the way up to the tower of human language, for instance Optimality Theory.   I will quote one of the Optimality Theory creators, not because I like the theory (I don’t, at least not yet), but because it’s a good summary of the general problem [1]:

Precise theories of higher cognitive domains like language and reasoning rely crucially on complex symbolic rule systems like those of grammar and logic. According to traditional cognitive science and artificial intelligence, such symbolic systems are the very essence of higher intelligence. Yet intelligence resides in the brain, where computation appears to be numerical, not symbolic; parallel, not serial; quite distributed, not as highly localized as in symbolic systems. Furthermore, when observed carefully, much of human behavior is remarkably sensitive to the detailed statistical properties of experience; hard-edged rule systems seem ill-equipped to handle these subtleties.

Now, when it comes to theorizing, I’m not interested in getting stuck in the wild goose chase for the One True Primitive or Formula.  I’m interested in cognitive architectures that may include any number of different methodologies.  And those different approaches don’t necessarily result in different components or layers.  It’s quite possible that within an architecture like the human mind, one type of structure can emerge from a totally different structure.  But depending on your point of view—or level of detail—you might see one or the other.

At the moment I’m not convinced of any particular definition of mental symbol.  I think that a symbol could in fact be an arbitrary structure, for example an object in a semantic network which has certain attributes.  The sort of symbols one uses in everyday living come in to play when one structure is used to represent another structure.  Or, perhaps instead of limiting ourselves to “represent” I should just say “provides an interface.”  One would expect that a good interface to produce a symbol would be a simplifying interface.  As an analogy, you use symbols on computer systems all the time.  One touch of a button on a cell phone activates thousands of lines of code, which may in turn activate other programs and so on.  You don’t need to understand how any of the code works, or how any of the hardware running the code works.  The symbols provide a simple way to access something complex.

A system of simple symbols that can be easily combined into new forms also enables wonderful things like language.  And the ablity to set up signs for representation (semiosis) is perhaps a partial window into how the mind works.

One of my many influences is Society of Mind by Marvin Minsky [2], which is full of theories of these structures that might exist in the information flows of the mind.  However, Society of Mind attempts to describe most structures as agents.  An agent is isn’t merely a structure being passed around, but is also actively processing information itself.

Symbols are also important when one is considering if there is a language of thought, and what that might be.  As Minsky wrote:

Language builds things in our minds.  Yet words themselves can’t be the substance of our thoughts.  They have no meanings by themselves; they’re only special sorts of marks or sounds…we must discard the usual view that words denote, or represent, or designate; instead, their function is control: each word makes various agents change what various other agents do.

Or, as Douglas Hofstadter puts it [3]:

Formal tokens such as ‘I’ or “hamburger” are in themselves empty. They do not denote.  Nor can they be made to denote in the full, rich, intuitive sense of the term by having them obey some rules.

Throughout the history of AI, I suspect, people have made intelligent programs and chosen some atomic object type to use for symbols, sometimes even something intrinsic to the programming language they were using.  But simple symbol manipulation doesn’t result in in human-like understanding.  Hofstadter, at least in the 1970s and 80s, said that symbols have to be “active” in order to be useful for real understanding.  “Active symbols” are actually agencies which have the emergent property of symbols.  They are decomposable, and their constituent agents are quite stupid compared to the type of cognitive information the symbols are taking part in.  Hofstadter compares these symbols to teams of ants that pass information between teams which no single ant is aware of.  And then there can be hyperteams and hyperhyperteams.

References
[1] P. Smolensky http://web.jhu.edu/cogsci/people/faculty/Smolensky/
[2] M. Minsky, Society of Mind, Simon & Schuster, 1986.
[3] D. Hofstadter, Metamagical Themas, Basic Books, 1985.

Post to Twitter Post to Facebook Post to Google Buzz Post to Reddit Post to StumbleUpon

Tags: , , , ,