Tuesday, June 28, 2005

Genetic Algorithm Deathmatch

Seeing this Slashdot story on this use of machine learning in a computer game, made me wonder if anyone has tried to do anything like use genetic algorithms to control and evolve AI players in something like a Quake deathmatch?

Chuck a bunch together with random algorithms... the players that survive longer get duplicated and modified. The appealing thing about that is that the players would be in a fairly complex environment, which might help drive towards fairly complex behavior, and that it could be fully automated - the players, the selection and modification. The complexity of the environment includes the 3D environment, other AI players, their strageties, how they handle the various types of situations that come up, etc etc.

I'm not that interested in spending the time to seriously look into this but I did this google search, which seems to include a few such things, such as the work described in this paper.

Sunday, June 26, 2005

A Less Obvious Use of Logging Information

I think a lot of good things could come if applications kept more detailed logging information, as Jon Udell has talked a bit about recently. Imagining the sorts of uses such logging could be put to is difficult, however, I think, and this post is simply about one posisbility.

Temporal organisation of, and access to, of information seems to be pretty powerful. We seem to fairly good at associating things with a time period, or at least a position relative to other temporal items.

I was trying to find some things I'd written somehwere in all my PhD-related files, sometime mid-late last year, but there wasn't any easy way to find them because the temporal information in the system is too meagre.

Windows keeps the date of the last update to a file, but that is not very useful for this purpose. A simplified explanation of why is that even though the majority of the text in a file might have been written back then, I might have made some minor update or change to the file at any time since then, so the date of last update is not really a very good indicator of when text in the file was written.

What I need to be able to do is ask the system when the majortiy of the text (say 70% or more of it) in the file was last updated. Without going into all the sorts of technical issues, if you kept detailed logging information about changes to files, you could do this.

User Interface Principle: Operations Applicable to Representations in Any Context

Here's a user-interface principle: if you can do some operation X to some reprepresentation of some thing, A, in some context, then you should be able to do X to any other representation of A in any other context, unless there is a reason not to. My impression is that in most programs, which of the representations of an item you can perform an operation on is a fairly ad-hoc.

Here's an example of where I'd like such a design. I use Winamp (v5.04) to play MP3 files, and when you search for files, you can right click on an item in the results and choose to move that file to after the current song (being played) in the playlist. But if you right-click a file that's in the playlist itself, there's no option to move it to after the current song, which I often find frustrating.

I'm not up on writings on UI stuff, so I have no idea what might have been written about this kinda idea...

Causes Can be Effects

Causes can be effects

When you find the cause of an effect it's easy to think that's the end of the story, but we need to realise that that cause may itself be an effect of another cause... and so on. The most significant of the causes of an effect may be a number of steps back in this chain.

Monday, June 20, 2005

A Fair Perspective On Increasing Diversity of Choice?

Negative effects of change impinge on our consciousness and we are all prone to seeing this change as those negative effects, and the prior situation in a positive light -- as their absence. We do not compare the positives and negatives of the change against those of the prior situation. Virginia Postrel points out some thinking that's fallen into this trap with respect to the increasing diversity of choice in modern life. (via A&L Daily)

Thursday, June 16, 2005

Aim low and you shall achieve

Sunday, June 12, 2005

A Reciprocal Deal

When naturalistic methods of obtaining knowledge suggest a different view from religious ones, should they respect those views and not try to compete with them? Salmon Rusdie says that it might be fair to answer "yes" but only if there was a reciprocal deal, with a "yes" answer to the flip-side: should religious views respect the naturalistic ones and not try to compete with them?.

Monday, June 06, 2005

Showing Date of Most Recent Contents Modification

It would be good if Windows Explorer could, when it's listing the details of a folder, optionally show the time of the most recent update to the folder's contents. By the most recent update I mean the modification time for the most recently modified file within the folder's (transitive) contents. This way, when I’m backing up folders, I can easily tell whether any changes have been made within a folder since I last backed it up.

Another use for such a detail would be sorting folders based on how recently an update was made to them. I think this would be quite useful, as only a small majority of folders are that actively used, if my experience is anything to go by, and if you equate activity with relevance then such sorting would allow you to more easily focus on these relevant folders and ignore the less relevant ones.

Sunday, May 29, 2005

Short Article Critiquing Intelligent Design Movement

A very nicely written, well argued, piece on why the Intelligent Design movement has a flawed and rather underhand modus operandi.

Monday, May 23, 2005

Requirements on Understanding for Software Brains?

Ricky writes: "Until we fully understand how the human brain operates, I don't see how it is possible to download somebody's mind and have it do anything constructive."

Ray Kurzweil believes that we can do it without needing to understand how it works. He thinks that if we can have high-enough resolution scanners, such that we can get an accurate scan of the physical structure of the brain, we can -- basically -- encode and simulate that structure within a computer. Doing this would of course require a suitable understanding of the way the low-level physical structures work, but it would not require an understanding of what the actual neurones and higher-level structures were doing.

Do I think this is possible? I don't know whether it is possible, but I'm not aware of anything that could rule it out. That is, it seems to be a matter of "we'll have to wait and see".

Perceptual Adaption At Work

Just a quick observation... I often work on my PhD stuff at a local coffeeshop, and sometimes it's a bit nosiy so I listen to music on headphones...

at first I have to have the music fairly loud to block out the other sounds enough but there's a quite noticable difference that occurs after some amount of time -- I dunno, maybe 5-10 minutes -- where the music sounds a lot louder and I can turn it down a fair bit but still effectively block out the sounds.

The transition is not that noticable, but that there has been a change (no doubt a gradual one) is. What seems to be happening is that my brain is adapting to the headphone sounds, and getting better at focusing on them and at filtering out the other sounds.

Sunday, May 08, 2005

Re: Language for Talking, and Thinking, About Evolution

A reply to a comment from Bevan on my last post:

>Comments:
>Some interesting thoughts here James, I've got some of my
>own opinions :-).
>
>In the first section (situation instead of environment) I
>would more carefully consider who is using the term
>environment when analysing the correctness of its usage. I
>certainly consider environment to be more than the physical
>landscape. My housemate for example is doing her PhD in
>ecological modeling. She (and people in similar fields) do
>use the term environment correctly. Factors such as
>biodiversity, population distribution and the presence of
>predators / prey are all important consideration for them
>when talking about environment. You are certainly not going
>to convince them to change their correct use of environment
>to situation because a portion of population use the term
>incorrectly. Isn't it a matter of educating / correcting
>people on the proper meaning the of term rather than consider
>it tainted and ditch it for a new one?

I don't want to imply that nobody uses it correctly, but I still think that in practice people -- even some experts -- think of the envrionment in a too narrow way (regarding my note of 'even some experts', I think, for example, that some such mistaken thinking by experts was cleared up by John Maynard-Smith's Evolutionarily Stable Strategies (except I don't think that article describes it very well, but it was the best link I could find) concept).

If this is the case then of course their notion of 'environment' needs correcting. But with respect to describing evolution, I think that even if with a proper understanding of 'environment', the notion of 'situation' is a more /appropriate/ (not more correct) term.

I should also make it clear that I'm not trying to change anyone else's vocabulary, I'm just trying to figure out what I think is the clearest way of thinking about these concepts.

>Regarding the use of increase and optimise - note the s not
>the z you seppo :-). I agree that changes due to natural
>selection is better expressed using "optimise" rather than
>increase. There are however cases where an organisms fitness
>does increase due to natural selection. If a change in the
>organism results in that organism being far more successful
>in its environment does this note denote a increase in the
>fitness with respect to that environment? Success can be

I don't have any problem with the concept of fitness as something that can be increased or decresed. I think that optimisation -- with an 's' just for you! :-) -- leads to increased fitness. I think that it can cause problems however, to characterise evolution as a process that "increases fitness".

I think that doing so paints a picture of fitness as something like a numerical quantity that can be increased or decreased, and where you can compare these numerical values across different environments and species. I think that talking of evolution optimising fitness helps avoid these problems. Any particular optimisation will lead to an increase of fitness. But there's no universal measure of fitness that is you are constantly bumping up.

I think it's easy to misunderstand this point, and think that it implies some sort of extreme "fitness relativism" where there's no means to make any comparison in terms of fitness or in terms of other concepts such as "sophistication" or "complexity" of design.

Fitness may be relative to situation, and no two situations may be /completely identical/, but situations can share a lot of similarities. After all, every situation in this universe is under the same laws of physics (or at least I don't think we have any reason to believe otherwise). And there are surely certain types of abstract problem solving abilities that have a very broad range of applicability, to give another example.

>measured in a number of ways of course: population density,
>height in the food chain, susceptibility to harsh
>environmental changes, etc. Take the example of a carnivore
>diversifying its diet to become an omnivore. This will likely
>come about due to changes in its environment, e.g. lack of
>prey. If by widening its diet it really begins to flourish
>could this not be called an increase in the fitness with
>respect to its environment?
>
>There is some really good reading about this: Carl Sagan's
>book Cosmos (first 50 pages for so I think) has a very good
>argument for natural selection and explanation of how it
>happens. Jared Diamond's books 'The Rise And Fall Of The
>Third Chimpanzee' and 'Guns, Germs And Steel : A Short
>History Of Everybody For The Last 13,000 Years'. For
>something easier and more entertaining I've got the David
>Attenborough's 'Life of Mammals' DVDs. They've got some
>interesting explanations about the evolution of mammals.

Ah, all books that I would like to read but haven't yet :-). "Guns, Germs and Steel" in particular.

>Good luck with the PhD...

Thanks.

Wednesday, May 04, 2005

Language for Talking, and Thinking, About Evolution

A lot of people recognise that the language we use to talk about evolution is, if taken literally, quite inaccurate. The following are some musings, hastily written up, on how to more accurately describe what is going on. I haven't thought these things through much, and I haven't really looked at whether the suggested alternatives would be suitable for practical situations (like considering whether they are too unweildly or not).

Use 'Situation' instead of 'Environment'

We talk of the creature's environment setting up the selection pressures. Properly understood, there's nothing wrong with this. At the same time, I think the conception of 'environment' most people have can mislead them when thinking about this. The term 'environment' can conjure up the environment of the landscape around the creature, the other plant and animal species. That it can tend to obscure is that the other members of the same species are part of the environment, and that the results of the creatures own behavior is also part of its environment. I think it can also obscure the fact that the environment is not just the physical place, but the unfolding and changing environment over time (over time the selection pressures will change). For these reasons, I think the reality is better captured by the term 'situation'. The creature's situation sets up the selection pressures.


Use 'Optimize' rather than 'Increase'

We tend to say that evolution works to increase a entity's fitness. I think there are two reasons why this can be misleading. It implies that there is some one dimensional value that is being increased... which is okay if you understand that value as an "abstract" fitness. It's just that it doesn't capture well the multidimensionality of the factors that actually make the difference to survival and propagation. "Increase" also suggests a ladder and some path of progress... but this is a bit misleading. For fitness is always relative to the current environment, and what is fit will change as the environment changes. It is not so much that we have steadily increasing fitness, but that the system's fitness "tracks" the changes in the environment. (this is not to say that because 'localized changes' don't always lead to greater general sophistication the biosphere will not end up creating greater complexity over time). For this reason, I think that it is better to talk of creatures fitness being continually optimized rather than continually increasing.


Talk of Natural Selection and Evolution as Products Not Forces, and of optimization potentials instead of implicit goals

When we talk of evolution at work, we tend to say things like "evolution created eyes so animals could hunt their prey". This language is inaccurate because it implies there's an active force pushing, or trying to push, the evolution in a particular direction. But natural selection and evolution is not so much a force that does things, but the product of certain types of situations.

It's the product of situations containing the three factors of variation, heridiblity of that variation, and, basically, competition for survival. When these three factors are present, natural selection and the evolution of forms are the consequences. That is, the natural selection process and the evolution of forms are emergent phenomena.

I started reading Stuart Kauffman's At Home in the Universe last night, and I think there is some of this confusion about evolution in his consideration of how self-organising systems relate to evolutionary processes, though I don't have time to go into the details here (so you can ignore this statement if you want :-)).

We talk of creatures, or evolution itself, evolving some feature for some purpose. This is really just a way of talking and is quite inaccurate. Creatures can't direct their evolution like this, and neither can evolution itself. Evolution does not have goals, and even if it did, it doesn't have any foresight that it could use to reach them. (thinking about evolution as if it did have goals and/or foresight seem to be very common problems). We can much more easily see this when we understand that natural selection is an emergent phenomenom, and I think part of the reason this problem occurs is because of seeing it as some sort of force at work.

It seems difficult to talk of evolution without talking about goals. We talk of evolution as coming up with solutions to problems (it's goals are to solve those problems). What's really going on, however, is that a particular situation provides certain opportunities for creatures to evolve in certain ways. That is, in any given situation, there might be various ways that a creature could potentially evolve that would improve its fitness. If the appropriate mutations happen to occur, the species will move in one or more of those directions. So it's not so much that there is a problem to solve -- a goal to be attained by solving it -- but that the environment possesses opportunities that creatures can happen to evolve towards. I would describe these opportunities as optimization potentials (and remember of course that any change in the environment, including the evolution of a particular species, may change the optimization potentials for it). So natural selection may end up meeting optimization potentials. So perhaps you can say something like "the unfolding situation made use of an optimization potential to evolve feature Y in Xs".

So we can say stuff like "The situation selected for Y", "Optimization emerges from a situation", "Xs evolved feature Y by natural selection's optimization".... but as I said at the start I haven't really thought about using this language in a practical context... and I don't have time for this right now.

Tuesday, April 26, 2005

An Example of Circular Argument Structure

Okay, so the presentation of this idea is pretty awful, but I just don't have time to try and make it better....

There's a kind of circular argument you can get when you consider that the truth or falsity of a claim inversely affects the truth or fality of competing claims, and you reason on this basis without having any independent justifications.

For example, here's one to do with AI. The reasoning goes as follows. First, we might think that human intelligence seems to be non-computational, and therefore artificial intelligence can't be right.

Then, on the basis of believing that artificial intelligence can't be right (for the aforementioned reason), we take this to bolster our view that human intelligence is non-computational.

The logical structure of this is belief in A adds strength to belief in B, which then in turn adds strength to belief in A again. That last step makes it a circular argument.

I think that this particular example is actually quite common. It's a fairly easy mistake to make because the logical structure of what is going on is usually hidden away in the particular way the views are being expressed, and because it's easy to forget or not think carefully about the reasons why we hold the original belief.

Comment on "Weekend Tagging Thoughts"

A comment I added on this post in the Library Stuff weblog on whether the author of a post should be able to tag their work or not, because there are some negative effects if the author can. I suggested that avoidance wasn't the only option - you can also adapt to situations, which is sometimes a better option.

Indicating Occurrences On Search/Replace Dialog

I'd like it if the search and replace dialog boxes in text editors and word processors would give you an indication where in the document the next, or even all, the occurrences of the search term are. With all the ones I'm used to using, when you click to find the next occurrence, it just jumps you wherever in the document it is, which I can find disorientating.

It could, for example, give you a small visual map of the document, which highlights the occurrences. The sense of where the occurrences are located would enable you to see, for example, whether your search term has picked up all the occurrences you expected it to (if there's one section of the document where you were expecting matches but where there aren't any, this could lead you to realise that you've entered in a slightly wrong search term, or misspelt the items in that place).

There are various other ways this sort of information could be conveyed. For example, it could have a special display containing an entry for each occurrence, showing the line it is on and perhaps a line or two above and below it for context, and also something like a little image of the document to show where the lines for that entry are located. The entries could be listed one after the other, to give you a view upon the document focusing on the occurrences.

I wouldn't be surprised if there's a system out there that does something along these lines, or if not, that someone will try something like this sooner rather than later.

Note For Self on Book "A Moving Experience"

Keeping with the idea of using my weblog to write notes for myself.... I picked up Shelley-Maree Cassidy and Grant Sheehan's book A Place to Stay: 30 Extraordinary Hotels for something like $5 at a bookstore's bargains table and really liked it... and I wouldn't mind getting this similar book of theirs sometime: A Moving Experience: Holidays on Wheels, Water and Wings. (there's also this book which is probably the same one but under a different title or at least similar, Vacations on the Move: Exotic Experiences on Wheels, Water and Wings Around the World).

Monday, April 25, 2005

Structure Makes Structure

.
Structure makes structure


That might quite a general principle. Or that's at least what robotic orangutans and penne pasta have led me to believe.

Earlier today I was reading Steve Grand's fantastic book about the nature of intelligence, Growing Up With Lucy. Trying to build something is a really good way to understand it, and Grand is building a robotic orangutan in order to try and understand things about how intelligence works. It really is a fantastic, insightful book, and I would recommend it to anyone -- after all, who isn't interested in the nature of our selves?

One of the book's key points is that the brain seems to be made up of all sorts of different maps of things (of visual information, of where muscles are located, and so on), and a lot of what the brain is doing is transforming information between these maps.

It turns out that genes only need to specify a small proportion of the details of these maps and pretty blind and simple processes can "figure out the rest". Grand gives a plausible account of various ways this could happen, though acknolwedging that it's still speculative and it hasn't been fully put to the test.

One of the ways is how the mappings between the different "formats" used by the maps could be created simply by having the maps generate random information that, because it's coming from this map with a particular structure, reflects the structure of that map.

He also gives an account of how the structure in the environment can be used in a fairly blind way to build up important structures in the brain (the 'orientation detectors' in the primary visual cortex).

Anyway, both these things are examples of structure + non-structure makes more (or greater) structure. But I didn't really think of in these terms till I was making some pasta for lunch.

I don't usually use penne pasta, but there was this recipe I wanted to try and it called for penne and who am I to disobey? One of the reasons I don't usually use it is that it tends to clump together as it cooks, which means you have to take more time out to stir it[1].

The reason that penne tends to clump together, and most other pasta does not, has to do with their shape. Being cylinders, pieces can stick together along their lengths, and end up all pointing in the same direction. (I suspect that them being hollow cylinders might have something to do with it also, as the water currents flowing through them might cause them to line up with each other). Other pasta tends to be irregular shapes (at least as they become soft while they're cooking, anyway) that don't provide regular surfaces that can cause clumping like this.

With the ideas from Steve Grand's book bubbling away under the surface of my mind, it occurred to me that these clumps were a form of higher-level structure that were made possible by the lower-level structure of the pasta shapes. That is, structure making more complex structure. It seems like any structure that's there provides a hook that can be used for building more structure. I haven't really thought it through, but I suspect that this is the only way you can build structure... that sounds right to me.

I don't think this would be any surprise to people who have looked at things like complex systems. From what I've read, this is the kind of way they talk about complex systems. The only thing I can say is that I don't recall having read the point being made that explicitly.

I know there would be other ways of putting the concept, but just as a test I did a google search for this phrase. At the moment it only returns a single result, and that's a mis-hit (where the first 'Structure' is at the end of one sentence and the following 'Makes structure' is the start of the next sentence).

update: I thought I should explain a bit more about what I meant. When I said that structure makes structure, and that 'I suspect that this is the only way you can build structure' and that this view 'sounds right to me', I did have something more specific in mind. "Structure makes structure" describes what's going on with evolutionary processes, for one thing.

Evolution is a process whereby new structure is created by a process of unstructured changes to existing structure (random mutations of genetic structures) that are "guided" by the structure of the environment (what increases "fitness"). If the environment was "undifferentiated" or "random" this wouldn't happen. It has to have the pre-existing structure for the evolution to make use of. What I'm saying is that evolution is a blind process by which two existing sources of structure are used to make more structure. Thats existing structure making more structure -- an instance of structure makes structure.

If structure makes structure, then what makes structure in the first place? There's two kinds of answer to this -- the "ultimate" answer, and the "in this universe" one. The "ultimate" answer really concerns the question "what, ultimately, is the universe", which we don't know the answer to. The "in this universe" answer concerns the question of "where in this universe does the structure come from". The answer to that is, it comes from the nature of the actual laws of physics (not our formulation of them, but whatever they actually are). These cause matter to interact with other matter in regular (that is, structured) ways, and, at least according to the view expressed in this post, all other structure emerges from this lowest level form of structure.



[1] If that sounds somehow petty to you, then it's probably because you're confusing the explicit listing of reasons "penne clumps, means more stirring, thus avoid buy", which were written in that way for the purposes of explaining something in this post, with some "logical" train of reasoning that you imagine I must go through. If you, on the other hand, you think that it's a bit petty to make the effort to avoid penne like I'm doing, then re-read the previous sentence. Going further afield in my digressions, I suspect that a vague sense of "pettiness" we can feel about such things comes from our persistent "moralising" about things in which, amongst other things, says its somehow bad to do anything that might give you slight conveiences. Don't think I'm saying morals aren't important; I'm just pointing out that we need to think about those we're using.

Saturday, April 23, 2005

Deaf Divers

Just a minor observation. One thing that really impressed itself on me when I went scuba diving is just how low the communication bandwidth is while you're down there. There's a few hand signals and gestures you can use, to indicate things like "I'm okay" or "look at that", but you can't really communicate with the other people you're with (so I was kind a half jokingly thinking "so this is what it's like to be a creature like a dog or a cow without any real language..."). And all this made me think that if you and your dive buddy could sign, you'd be set.

Playground Waterpump

Nice bit of 'thinking outside of the box': A company in South Africa has found a way to harness youthful energy, by using a playground roundabout to power a borehole pump, to help address the perennial problem of water supply in rural villages (BBC News, via Robotwisdom).