On 30 Aug 2006 16:42:05 GMT, firstname.lastname@example.org (Curt Welch) wrote:
Of course. I guess it's a generalised functional analogue of brain
operation that will ultimately be of practical use. For most robotics
applications humanlike capabilities are extraordinary overkill. But
I'd love to see a robot with the capicty of, say, an ant. That *would*
be useful.'Antbot' I would say 'tidy my house.'
"I like to be organised. A place for everything. And everything all over the
Yeah, for sure. Do I really need another kid to train to behave correctly?
I think the foundation of human intelligence however is strong general
purpose real time reinforcement learning. I think once we master this
technology to the level that would allow us to build a human like machine,
we will also be able to use it for an infinite number of sub-problems in
practical engineering applications. RL techniques are already used for
example in learning algorithms that auto train PID controller parameters
for example. These sort of applications will only grow as our technologies
As an example, I just saw a ad for a ping-pong robot. It sounded like they
had created a machine that could actually play ping-pong. But sadly, it
was just a ball pitching machine that could shoot a steady stream of balls
for you to hit back. I suspect it had some ability to sense when you had
hit the ball back (maybe even detecting the vibration caused by the bounce
on the table) and would shoot the next with the same timing you would
expect if a person had returned the shot. But it wasn't smart enough to
hit the ball with a paddle.
This is the type of problem that would take a large amount of custom code
and hardware but which I believe would work far better with a strong
learning controller driven by a fairly simple critic. It would take it a
long time to train it, but this is something that would happen as part of
the product design work, and once trained, it could easily be mass produced
- but yet, it would retain it's learning ability, so that it could
constantly adapt to different conditions and different players.
I think there are an infinite number of complex control problems (many done
by humans now) where the foundation of intelligence could be applied to
limited domain problems like the one above.
A big difference between humans and their RL skills and machines, is that
to get a human to do something for you, you have to trade it for something
the human needs - you have to reward it with something of value to the
human - money, food, etc. Machines built to perform a task, are wired with
a critic that rewards them for doing a good job. The work they were built
to do, is their reward. The ping pong machine loves to play ping pong, and
nothing else. So you don't have to give it breaks, or scooby snacks, to
keep it motivated. Allowing it the play ping pong is it's reward.
This is where I think AI technology will be work well for solving real
engineering problems and not be overkill.
A friend suggest to me that someone should built a nano robot that could
travel around and capture insects to prevent the need for using pesticides.
That's very much in the line of an ant-bot type idea.
Do ants have any ability to learn? Anyone know? I assume they have very
little learning ability if any. But nature can be surprising. Knowing
very little about ants, I would guess they are mostly just very complex
I think trying to create behavior as complex as an ant or bee is likely to
be best produced with the help of genetic algorithms that slowly evolve a
fixed but very complex controller.
Collecting trash might be another interesting application for smarter
robots. Something that roamed public areas and picked up trash and put in
near by trash cans. Could you build a bot for example that could clean up
the trash at a movie theater or that a crowd would leave after a concert or
sports event? These are the applications that in theory seem fairly simple
but yet require a large amount of intelligence that's very hard to
hand-program into a machine. And even harder to expect it to work in
environments it's never been tested in. Adaptive learning machines however
should be able to not only learn complex tasks like these, but adapt to
different environments and for example discover new techniques for dong a
better job on it's own.
Well, on a completely practical note, can you count the output states
of jBot for us? I make it about 5. Now what I don't know what to do
with is the "output plus variable ratio" when it is dynamically
stearing. Is that a separate output? a separate output with a variable?
or shall we say each discernably different ratio is a different output?
But seriously, how many output states does jBot have? Or do you insist
it is infinite. A point of understanding I'm trying to make hangs in
A note is a state. A state is static, a period without change.
With 12 notes, you can make 12 notes.
Maybe you can make another beat frequency note with the discord of two
similar notes, but I'm sure that's outside the relm of your
One note long? 12.
Given the requirement of stasis, yes, there is a limit. It is only by
combining states that any melody of significance can begin to form.
That is a true pity.
I was hoping if we could see behaviors as atomic states, and not
strings of atomic states, we could then have a very interesting
discussion of the communications content in stringing the behaviors
together. Music would be a wonderful analogical platform to consider
this line. Then we could separate the intelligence from the behaviors.
Now reconsider my first post. "It occurs to me that artificial
intelligence will be found in the decisions that switch behaviors
rather than the layers of behavior themselves."
If I rewrote this to say, "It occurs to me that the making of music
will be found in the decisions that switch notes according to a melody
rather, than the separation of notes into layers themselves."
I think we must have very different definitions of what an "output
state" is. If you are looking for a mechanical definition (how
many keys are there on a piano) I'd say that each drive motor
has 100 forward and 100 possible backward speeds so 200*200
= 40000 "output states" as you seem to want to define them.
Plus, both wheels are constantly accelerating and decelerating
as the robot maneuvers, and doing so at different rates depending
on the circumstances, so we probably need another multipler in
there to accurately describe the number of possible "output states."
But what does that tell us? Behaviors are our robot's melodies.
Counting the piano keys, and even taking into account how hard
they are struck, tells us nothing about the potential variety of
It seems to me that all 40000+ "output states" so defined are
involved in a "behavior" such as perimeter-following, or seeking
high ground, or staying on a path, or following a human, or
chasing a ball, etc, etc.
Those are what I would consider "behaviors." And their number
is limited only by the imagination of the robot builder and not
by how many speeds the two motors can turn in combination.
So I guess I do insist it is infinite, or at least as infinite
as is human creativity.
As I say. it appears we have very different concepts of what
constitutes a robot "behavior" and therein lies the rub.
Yes, I know.
I am taking this stance deliberately to make a point. And I think the
point is interesting enough to spend some effort upon. So I'm hoping
you, or someone, reading will pick up my drift and acknowlege it, and
then we can see if there is something deep and important in it. I think
there is. But of course, this is chasing an intuition, and intuitions
often come in stages and pieces. I don't have a final opinion, yet. I
think I'm close. The big problem in knowing if I'm there or not has to
do with naming what I've thought about that has no name yet. Even
harder is how to pass intuitions. How to communicate something not yet
fully grasped, not yet fully named, so others can explore the thought
So, being as un-etherial as I can, I start again. I think behavior
based robots has made much of creating behaviors. (To Wit: the field is
named behavior based robotics, and not e.g. subsumed staged layered
responses.) In focusing on behaviors, they've missed the intelligence
lies not at all in the behaviors, but it the sequencing of behaviors.
(Music makes a wonderful analogy of this and I will return to it
All behaviors labeled by them "behaviors" are equal. Some behaviors are
dirt simple - set and forget. In Jones terms, these are servo
behaviors. Some of what they call behaviors are complex- having many
subcomponents usually spaced out in time. In Jones terms, these are
ballistic behaviors. The mistake has been to call all these
"behaviors". They have distinctly different characters which can be
identified and quantified, and thereby separated into different
groupings. Further, the subcomponents of the complex behaviors, are not
really components, but identifiable simple behaviors in themselves.
So yes, since first starting this thread, I guess I have come to have
very different concept of what constitutes a robot "behavior". (Atleast
I'm struggling with a notion change.) I am now holding a premise that
any static application of a output value to an output device is a
behavior. The simplist output values are constants. The slightly more
complex output values are variable, but they are the output of simple
computations or algorythms. What I don't hold is correctly classified a
behavior, is any sequencing or cycling of different outputs from
"non-linear" changes in the output algorythm. (I'm not hard on the
non-linear part, but what I want to eliminate here are widely switched
outputs due to booleans being snuk in.)
For example. I think given jBot's two output motors, setting both at
60% forward is a behavior. It's a settting, the value is a constant, it
is applied to the outputs, and it remains established for an
undetermined future time.
The more complex example of a behavior might be setting the left at 60%
forward and the right at 60% + wallgain * (setpnt -
currentwalldistance) or such. It's wall following algorythm, a settting
with a computed variable output, it is applied to the outputs (a
responsive behavior, actually) and it remains established for an
undetermined future time. This is the servo mechanism which Brooks and
Jones show clear perference for. This is perhaps their ideal of what a
behavior should be.
So I guite disagree that jBot has inifinite behaviors. I think it has a
cruise behavior, it has a edge detect behavior, maybe an avoid
behavior, etc. But I'm confident the behaviors you've programmed into
it are, limited, countable. Perhaps you also have other kinds of things
which are (incorrectly?) called behaviors.
Reading Jones makes clear, a robot full of servo behaviors is not
sufficient to make a useful robot. Another kind of response is needed,
and that he calls the ballistic response. The escape response is the
In the escape response, a non-servo, purely timed, back-up is done,
then a rotation, and an exit. There can be some detail in the exact
sequence. (Is there a stop mode to slow forward motion? Is there a
pause before reversing the motors? Is there a stop, or pause, to end
the back up? or are there acceleration ramps on the back up, up and
down? Is there a random element to the turn? etc. etc.?) But detail
aside, what is consistent always is that there is detail, there are
subcomponents to this supposed "behavior".
Now let's return to the tone and the tune analogy. If a behavior is a
tone, and a melody has a tune ... would it be wrong to call a tone
melody? Of course. You don't say, I press this piano key, and get this
melody. Then I play this key and get another melody. Then I press these
5 keys in a sequence and get a beautiful little tone. No. It is wrong
to interchange and intermingle the idea of a "tone" (sound of one key
alone) and a "melody", also called a tune, (sound of several tones in
timed sequence). (Notice a chord is another thing, which is very like
the two we're discussing, but with a distinctively different meaning
again related to its timing component.)
We must be careful naming things in scientific endeavors, lest
confusion set in, and become its own block to progress. I'm saying a
poor definition or use of the word behavior has caused just that. We've
been using "behavior" as if it meant "paino sound". And then without a
definition for the subcomponents, or supercomponents, of behavior, also
calling them behaviors, it has become impossible to sort out the
difference between a behavior with or without intelligence.
So, my new use of "behavior" is to mean "any static application of a
output value (constant or linear variable) to an output device" is a
behavior. Behaviors are reactionary, responses, and hold no inherent
intelligence. Anything that has a collective of time sequenced
behaviors is a "___blank___" yet-to-be-named. Emergent intelligence can
come from "___blank___" yet-to-be-named. So a "time sequenced behavior"
is a misnomer, because it is not a behavior, anymore than a note is a
tune (melody). Maybe we could give it a name. Maybe a "sequavior". I
don't know. I'd like something better. Stranger namings have obviously
happened in the past. Let me think on it some more. But we really can't
think clearly about this problem, until we come up with a non-ambigous,
non-overlapping, set of definitions for what we're trying to take
So to repeat my opening premise, "artificial intelligence will be found
in the decisions that switch behaviors rather than the layers of
behavior themselves". Perhaps the depth of my original meaning should
becoming much clearer now. Behaviors have no intelligence. The
sequencing of behaviors is the source of emergent intelligence. Now,
aren't those radical declarations? If correct, isn't this potentially a
new departure for Artifical Intelligence?
Yes, of course.
If you limit the definition of "behavior" to some low level set of output
actions on which all the action of the bot must be based due to hardware
limitations, then of course, all the "intelligence" is in the sequencing of
the behaviors. Where else could it be?
I would not say so. All you are saying is that the intelligence is defined
by the behavior of the machine (in the sequence of outputs it creates).
Some people think of "intelligence" as the internal thought process of
humans, and they mostly ignored the outputs this thought process produced.
Most of what is known as symbolic AI was based on this type of idea. But
at the same time, there has always been a very strong component of AI which
is behavior based. Turing's very famous 1950 paper that defined the
Turning test starts with the line, "I PROPOSE to consider the question,
'Can machines think?'".
He then goes on to say that this is the wrong question, and that instead,
it should be replaced with the "The Imitation Game" (which later became
known as the Turing test), which replaces the idea of testing for
"thinking" with the idea of testing to see if the machine is creating the
This was Alan Turing's attempt to get people to focus on behavior alone and
to ignore things like "thinking".
Like Turning, much of AI has been focused on behavior since the beginning.
Behavior is always about the machine producing the correct sequence of
outputs at the correct time. It's really been the foundation of AI since
For behavior based robotics, the strength has always been with the ability
of the robot to produce complex behaviors that were not specifically
expected by the creator. The programmer simply codes various low level
behaviors, and some system for selecting them, and then the bot, while
interacting with the environment, ends up producing an interesting, useful,
but unexpected (by the programmer) string of behaviors. We say the new
higher level behavior "emerges" from the low level behaviors that the
programmer explicitly built into the machine.
repeating what you wrote above:
I don't see it that way. TO me, all behaviors are intelligent. Some are
just more so than others. It's just that simple behaviors alone, triggered
by simple triggers, don't look very intelligent. A light that comes on in
response to pushing a button doesn't look every intelligent. But combine
that logic with a billion or so exceptions, and it will start to look very
intelligent to us.
We see intelligence in complex behavior that seems to have a purpose. But
there's now way to define where the line from simple and dumb crosses over
and becomes "intelligent". It's just a matter of degree.
But you see, in behavior based robots, it is thought that the layering
of the behaviors is where it is at. Really the behaviors have almost
nothing to do with it. That's the departure I'm pointing out.
There everything is lumped together again, and you conclude intelligence
is defined by behavior. It is not, because behavior is too broad a word.
Hence the distinction is lost.
It is Brooks subsumption that leads to intellegence, and not the
layering of behavior.
But it isn't behavior at all. The structure of the subsumption is the
intellegence. The layering and behaviors and all the rest are devoid of
Emergence can happen, but the triggers and responses that cause outputs
to be expressed are where the intelligence lies, emergent, or planned.
That's where they all are.
To me, all behaviors are dumb rout responses/programs. Of course, I'm
talking about the more exact meaning, being atomic behaviors. Composite
behaviors might have some intelligence to them, but it isn't because of
the behaviors, its because there's some scheduling structure in with
them, and that's where the intelligence is coming from.
Combining them into some sequence so the whole is greater than the sum
is where the "greater" part (intelligence) comes from.
Brooks quotes, fyi,
"Intelligence is determined by the dynamics of interaction with the
"Intelligence is in the eye of the observer."
The key phrase there to me is "the behaviors you've programmed into it
Seems like the argument has shifted from what is possible with the
hardware to what I personally have accomplished with it, which seems
beside the point. I freely confess that jBot and all my creations are
flawed and limited by my smallness of imagination.
Again, that was not your premise, as I understand it.
I have also found that the decision to change states is the most
The most recent example of this for jBot is the need to switch
between target acquisition vs. perimeter following to make it
across the SMU campus, or navigate Fair Park. I, as a human
watching the robot, can easily tell when it should be in one
mode or the other. It's not so obvious how the robot can
make the same decision.
The current solution is to switch to perimeter following when
the waypoint target is directly behind the robot, and switch
back when it is directly in front. This works very well most
of the time. It usually switches into perimeter following
mode to go around buildings, also did recently to work its
way out of a parking garage. But it also does the state
change inappropriately sometimes, and in those cases
usually makes the navigation worse.
(I noticed in re-reading the above that I used the word "mode"
to describe target acquisition and perimeter following behaviors.
Is that the word you are searching for?)
So I have arrived at a somewhat different conclusion based on
the observation that making correct decisions about when to
change states requires lots of intelligence, which I think
is the same thing you are saying.
Intelligence that our robots don't have right now, and probably
won't have for a long time.
This comes full circle to our discussion last Spring, and the
"heretical" observation from my own robot building experience:
I have found, as a practical matter, that reducing the number
of states results in more robust/intelligent behavior. Not
the other way around.
Reducing the number of required states means reducing the
really smart decisions that the robot is required to make
in order to solve a particular problem, and that results
in more robust and intelligent behavior, because our robots
really aren't very smart and are not very good at making
those sorts of decisions.
I know this seems counter-intuitive, but this has been my
experience: reduce the required states. Let me give three
examples to illustrate.
Consider the aforementioned bump-and-run robot problem of
getting stuck in a corner. Handling this situation requires
two distinct phases.
First, the robot must recognize that it is stuck, perhaps
by counting bumper presses occurring in a limited time
window, or recording a "history" of left-right-left-right
bumper presses, or watching the wheel odometry and observing
that we're not moving very far from the same location. I've
done all three of these at one time or another.
Second, once the robot "knows" that it is trapped, it must
have some recovery behavior, like rotating 180 degrees at
the next bumper press, or always turning left (or right)
no matter which side the bumper press is on, and so forth.
The problems arise, of course, when the robot does this
inappropriately, either 1) failing to change states when
it is necessary, or just as bad, 2) changing states when
it is not appropriate, even detrimental.
The result is that state changes intended to make the robot
more capable of solving some particular problem, end up
degrading the robot behavior in other circumstances.
Now let's change the operation of the robot's normal
bump-and-run behavior such that we add a tiny amount
of randomness to each maneuver, so that each turn it
makes is not exactly the same size -- one might be
10 degrees, the next is 12, the next is 9, and so on.
This has essentially no effect on the normal bump-and-run
behavior -- we can still navigate a narrow hall -- but
this small amount of noise in the response prevents the
robot from ever getting stuck in a corner, or any other
similar geometrical symmetry (i.e., wandering around
the room in the same pattern over and over).
Because the normal bump-and-run state is more robust,
the robot neither needs to be able to detect the
"I'm caught in a corner" condition, nor does it need
to have a special behavior to recover from that condition.
Consequently, it no longer is capable of making that
decision incorrectly and executing those behaviors
inappropriately, which causes problems that would
otherwise not occur.
Thus the robot behavior is made more capable by REDUCING
the number of states required to solve the problem.
The second example is that of dealing with curbs for
an outdoor robot, such as my 6-wheel robot, jBot
(which can deal with curbs but which cannot, alas,
wag its tail ;)
A robot that cannot climb over a curb must treat a
curb as an obstacle. That means it must be able to,
much like the bump-and-run example above, 1) sense
the presence of the curb, and 2) have some meaningful
way of dealing with the curb. Again, problems arise
when the curb is mis-identified, either by not changing
behavior in the presence of the curb, or by incorrectly
changing behavior in its absence.
In the case of jBot and other similar platforms, the
robot is easily able to climb over curbs. This means
that the robot needs neither to be able to accurately
detect the presence or absence of curbing, nor does it
need to have a special behavior for dealing with it.
Because the robot does not need to change states to
deal with curbs as special problems, it is not able to
make that decision "incorrectly." Once again, the
robot's behavior becomes more robust by REDUCING the
number of states required to solve the problem, in
this case, mechanically.
More required states mean increased likelihood of
being in the wrong state, at the wrong time, the
very question that Randy originally posed, and
having to be REALLY SMART about when to change
The first example was a software solution to
reducing required states, and the second was
hardware. The third is a combination of both,
and deals with the control algorithm for a
differentially steered robot.
One advantage of most differentially steered
platforms is zero turning radius: the ability to
turn in place. That is a great simplification
for navigation as compared to the back-and-forth
required for a normal Ackerman-steered vehicle
caught in a dead-end alley, which even we humans
sometimes have trouble maneuvering in our cars.
How is that decision made? How does the robot
decide when to enter the "turn in place" state?
How does an Ackerman steered robot make that
On my differentially steered robots, jBot included,
the motor commands are not for a left motor and right
motor, but rather for a velocity vector and a
rotation vector. In simple terms, the velocity vector
is a voltage added to both motors, and the rotation
vector is a voltage added to one motor and subtracted
from the other. The velocity vector causes the
robot to drive forward and backward at various
speeds, and the rotation vector causes it to turn
left and right at various rates.
Now picture this robot driving in a large arc, perhaps
to avoid an obstacle, with a positive velocity vector
of some value and a positive rotation vector of some
value. And picture the robot slowing down, that is,
reducing the velocity vector, but not the rotation
vector, as it drives. The result is that the turn
becomes tighter and tighter, until the velocity vector
finally becomes 0, and the robot is then rotating
around its center, like an ice skater tightening her
turn until she is spinning in place.
Somewhere in the course of that maneuver, the inside
wheels went slower and slower and finally went through
zero and into reverse, and began to speed up in reverse.
When the velocity vector reaches zero, the inside
and outside wheels are going the same speed, but in
opposite directions, and the robot is rotating around
The key point is this: the robot never "made the decision"
to reverse the inside wheels and spin in place. There
is not a separate "rotate in place" state the the robot
must decide when to enter and exit. Rather, it is all
a natural consequence of the relationship between the two
control vectors, all in the same state.
As a practical matter, when the jBot enters a dead-end
alley, for example, the large number of very close sonar
detections force the robot velocity vector to ramp toward
zero until, by the time the robot reaches the end of the
alley it is 0 and can no longer make any forward progress
at all, but can only rotate in place. But when it does
so, the sonar gets longer detections as the robot rotates
toward the entrance, and so the velocity vector begins to
ramp back up to full speed from zero.
the dead-end alley, slowed down to a stop as it approached
the end, rotated in place until it was facing the exit,
and then accelerated back to full speed as it left.
But there were no state changes, no decision to rotate
in place, no decision to stop rotating. Hence, once again,
the robot was prevented from making the "wrong" decision
about when to change states and rotate. And therefore
its behavior was, I would argue, made correspondingly
more robust and apparently more "intelligent" by reducing
the number of states required to deal with the problem.
There are several videos on the jBot web-page
illustrating this behavior:
See particularly the videos of the robot navigating
around the nooks and crannies of the TI building in
some of the later videos.
The requirement for some number of different states
is, I think, inevitable. But my experience is that
it's useful to work to reduce the number of required
states as much as possible.
The route to robust behavior seems to lie not only
in being smarter about when to change states, but
also in reducing the necessity of changing states
in the first place.
As I said, a heretical suggestion.
Yes, the argument shifted. No intention of slight to you, though. Just
an attempt at a stair step argument. i.e. 1) What's in it is limited and
we agree on that. 2) Next step was to see if I could get concurrance on
what can be put in it is also limited (given hardware suite remains the
Again returning to premises, I have noticed limited inputs and outputs
on our robots. I have hypothesized, maybe that means there are limited
combinations and permutations of inputs to outputs. I have not yet found
an argument that convinces me one way or the other. I suspect there is a
limited set. I also suspect many arguments will be presented suggesting
inifinte sets, but when examined carefully, it will be found the sets
have non-unique members, meaning they can be reduced to limited sets. My
thinking is seemingly infinite sets can be reduced by removing the
analog components of outputs to a variable, while the method of
calculation of the output remains static.
Now, I do favor the idea of a limited set. If there are a limited set,
then we can be sure we have programmed every possible behavior into our
robot. Likewise, we can possibly identify every possible transition from
one behavior to another. We can know if we have addressed all the robot
can do. We can know if we have made the robot as intelligent as
possible. We might even be able to see every possible emergent property.
Wouldn't that be a significant goal?
So how can I imagine this might be possible. Let's check the low end
limit. Look at Braitenberg 101. His very first robot has one photosensor
and one motor. Can we construct a finite set of behaviors for this
robot? I say yes. The robot can 1) drive the motor toward the light with
some gain function, 2) drive away from the light with some gain
function, 3) drive the motor at some speed function ignoring the light.
4) not drive the motor. That's it. Any other output behavior can be
recast as a combination of the above outputs.
In fact to demonstrate just that, notice #4 is really just a special
case of #3, where the speed variable is zero'd (depending on how the
hardware details are done, but as far as externally observable behavior,
the point stands).
Now, to my late-night-after-a-hard-week thinking I can't come up with
any other possible behaviors for this robot. I can come up with ideas of
random behaviors, but any I can think of, can be reduced to sequenes of
the set of three listed.
So I am still very found of the conjecture, limited inputs and limited
outputs means all possible atomic behaviors can be accounted.
Any display of "emergent intelligence" will come not from the behaviors,
but from the sequencing of them.
Pretty strong argument above as it seems to me just now. No counter
argument comes to mind. Hummm... that seems an important enough thought
to stop this post here, and take up your wonderful examples in a
separate post later, and see if anyone has counter argument.
I don't know what sort of argument you would find convincing, but
for me your hypothesis does not comport with observation. It seems
to me that the musical analogy, with which you apparently agree, is
the most apt. To paraphrase, in your own words:
"I have noticed limited inputs and outputs on my violin. I have
hypothesized, maybe that means there are limited combinations and
permutations of inputs to outputs. I have not yet found an
argument that convinces you one way or the other."
So it is your intuition that we can "identify every possible transition
from one note to another. We can know if we have addressed all the
violin can do."
That is certainly not my intuition. Wonder what Bach would think of
Why does that sound silly in reference to the violin but acceptable in
reference to a different sort of instrument, the robot? I submit there
is no difference. I have not seen anything in your musings to convince
me otherwise. The attempt seems to me to be to put some sort of
mathematical restraints on human creativity. That strikes me as a
Now, if in fact you believe that you CAN put a limit on the musical
possibilities of the violin by applying some sort of formula based
on counting the violin's limited "inputs and outputs" then we evidently
have fundamentally different understandings of human creativity, and
should let it go at that.
We see this on slashdot every few years. Someone has "analyzed" pop
tunes and written software that will compose #1 hits without human
intervention. It never happens. As annoying as it is to the
engineers, the realm of possibilities for human creativity is
not so easily constrained and mimicked.
So, counting input and output resources as a means of restricting what
a clever human might do with those resources seems a silly exercise
(However, if you do get that #1 Hit-making software to work, I'd like
to know! Let's make a little Top-40 money, pay for some of this
escoteric robot research... ;)
Why do I feel the sands shifting under my feet. Am I not expressing
myself well? or is my meanind deliberately lost? As of yet, I cannot
tell, but I do feel I'm not understood.
Note the follow is indeed a paraphrase, and not a quote of mine.
Part of the shifting sands is the argument made the transition from
piano (which I didn't like because of all the modified intonations
possible, but was at least quantum in possible tones, a harpsicord would
have suited me better for a much more consistent note with each instance
of output, to a violin with an analog range of frequencies, and even
more nuances possible.
In every analogy, there's the part that fits, and the part that doesn't.
You wish to move me more into the part that doesn't. Please note I
resist the change as obsfuscatory.
I don't think your old enough to where Bach would have had an pinion on
your intuition. Do you have any evidence to the contrary?
And here I think the my argument has been strawmanned, since it said
nothing of human creativity, but instead was trying to pronounce on: if
there are a closed set of atomic actions a robot can take (the analog in
music being notes available on some intruments) and a closed set of
inputs to trigger those atomic actions, reasons to transition from
output action to output action, (the analog in music being different
ways to go from note to note) then too it might (must) be a closed set.
The atomic output actions I mention, I have tried to make distinct form
behaviors as they are now known, and called them atomic behaviors
(although I think they should be called just behaviors and anything with
complexity to it not be called a behavior).
None of this has reached the stage of a longer sequence of atomic
behaviors, which are still called behaviors, but in music might be a
thrum or a trill or chorus or stanza. Nor have we reach the length of
combination which would rightly be a melody.
In the music analogy I am saying, given a limited set of notes, and a
limited transition table from note to note, there is a closed set of
note to note sequences. That, however, says nothing about limiting the
amount or complexity of any possible melody. Melodies are infinitely
variable. Melodies are formed by intelligence, human, or even birds,
Some (most) instruments have a limited number of notes. Some (most)
instruments are limited to express only one note at a time. Some (most)
instruments have limited ability to go from note to note.
My "breakthrough" in behavior based robotics using the musical analogy
is, the melody isn't in the note itself. It is in the manipulation and
sequencing of the notes that makes the melody. In robotics terms it is,
intelligence isn't in atomic behaviors, or the individual transition
from atomic behaviors to atomic behaviors. It is in the whole sequencing
of the atomic behaviors that intelligence arises.
Then don't bring it up, because it has no bearing on the discussion at
<Why do I feel the sands shifting under my feet.>
I think the argument is still the same. I don't see how counting
output devices or input sensors defines or limits what a clever
human may deduce about the larger environment from those
sensors, in some as yet un-thought-of way, and then program
that into the robot, which thereafter has a new behavior. You
suggest, as I understand, that all possible behaviors can be
known just by counting the number of input and output devices
on the robot. I disagree, and offer the absurd notion that one
can as easily claim to know all violin music just by counting
strings on the violin. Isn't that where we are in the discussion?
What did I miss?
You also don't see what human creativity has to do with robots.
Humans build the robots. The robots are as clever as the human
can make them. The humans cleverness and creativity are
intimately tied up in the behavior of the robot.
So when you say, "we can know if we have addressed all the robot can
do" you are making a statement about the creativity of the humans
that designed and built the robot. It's capabilities are limited
by their cleverness and their vision.
I have a sonar array made of 4 sensors on one of my robots. I've been
working with it for about two years now and I'm continually finding new
things I can do with it, new ways of getting information from the data
stream, and new ways for the robot to react to this new information.
I'm certain persons more clever than myself can come up with many more.
So while the I/O on the robot has not changed in a couple of years, the
"interconnections" between them have changed substantially, and
continue to change.
Now as I understand it, you want to count the number of sonar units and
the number of drive motors and then pronounce some limitation on the
number of clever ideas that can be devised for using these devices.
That is where you lose me.
Your own words were so that "we can know if we have addressed all the
robot can do."
All the robot can do. Seems like that requires us to be awfully
Randy you can't weasel out of it by redefining "behaviors" to be just
a synonym for your beloved "states." I think most people would agree
that a robot seeking to high ground through a cluttered landscape is
exhibiting a definable and observable "behavior." (which by the way
is kind of cool to watch, remind me to show it to you).
Would you say equally say, those who study phonetics and phonology are
trying limit what can be said? Or are against free speach? or put a
limit on human creativity? Absurd!
They wish to identify and count the atomic speach sounds (phoneme /
phones). (But they don't deny some clever human can't make some other
kind of sound.) I wish to identify and count what is the possible
"aphabet" of some particular robots output capability. That doesn't
limit what it can do, it only identifies the atomic elements of what it
can use to do it.
The comparison to phonetics is not apt, but I give up. I refer you
only to your own posting on the "fish and robot" thread, where you
discuss adding additional "phonemes" to your existing hardware
sensors through the advanced application of cleverness, to suggest
that your own experience mitigates against the existence of the
"limited alphabet" of atomic elements you wish to count:
I hear you do not agree, and wish "give up".
I still think it is a strong argument, and this may or may not interest
you, but if anyone else has interest, I'll continue a bit why.
Learning Tagalog (language from the Philippines) was about the hardest
thing I ever tried. It should be a simple language, you'd think. It has
less sounds than many others. Tagalog has only 21 phonemes; 16
consonants and 5 vowels. Syllable structure is relatively simple. Each
syllable contains at least a consonant and a vowel. So as a result you
get lots of a ba ca na sounding sylables. It is a very phonetic
language, pronounced very much like it is written. And while we here in
the states tend to remember the place of MacArthur leaving and the
death march as Bataan (didn't you pronounce it Ba tawn?) the
pronounciation in the Philipines is Ba Ta An, with each sylable getting
an almost equal emphasis (at least to our ears).
My point here, is to speak in Tagalog, you get a limited set of sounds
you can make. You can still talk about anything you want. But the
sounds you can make are limited, and you tend to make lots more of
them. You use many more simple sylables in series. But you can say the
same thing in both languages.
But since we think in terms of the language we know, native Tagalog
speakers don't have "q's" and "th's" in their thoughts. Many of them do
speak English, so many have the ability to make far more sounds, but
when it comes to communicating in pure Tagalog, those sounds just
aren't there. And unless they are very very practiced, when they are
speaking English... those sounds are often absent, too. "Tagalish
tainted" as it were.
But! If you want to speak Tagalog, you learn a set of sounds, and
that's all you need, that's all you'll think with, and that's all
The parallel I see for robotics is we can come up with a set of atomic
behaviors, and while it might be possible for some special effort to
come up with a new one, there is still some basic limited set.
So was it wrong or unfruitful or somehow limiting to human creativity
of the Philippino people that someone counted the basic atomic sounds
as apparently expressed in their (most popular) language?
Or are Russian speakers, with their 33 character alphabet somehow
automatically smarter than either Philippinos or 'canos because they
have a richer set of phonemes? Or can you still express the same
concepts in all three languages by using enough sylables to come to the
same information content? And in all three cases, why did they stop at
21, 26, or 33 letters/phonemes or what have you? Why a limited,
loosely-packed, data set?
It was probably optimized to best fit the structure of the brains and their
mouths and their ears. I suspect, if you could find people in each of these
cultures who haven't had their DNA too mixed with other cultures yet, you
could probably do some testing and find that people from cultures with
languages with higher phoneme counts had better phoneme discrimination
It would be hard to test since someone growing up with that language will
have their brain tuned to the needs of the language - so you would have to
figure out a way to do testing before the brain had been trained by their
language. Maybe adopted babies from one culture to another where they
never learned the natural language of their culture would be a way to find
Speech and language skills certainly can vary from person to person so it
would make sense to me that an isolated culture might have developed
different speech and language skills and that the language they created
would match that.
The advantage to using more phonemes is that communication can be faster -
you need to produce less syllables to communicate the same idea - i.e., you
can communicate faster. We assign meaning to all the shortest sounds
first, and as they get used up, new ideas that assigned to longer
sequences. Words change over time so that their length is adjusted to match
their frequency of use to keep the communication channel optimized (as per
Huffman encoding to maximize information flow). Cellular Phone becomes
cell phone, becomes cell, as in, "give me a call on my cell", as its
frequency of use in our life rises.
So for the same reason, there is pressure to use as many phonemes as the
body can produce, and the ear/brain can distinguish, without increasing the
error rate. You would then expect the language used by a culture to drift
to optimal usage patterns based on the limits of their brain and sound
I suspect if you were to test people, you could actually see this
I know I for example have a hell of hard time telling a short e from a
short i (as one of many issues I have with language). I suffered through
grade school with speech problems and spelling has likewise been a struggle
my whole life. I suspect most of it has been created by a limited sound
discrimination ability (on pitch discrimination tests I score way below
average even though I test normal on standard hearing tests based on
volume). And likewise, my tonal memory skills are way below average, where
as my visual memory skills are way above average. I can't tell hear
difference between pin and pen, yet when someone pronounces them correctly
side by side quickly, I can hear a difference. If more people were like
me, then English would have changed by now.
Maybe my brain is better fit for a language like Tagalog? :)
And that's why late-night-after-a-hard-week thinking should probably be
set aside for morning. Shortly after posting I thought...
Oh no, Curt's going to filet my arugment. I've overlooked state
information in the input stream. Flash the light two times, and the
robot does some trick. Flash three times it plays dead. and so one.
Just a few moments later,
Oh no, dpa's going to point out there aren't three behaviors at all,
only one, because if you use a two variable algorythm, you can use one
variable with gain and produce all photovore-ish outputs, and the other
variable with gain and produce all the photo-insensitive outputs. So
from his excellent example of state reduction through non state
variables, I am hoisted by my own premise of state reduction.
I don't know. I'm sure there's a pony in my argument somewhere. I'll
That's a simple example of exactly what I was talking about. Machines need
to respond to not only current inputs, but to temporal sequences of sensory
inputs as well. It can't just respond one way to every light level
reading. It needs internal memory (what you called state) to record
whatever aspect of the temporal sequence is important to it. If the
machine must react differently to two light flashes than to one, it needs
to record what it has recently seen so when the light flashes, it can react
one way, if it's the first flash, but a different way, if it's a second
How many different ways the machine can react to a string of light flashes,
is only limited by how much memory it has to store state information and
how many behavior rules it can encode as a response to the different state
values. It can have different reactions to different combinations of long
and short flashes for example - just like a human can respond differently
to various long Morse code sequences. The more state it can store, and
react to, the more complex its behavior can be. So no matter how few
atomic behavior exist in the machine, or how simple the sensors are (a
light flash detector), the number of different choices it can make about
which behavior to produce next, based on its state, is in effect unlimited
- it's limit is set only by how much state memory it has.
I invite you to join the new thread, Syntax and robot behavior. I
propose what Brooks is really saying about the differences between
animals and men is exactly the ability to store and respond to state.
Our syntax, like your example above of usng Morse code, is our ability
to store state information, which animals have a much lessor ability to
Randy M. Dumse
Caution: Objects in mirror are more confused than they appear.
I think most of our brain is used the same way most of an animal brain is
used. The state is stored in the activity of the neurons and for the most
part, the higher animals have very similar brains with fairly similar
Just learning how to walk around and do simple things like pick up objects
or follow something, or to see something we want (like food) and navigate
over to it takes up a huge amount of our brain power - yet dogs and monkeys
do this is well.
What I think we have that's important is this ability to have memories of
past events (and to fabricate new ideas - which I think is nothing more
than the brain merging together past memories). Plus, our language skills.
But I think the part of the brain that gives us our language skill is
really no different than the parts which allow us to do all the same things
the animals do. It's just because we have a small section isolated in the
correct way that it can be used for language processing that gives us all
these extra language powers. I think the idea that we have "syntax" and
the animals don't is about as far off the mark as you can get. They have
all the same syntax powers we have and they use it all the time in order to
interact with their environment. In all cases, the problems are the same,
the system must recognize temporal patterns, and learn to produce different
behaviors to different temporal patterns. To learn to walk we must process
temporal patterns in our vision and sensory data and produce leg motions to
keep us from running into things.
The difference is only in the length, and the nature, of the temporal
syntaxial patterns the system is optimized to respond to. When we move, we
need enough temporal pattern memory to be able to predict what the things
around us are doing - how they are moving relative to us. You don't need
10 seconds of temporal pattern memory. Instead, you need more like .5
seconds of temporal pattern memory. But it needs to be a fairly high
resolution memory to be able to do things like jump over a rock and land
without loosing your balance etc.
Yet, to understand and react correctly to language, you need temporal
pattern memory of many seconds. The context created by the words spoken a
few seconds ago changes the meaning of the words we hear. That means the
language processing part of the brain is creating different reactions to
temporal patterns that go back many seconds.
What Brooks' is talking about as syntax I think is nothing more than the
same basic temporal pattern reaction skills that exist in all the brain.
But for the language section of our brain, it's configured to give us many
seconds of low resolution pattern matching, instead of the normal
configuration of a very high resolution, but very short length temporal
pattern matching system used for driving all our normal physical behaviors.
Animals can't understand language not because they don't have syntax, but
only because they their syntax scope is tuned for very short intervals.
They can't understand time like we do, because they don't have the memory
we do - the ability to call up past brain states. If you can't call up past
brain states to compare side by side with current state, then you have no
way to understand time like we understand it.
I suspect both of these skills are just minor tweaks to the basic brain
design which is why our brains don't seem very different from that of a
chimp for example.
I think the brain is just a temporal reaction machine trained by
reinforcement learning. It creates brain state from sensory data which
represents the recent temporal patterns that have happened in the sensory
data and it produces behaviors as a direct reaction to that state. The
abilities we have over the animals are not because we have special hardware
in our brain, we just have the same temporal reaction hardware the chimps
have except some of it has been configured and tuned slightly differently
to allow it to be used for this specialized function of language which
requires a much longer short term temporal memory.
Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here.
All logos and trade names are the property of their respective owners.