<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Supermodelling</title>
	<atom:link href="http://supermodelling.net/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://supermodelling.net</link>
	<description>A personal blog about practical machine intelligence and other fun mysteries</description>
	<pubDate>Mon, 23 Aug 2010 15:47:34 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Robot Redux</title>
		<link>http://supermodelling.net/?p=155</link>
		<comments>http://supermodelling.net/?p=155#comments</comments>
		<pubDate>Mon, 23 Aug 2010 15:31:28 +0000</pubDate>
		<dc:creator>Derek</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://supermodelling.net/?p=155</guid>
		<description><![CDATA[
The research and thinking I have done so far on conceptual modelling has given me a newfound sense of wonder at the immense complexity of concepts, while at the same time I marvel at how they display a transparent elegance.
In particular, I am fascinated by the most fundamental concepts &#8212; those acquired in infancy &#8212; [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full" title="Kaizen" src="http://supermodelling.net/wp-content/uploads/2010/08/kaizen.jpg" alt="" width="340" height="240" /><br />
The research and thinking I have done so far on conceptual modelling has given me a newfound sense of wonder at the immense complexity of concepts, while at the same time I marvel at how they display a transparent elegance.</p>
<p>In particular, I am fascinated by the most fundamental concepts &#8212; those acquired in infancy &#8212; which form the foundation for breaking the universe into <b>things</b> and performing the metaphorical mappings underlying most of cognition.  It takes months or years for us to tame the wildness of raw perception in this basic way (even with the vast machinery built into us by evolution) &#8212; and as children we are <i>very good</i> at learning.  Performing that root conceptualization must then be immensely complex and challenging.</p>
<p>Because of this, it seems like a hopeless task to reverse engineer the early human conceptual system and code it manually.  The alternative is to learn it in a way somewhat similar to how we do (or possibly, and perhaps equivalently, to use large amounts of pre-packaged world data to guide the self-organization of a base conceptual system).</p>
<p>Where does all the data come from?  I am forced to conclude that the only reasonable path for acquiring it involves the construction and operation of a robot &#8212; an Automatic Conceptual Modelling Platform.</p>
<p>If there are alternatives, these are the ones I can think of:</p>
<p><b>Web text</b>.  It seems that the vast amount of human-generated text available on the internet must somehow express a statistical basis for the conceptual system that generates it.  However, I do not have any ideas about how to mine that structure from said text&#8230; and besides, it does not include a mapping onto sensory data which is required to interact with the world.</p>
<p><b>Massive human tutoring</b>.  I could imagine a system where large numbers of human tutors help build a similarly ungrounded network of concepts in a more focused way than mining random text.  But, although I can sort of imagine it in a vague way (and Steve Reed&#8217;s TexAI system is taking this approach so that gives a lot of ideas about how it could work), I can&#8217;t think of how this can actually address what must be the staggering complexity of concepts like &#8220;containment&#8221; and so on.</p>
<p><b>YouTube</b>.  Instead of getting primarily visual data from a robot, I could imagine using already-recorded video mined off of YouTube as a resource.  Still, the lack of context for what is being seen seems to me to be a large problem.  Even larger, the lack of interactivity seems like it would make it a lot harder to interpret the data in a way that is linked to <i>action</i>, which must be very important.</p>
<p><b>Simulation</b>.  This is the most obvious alternative to an actual robot &#8212; a simulated robot.  It makes me very nervous though &#8212; how am I to know which simplifications (and simulations are bound to be simplifications with current technology) discard information fundamentally important for conceptual bootstrapping?  Besides this, building a high-fidelity simulation environment seems hardly easier than building a robot.  I have never seen a simulated world with anything like the complexity of the real one; toy worlds are likely to produce toy concepts.  And besides, demos in simulations are not as cool&#8230;</p>
<p>I think it&#8217;s important to face the reality of our reality&#8230; the image coming from a camera on a robot has all sorts of messiness, distortion, unrepeatability, noise, and so on.  A crystal clear simulation image (or, worse, a pre-parsed version of the external world bypassing raw senses altogether) loses the difficulties that reality exhibits.  Recall from previous blog entries my belief that the messy <b>thinginess</b> of the universe exhibits these issues at all scales &#8212; unclear boundaries, exception-laden &#8220;natural kinds&#8221;, nonlinear unrepeatable effects coming from causes that cannot be properly seen, complexity exploding everywhere you look.  A conceptual bootstrapping environment must include those features, because they are central to the <b>thingy</b> universe we live in.</p>
<p>In fact, it seems to me that whatever substrate is used to express conceptual models, it must inherently share this basic nature somehow if it is to be effective in mirroring that nature.  Concepts themselves, as vague and difficult to pin down as any other complex emergent phenomena in our world, must surely be constructed from stuff just as fluid and hard to pin down as their referents.</p>
<p>Now, there are ramifications for this realization.  Although it is still useful and fun for me to read what other people have thought about topics related to conceptual modelling, and thinking airy abstract thoughts about the nature of <b>thinginess</b> and the concepts that both embody and mirror it, I also have to deal with much more concrete details where the rubber meets the road.  Not just in the sense of getting my hands dirty constructing devices, but devoting considerable effort to sense modalities.</p>
<p>Let&#8217;s say that a <b>percept</b> is a collection of data gathered from one or more sense modalities.  The issue of interest is how percepts relate to concepts.  Often in AI work there is assumed to be primarily a process in which <i>recognition</i> instantiates symbol tokens which exist in propositional structures constituting knowledge representation.</p>
<p>Such a view is almost certainly a gross (too gross in fact) simplification focusing on one narrow aspect of information processing in cognitive systems.  Philosophers and cognitive psychologists have put considerable thought into the nature of the percept-concept relationship, and I&#8217;ll have a lot more to say about that as time goes on.</p>
<p>But for now, the world must be faced and sensed.  I greatly wish that it could be possible to replicate the scope and sensitivity of our own sense modalities, in particular the body-oriented senses of touch and proprioception.  But the robotic technologies available to me are extremely limited in these dimensions.  I am worried that the project is doomed because of this, but I do think that <i>some</i> sensory ability is enough to at least gather experimental food for thought.</p>
<p>In exploring this percept-concept link there is no avoiding the nature of sense modalities &#8212; how do they process data from the world?  In biological systems, evolution was the means for the self-organization of the early stages of this processing, common to many different animals&#8230;  and this is a different type of self-organization than the dynamic conceptual models which get built from our general-purpose mind-stuff.  Is there a fundamental reason for this difference, or is it just an artifact of our evolutionary history?  This might be the same thing as asking whether percepts and concepts are in some way the &#8220;same thing&#8221; if we look closely enough at them.  Or it might not!  With a robot as the starting point, these questions cannot be avoided.</p>
<p>The picture that goes with this blog entry is a sketch of a design for <i>Kaizen</i>, the first robotic platform that I will construct for this investigation.  It will have a single camera as its primary sense modality, although it will also include 33 analog measurements of its internal functioning and at its interface with the world.  Because it is fun and potentially interesting, this blog will contain detailed &#8220;build reports&#8221; as I construct Kaizen.  It is a simpler robot than others I have constructed before, but it is not a trivial task (especially since I do not at present have access to machine tools and will be forced to work with low-tech methods).  So supermodelling.net will now become schizophrenic, containing both nuts and bolts, and airy abstract musings on the nature of mind and the universe.</p>
<p>I expect that, working on it part-time, it will take me a month or so to construct <i>Kaizen</i>, and then another month or so to build a robust and flexible software infrastructure in which experiments can be designed and executed.</p>
]]></content:encoded>
			<wfw:commentRss>http://supermodelling.net/?feed=rss2&amp;p=155</wfw:commentRss>
		</item>
		<item>
		<title>Sabbatical</title>
		<link>http://supermodelling.net/?p=154</link>
		<comments>http://supermodelling.net/?p=154#comments</comments>
		<pubDate>Tue, 03 Aug 2010 20:39:31 +0000</pubDate>
		<dc:creator>Derek</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://supermodelling.net/?p=154</guid>
		<description><![CDATA[In the blink of an eye, a year has passed.  It&#8217;s been a year of great upheaval for me personally and professionally&#8230; now I find myself starting a sabbatical of uncertain duration in which I plan (among other fun things) to continue my AGI-related research and musing.
The main purpose of this blog is to [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full" title="me2010" src="http://supermodelling.net/wp-content/uploads/2010/08/dz.jpg" alt="" width="91" height="96" />In the blink of an eye, a year has passed.  It&#8217;s been a year of great upheaval for me personally and professionally&#8230; now I find myself starting a sabbatical of uncertain duration in which I plan (among other fun things) to continue my AGI-related research and musing.</p>
<p>The main purpose of this blog is to contribute to the progress of mankind&#8217;s knowledge by being one of the many jabbering voices comprising the burbling subconscious of the global brain.  Additionally, questions about artificial conceptual <a href="http://supermodelling.net/?p=148">modelling substrates</a> are fundamentally technological&#8230; Answering them should lead to implementation possibilities of potentially <a href="http://supermodelling.net/?p=64">great value</a>, and ideally I would like at some time in the future to make an income from this work or something closely related &#8212; either as an entrepreneur, researcher, engineer, or author.</p>
<p>As I&#8217;ve written before, the universe is an interesting <a href="http://supermodelling.net/?p=13"><strong>thingy</strong> place</a>.  Our minds model the universe, and the mental reflections of the <a href="http://supermodelling.net/?p=24"><strong>things</strong> in the universe</a> are <a href="http://supermodelling.net/?p=32"><strong>concepts</strong></a>.</p>
<p>The conceptual modelling machinery in our minds is quite astonishing in its generality and usefulness.  If we could build an equivalent mechanism in software, it would also be highly general and useful.  Presumably a <strong>conceptual system</strong> is so powerful because the properties of the substrate match up with those of the thingy universe in critical abstract ways.  The exact nature of this matching up is not clear to me, but it is expressed in Newell&#8217;s <a href="http://supermodelling.net/?p=138">representation law</a>.</p>
<p>There are two ways we might go about designing a substrate that (perhaps only approximately) replicates the capabilities of our mental conceptual models.  First, we could start with a blank slate, considering the properties of <strong>things</strong> as they appear to exist in the universe, and how they interact with other <strong>things</strong>.  It is difficult, in part because it is so abstract and in part because our conceptualization of the universe is limited by the <a href="http://supermodelling.net/?p=130">very apparatus</a> that we are attempting to replicate.  Nevertheless, I would like to spend some time pondering this question since it seems the most direct route.</p>
<p>The second approach is to use interesting cognitive science theories as constraints on the substrate.  These theories are themselves models, but our goal here is not to build a model of the human conceptual system (as they say, the map is not the territory).  Rather, it seems to me that incisive models of the human conceptual system should <em>also</em> be decent models of an artificial conceptual system that is &#8220;close enough&#8221; to the human system in terms of capabilities.</p>
<p>Concepts have a long tradition in philosophy and cognitive psychology, and there is little consensus on how to best think about them.  That there are many different viewpoints &#8212; and models that conflict outright &#8212; is not too important.  All we require is:  to the extent that a model of our conceptual system describes that system in interesting and important ways, it should also describe an artificial system in interesting and important ways&#8230; even if it is only approximate and partial.</p>
<p>So to start with I have picked out some reading materials by authors that I think have interesting things to say about our conceptual system.  In addition to broad background material (Aristotle, Locke, etc), here&#8217;s my starting list:</p>
<p>George Lakoff: <a href="http://www.amazon.com/Women-Dangerous-Things-George-Lakoff/dp/0226468046">Women, Fire, and Dangerous Things</a>.  Lakoff is a linguist who has thought very carefully about categories.  Categories are either the same thing as concepts or else an important type of concept.  In either case, his models of human categorization seem quite important.</p>
<p>Jean Matter Mandler: <a href="http://www.amazon.com/Foundations-Mind-Conceptual-Cognitive-Development/dp/0195311833">The Foundations of Mind</a>.  Mandler is a developmental cognitive psychologist in the tradition of Piaget (though with very different opinions on some key matters).  Her views on what concepts are and where they come from in infants are very interesting and important.</p>
<p>Steven Pinker:  <a href="http://www.amazon.com/Stuff-Thought-Language-Window-Nature/dp/0143114247">The Stuff of Thought</a>.  Pinker is a very deep thinker about thought and language.  This book has many insights into how human beings model the world.</p>
<p>Gilles Fauconnier and Mark Turner:  <a href="http://www.amazon.com/Stuff-Thought-Language-Window-Nature/dp/0143114247">The Way We Think</a>.  The idea of <em>conceptual blending</em> is very important to the modern view of concepts, and this book describes that in great detail.  It is a fascinating study of the kinds of things concepts must be able to do.</p>
<p>Susan Carey: <a href="http://www.amazon.com/Origin-Concepts-Oxford-Cognitive-Development/dp/0195367634">The Origin of Concepts</a>.  This is a really deep analysis of the human conceptual system that I have not yet studied closely but have great hopes for.</p>
<p>Marvin Minsky: <a href="http://www.amazon.com/Society-Mind-Marvin-Minsky/dp/0671657135">The Society of Mind</a>.  A little out of date, this work nonetheless synthesizes the important ideas from Good Old Fashioned AI and adds some brilliant ideas about how the mind might work.  I adored this book back in my graduate school days and still think its radically different perspective is useful in thinking about building artificial minds.</p>
<p>Eliezer Yudkowsky: <a href="http://singinst.org/upload/LOGI/LOGI.pdf">Levels of Organization in General Intelligence</a>.  More suggestive than specific, Yudkowsky&#8217;s division of mentality into levels (Modality, Concept, Thought, Deliberation) seems very useful to me at least as a model.</p>
<p>Michael Eysenck and Mark Keane: <a href="http://www.amazon.com/Cognitive-Psychology-Students-Handbook-6th/dp/1841695394">Cognitive Psychology (sixth edition)</a>.  A great textbook.  The field of cognitive psychology encompasses the entire program of studying the human conceptual system (and more), so a well-articulated view of these findings is very handy for reference purposes.</p>
<p>Of course, there are many many other volumes that could be great, and I&#8217;m sure nobody would agree with my choices as far as which works deserve to make the &#8220;first string&#8221;&#8230; I intend to refer to other works as well &#8212; to start with, I&#8217;m thinking of Jerry Fodor&#8217;s <a href="http://www.amazon.com/LOT-2-Language-Thought-Revisited/dp/0199588015">Language of Thought Two</a>, Mark Jonhson&#8217;s <a href="http://www.amazon.com/Body-Mind-Bodily-Meaning-Imagination/dp/0226403181">The Body in the Mind</a>, and Edouard Machery, who, in <a href="http://www.amazon.com/Doing-without-Concepts-Edouard-Machery/dp/0195306880">Doing Without Concepts</a> argues that viewing concepts as one sort of thing is a critical mistake.  Also some basic material on the brain (cortex in particular) is needed to help constrain the nature of the conceptual system, assuming that cortex is the physical substrate of that system in humans.  I could read fascinating takes on this subject for the rest of my life, but unfortunately that kind of quiet retirement doesn&#8217;t fit my goals, so I have to limit myself to a tractable reading list.</p>
<p>Other views on the subject are also completely fascinating.  The relationship between concepts and language, and between concepts and reasoning (including analogy) &#8212; the interface between the Concept Layer and the Thought Layer.  The relationship between concepts and the senses of sight, hearing, touch, etc &#8212; the interface between the Concept Layer and the Modality Layer.  The development of conceptual capabilities as an <a href="http://supermodelling.net/?p=148">evolvable</a> step-by-step accumulation of functions by evolution.  Which concepts are &#8220;basic&#8221;, and where does their meaning come from?  What are the rungs of the conceptual ladder that all children climb during development?  How does symbolic <a href="http://supermodelling.net/?p=138">reference</a> work?  How can proposed conceptual substrates be tested?</p>
<p>Fun stuff.  Most likely more than I will be able to chew, but I&#8217;d rather aim too high and flame out than aim too low and never even try anything interesting.</p>
<p>Time to get to work!</p>
]]></content:encoded>
			<wfw:commentRss>http://supermodelling.net/?feed=rss2&amp;p=154</wfw:commentRss>
		</item>
		<item>
		<title>Evolvable Substrates</title>
		<link>http://supermodelling.net/?p=148</link>
		<comments>http://supermodelling.net/?p=148#comments</comments>
		<pubDate>Sat, 04 Jul 2009 18:27:26 +0000</pubDate>
		<dc:creator>Derek</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://supermodelling.net/?p=148</guid>
		<description><![CDATA[My recent blog essay about the Physical Symbol System Hypothesis got me thinking that it would be fun to revisit more ideas from the history of AI and make a series out of it.
Even though I was poor and even though I left without my doctorate, I remember my years in graduate school with fondness. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full" title="finch" src="http://supermodelling.net/wp-content/uploads/2009/07/finch.jpg" alt="" width="207" height="180" />My recent blog essay about the Physical Symbol System Hypothesis got me thinking that it would be fun to revisit more ideas from the history of AI and make a series out of it.</p>
<p>Even though I was poor and even though I left without my doctorate, I remember my years in graduate school with fondness. Teaching classes was a rewarding way to pay the rent, but the best part was the (mostly) open atmosphere of intellectual curiosity with which academics viewed and participated in the flow of research agendas.</p>
<p>At the time, most people around me were thinking a lot about neural networks &#8212; not so much in the sense of brain imitation but more as <em>complicated combinations of continuous nonlinear functions</em>. And in other ways as well, the very air was heavy with the humid scent of nonlinearity &#8212; chaos, complexity, evolution, and so on. It felt (to me at least) as if a cross-disciplinary version of AI was on the brink of some important gestalt understanding, and it was exciting.</p>
<p>In 1992, John Koza&#8217;s huge book <a href="http://en.wikipedia.org/wiki/Genetic_programming">Genetic Programming</a> came out, and I remember devouring it avidly. Who wouldn&#8217;t be thrilled at the grand vision of evolving computer programs?</p>
<p>Looking back on it, I was interested in the properties of new classes of <strong>computational substrates</strong>. In the language I am using now to muse about these topics, a substrate is a formal structure in which <em>computations</em> occur. It includes not only a specification for the computations themselves but also the means for their creation, modification, and execution. So I was in a frenzy of trying to see beyond the habutual AI substrates &#8212; &#8220;hand coded declarative logic-ish databases,&#8221; mostly.</p>
<p>Ideally I&#8217;m interested in something more specific &#8212; <strong>substrates for models</strong> &#8212; but I don&#8217;t yet have a clear idea about how to express the general requirements for characterizing models (that&#8217;s the long-term purpose behind all of the musing I&#8217;m doing lately). I know that some sort of <em>intentional</em> relation is required, because models are the way the universe reflects itself. So instead of computations, the substrates are frameworks for <em>descriptions of things</em>, which are computations of a special type.</p>
<p>In the meantime, it is useful to think of substrates in a well-known way: <em>function computation</em>. From this perspective, a substrate:</p>
<ul>
<li>provides a &#8220;space&#8221; of computations (function implementations), which I&#8217;ll call &#8220;expressions&#8221; to use familiar terminology.</li>
<li>(implicitly) defines what functions can be computed. Some mechanism that is part of the substrate definition &#8220;evaluates&#8221; an expression to produce an output value. This is kind of what we mean whenever we talk about functions. Note that for Turing-equivalent substrates, there is a sense in which this is not meaningful (we can&#8217;t know exhaustively which functions are computable; the evaluation of some expressions may never halt).</li>
<li>Interesting biases and metrics, like:
<ul>
<li>a preference-ordering based on <em>description length</em> (related to the operations required to produce it from a &#8220;null&#8221; expression), commonly justified as a reflection of <a href="http://en.wikipedia.org/wiki/Occam's_razor">Occam&#8217;s Razor</a>, or on information-theoretic grounds.</li>
<li>a preference-ordering based on resources required to evaluate the expression</li>
<li>given the expression editing operations, a distance measurement between expressions based on editing distance.</li>
</ul>
</li>
</ul>
<p>Now, consider the case where some external entity can measure the &#8220;quality&#8221; of an expression based on how closely the function it computes matches up to some &#8220;desired&#8221; function. In the context of modelling, the idea will be that the expression should match up to the part of the world being modelled along some desired dimensions. But we can also think of this as a &#8220;supervised learning&#8221; situtation.</p>
<p>Given the ability to measure the quality of an expression as described above, we are interested in finding the best of all expressions with respect to the evaluation mechanism (or maybe we might be satisfied to find &#8220;good&#8221; expressions).</p>
<p><img class="alignright size-full" title="plot" src="http://supermodelling.net/wp-content/uploads/2009/07/plot.jpg" alt="" width="236" height="148" />If you are not already familiar with these ideas, that might end up sounding like gibberish so I&#8217;ll make up a quick example to illustrate. Here&#8217;s a graph of 8 arbitrarily-chosen points. Suppose we would like to find the line that is the &#8220;best approximation&#8221; of these points (a common sort of statistics task). One such line is drawn for illustration amongst the points. To fit this into our framework, we need to define the substrate &#8212; that is, the space of possibile expressions. In this case, the expressions are equations of lines: <strong>y = Ax + B</strong>, where we can vary A and B to produce different expressions.</p>
<p>We also need to define the measurement (that is, define &#8220;best approximation&#8221;). So let&#8217;s try to minimize the mean squared distance between the line and the points. This is a nice example for visualization because the variations allowed are just two continuous parameters, which lets us use those parameters as the axes of a graph, with the &#8220;height&#8221; being the mean squared error for that particular expression. Have a look at the resulting graph (I used <a href="http://www.wolfram.com/">Mathematica</a> to develop this example, in case you&#8217;re curious).</p>
<p><img class="alignleft size-full" title="fitness" src="http://supermodelling.net/wp-content/uploads/2009/07/fitness.jpg" alt="" width="253" height="160" />This kind of thing is often called a &#8220;fitness landscape&#8221;, using the word &#8220;fitness&#8221; instead of &#8220;quality&#8221; because of the analagous relationship to evolution. As usually expressed in this context, the evolution of living creatures operates on a substrate whose expressions are the possible genotypes of an organism (actually it&#8217;s more complicated that that but it will do as an approximation), and the &#8220;fitness&#8221; is something like the number of successful children the organism produces.</p>
<p>The optimal expression in my simple example case is the lowest point on the graph, which tells us the best values for <strong>A</strong> and <strong>B</strong> and thus the equation for the best line.</p>
<p>But: How do we find this optimum point on the fitness landscape?</p>
<p>In some simple cases (like this one, actually), it might be possible to use analytic means to construct this optimal expression using a bunch of extra domain knowledge (inverting the math of the fitness function itself). But in the general case all we have is the measurement, so we become interested in how to <strong>search</strong> through the space of possible expressions to find the best one.</p>
<p>Now, this is kind of cool! To find good expressions on a substrate (effective creatures, good models of the world, efficient automobiles, great novels), all we have to do is search around amongst the possibilities.</p>
<p>Usually this is easier said than done, unfortunately. Most search spaces are <strong><em>HUGE</em></strong>.</p>
<ul>
<li>First of all, dimensions of the expression space may have infinite options. Like in our simple example here, A and B could be real numbers and so have infinite possible values. And quite often the pure analytic optimum will be an irrational number so no non-analytic process can ever even find it. In practice, most substrates are discrete, though: for representational purposes we use <a href="http://supermodelling.net/?p=121">floating point numbers</a> so only a finite number of options exist. Also, often (as mentioned above) we only really care about &#8220;good&#8221; expressions instead of &#8220;perfectly optimal&#8221; ones. Still, there are a <em>lot</em> of different possible floating point numbers to search through.</li>
<li>Most actually-interesting substrates have very high dimensionality. If we are searching through the space of all english texts looking for Shakespeare-quality plays, just think of all the dimensions involved!</li>
</ul>
<p>So, the obvious and simplest search techniques &#8212; picking expressions at random or enumerating them one by one in some straightforward way &#8212; may take a <em>long</em> time.</p>
<p>If the fitness landscape is nice and simple, like the above example, <a href="http://en.wikipedia.org/wiki/Hill_climbing">hill climbing</a> is an effective way of searching. In general, though, fitness landscapes are not so friendly &#8212; they have false peaks, ridges, discontinuities, and features not so concisely described with facile geographic analogies. The general subject of <em>search</em> has been tied up with AI from the very beginning. Some people believe that the two things are basically just two ways of describing the same thing: for example, the <a href="http://www.hutter1.net/ai/aixigentle.htm">AIXI</a> formulation of theoretical AI essentially takes this viewpoint.</p>
<p><img class="alignright size-full" title="gp" src="http://supermodelling.net/wp-content/uploads/2009/07/gp.jpg" alt="" width="141" height="150" />Getting back to Koza&#8217;s Genetic Programming, fitness landscapes for typical programming languages on typical programming problems are very ugly (by which I mean very <em>uncorrelated </em>in regions of interest). Programs are <em>brittle</em> &#8212; small changes made to high-fitness programs nearly always lead to disaster. The miracle is that it works at all!</p>
<p>In fact, it usually doesn&#8217;t work. Simulated evolution has not replaced or even significantly supplemented traditional software engineering methods.</p>
<p>Why does it work sometimes? That is a complicated question. The nature of the programming task, the details of the programming language, and the operators for editing programs figure heavily into the issue.</p>
<p>Let&#8217;s invent some shorthand and say that a substrate is <strong>evolvable</strong> with respect to a particular task if its fitness landscape has the desirable features: high local correlation, good continuity, and a relatively small number of unacceptable-quality false peaks. Evolvability is highly desirable if it&#8217;s important to be able to search for expressions. I care about this because I think it is very likely that <em><strong>search for good expressions</strong></em> is extremely important for intelligent systems (including systems engaged in automatic modelling), because empirical evidence strongly implies that complex problems resist analytical solutions.</p>
<p>Because of this, we will be well served by designing evolvable substrates &#8212; evolvable programming languages, evolvable network models, evolvable everything. Not that we actually want to build complex computer modelling systems by aping evolution, of course, but because more targeted and appropriate search methods will be helpful.</p>
<p>And that&#8217;s all I have to say.</p>
<p>Oh, wait, no it isn&#8217;t: living things are evolvable (duh, otherwise they wouldn&#8217;t have evolved). The biological substrate called &#8220;life&#8221; is exceptionally interesting. I believe that a series of reductionistically- impenetrable transformations in level are crucial to this process. By &#8220;reductionistically-impenetrable&#8221; I mean that the &#8220;higher-level&#8221; is neither simply describable in terms of the &#8220;lower level&#8221; entities, nor are the behavioral and structural characteristics of the &#8220;higher level&#8221; tractably predictible from the &#8220;lower level&#8221;. Consider:</p>
<ul>
<li>Protein shape and function derive from genetic sequences, but are not readily redicible to those sequences.</li>
<li>Cellular structures and functions are constructed largely from proteins, but cell biology is not really reducible to protein shape.</li>
<li>More such emergent levels exist &#8212; organs not easily reducing to descriptions in terms of cells, developmental pathways not reducing to patterns of gene expression, etc.</li>
</ul>
<p>I believe that the <em>redescribability</em> afforded by these impenetrable layers helps afford the opportunity for radical restructuring of fitness landscapes and thus the potential for evolvable organisms to arise from substrate modification operators that work on the genetic level.</p>
<p>Perhaps it will be fruitful to design evolvable modelling substrates that share this kind of level-decoupling in efforts to enhance the feasibility of search. Someday we&#8217;ll know!</p>
<p>Looking back on it, my 1992 excitement about reducing the mysteries of intelligence to a few key insights from nonlinear dynamics was naive. For one thing, those constellations of ideas &#8212; complexity, evolution, self-organized criticality, chaos, etc &#8212; turn out not to be very sharp scalpels for doing reductionist dissection. For another, intelligence itself appears to be a tougher problem than my youthful enthusiasm suspected.</p>
<p>No matter. Figuring out how to reflect itself is one of the advanced ongoing features of the universe; I&#8217;m satisfied to be a little piece trying pitch in, using whatever means make sense to me in the moment.</p>
<p>Oh, one more thing: Why is search so necessary to this enterprise? Wouldn&#8217;t it be much better to just construct a description instead of rooting around for one? Unfortunately, there appears (to me, today) to be no way to do such construction across the divide of &#8220;unconnected&#8221; levels of formalism. However, it is conceivable that there might be a &#8220;bottom-up&#8221; alternative, which perhaps I&#8217;ll write about in a future post.</p>
]]></content:encoded>
			<wfw:commentRss>http://supermodelling.net/?feed=rss2&amp;p=148</wfw:commentRss>
		</item>
		<item>
		<title>What are Computers For?</title>
		<link>http://supermodelling.net/?p=146</link>
		<comments>http://supermodelling.net/?p=146#comments</comments>
		<pubDate>Sat, 27 Jun 2009 14:15:19 +0000</pubDate>
		<dc:creator>Derek</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://supermodelling.net/?p=146</guid>
		<description><![CDATA[Critics sometimes see the AI enterprise as merely the application of the latest tech fad &#8212; given a shiny new toy like a computer, we just try clumsily to make a metaphorical connection: mind is like a computer.
That is of course completely backwards: actually, computers are like the mind &#8212; and purposefully so. Arithmetic, algebra, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full" title="eniac" src="http://supermodelling.net/wp-content/uploads/2009/06/eniac.jpg" alt="" width="340" height="231" />Critics sometimes see the AI enterprise as merely the application of the latest tech fad &#8212; given a shiny new toy like a computer, we just try clumsily to make a metaphorical connection: <em>mind is like a computer</em>.</p>
<p>That is of course completely backwards: actually, <em>computers are like the mind</em> &#8212; and purposefully so. Arithmetic, algebra, logic, and algorithms of various sorts were dreamed up long before computers came along to automate them. Our ancestors invented them hundreds and thousands of years ago to provide quantitative models of bits of the world they cared about, usefully predicting and explaining <strong>things</strong>.</p>
<p>Since then, we&#8217;ve found other uses for computers &#8212; as media for communicating and presenting information, for example &#8212; but modelling the world and modelling mental processes have always been a major motivation behind the technology.</p>
<p>The sheer number-crunching capacity of computers makes it feasible to model the world with methods not directly derived from introspection &#8212; physics simulations and whatnot. And some methods start out with introspective inspiration but quickly get sharpened to a narrow point to such an extent that they no longer bear a close resemblance to their conceptual and linguistic origins.</p>
<p><img class="alignright size-full" title="chess" src="http://supermodelling.net/wp-content/uploads/2009/06/chess.jpg" alt="" width="231" height="160" />Consider chess as an example. Starting from the introspective view that a person might think: <em>if I do this then he&#8217;ll do that and then I can counter with such-and-so&#8230;</em> This one little observation about a small part of the mind&#8217;s modelling of the game led to interesting techniques for tree search, and then got taken to an extreme&#8230; in this case culminating in <a href="http://www.research.ibm.com/deepblue/">Deep Blue and the defeat of Garry Kasparov</a>.</p>
<p>When this narrowing and optimization of mind-inspired methods occurs, we typically say it is no longer <em>AI</em>, which actually seems appropriate to me.</p>
<p>Whether the source of computer models is introspection, physics, statistics, or ad-hoc empirical observation, modelling is the pervasive basis for much of the usefulness of computers. Consider a word processing program: much of its value derives from models of paper documents and other old structured comunication forms, models of language, models of printing machinery (printer driver interfaces), and so on.</p>
<p>Years ago I did some work for a friend of mine who owned a business that developed and sold a complex software package to help manage fleets of concrete trucks (the big ones with the spinning drums on them). Such a package is full of models, from models of general business activities like invoicing and accounting to models of delivering megatons of concrete on a customer&#8217;s desired schedule &#8212; which involves geography and roads, time required to load and unload the trucks, etc. These models make forecasting and resource allocation much more accurate.</p>
<p>These kinds of things are the meat and potatoes of computer applications. Web browsing, playing games, and presenting media like music and movies are probably bigger uses for most people these days, but when you scratch the surface you&#8217;ll frequently find modelling underneath: HTML is a document model, and game graphics are probably the clearest example of computer modelling you&#8217;ll ever see.</p>
<p>The first &#8220;real&#8221; computer, <a href="http://en.wikipedia.org/wiki/ENIAC">Eniac</a> (1946), was built to calculate artillery firing tables (a pure modelling task). Today&#8217;s <a href="http://top500.org">most powerful computer</a> (the IBM Roadrunner, over a million gigaflops) is used primarily to simulate how nuclear materials age, modelling the safety and effectiveness of nuclear weapons (not the happiest purpose, but better than testing by exploding them).</p>
<p><img class="alignleft size-full" title="game" src="http://supermodelling.net/wp-content/uploads/2009/06/wow.jpg" alt="" width="230" height="160" />All told, computer models comprise a hugely important industrial technology. And building them is <em>hard</em>, a labor-intensive and specialized hugely expensive process. The universe reflecting itself is not a trivial accomplishment! There are many clear economic benefits from: specific model construction, the invention of new modelling techniques, and improving the modelling process. Society can be served, and money made, by digging deeper into the roots of how it all works.</p>
<p>Our minds are really amazing modelling engines. So in a practical sense it isn&#8217;t far off to say that <strong><em>Artificial Intelligence == Automatic Modelling</em></strong>. That&#8217;s why &#8212; besides the interesting philosophical investigation of our own nature &#8212; many of us think AI is such a fascinating task. Not because we think &#8220;Wow, brains are like computers!&#8221; but because <em>modelling modelling</em> may be the key to the future.</p>
<p>I&#8217;ll end this post by listing a few computer modelling methods:</p>
<ul>
<li>Differential equations and approximations thereof</li>
<li>Finite element analysis</li>
<li>Cellular automata</li>
<li>Function fitting</li>
<li>Fourier transforms</li>
<li>Neural networks</li>
<li>Simulated annealing</li>
<li>Genetic algorithms</li>
<li>Hidden Markov models</li>
<li>Bayes networks</li>
<li>Finite state machines</li>
<li>Computational algebra</li>
<li>Ad-hoc programmatic models</li>
<li>Object-oriented decomposition</li>
<li>Monte Carlo methods</li>
<li>Production systems</li>
<li>Logic of many flavors</li>
<li>L-systems and other generative models</li>
<li>Constructive solid geometry, NURBS, etc</li>
<li>Case-based reasoning</li>
<li>Control theory</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://supermodelling.net/?feed=rss2&amp;p=146</wfw:commentRss>
		</item>
		<item>
		<title>PSSH</title>
		<link>http://supermodelling.net/?p=138</link>
		<comments>http://supermodelling.net/?p=138#comments</comments>
		<pubDate>Sat, 20 Jun 2009 13:15:34 +0000</pubDate>
		<dc:creator>Derek</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://supermodelling.net/?p=138</guid>
		<description><![CDATA[If, as is widely reported, AI researchers (those scurvy dogs) began barking up the wrong tree a long time ago, I wonder when exactly that was and what scent led them astray. They started the chase promisingly&#8230; I think a lot of the foundational work of the Old Masters was really quite brilliant.
Case in point: [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-129" title="arrow" src="http://supermodelling.net/wp-content/uploads/2009/06/arrow.jpg" alt="" width="140" height="140" />If, as is widely reported, AI researchers (those scurvy dogs) began barking up the wrong tree a long time ago, I wonder when exactly that was and what scent led them astray. They started the chase promisingly&#8230; I think a lot of the foundational work of the Old Masters was really quite brilliant.</p>
<p>Case in point: <strong>The Physical Symbol System Hypothesis</strong>.</p>
<p>If you&#8217;re inclined to speculate that a computer could in principle be &#8220;intelligent&#8221; (I am so inclined; if that turns out to be wrong, then, <a href="http://www.youtube.com/watch?v=PsTw9pCKYwg">well</a>), it would be helpful to say some more about what is meant by a &#8220;computer&#8221;. If the speculation is phrased as &#8220;the <a href="http://en.wikipedia.org/wiki/UNIVAC_I">UNIVAC I</a> on the third floor could be intelligent,&#8221; that seems overly specific. So the natural thing would be to express it using one of the (equivalent) abstractions for &#8220;computation&#8221;, such as the Turing Machine, and just say that <em>intelligence is <strong>computable</strong></em> and leave it at that.</p>
<p>In 1976, Allen Newell and Herb Simon (Newell&#8217;s doctoral advisor) chose a different way of putting it, a more detailed hypothesis that emphasized what they considered to be some actual fundamental issues of cognition. They called their abstract computer a <strong>physical symbol system</strong>. So:</p>
<p><em>The PSSH: A physical symbol system has the necessary and sufficient means for general intelligent action.</em></p>
<p>To simplify a bit, I&#8217;ll take &#8220;physical&#8221; as given and (as a nuts&#8217;n'bolts engineering-type guy) I&#8217;ll leave off the &#8220;necessary&#8221; part. Thus: a symbol system has the sufficient means for general intelligent action. So what&#8217;s a <strong>symbol system</strong>? Let&#8217;s start with some of their definitions:</p>
<ul>
<li>A <strong>symbol</strong> is a physical pattern that can occur as components of another type of entity called a symbol structure.</li>
<li>A <strong>symbol structure</strong> is composed of a number of instances (or tokens) of symbols related in some physical way.</li>
<li>In addition to symbol structures, a symbol system has a collection of processes that operate on symbol structures to produce other symbol structures. These processes account for the creation, modification, reproduction, and destruction of symbol structures.</li>
<li>Through the application of those processes, then, a symbol system is a machine that produces through time an evolving collection of symbol structures.</li>
</ul>
<p>Although that seems straightforward enough, people view the world through their own set of biases, which produce a number of (in my opinion) erroneous views of the PSSH and, by extension, rather odd characterizations of the AI enterprise. For example:</p>
<p><strong>Viewpoint 1:</strong> <em>0 and 1</em> are symbols and machine instructions are processes that manipulate structures of bits, so it sort of follows that the PSSH is really only saying the same thing as &#8220;computers could be intelligent.&#8221;</p>
<p>Although this is a comforting way to respond to critics who attack the AI enterprise by enumerating the inadequacies of particular symbol systems, it ignores one of the central concepts of the PSSH: <strong>designation</strong> (which is not part of the basic definitions given above but is nontheless part of the PSSH). According to Newell, a symbol structure designates a <strong>thing</strong> if the system can use the symbol structure to affect the <em><strong>thing itself</strong></em> or behave in ways dependent on the thing. That is, some sort of &#8220;access&#8221; to the object is provided by the symbol structure, and this relationship between symbols and the universe is critical, although it is of course limited (the map is not the territory, after all&#8230;). This gives rise to the usual way of thinking about symbols as &#8220;standing for&#8221; <strong>things</strong>.</p>
<p><img class="alignright size-full wp-image-132" title="hotdog" src="http://supermodelling.net/wp-content/uploads/2009/06/hotdog.jpg" alt="" width="167" height="120" /><strong>Viewpoint 2:</strong> Symbols are atomic tokens such as <strong>hotdog</strong>. Although much work in AI has proceeded from this kind of assumption, it leads to significant difficulties and conundrums. Specifically, if <strong>hotdog</strong> is just a label floating around, where does the designation to an actual hotdog come from? This is one trivial reflection of the famous <a href="http://en.wikipedia.org/wiki/Symbol_grounding">symbol grounding problem</a>, which is a very subtle but crucial challenge to the &#8220;Viewpoint 2&#8243; way of looking at the PSSH. In reaction to this, some folks start thinking of some elements of an AI system (for starters, data related directly to sensor readings such as a camera image) as being <em><strong>subsymbolic</strong></em>, a suggestive word implying that symbols are constructed out of nonsymbolic entities. But there is no room for semantically loaded &#8220;nonsymbolic entities&#8221; in symbol systems. Furthermore, ugly issues arise from this &#8220;duality&#8221; &#8212; what makes some tokens symbols and some subsymbols? Where does the <em>symbolness</em> come from? Perhaps (the thinking goes) the very concept of <em>symbol</em> as used in the PSSH is wrongheaded if it leads to this kind of mystical dualism and complication.</p>
<p><strong>Viewpoint 2b:</strong> Going even further, if symbols are clean labeled tokens, it is convenient for many purposes to provide semantics by assigning <strong>truth values</strong> or, more generally, <strong>probability values</strong> to symbol structures, and then choosing the processes of the symbol system to be truth-preserving transformations. This leads to <strong>symbolic logic</strong> and it dates back at least as far as Aristotle. Its productivity has made logic fundamental to many AI approaches, though sometimes you have to dig a bit to reveal how a particular system relies on this foundational way of carving up the world.</p>
<p>Note, though, that there is no inherent reason that symbols have to be simple. One more time: there is no inherent reason that symbols have to be simple. One more time: &#8230; oh, never mind.</p>
<p>Newell viewed the designation issue through the idea of a &#8220;representation law&#8221; &#8212; suppose that <strong>X</strong> is some sort of situation in the world, and <strong>T</strong> is some sort of transformation. For example, <strong>X</strong> = <em>me holding a hotdog</em>, and <strong>T</strong> = <em>me eating the hotdog</em>. The representation law says:</p>
<p><strong>decode[encode(T)encode(X)] = T(X).</strong></p>
<p>Here, <em>encode</em> is a translation from the &#8220;external&#8221; situation to an &#8220;internal&#8221; representation, and <em>decode</em> is a translation in the opposite direction. So the law basically says that there is an internal process representing &#8216;eating a hotdog&#8217; (<em>encode(T)</em>), and an internal symbol structure representing the situation of me holding a hotdog (<em>encode(X)</em>). Applying the process to the structure should produce a symbol structure that corresponds to the external situation after the hotdog is eaten. For example, both in the real world and in the internal representation:</p>
<ul>
<li>I am no longer holding the hotdog</li>
<li>I desire an alka-seltzer tablet</li>
</ul>
<p>This corresponds exactly to the intuitive sense of what I expect from a <strong>model</strong>, so perhaps the representation law could be the foundation for a theory of modelling. Unfortunately, though, it is kind of frustrating because it sidesteps all of the important practical issues by defining them away. It implies that the causal relationship between the <strong>hotdog</strong> and the <em>representation of the <strong>hotdog</strong></em> is unimportant &#8212; as long as the representation law holds, it doesn&#8217;t matter where the representation came from. So basically symbols are defined as <em>the things that do what symbols should do</em>. This facile embedding of designation in compartmentalized <em>encode</em> and <em>decode</em> procedures trivializes the process &#8212; for evidence, notice that AI researchers talk a LOT about <em>T</em> and <em>X</em> and the symbol structures themselves, but rarely about <em>encode</em> or <em>decode</em>. Still, having this representation law as a starting point is better than nothing!</p>
<p>Of course, these early steps (however profound and crucial), as embodied in their shortcut <em>Viewpoint 2</em> form, are not The Answer; mistaking this path for the destination led to an overly-optimistic implicit view of denotation as primarily residing in the relationship between <strong>things</strong> and indivisible symbol tokens. The result: brittle structures too leaky to hold much meaning.</p>
<p><img class="alignleft size-full wp-image-129" title="newell" src="http://supermodelling.net/wp-content/uploads/2009/06/newell.jpg" alt="" width="134" height="172" />But what of it? Taking that torch and marching with it down the road is our job, and let&#8217;s get to it. My little trail: designation follows naturally from the principle that <strong>things</strong> themselves exist only as their descriptions, so the invention of modelling substrates and simplicity-biased induction methods on those substrates is the natural direction to take. Easy to say! But if we wean ourselves off of an exclusive reliance on truth-preservation as the justification for model transformations, what can replace it? Reductively deducible laws (e.g. <em>F = ma</em>), certainly, but those are rare. Can simplicity + empirical correctness fill the gap? I don&#8217;t know.</p>
<p>In 1992, just five years after the William James Lectures which were later published as the magnum opus <a href="http://www.amazon.com/Unified-Theories-Cognition-William-Lectures/dp/0674921011"><em>Unified Theories of Cognition</em></a>, Allen Newell passed away at age 65, one of a hundred billion tragic triumphs for the great enemy. <a href="http://sitemaker.umich.edu/soar/home">SOAR</a> is the ambitious and still-active software system embodying the ideas of Newell and his many academic descendents. Check it out, it&#8217;s cool.</p>
]]></content:encoded>
			<wfw:commentRss>http://supermodelling.net/?feed=rss2&amp;p=138</wfw:commentRss>
		</item>
		<item>
		<title>Bing and Zing</title>
		<link>http://supermodelling.net/?p=133</link>
		<comments>http://supermodelling.net/?p=133#comments</comments>
		<pubDate>Thu, 11 Jun 2009 13:26:03 +0000</pubDate>
		<dc:creator>Derek</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://supermodelling.net/?p=133</guid>
		<description><![CDATA[The other day I was walking around the house and, as happens to me occasionally, I noticed that I&#8217;m really good at it. You&#8217;re really good at it too&#8230; try it! Walk around a little bit! The smoothness of movement, economy of action, flexibility of adapting to circumstance, variety of execution, exquisiteness of balance &#8212; [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-129" title="bing1" src="http://supermodelling.net/wp-content/uploads/2009/06/bing1.jpg" alt="" width="220" height="231" />The other day I was walking around the house and, as happens to me occasionally, I noticed that I&#8217;m <em>really</em> good at it. You&#8217;re really good at it too&#8230; try it! Walk around a little bit! The smoothness of movement, economy of action, flexibility of adapting to circumstance, variety of execution, exquisiteness of balance &#8212; you&#8217;re like a ballet dancer. Stunning!</p>
<p>It&#8217;s a seemingly straightforward physical task, and almost all of us (including our pets) easily and completely blow away the finest and most high tech engineering on the planet. That&#8217;s always been very attention-grabbing for me. If we could even get close to making devices which move as flexibly, robustly, and accurately as we do, an industry that could rival that of the automobile would open up.</p>
<p>In the summer of 2000 I decided to experiment with a simple legged robot named <strong>Bing</strong>. I knew absolutely nothing about electronics or mechanics. I got the legs mostly constructed, but did not finish the robot. The geometry was awkward, the linkage mechanism was stupid, the motors were not strong enough, and the joints were poorly designed and wobbly. I had great fun, though, and learned some things. Read about it <a href="http://happyrobots.com/bing/">here</a> if you want.</p>
<p><img class="alignright size-full wp-image-132" title="bing2" src="http://supermodelling.net/wp-content/uploads/2009/06/bing2.jpg" alt="" width="235" height="220" />Years later, in 2004, I discovered the Japanese <a href="http://robo-one.com/">Robo-One</a> competition and that rekindled my interest in robots that walk. Following the generally-used design ideas for Robo-One competitors, I designed and built a little humanoid using a lot of hobby servos. Again I learned a lot about electronics and mechanical things. I got <strong>Bing 2</strong> to take a few steps and perform a few other maneuvers Here&#8217;s a couple of very short videos:</p>
<ul>
<li><a href="http://happyrobots.com/bigstep.wmv">Video 1</a></li>
<li><a href="http://happyrobots.com/ugh.wmv">Video 2</a></li>
<li><a href="http://happyrobots.com/rturn.wmv">Video 3</a></li>
<li><a href="http://happyrobots.com/bing-1.wmv">Video 4</a></li>
</ul>
<p>Unfortunately, there is a huge problem with this type of robot &#8212; it has no sensor feedback, so the only programming you can do is play back canned sequences of movements and hope they work properly. The severe impact of this limitation became clear to me as I experimented with the device, and I put it aside.</p>
<p>Another two years went by and I decided to have a go at a third generation. <strong>Bing 3 </strong>was designed to have a lot of sensor feedback &#8212; pressure-sensitive pads on its feet, position and electrical power feedback from each joint, and a &#8220;guidance system&#8221; based on a set of accelerometers and gyroscopes. In addition, I built a computer-controlled milling machine to help me build the parts. Once again, I had great fun constructing it, learning a lot in the process &#8212; my skills with mechanical and electrical stuff are now at the &#8220;not bad&#8221; level. I documented the project in a very detailed <a href="http://robosavvy.com/forum/viewtopic.php?t=851">thread on a hobby robot forum</a>.</p>
<p><img class="alignleft size-full wp-image-129" title="bing3" src="http://supermodelling.net/wp-content/uploads/2009/06/bing3.jpg" alt="" width="200" height="262" />I did some interesting programming on Bing 3, including sensor conditioning / integration, and a 3-D geometric representation of the robot&#8217;s body that let me compute things like the theoretical center of mass and whatnot. The model included inverse kinematics to help control the limbs.</p>
<p>But two things caused me to stop working on Bing 3: The first and most devastating &#8212; which I should really have discovered as early as my first work in 2000 &#8212; is the terrible inappropriateness of &#8220;hobby servos&#8221; for complex control of articulated robots. For those who don&#8217;t know, the interface to servos like these is to give it a desired position, and then a controller on a computer chip inside the servo works as hard as it can to achieve that position as quickly as possible and maintain it at all costs. This is a very rigid and frustrating way to control a &#8220;simulated muscle&#8221;, and I was unable to achieve any sort of fluid, efficient, or flexible motion. This continual &#8220;clenching&#8221; also caused me to ruin a couple of motors.</p>
<p>The second problem was the sheer complexity of the task. Controlling an articulated robot with sensor feedback is very hard. Bing 3 has 19 motors and a total of 52 channels of sensor feedback. Figuring out a walking method for such a complex device starting from scratch proved to be too difficult for me.</p>
<p>Now it&#8217;s 2009 and I&#8217;m once again thinking about this task. Time to build more robots. Because of the complexity problem I&#8217;m not going to build another &#8220;humanoid&#8221; though &#8212; I want to try to come at the problem from a much simpler perspective, which means starting with just a few degrees of freedom, with a goal of <strong>masterful control</strong> of a simple robotic system. I will keep the sensor-rich approach from Bing 3, but get some motors that I can operate in &#8220;torque mode&#8221; &#8212; instead of telling the motor what position to go to, just tell it how hard to push.</p>
<p>Additionally, since I am so interested in AI and modelling and learning these days, I want to start thinking about control systems somehow in a more adaptable and less ad-hoc way. Hopefully this change of persepective will be fruitful &#8212; instead of viewing the task as a <em>walking problem</em>, I will think about it as a <em>modelling problem</em>, which should also shed some light on the more general issues of how to build effective models.</p>
<p>Since Microsoft has chosen an unfortunate name for its new <a href="http://www.bing.com">search engine</a>, I need to pick a new robot name: <strong>Zing</strong>.</p>
<p>Stay tuned for gory-detailed build reports as the summer moves forward!</p>
]]></content:encoded>
			<wfw:commentRss>http://supermodelling.net/?feed=rss2&amp;p=133</wfw:commentRss>
<enclosure url="http://happyrobots.com/bigstep.wmv" length="1141434" type="video/x-ms-wmv" />
<enclosure url="http://happyrobots.com/ugh.wmv" length="1197434" type="video/x-ms-wmv" />
<enclosure url="http://happyrobots.com/rturn.wmv" length="1413440" type="video/x-ms-wmv" />
<enclosure url="http://happyrobots.com/bing-1.wmv" length="2181548" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>Emergent Structure</title>
		<link>http://supermodelling.net/?p=130</link>
		<comments>http://supermodelling.net/?p=130#comments</comments>
		<pubDate>Sat, 06 Jun 2009 15:40:05 +0000</pubDate>
		<dc:creator>Derek</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://supermodelling.net/?p=130</guid>
		<description><![CDATA[I still have some rather obnoxious and academic preliminaries to slog through before I feel comfortable moving on to the specific technology of applied philosophical engineering. Even though this process is both abstruse and fumbling, it is necessary and I can only hope somebody somewhere thinks it&#8217;s as interesting as I do.
In an earlier post, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-129" title="wave" src="http://supermodelling.net/wp-content/uploads/2009/06/wave.jpg" alt="" width="231" height="160" />I still have some rather obnoxious and academic preliminaries to slog through before I feel comfortable moving on to the specific technology of <strong>applied philosophical engineering</strong>. Even though this process is both abstruse and fumbling, it is necessary and I can only hope somebody somewhere thinks it&#8217;s as interesting as I do.</p>
<p>In an <a href="http://supermodelling.net/?p=13">earlier post</a>, I marveled at the <strong>thinginess</strong> of the universe. But what does it mean to say that <strong>things</strong> <em>exist</em>? I don&#8217;t mean to question the existence of the water molecules making up an excellent tubular ocean wave; I am wondering about the existence of the wave itself as a <strong>thing</strong>. The purpose of this essay is to answer that question from what I hope will eventually turn out to be a highly practical and useful perspective.</p>
<p>Let&#8217;s call the appearance of thinginess <strong>emergence</strong>.</p>
<p>Now that word (emergence, <em>emergence, <strong>emergence!</strong></em>) has a rather poor reputation these days, especially among those with a reductionist world view &#8212; what good does it do to hide actual causal compositional mechanisms behind such a mystical and impenetrable label?</p>
<p><a href="http://en.wikipedia.org/wiki/Emergence">Emergence</a>, because it&#8217;s slippery and interesting, is debated academically by Philosophers, who view the concept from several different perspectives. Alas, in my view (as I have been explaining), most of the <strong>things</strong> in the universe (including concepts such as emergence itself) are fuzzy enough to defy such fine description, and so detailed philosophical analysis of this type boils down to ultimately meaningless distinctions between subjective viewpoints. Not to say that all non-mathematical analysis is worthless&#8230; but I think it usually can only go so deep before it diffuses into a cloud of imprecision and personal preference. Your mileage may vary, though, and if you&#8217;re interested, there are some relatively well thought-out and detailed modern philosophy papers on emergence. <a href="http://academic.reed.edu/philosophy/faculty/bedau/pdf/emergence.pdf">Here&#8217;s one</a>.</p>
<p>Emergence could be said to be the core of the interdisciplinary science-ish field of <a href="http://en.wikipedia.org/wiki/Complex_system">Complex Systems</a> because typically emergence is characterized as a difficult-to-predict result of nonlinear interactions between components. From that perspective, the most sexy and interesting sort of emergence involves the creation of &#8220;complexity&#8221; from simplicity &#8212; for example, auto-catalysis and evolution producing complex living creatures from boring chemical soup. John Holland has written an <a href="http://www.amazon.com/Emergence-Chaos-Order-Helix-Books/dp/0738201421">excellent book</a> on this subject, and there are many other researchers justifiably fascinated by the complexity-generating aspect of emergence.</p>
<p>For me, the idea of emergence, beyond the peculiar fact of its ubiquity, is important because it is central to the way I look at minds and modelling. I don&#8217;t think this view is particularly uncommon, but I will try to explain my take on it as carefully as I can because many essays to follow will rely (usually implicitly) on this basic viewpoint:</p>
<p><img class="alignright size-full wp-image-132" title="leaf" src="http://supermodelling.net/wp-content/uploads/2009/06/leaf.jpg" alt="" width="201" height="140" />The usual way of thinking about emergence revolves around the idea of <em>irreducibility</em> &#8212; for example, even though <em>life</em> is certainly in one sense nothing more than molecules banging together, it is impractical, impossible, or just silly to express the interesting concepts about living creatures in <em>terms</em> of bouncing chemicals, which makes one question the feasibility of reductionism as an ultimately fruitful methodology.</p>
<p>I personally am not so hung up on this point, though: &#8220;Prime number&#8221; is a perfectly valid bit of emergent structure even though it is completely and simply reduceable to specific &#8220;lower level&#8221; elements. The important thing is usefulness of the <strong>description</strong> &#8212; that is, the existence of a productive ontology, not so much the peculiar details of specific ontological properties.</p>
<p>Going back to some examples from previous essays, when an asteroid smashes into the moon, the crater that is formed is an emergent entity. When gravity causes interstellar glop to gather into a huge ball which gets so dense and hot that nuclear fusion commences and a star is born, that star is emergent. Democracy as a social structure is emergent from human nature and other aspects of our world.</p>
<p>Going further, all of the <strong>things</strong> in the universe &#8212; from bees to thunderstorms to love to death to money to the category we label &#8220;coffee cup&#8221; &#8212; are emergent.</p>
<p>It might seem that if (literally) every<strong>thing</strong> is emergent, there is no point to the concept. But there is no emergent structure in uniform randomness (maximum entropy) nor in uniform invariance (minimum entropy). For something to fall between these extremes, it must be possible to capture the <strong>thinginess</strong> of a bit of emergent structure with a <strong>description</strong> &#8212; <em>that is exactly the sense in which <strong>things</strong> exist: by virtue of their describability.</em></p>
<p>These <strong>descriptions</strong> are also <strong>things</strong>. That the universe can reflect itself in this way is glorious and astonishing. The fact of it is the basis for minds, and that&#8217;s why it matters.</p>
<p><img class="alignleft size-full wp-image-131" title="iceberg" src="http://supermodelling.net/wp-content/uploads/2009/06/iceberg.jpg" alt="" width="201" height="140" />We &#8220;see&#8221; the universe through our own descriptions &#8212; sensory descriptions, conceptual descriptions, linguistic descriptions, mathematical descriptions, logical descriptions. But the descriptions available to us through inbuilt capability and training are only a subset of the <em>possible</em> descriptions that could be applied to the universe. I wonder how much of the &#8220;real&#8221; emergent structure of the universe we can &#8220;see&#8221; &#8212; and how much we miss, hidden in plain sight by the limits of our descriptive ability.</p>
<p>I will call a description of an emergent thing a <strong>model</strong>. This leads me directly to the next steps in elaborating <strong>modelling</strong>:</p>
<ul>
<li>What is the nature of the relationship between the &#8220;terms&#8221; of a description and the thing being described? (the problem of reference, or <em>intention</em>)</li>
<li>What types of descriptions (models) are usefully realizable in computer programs?</li>
<li>What types of descriptions are generated by brains? Does it make sense to call these <strong>conceptual models</strong>?</li>
<li>How do <strong>sensory modalities</strong> relate to intentionality and model structure?</li>
<li>What aspects of things can and should be described by a model?</li>
<li>What <em>a priori</em> and empirical features make for good models?</li>
</ul>
<p>These and other questions will focus the ongoing project of understanding and applying modelling, and in so doing perhaps advance the miraculous history of the universe reflecting itself in the mirrors of mind.</p>
<p><i>Postscript:</i></p>
<p>Altnough I think of emergence in this way myself, it is probably not smart to broaden the definition of a perfectly good word in this way for the purpose of conversation.  Therefore I use the more standard-style defintion of <i>with no currently-apparent tractable reductionist theory</i> when talking to others.</p>
]]></content:encoded>
			<wfw:commentRss>http://supermodelling.net/?feed=rss2&amp;p=130</wfw:commentRss>
		</item>
		<item>
		<title>Musing About Musing</title>
		<link>http://supermodelling.net/?p=125</link>
		<comments>http://supermodelling.net/?p=125#comments</comments>
		<pubDate>Sat, 30 May 2009 00:27:51 +0000</pubDate>
		<dc:creator>Derek</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://supermodelling.net/?p=125</guid>
		<description><![CDATA[
Seems I never quite got back to sleep. It turns out that I don&#8217;t want to stop blogging, since I enjoy it. What I will do, though, is broaden the range and nature of my posts &#8212; rather than attempt to focus on a particular subject matter, this blog will become a more general and [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-127" title="peter" src="http://supermodelling.net/wp-content/uploads/2009/05/peter.jpg" alt="" width="200" height="155" /></p>
<p>Seems I never quite got back to sleep. It turns out that I don&#8217;t want to stop blogging, since I enjoy it. What I will do, though, is broaden the range and nature of my posts &#8212; rather than attempt to focus on a particular subject matter, this blog will become a more general and personal creative outlet. Many of my topics will be along the lines of things I&#8217;ve written about previously since I find them particularly interesting, but others (such as this one) will not. I hope that friends, family, acquaintances, similarly-minded strangers, and bored far-future archeology robots will find something worthwhile here. If not, oh well.</p>
<p>In modern casual Christian mythology, St. Peter tends the gates of heaven, interviewing prospective entrants.</p>
<p>&#8220;And what did you do with your life?&#8221; he would ask me.</p>
<p>&#8220;Well, I spent a lot of time watching progress bars on my computer screen.&#8221;</p>
<p>He would nod, having heard that quite a lot. &#8220;And?&#8221;</p>
<p>&#8220;Hmm. I wrote a lot of code.&#8221; And sure enough, that&#8217;s true. My <a href="http://www.amazon.com/Outliers-Story-Success-Malcolm-Gladwell/dp/0316017922/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1243643182&amp;sr=8-1">10,000 hours</a> and more have been spent coding &#8212; the closest thing I have to a theme for my life.</p>
<p>When I was younger, I&#8217;d code like mad. I&#8217;d code all day. I&#8217;d code all night. It didn&#8217;t matter really what the program was <em>for</em>, the process of telling a whirling, blinking machine exactly what to do &#8212; in every excruciating detail &#8212; was completely absorbing to me. I <a href="http://en.wikipedia.org/wiki/Flow_(psychology)">flowed</a>, outside time, undistractable, bodiless.</p>
<p>Eventually, I made a career of it &#8212; along with inventing ideas about which programs to write and organizing the efforts of teams of coders. Today I still spend a fair bit of time coding. But over time typing computer code became like driving a car: an almost unconscious reflex&#8230; and bit by bit my passion for it withered away. Coding for its own sake no longer consumes or fulfills me. It&#8217;s a thing I do well, but the passion is gone. Sometimes (not as often as I&#8217;d like) the <em>reason</em> for a particular coding task motivates me strongly, but the process itself is just the means to an end now, a trade skill.</p>
<p>I think it&#8217;s common for middle-aged folks like me to realize that passion has dissipated and we get upset about that. Recently I wondered whether I might be able to ignite a new passion around, say, making music, but I&#8217;m full of doubt over whether I have the willpower to put in 10,000 hours at this late time in my life, training ear and voice and fingers &#8212; or even whether I have enough inborn capability to make such an enterprise worthwhile.</p>
<p>Explaining all that time spent on refining tiny muscle movements to St. Peter also seems problematic.</p>
<p>The general question of how one should spend one&#8217;s precious hours does haunt me. There&#8217;s a thousand things I love to do, and none that I love to do <em>enough</em>. I do know that <strong>musing</strong> about things &#8212; a lazy dilettante hobby &#8212; gives me pleasure, and indulging this desire has never caused me to look backward with regret. So&#8230; muse I shall.</p>
<p>It might be that if enough people muse visibly on the internet in the great gooey blogosphere, like the chattering of a million subconscious thought fragments in a global mind, something like a gestalt understanding might emerge in a big evolving cloud of shadowy concepts. If that happens, will we even recognize it?</p>
<p>One thing I find particularly interesting is how difficult it is to communicate ideas about abstract and poorly-understood subjects such as philosophy and artificial intelligence. Reading conversations on mailing lists and discussion forums, I&#8217;m always amazed at how people that are earnestly and sincerely interested in these questions often talk completely past each other, as if we all speak our own private dialects sharing nothing more than a few suggestive vocabulary terms.</p>
<p>This great murmuring babble wafts outward into the ether; I wonder if angels and old souls living in heaven can make sense of it, and if this type of music is pleasing to the celestial ear. Perhaps someday I&#8217;ll know the answer.</p>
<address>(Note: I&#8217;m not actually a Christian, and my references to pop theology are purely metaphorical. Sometimes I think it would be nice to believe such things, but I cannot choose what I believe &#8212; and even if I could, that strikes me as a very dangerous skill to exercise.)</address>
]]></content:encoded>
			<wfw:commentRss>http://supermodelling.net/?feed=rss2&amp;p=125</wfw:commentRss>
		</item>
		<item>
		<title>Slumber</title>
		<link>http://supermodelling.net/?p=123</link>
		<comments>http://supermodelling.net/?p=123#comments</comments>
		<pubDate>Tue, 10 Mar 2009 15:47:21 +0000</pubDate>
		<dc:creator>Derek</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://agiblog.net/?p=123</guid>
		<description><![CDATA[The few people interested in this blog may have noticed that it has gone dormant.
After toying with the &#8220;AI problem&#8221; for a while it has become clear to me that nobody (including me) seems to have a very promising research agenda for making progress on building artificial minds.  It pains me to admit this&#8230; I [...]]]></description>
			<content:encoded><![CDATA[<p>The few people interested in this blog may have noticed that it has gone dormant.</p>
<p>After toying with the &#8220;AI problem&#8221; for a while it has become clear to me that nobody (including me) seems to have a very promising research agenda for making progress on building artificial minds.  It pains me to admit this&#8230; I had always thought that right around now would be the time when we&#8217;d start making some truly interesting progress on the fundamental issues underlying cognition.  But I don&#8217;t see any evidence at all that this is the case.  Assuming I have a more or less average lifespan, the clock is ticking.  I had really hoped to see this problem solved before my time is over&#8230; but I can&#8217;t point to a single insight made in the last decade that counts to me as actual progress toward general-purpose thinking machines.</p>
<p>The yearly AGI conference was this past weekend and I&#8217;m sure that the attendees would disagree with me, many of them thinking that they personally are on the right track and making tangible progress but unfortunately I just don&#8217;t see it.</p>
<p>None of that would bother me too much if I had a clear path of my own to explore, and if I were enjoying thinking about it, but alas that seems not to be the case.  I really do think that there is some potential for the idea of studying the &#8220;model-building&#8221; process and then wrapping that around on itself to model model-building itself.  That&#8217;s very vague, though, and I have not come up with much by way of connecting that to bits of computer code or other concrete applications.</p>
<p>So I&#8217;m going back to sleep for another five or ten years, unless some unexpected insight comes to me in a dream or I see somebody else come up with something promising.  In the meantime, I have always wistfully wanted to make music, despite having no training or demonstrated talent.  At some point, age-related degeneration of my joints and vocal cords will make that impractical so if I&#8217;m ever going to have a good try at expressing myself musically, I better give it a try now.  I have started a little bit and am having great fun.</p>
<p>Good luck to those of you who are more dedicated to this cause than I.  I&#8217;ll check in to see what you&#8217;ve been up to and have another shot at it myself around 2014 or so.  I sincerely hope that my grim assessment of the state of the art is wrong.</p>
]]></content:encoded>
			<wfw:commentRss>http://supermodelling.net/?feed=rss2&amp;p=123</wfw:commentRss>
		</item>
		<item>
		<title>Floats</title>
		<link>http://supermodelling.net/?p=121</link>
		<comments>http://supermodelling.net/?p=121#comments</comments>
		<pubDate>Wed, 10 Dec 2008 05:41:09 +0000</pubDate>
		<dc:creator>Derek</dc:creator>
		
		<category><![CDATA[Data Types]]></category>

		<guid isPermaLink="false">http://agiblog.net/?p=121</guid>
		<description><![CDATA[Suppose that we take a bunch of bits and break it up into two different pieces (A and B), then interpret the pair as A x 2B, where we interpret A as a fraction between, say, -1 and 1; and B is an integer. This rather complicated way of interpreting a bunch of bits is [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-122" title="calc" src="http://agiblog.net/wp-content/uploads/2008/12/calc.jpg" alt="" width="205" height="144" />Suppose that we take a bunch of bits and break it up into two different pieces (A and B), then interpret the pair as A x 2<sup>B</sup>, where we interpret A as a fraction between, say, -1 and 1; and B is an integer. This rather complicated way of interpreting a bunch of bits is a powerful idea &#8212; yielding numbers with good precision and a wide range of possible values. These are called <strong>floating point</strong> numbers and are really the workhorses of modern processor chips.</p>
<p>This is because &#8220;real numbers&#8221; (points from a continuous line of values) are incredibly useful for modelling things, and floating point numbers are for many purposes excellent approximations to real numbers. Suppose that we treat a 32-bit floating point number as a distance measured in inches. The smallest size that number can represent is <em>way</em> smaller than the size of a subatomic particle and the largest size is <em>way</em> bigger than the entire universe. And there&#8217;s a pretty decent amount of precision available too (call it 24 bits).</p>
<p>There are two most-common sizes for floating point numbers &#8212; 32 bits (called single precision) and 64 bits (called double precision).  The main reason for needing double precision is that 24 bits of precision is sometimes not adequate; it only lets us distinguish between about 16 million values.  That&#8217;s plenty for a lot of computation but there are two main cases where it isn&#8217;t enough:  those cases where higher precision is simply required, and cases where we have to perform arithmetic on numbers with very different scales.  As an example of the latter, suppose that we want to add 0.001 to a 32-bit floating point value 100000.0.  You&#8217;d think that the answer would be 100000.001, but it actually doesn&#8217;t work!  With 24 bits of precision, that value cannot be represented, so the answer is just 100000.0.  That is the reason that the single precision version of the Mandelbrot Set program I wrote about in another post cannot zoom in very far.</p>
<p>Besides distances, <em>floats</em> are great at representing other physical quantities (temperature, mass, etc). They are also fine for representing probabilities (although a fixed-point representation is usually better unless the need arises for truly tiny probabilities).</p>
<p>Just as we saw with integers, a huge amount of mathematical structure has been built up around real numbers, and approximating real numbers with a floating point representation gives access for modelling purposes to that big pile of math. To help this along, modern processors include primitive operations for addition, multiplication, and division &#8212; and also fancier things like square root, and so on. Large portions of the silicon used to build CPUs are dedicated to fast circuitry for doing these things&#8230; if one is interested in keeping a big fraction of the transistors of a CPU busy doing work, using vectors of floating point numbers (either as vectorized data types or data parallel stream processing) is surely the way to go.</p>
<p>That might be a frustrating conclusion if you&#8217;re interested in AGI&#8230; most peoples&#8217; approaches to thinking about mind are not naturally expressed as vectorized floating point arithmetic. However, as a root level building block of useful modelling abstractions, floats are often excellent (which is why they exist!).</p>
<p>Readers might be wondering why I am plodding along on these really basic considerations, but we have to start somewhere when thinking about using computers for modelling. Our basic fundamental building blocks are bits, integers, and floating point numbers (plus a few other things like null-terminated strings which have a few specialized opcodes). What can we build from these, and what are our motivations for the next layer of complexity on top of raw bits?</p>
]]></content:encoded>
			<wfw:commentRss>http://supermodelling.net/?feed=rss2&amp;p=121</wfw:commentRss>
		</item>
	</channel>
</rss>
