Natural Machine Intelligence and Machine Consciousness - fantasy or near-future fact? How can we get there, and do we want to undertake the journey?
Site feed http://machine-intelligence.blogspot.com/atom.xml

Wednesday, May 31, 2006

Peltarion Synapse

This is not an incitement to click on the ads, but I happened to have a look at what was being advertised on my page (seems only sensible, really, and I was careful to do it in such a way as to not break my agreement not to click on them with Google) and one of them was for a product called Synapse from Peltarion.

 

I had never heard of them before, so I took a quick look.  It is a nice piece of software, although annoyingly similar to something I have been meaning to make for some time.  Essentially it provides a toolkit of neural networks and analysis tools, coupled with some wizards to guide you through importing your data and designing the classifier/time series predictor/function modeller.  It can take a little while to load up on my machine – 30 seconds or so just now, with precious little else using disk or processor (but with 760Mb of page file in use… which slows things down even with 1GB around… but Synapse only uses another 20MB by the time it has the flash screen up).   This is probably due to its highly modular design, with almost everything being implemented in separate dll files.  In fact, most of the filters/neural network components etc. have 2 dll files – one for the gubbins (I assume) and one for the gui (judging by the names).

 

The splash screen has an annoying ‘always on top’ness about it, but it is bright and friendly and gives you the option to switch it off.  The main software is probably much easier to use with practice, but I must admit given the 14 day trial period, I would imagine I would stick to using the wizards in order to get anything done.

The only real problem I ran into with it while messing about (that should read ‘testing’) was that if I set the option to use a genetic algorithm to optimise the work flow parameters, it would sometimes de-optimise them, leaving the analysis in a sad and sorry state.

 

Trying to set some of the components up manually (they have a nice drag ‘n’ drop functionality) left me rather fatigued at one point, as every time I tried to change the number of outputs of one layer of an MLP in it, something automatically adjusted it back to fit the next component it was connected to.  I think (it was late at night!) that I discovered that if you work backwards through the work flow, it was more likely to listen to your desires and not fix it for you, than if you work forwards.

 

Lots of good stuff implemented in there though – Kalman filters, Fuzzy logic, Naïve Bayes, SVMs, wavelets, Hebbians, RBFs, Self Organising Maps … and the design of the system means that is will be simple for them to update it.  In fact, the second time I ran it it automatically updated the Hebbian component and a couple of other things.  That worries me slightly, because it might mean you have non-reproducible results, but on the other hand it should mean you have the latest and greatest facilities at any time, as long as you are connected to the interweb thingy.

 

Downside? The asking price.  Ouch.  Don’t think I will be buying that any time soon, although, maybe, just maybe, I could twist my supervisor’s arm and get it for the project, as it essentially implements a large chunk of the stuff I am half way through implementing.  Not quite as satisfying as a roll your own though, is it?

Tuesday, May 30, 2006

Learning Classifier Systems

LCS

 

These are an interesting class of beastie.  They are not connectionist, so don’t earn my full favour (!), but they certainly live up to their name, for low numbers of discrete dimensions in the problem space, at least.  They use populations of classifiers which associate a pattern in the observable environment with an action that can be performed (or, for more complex systems, actions which are re-processed by the system).  An element of the match-expression for the classifier can be specific, or an “I don’t know” character – normally expressed in the literature as #.  I would have used ? personally, but hey.

In each cycle, stimuli from the environment are encoded and put on the Message List.  Those classifiers whose pattern component matches with messages are selected and referred to as the Match Set (although I don’t think classifier systems are particularly known for playing tennis…).  The classifiers in the Match Set compete with one another for the right to post their messages to the Message List, and if they succeed, they are placed in the Action Set.  There is a club membership fee to pay, though, and members of the Action Set provide a pay-off to any classifiers responsible for posting the messages that they responded to, in order to get in to this elite club.

            At this stage, the existing message list is cleared, and then the Action Set members do their thing, posting up the message, or action, part.  If these messages are valid instructions to the systems actuators, then they are acted on, and feedback from the environment is elicited (i.e. the system interacts with the world and good stuff, bad stuff, neutral stuff or a mixture of all three, happens).  If the environment has rewarded the system, the system then rewards its classifiers, thus making them stronger (and repaying some of that investment they made to get there – obviously only the best will be making a profit).  And then the cycle starts again.

            In order to prevent the system becoming stagnated, the population occasionally undergoes a culling and breeding from its fittest members.  Simple crossovers normally seem to suffice in the genetic algorithm, as another technique is used to add variety to the population.  If the Match Set does not have at least one member of the population matching each of the stimulus messages, a process called covering is invoked.  Basically this is the big cheat (OK, so I like systems to be able to fail, and not be brute forced, shoot me) – if none of the population matched a message, a new member is added to the population which does match it. 

            This basic idea was the brainchild of J.H.Holland, as had a number of people work in the field since.  (I would cite a paper here, but as I don’t have a copy to hand, and various sources I do have to hand cite papers from between 1976 and 1989 as definitive, I shall leave that task to you, dear reader.  If someone wants to post a comment pointing out which paper is the best one, I would be most grateful). 

            One thing I particularly like about this variety of learning classifier system is the second order nature of it.  The messages from the action set are left in the message list and the stimuli from the environment are added to them – voila, the system has a simple memory.  This makes it a relative of production systems, which I will try and write something on at some point in the not too distant future.  The bucket-brigade reward scheme – where rewards are passed on down the line to classifiers which helped others get to the all important Action Set, is a useful learning mechanism which I feel should have a wider application.  It is the polite, cooperative part of a functioning economy which is missed by the capitalist driven mindset these days (oops, showing a bit of political bias there!).  Of course, as described here, the scheme is still elitist, because it is only those who have made it to the Action Set who will have posted messages and will be eligible for the reward scheme.

            Enough for now.  I will try and post some pictures in the next issue…

           

Saturday, May 27, 2006

Multi-Layer Perceptron

Each year, one of our lecturers sets a coursework to write a C++ implementation of an MLP.  The students are only just learning C++ at this stage, and the MLP is new to them too.  It is strange though that in my year when we did this (the first year he set it) the marks were generally good, and yet subsequently they have been, well, not at all good (I don’t know about this year’s, but have heard rumours).

 

The requirement is to write the network as object oriented code.  Which should be your first choice anyway, in my opinion, despite the possible slight speed increases you could get for writing some mish-mashed array based implementation.  I was not, actually, all that happy with the one I wrote for that course work, so I thought I might revisit it sometime soon.

 

McCulloch-Pitts

Clever chaps, who came up with a biologically-inspired (not realistic) model of a neuron, which takes in input values, weighted by what I will refer to as synaptic weights (or just weights) and sums them.  It then calculates its output value by using a threshold function on the sum.  Oh, and it has a bias input of 1 (constant input) which is also weighted by the bias weight, and added in to the sum too.  If you think of the bias as having a negative weight, then it is the value which the inputs have to exceed to make the neuron fire.  This idea of firing is, of course, fine if you have a threshold function which is discontinuous, and actually produces a 0 output until a threshold is reached, and then produces (say) an output of 1.  This step-wise functionality is valid, but does not learn well, as the discontinuity causes us some problems.  So we generally use a function such as the logistic, or tanh, to give our thresholding, as they are both easily differentiable.

 

Networks

When you plug a few MCP style ‘neurons’ together, you get a multi-layer perceptron.  You can train it by showing it examples of inputs, letting it work out what it thinks the answer should be, and then calculating how much it was in error.  The errors are then fed back through the network, in a stage called back-propagation, where each ‘neuron’ passes a proportion of the error to the neurons which give it its inputs.  It then adjusts the weights, so that the largest contribution to the error is changed most.  A few iterations of this, and the network learns to give the right answers.  Too many iterations, and it learns the inputs too well, and is no longer able to generalise – but just the right amount of training leaves you with a network which is quite resistant to noise, can produce correct results from previously unseen data, and is typically even resilient in the face of having synaptic links, and even whole neurons, removed.

 

This sort of network is not the fastest on the block, and nor does it provide the optimal separating hyper-plane, but it is quite flexible and easy to implement.  It can be used for pattern recognition and classification problems, and also for extrapolating results from data.

 

I’ll post on this in more detail later, as this is just to whet your appetite.  I will probably also give some examples of MLPs in use too… 

Friday, May 26, 2006

A Random Universe

A Random Universe

I just found an awesome blog by Eric - one, it seems, of many he has made. I must find time to read through some of his archived posts. Good work Eric!

More on n-tuples

Remember the n-tuples? No? they are down there (V) a little bit.

 

The smaller the value of n, the smaller the memory requirement, which is obviously a Good Thing.  The problem is, if you make n too small, each of the RAM elements can become saturated very quickly.  I like to work with extreme examples, so let us look at n=0.  This is not going to be interesting, but I feel the urge.  An n-tuple with n=0 should take up 1 bit of ram – but it’s address is made up of no bits from the data, so it is totally useless!  OK, so how about n=1?  Each recogniser looks at 1 element of the picture, and if it is white (say) then the RAM is 01, and if it is black, the RAM is 10.  Using such a recognizer is about as useful as printing the image out, mincing it with a fine solution of water and alcohol, and then employing a colorimeter to tell you how dark the resulting solution was.  Oh, and keeping a blank sheet of paper alongside, just for a laugh.

 

Now, let us look at n=2.  We need 2^2=4 bits to store the information.  If we tabulate the possibilities (inputs down the left hand side):

 

 

3

2

1

0

WW

0

0

0

1

WB

0

0

1

0

BW

0

1

0

0

BB

1

0

0

0

 

Let’s train one with WB.  The 2-tuple now holds a binary value of 0010.  If we trained it on a whole series of 2-pixel elements from a number of sources, if we assume for the moment that due to noise, camera angle yada-yada the distribution of pixels is more or less random across the whole set of images, we will reach the point where it has become saturated.  We could reasonably expect it to be able to learn 4 images, on average, before becoming full, and, essentially, useless – the ‘yes man’ of the recognizer world.

 

It seems sensible then to design such a network with a value of n which allows as many images to be stored as are necessary for the application at hand.  For instance, if I have 600 sets of sample data for each category of thing I want to identify, it would make sense to have this number of images fit easily within each of my n-tuple recognizers RAMs, without saturation being a problem.  As a rule of thumb (and I am more than open to being challenged on this) I would suggest that 2^n should be twice the number of samples, or thereabouts.  In this case, 2048 (2^11) is the next power of two up from 2*600, but 1024 is not so much smaller that I wouldn’t consider 10 as a suitable value of n.

 

Now, if we have 1024 bits per recognizer, they take up 128 bytes each.  As the samples are all from the same class, we would hope that there is, generally, a large amount of overlap in the information.  Those recognizers which address discriminatory micro-features in the image (ie the ones which are useful to us) will be of most interest to us.  If the nature of the data is such that we can ignore the rest, we can store the discriminating recognizers in rather less space than we would need to store the whole lot.  In the case I am considering, my data ‘image’ consists of just over 1million bits.  This means I will need to have at least 100,000 recognizers if they are 10-tuple, more with over sampling (ie 12.8million bytes x the over sampling factor). 

 

Consider the memory requirement, for instance, if I chose n to be 16 instead.  Now each recognizers RAM size is 65536 bits (8KB), but I would only need just over half as many.  Which is good news as this now needs  500MBx over sampling factor.  Or does it?

 

 

Each of my samples can have the address it references in the RAM stored as 2 bytes (16 bits…), so an alternative representation of the recognizer is an array of up to 600 integers (unsigned).  That is 1200 bytes each, making the whole lot fit in to 75MB x over sampling factor.  Much tidier!

 

 

 

 

 

Machine Intelligence vs Cyborgs!!

You may have gathered I have a strong interest in machine intelligence and machine consciousness.  I have many thoughts on the matter, including the moral and ethical aspects involved.

 

Professor Kevin Warwick is a name you may know.  He is the Cybernetics Professor who had an implant in his arm so that he could control a robotic arm, and had it connected up to the internet.  At the time there was some rumbling about the next step being to use it to sense emotions and transmit them to his wife, who was also to have an implant.  Personally, I was not quite sure how emotions were going to be detected in this way, nor indeed how they were going to be translated back from the transmission medium into a form recognizable by his wife, but maybe I was just not thinking in the right way to see the big picture.

 

Anyway, ‘Our Kev’ as I like to think of him, takes a firm stand on the subject of machine intelligence, as it relates to autonomous entities.  He thinks that it is a Bad Thing, and that if lunatics like me get my way, there is a chance that my little babies might take over the world, wreaking havoc and pushing mankind out of his rightful place at the top of the evolutionary ladder.  I am, of course, flattered that the Prof. thinks intelligent robots would be so superior to mankind and exist in such large numbers that they could be a threat.  And I can see his concern – although the mess we have made of things, perhaps being pushed off our pedestal would be no bad thing.

 

Prof. Warwick’s solution to the impending problem of AI robots dominating the world, however, truly fills me with dread.  Cybernetic implants are an exciting possibility, for sure, enabling treatment of conditions such as Parkinson’s.  And I can feel the lure of the possibility of augmenting your own senses with implant technology.  Eyes in the back of your head, anyone?  But if we integrate the machine with the man, haven’t we already chosen to lose some of our humanity, already lost part of the battle he so desperately wants to win?  And are we not more susceptible to a hostile take over by the dread enemy, which does not need to expend resources interfacing with wetware, and can concentrate its efforts on hacking in to our cybernetic modifications?

 

Not that my NMI or NMC would care two hoots – it would, I suspect, be far more interested in learning all it could and hypothesising about the nature of the universe.

Technologies

Some of these blogs entries will be about specific AI related technologies.  They are to give a flavour, and in some cases to provide a bit of detail.  For starters, let us have a look at a form of ‘artificial neural network’ which I have always considered to be something of a cheat.

 

n-tuple RAM networks

 

If you have a pattern recognition problem, one way you can train the computer to recognize your (let us say) images is to use the pixelated information to create addresses, and to simply store a 1 at the address given by the data in the image.  Confused? Well, I was when I read about that, like that, so here are some pictures to help.

0

1

2

3

4

5

6

7

8

 

If we treat the whole 3x3 image as giving us a bit-by-bit address, we can use the numbers in the boxes to act as indices into the address.  Note that this address will be 9 bits long (3x3=9) and if we have 0 as the low order bit, the address given by the above image would be 100100001 or 289 in decimal.  The amount of memory required to store the information would, of course, be 2^9 or 512 bits.  For this one image, we would have one bit set, at address 289, and all others unset.

 

If our image had some noise in it, we would not recognise the image – not very intelligent.  For example

 

0

1

2

3

4

5

6

7

8

 

Gives a look-up address of 101100001 or 353.  And the bit at 353 is unset, so this image is not recognized.  To train the network to recognize it, we set that bit to 1 too.

 

You might see that at the moment, none of this is going to get us very far.  And, what is worse, as the number of pixels increases, the amount of memory needed grows rather too rapidly – by a factor of 2 for each extra pixel, in fact – a 256x256 image would need >2.0e+19728 bits.

 

Now, the obvious thing to do, given the geometrically progressing memory requirements, is to break the image down in to parts to minimise the effect.  If, for instance, we split our 3x3 grid up in to 3 groups of 3, each only requires 8 bits to code it, for a total of 24, instead of the 512 we were using before.  The downside is that we lose some of the relationships between pixels, but the memory saving is huge.  So huge, in fact, that we can afford to over-sample the pixels.  So let’s have a look at what happens if we split the grid in to horizontal rows and vertical columns (yes, I know that those are the definitions of rows and columns, but some people always get confused).

 

Now our first picture will have h1 : 001, h2 : 100, h3 : 100, v1 : 001, v2 : 000, v3 : 110

If we show the second picture to this network, some, but not all, of the individual 3-tuple recognisers will return values of 1.  We will add up the number that do.

h1=1, h2=1, h3=0, v1=0, v2=1, v3=1 -> 4 out of 6 cats say they prefer… wait, 4 out of 6 recognisers think this is the same picture.

 

And if we want to train this network to recognise the new entrant, we will set the 5th bit of recogniser h3 and the 5th bit of recogniser v1.

 

Later, I will look at saturation, and the choice of ‘n’ for the n-tuple, but hopefully this has given a flavour.   It looks like a cheat, and really doesn’t seem all that intelligent, but it is a very good engineering solution to pattern recognition.

 

 

Thursday, May 25, 2006

Intelligence in games

Just a little rant.  Computer games have ‘AI’ for the computer opponents.  But what, if anything, is meant to seem intelligent about them?  They are quite clearly little more than simple scripts, and remind me of Hutchen’s (sp?) contribution to the Loebner prize (which, by the way, was an excellent entry, and one which shows the futility of the Turing Test as it is currently envisaged).  For me, an intelligent opponent would not always be seeking to beat me when it plays.  A group of us play games in the bar on occasion, and we do not all play to win (not all of the time, anyway).  We are intelligent people (or at least, so it seems to us) and one of the goals of playing is to explore possibilities and to build a framework for social interaction which allows us to explore other areas in discussion during, before and after the games.

 

I would like to see an ‘AI’ playing on these terms.  Anyone out there want to provide one for me?

Of Jaron Lanier...

To be fair, I only came across mention of this chap this evening.  He seems to be highly accomplished, and earns my respect for clearly stating that he has no academic degrees.  But on his page about AI, it seems to me that he commits many a cardinal sin.

 

He starts out with a reasonable thought experiment – the one where each neuron is replaced in turn by an artificial substitute.  Unfortunately, whilst talking about AI, he is using a thought experiment about artificial consciousness, but I guess I can let that slide for the moment.  No account is taken of the possibility that consciousness may not only reside in the nervous system, but also in the muscles, bones, organs and various fluids of the body.  Many chemicals inside us are effective neurotransmitters, and may be responsible for some of the continuity of self which we experience.  Additionally there are reasonable theories about electromagnetic fields making up a part of our consciousness, related to, and interacting with, out neurons, but not intrinsically a part of them.  So, sadly, the thought experiment may well fall down at this point.

 

But let us assume that we can indeed make a software emulation of our consciousness (I know, I haven’t really defined what I mean by that yet), including all the awkward bits which we haven’t fully identified yet.  In order for it to be the same consciousness as ours, it would have to be experiencing exactly the same things as us, and, of course, it would have to be perfectly initialized with the same state information and exactly the same dynamics.  This is, of course, not possible thanks to the Heisenberg Uncertainty principal.  But… if we made enough of these simulations and randomized the way they were set up, there is a chance (a very, very, small one, but it is there nevertheless) that we may now have a simulation which had exactly the same things going on in it as we have in our own consciousness.  If it is continuing to experience exactly the same stimuli as we are.  Which it isn’t, and cannot be, unless we model the entire universe with exactly the right states in order to interact with it, down to the quantum level (and, the rate physics is progressing these days, possibly even beyond).

 

So, sorry, the rest of the rant about rain storms is hugely irrelevant.

 

In his thought experiment number 2, he discusses the Turing Test.  Personally, I have no truck with the Turing Test as anything to do with intelligence, and less still to do with consciousness.  However, I have not read anything apart from this chaps writing which suggests the Turing Test has anything to do with consciousness, so that is OK.  If a computer (or anything else) exhibits consciousness, personally I would argue it should be ascribed rights equal to any other conscious being.  But then I am still a meat eater, so obviously I cannot actually be taking that argument the whole way.  On the other hand, I do believe there are different levels of consciousness, which assuages my guilt somewhat.

 

 But one comment he makes is particularly worthy of note – the claim of machine intelligence that consciousness emerges from intelligence.  I am not convinced that this is a claim made by people working in machine intelligence, but it certainly does appear to be a hope held by those in the field.  I would argue that it is probably the other way around, however.  Intelligence is the benefit which the huge cost of consciousness can confer upon us, making it worth having in evolutionary terms.  And personally, I think that both are emergent properties of communities of sufficiently complex ‘agents’.

 

Anyway, he goes on to discuss the problem with AI being that if you label a computer program as being intelligent, users will adapt to fit it, and that this reduces the chances of the software being developed properly, and also allows people to abdicate from responsibility – “oh, sorry I cannot do anything about it, the computer made the decision”.  In some ways I applaud this view – because to some extent it is true.  However, the responsibility shirkers never get away with it when they are dealing with me, nor indeed my Mum.  But then we don’t have intelligent software yet, so maybe things would change if we did.  The thing is, actually intelligent software will adapt to fit the user as much as the user adapts to fit the software.  But then, I don’t think the article was actually ever about real machine intelligence was it – see, “Artificial” – says it all.

Dualism?

Sometimes when I think about consciousness, it is very tempting to fall into the dualist ‘trap’.  Our sense of self, of being able to make our own decisions, of being somehow more than a bunch of hydrocarbons sloshing about in a whole heap of water, is very persuasive.  Rationally I think that it is all a clever illusion played on us by the part of our brain we call our ‘mind’, but I also feel that I am something more.  Of course, we may well be something more – just because science cannot measure something or suggest a way in which this unmeasurable ‘soul’ can interact with the physical world, does not mean that it doesn’t exist.  Just that it is not useful from the perspective of scientific investigation.

 

And this brings us to the issue of subjectivity.  It is argued that we cannot use introspection to investigate matters of consciousness because of the nature of that self same consciousness.  But everything we observe is processed by our brains, and throughout our lives we have modelled the world around us in order to be able to deal with the things we sense.  So all observations we make, whether about our own internal thought processes or about the time it says on the clock, are coloured by the sum of our experiences.  Every single observation we make is internally judged by an internal yard stick, and if it does not fit in with what we have learned about the way the world works, it gets either ignored or modified to fit in.  All part of a wonderfully complex feedback system, which for the most part provides us with exactly the tools we need to get on in life.

 

But it does mean that we cannot be truly objective about anything.  It just is not possible, and it is time, really, that the scientific community was man (and woman) enough to stand up and admit it.  What might be a start is if, instead of writing scientific reports in the third person, we took ownership, admitted our backgrounds and consequent biases, and see how our results work within the framework of our experience.  If we reveal the environment which has brought us to the point of publication, our work can better be judged by those with an interest in it.

Consciousness

This deserves a post of its very own.

 

What do I mean by consciousness in this context?  Well, let me look at things I don’t mean first.

 

I do not mean conscious as opposed to unconscious.  I have never felt that the difference is very well defined, anyway.  If you are unconscious, what is your consciousness doing?  Why can’t you perceive it?  Or if you can, why is it unable to interact with your body with the result that other people are not aware that you still have it?  If it has in some way switched off, how does it get switched back on?  What is happening just before you regain consciousness?  Too many questions, and as the state of being unconscious doesn’t particularly interest me (except, perhaps, in the context of beer and a weekend evening…), I am not thinking of consciousness in this sense.

 

I also do not mean conscious in the sense of self-aware, although there is a relation to this.  I consider self awareness as a necessary part of consciousness.  I believe it is reasonable to assert that the vast majority, if not all, of people are self aware, except when they are, of course, unconscious.  And maybe even then.  However, I do not think that self awareness is the same as consciousness.

 

Why did I bring people in to the discussion just then?  Well, I do not know about you (although I can have a fair guess, from many discussions with other people, who I doubt are really that dissimilar from you), but I am aware (oh dear, here we go!) that I am not necessarily always actively conscious of what I am doing.  Take, for example, what can happen when you travel a familiar route, and upon arrival at a particular point, you suddenly wonder how you got there, as you don’t remember walking/driving past the land marks you know are on the journey.  Or when you are in the middle of a conversation (I notice this between partners quite often) and suddenly one realises that although they have been holding down their end of the discussion, they have not got the first clue what the other person (or, indeed, in some cases, they themselves) has been talking about.  I would argue that although as an individual we have been self-aware throughout such an experience, we have not been truly fully conscious.

 

I would like to think of my consciousness as being the part of me which makes decisions.  However, there is substantial evidence that this just is not the case (read Rodney Cotterill’s excellent book “Enchanted Looms” ).  For the moment, due to networking issues, amongst other things, I will leave this discussion there… and fill you in on my view of consciousness in a future entry!

What's wrong with rule based AI then?

A quick aside.

You may notice that I am not particularly interested in rules based AI.  "Why is that?" I hear you cry.   Well, it serves a perfectly good purpose - it is an engineering feat, essentially, well positioned to fulfill a particular problem solving role.

It is mildly interesting when it is used in a learning context.  And I don't mean when you have to sit through lectures about it, but when you design a system, such as a Learning Classifier System, which can learn rules from experience and apply them in the relevant domain.  But it just doesn't fascinate me in the same way that connectionist, emergent, downright woolly networks which display intelligent behaviours do.  So, when I am obviously looking down my nose at all that is GOFAI, please forgive me - it is entirely my own bias, based on the fact that I don't spend my life looking for solutions to problems, but mainly looking for problems which are begging to be thought about.

Some definitions

"The meaning of a word is in its use"

artificial (from answer.com)
ar·ti·fi·cial
adj.
    1. Made by humans; produced rather than natural.
    2. Brought about or caused by sociopolitical or other human-generated forces or influences: set up artificial barriers against women and minorities; an artificial economic boom.
  1. Made in imitation of something natural; simulated: artificial teeth.
  2. Not genuine or natural: an artificial smile.

[Middle English, from Old French, from Latin artificiālis, belonging to art, from artificium, craftsmanship. See artifice.]

I use artificial in the sense of 'not natural' rather than specifically 'made by humans'. And by natural in this context, I generally mean 'emergent' - if i describe something as natural, you can think of it as something which has come about through the automatic functioning of a system, even if the basic system itself was very much artificial (see Emergence)

intelligence (from answers.com)
in·tel·li·gence
n.
    1. The capacity to acquire and apply knowledge.
    2. The faculty of thought and reason.
    3. Superior powers of mind. See synonyms at mind.
  1. An intelligent, incorporeal being, especially an angel.
  2. Information; news. See synonyms at news.
    1. Secret information, especially about an actual or potential enemy.
    2. An agency, staff, or office employed in gathering such information.
    3. Espionage agents, organizations, and activities considered as a group: “Intelligence is nothing if not an institutionalized black market in perishable commodities” (John le Carré).
For me, the key element here is the faculty of thought and reason. The capacity to acquire and apply knowledge is all well and good, but, leaving aside the need to define knowledge, it does not cover everything I think is generally meant by the word 'intelligence'. I believe most people would consider someone who can merely acquire and apply knowledge to be quite unintelligent in comparison to someone who can acquire knowledge, abstract it into rules for general problem solving, and apply it not only to the domain from which it was learned but to novel domains, also.

Making that leap between domains is, for me, a major part in intelligence. It is linked to creativity, but does not necessarily imply an artistic nature.

Tune in later for more definitions, and a stab at the meaning of 'consciousness'

An introduction

AI.
A handy acronym which covers multiple things. Otherwise known as confusing - in this case it is not about artificial insemination, but artificial intelligence.Or rather, it isn't. I have a problem with the word 'artificial'. It implies something is not entirely 'real'. In this sense, the term "artificial intelligence" implies to me the sort of intelligence that school leavers typically have. All that lovely creative thinking they were capable of when they started in school, gradually stripped away as they are trained, like performing animals, to pass tests and examinations.

They are left with the ability to perform tasks, certainly, but at the price in a reduction in their ability to intelligently come up with new and vibrant ideas. Computer AI is rather like this at the moment. Both the rules-based AI (or good old fashioned AI - GOFAI) and emergent, connectionist AI, are examples of problem solving through training, rather than through education and creativity. Of course, unsupervised systems in dynamic environments may be seen to be a different case, although there are not all that many examples of these about.

Through this blog, I plan to expand on my views of the field, and to touch on an area which many people do not even consider at the moment, except in terms of science-fiction - that of machine consciousness. I will explore the idea of NMI (Natural Machine Intelligence) and whether we might be able to achieve it. I will also bring in some ideas from Cybernetics, and some general comments on the sort of knowledge you might require if you want to study these things.

The next post will be trying to lay down some interpretations of the terms - it is remarkably hard to find concensus on the meaning of 'intelligence', 'consciousness' etc. So, for the purposes of talking about the subject, I will say what I intend when I use a particular word.